WIP: APS cumulative update (#98)

* WIP: APS cumulative update

* Update How FPGA works.md

* Перенос раздела "Последовательностная логика" в отдельный док

* Исправление картинки

* Исправление оформления индексов

* Переработка раздела Vivado Basics

* Добавление картинки в руководство по созданию проекта

* Исправление ссылок в анализе rtl

* Обновление изображения в sequential logic

* Исправление ссылок в bug hunting

* Исправление ссылок

* Рефактор руководства по прошивке ПЛИС

* Mass update

* Update fig_10

* Restore fig_02
This commit is contained in:
Andrei Solodovnikov
2024-09-02 10:20:08 +03:00
committed by GitHub
parent 78bb01ef95
commit a28002e681
195 changed files with 3640 additions and 2664 deletions

View File

@@ -0,0 +1,44 @@
# Создание нового проекта в Vivado
Для того, чтобы создать новый проект в Vivado для отладочного стенда Nexys A7, следуйте следующему порядку выполнения действий.
1. Запустите Vivado.
2. Нажмите `Create Project`.
3. В открывшемся окне нажмите `Next`.
4. Введите название проекта (никаких пробелов и кириллических символов) → Выберите папку для проектов → Установите селектор `Create project subdirectory` → Нажмите `Next`.
5. Выберите RTL Project → Установите селектор `Do not specify sources at this time` → Нажмите `Next`.
6. Выставьте следующие фильтры, чтобы сузить список ПЛИС:
- Family: `Artix 7`
- Package: `csg324`,
- Speed: `-1`.
На _рис. 1_ показано окно с примененными фильтрами.
7. В списке выберите ПЛИС `xc7a100tcsg324-1` (расположена в самом низу) → Нажмите `Next`.
8. Нажмите `Finish`
![../.pic/Vivado%20Basics/01.%20New%20project/fig_01.png](../.pic/Vivado%20Basics/01.%20New%20project/fig_01.png)
_Рисунок 1. Пример заполнения фильтров для выбора ПЛИС, используемой в Nexys A7._
После нажатия на `Finish`, откроется окно созданного проекта. Выполним его настройку. Для этого, в окне `Flow Navigator`, расположенном в левой части Vivado необходимо нажать на кнопку `Settings`.
В первую очередь, нам необходимо указать какое количество времени работы схемы будет моделироваться при запуске симуляции. Для этого, в группе `Project Settings` необходимо выбрать `Simulation`. В открывшейся странице выбрать вкладку `Simulation`, и в поле `xsim.simulate.runtime` указать значение `1s`, что означает, что по умолчанию будет запускаться симуляция одной секунды времени работы схемы. На _рис. 2_. показан пример данной настройки. Пока что не закрывайте окно настроек.
![../.pic/Vivado%20Basics/01.%20New%20project/fig_02.png](../.pic/Vivado%20Basics/01.%20New%20project/fig_02.png)
_Рисунок 2. Пример настройки времени симуляции._
Одна секунда — это очень большое значение, на многие порядки превышающее время симуляции в большинстве лабораторных работ. Однако верификационное окружение во всех лабораторных будет досрочно останавливать моделирование. Установив подобное большое значение, мы избавимся от необходимости указывать нужное нам время симуляции при каждой симуляции: она просто будет идти, пока не остановится, но в случае, если верификационное окружение почему-то не остановит моделирование, мы будем знать, что оно остановится само по достижении времени в 1с.
Выполним также настройку этапа предобработки (пункт `Elaboration` в группе `Project Settings`). Здесь необходимо установить переключатель в положение `Blackbox model (Stub file)`. На самом деле, в курсе лабораторных работ мы не будем пользоваться ничем, на что влияет эта настройка, однако установив переключатель в данное положение, мы отключим появление ненужного информационного окна каждый раз, когда мы будем выполнять предобработку проекта. После выполнения данной настройки можно нажать на `OK`.
![../.pic/Vivado%20Basics/01.%20New%20project/fig_03.png](../.pic/Vivado%20Basics/01.%20New%20project/fig_03.png)
_Рисунок 3. Пример настройки предобработки проекта._
Все эти настройки можно сделать в автоматическом режиме, введя следующие команды в поле для ввода `Tcl Console`, помеченном текстом `Type a Tcl command here`:
```tcl
set_property -name {xsim.simulate.runtime} -value {1s} -objects [get_filesets sim_1]
set_property elab_link_dcps false [current_fileset]
```