# Как прошить ПЛИС

После того как вы описали и верифицировали модуль, остается запрототипировать его в  ПЛИС. Для этого в большинстве папок лабораторных работ есть подпапка `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/Vivado%20Basics/How%20to%20program%20an%20fpga%20board/fig_2.png](../.pic/Vivado%20Basics/How%20to%20program%20an%20fpga%20board/fig_2.png)

_Рисунок 2. Последовательность действий для прошивки ПЛИС._

После этого появится окно с индикатором реконфигурации ПЛИС. Когда окно закроется, в ПЛИС окажется прототип вашего модуля.
