diff --git a/.github/SUMMARY.md b/.github/SUMMARY.md index e844640..ee13442 100644 --- a/.github/SUMMARY.md +++ b/.github/SUMMARY.md @@ -54,7 +54,7 @@ - [Ошибки элаборации](Vivado%20Basics/Elaboration%20failed.md) - [Запуск симуляции](Vivado%20Basics/Run%20Simulation.md) - [Руководство по поиску ошибок](Vivado%20Basics/Debug%20manual.md) -- [Руководство по прошивке ПЛИС](Vivado%20Basics/Program%20nexys%20a7.md) +- [Руководство по прошивке ПЛИС](Vivado%20Basics/How%20to%20program%20an%20fpga%20board.md) - [Заголовочные файлы в Verilog](Vivado%20Basics/Verilog%20Header.md) # Остальное diff --git a/.pic/Vivado Basics/How to program an fpga board/fig_1.png b/.pic/Vivado Basics/How to program an fpga board/fig_1.png new file mode 100644 index 0000000..39f16e4 Binary files /dev/null and b/.pic/Vivado Basics/How to program an fpga board/fig_1.png differ diff --git a/.pic/Vivado Basics/How to program an fpga board/fig_2.png b/.pic/Vivado Basics/How to program an fpga board/fig_2.png new file mode 100644 index 0000000..c079672 Binary files /dev/null and b/.pic/Vivado Basics/How to program an fpga board/fig_2.png differ diff --git a/Labs/03. Register file and memory/board files/README.md b/Labs/03. Register file and memory/board files/README.md index 67f0b56..64634e9 100644 --- a/Labs/03. Register file and memory/board files/README.md +++ b/Labs/03. Register file and memory/board files/README.md @@ -1,6 +1,6 @@ # Проверка работы регистрового файла на ПЛИС -Если вы не понимаете, что лежит в этой папке, или если надо вспомнить, как прошить ПЛИС, можно воспользоваться [`этой инструкцией`](../../../Vivado%20Basics/Program%20nexys%20a7.md) +Если вы не понимаете, что лежит в этой папке, или если надо вспомнить, как прошить ПЛИС, можно воспользоваться [`этой инструкцией`](../../../Vivado%20Basics/How%20to%20program%20an%20fpga%20board.md) Для работы с регистровым файлом, необходимо выставлять сигналы адресов и данных. У платы недостаточно переключателей, для такого количества входов регистрового файла, поэтому подача сигналов на вход происходит в несколько этапов. diff --git a/Vivado Basics/How to program an fpga board.md b/Vivado Basics/How to program an fpga board.md new file mode 100644 index 0000000..e1387db --- /dev/null +++ b/Vivado Basics/How to program an fpga board.md @@ -0,0 +1,32 @@ +# Как прошить ПЛИС + +После того как вы описали и верифицировали модуль, остается запрототипировать его в ПЛИС. Для этого в большинстве папок лабораторных работ есть подпапка `board_files` в которой хранятся необходимые для этого файлы. Обычно там будет находиться модуль верхнего уровня и файл ограничений, которые позволяют связать вашу логику с периферией, расположенной на плате `Nexys-A7`. + +Для сборки итогового проекта вам необходимо: + +1. Добавить модуль верхнего уровня (содержащийся в файле с расширением `.sv`) в `Design Sources` вашего проекта. +2. Выберете добавленный модуль в качестве модуля верхнего уровня вашего проекта. + 1. Для этого нажмите по нему правой кнопкой мыши. + 2. В контекстном меню выберете `Set as Top`. +3. Добавьте файл ограничений (с расширением `.xdc`) в `Constraints` вашего проекта. Если такой файл уже есть в вашем проекте (а он будет в нем уже после первой лабораторной), вам необходимо заменить старого файла содержимым нового. Ограничения меняются от лабы к лабе. + +После выполнения указанных шагов, ваш проект готов к генерации битстрима — двоичного файла, с помощью которого реконфигурируется ПЛИС. + +Для генерации битстрима вам необходимо нажать на `Generate Bitstream` во вкладке `PROGRAM AND DEBUG` окна `Flow Navigator` (левый нижний угол окна программы). + +![../.pic/Vivado%20Basics/How%20to%20program%20an%20fpga%20board/fig_1.png](../.pic/Vivado%20Basics/How%20to%20program%20an%20fpga%20board/fig_1.png) + +_Рисунок 1. Расположение кнопки `Generate Bitstream`._ + +После нажатия на эту кнопку, нажимайте утвердительно во всех всплывающих окнах (варианты `YES`/`OK`, в зависимости от состояния вашего проекта, число появляющихся окон будет различным). После успешной генерации битстрима откроется окно `Bitstream Generation Completed`. + +Остается прошить ПЛИС. Для этого подключите отладочный стенд к USB-порту компьютера и включите на стенде питание. Затем откройте окно `HARDWARE MANAGER` для этого: + +1. Убедитесь, что выбран пункт `Open Hardware Manager` в окне `Bitstream` и нажмите на OK. +2. Кликните `Open target` → `Auto Connect` → `Program device` → `Program`. + +![../.pic/Labs/board%20files/Program_Device2.png](../.pic/Labs/board%20files/Program_Device2.png) + +_Рисунок 2. Последовательность действий для прошивки ПЛИС._ + +После этого появится окно с индикатором реконфигурации ПЛИС. Когда окно закроется, в ПЛИС окажется прототип вашего модуля. diff --git a/Vivado Basics/Program nexys a7.md b/Vivado Basics/Program nexys a7.md deleted file mode 100644 index 2e20fb7..0000000 --- a/Vivado Basics/Program nexys a7.md +++ /dev/null @@ -1,13 +0,0 @@ -# Как прошить ПЛИС - -После того, как вы создали свой модуль и проверили его на прохождение тестбенча, вы можете использовать предоставленный в папке `board files` модуль окружения, который позволяет связать вашу логику с периферией, расположенной на плате `Nexys-A7`. Для его подключения, скачайте и добавьте файл в проект, либо скопируйте содержимое в новый `.sv` файл вашего проекта. В окне `Sources` нажмите на него ПКМ и выберите `Set as Top`, после чего в иерархии он станет главным, подключив ваш собственный модуль. Для того, чтобы дизайн мог физически подключиться к периферии, нужно в проекте выбрать `Add Sources`, `Add or create constraints` и подключить файл `nexys_a7_100t.xdc`. Если у вас уже подключен этот файл, необходимо заменить данные на те, которые предложены в текущей папке `board files`. - -Для прошивки ПЛИС подключите устройство через USB, включите питание переключателем, выполните синтез и имплементацию вашего дизайна и сгенерируйте битстрим. Если на этом этапе у вас возникают ошибки, постарайтесь исправить их с помощью [`инструкции по работе с ошибками`](Elaboration%20failed.md). - -Все этапы проходят достаточно медленно, подробнее о них можно узнать [`здесь`](Implementation%20steps.md). По завершению у вас всплывет окно, информирующее об окончании генерации битстрима, для следующего шага вы можете выбрать пункт `Open Hardware Manager` и нажать `OK`, либо нажать `Cancel` и выбрать в левом меню в самом низу `Open Hardware Manager`, `Open Target` - `Auto Connect`, затем `Program Device` и ваше устройство прошьется. - -Генерация битстрима -![../.pic/Labs/board%20files/Program_Device1.png](../.pic/Labs/board%20files/Program_Device1.png) - -Прошивка ПЛИС -![../.pic/Labs/board%20files/Program_Device2.png](../.pic/Labs/board%20files/Program_Device2.png) diff --git a/Vivado Basics/README.md b/Vivado Basics/README.md index 38d8390..f298954 100644 --- a/Vivado Basics/README.md +++ b/Vivado Basics/README.md @@ -10,7 +10,7 @@ 1. [установить Vivado](Install%20Vivado.md); 2. [создать демо-проект под отладочный стенд Nexys-7](Vivado%20trainer.md); -3. [загрузить сделанную лабу в ПЛИС](Program%20nexys%20a7.md); +3. [прошить ПЛИС](How%20to%20program%20an%20fpga%20board.md); 4. [разобраться в структуре папок проекта Vivado](Folder%20Structure%20In%20The%20Project.md); 5. [открыть логическую схему написанного вами модуля](How%20to%20open%20a%20schematic.md); 6. [запустить симуляцию](Run%20Simulation.md);