Рефактор запуска моделирования

This commit is contained in:
Andrei Solodovnikov
2024-01-31 18:52:18 +03:00
parent 9e55df46ab
commit 297ec87b38
6 changed files with 23 additions and 13 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,25 +1,35 @@
# Как запустить симуляцию модуля в Vivado
# Как запустить симуляцию в Vivado
При добавлении `tb` модулей и подключении к ним `Design Sources`, мы видим, как в уровнях иерархии модуль симуляции становится самым верхним, включая в себя все модули вашего дизайна. Так называемый test bench (tb) — виртуальный стенд, куда мы поместили наш `top` модуль. Надо обратить внимание, что `tb` модуль не имеет портов ввода-вывода: подключенные сигналы для нашей схемы описываются непосредственно средствами языка Verilog.
Симуляция — это один из видов моделирования. Моделирование используется чтобы проверки поведения разработанного устройства. Для этого, на входные сигналы подаются тестовые воздействия, а с выходных считывается результат. Параллельно этому процессу, те же самые тестовые воздействия отправляются и в эталонную модель устройства. Результат модели сверяют с результатом проектируемого устройства и, в случае расхождения, сигнализируют об ошибке.
Иерархия модулей проекта.
Генерация тестовых воздействий, подача их на верифицируемое устройство и модель, сверка результатов и логирование ошибок — все это выполняется средствами верификационного окружения, которое в рамках данных лабораторных работ будет именоваться как "тестбенч". Тестбенчи — это несинтезируемые модули, поэтому они не должны находиться в папке `Design Sources`, вместо этого для них есть папка `Simulation Sources` (см. ["Окно исходников проекта Vivado"](./How%20to%20use%20Source%20Window.md)).
![../.pic/Vivado%20Basics/Run%20Simulation/Run_sim1.png](../.pic/Vivado%20Basics/Run%20Simulation/Run_sim1.png)
Для каждого верифицируемого модуля в репозитории есть отдельный тестбенч. Перед запуском моделирования, необходимо убедиться, что в качестве модуля верхнего уровня в папке `Simulation Sources` выбран тестбенч того модуля, который вы собираетесь верифицировать.
Есть 2 способа запустить симуляцию
Есть несколько способов запустить симуляцию, рассмотрим два из них:
1. На панели слева в разделе `SIMULATION` нажать `Run Simulation` - `Run Behavioral Simulation`.
1. На панели слева, в разделе `SIMULATION`, нажать `Run Simulation` `Run Behavioral Simulation`.
![../.pic/Vivado%20Basics/Run%20Simulation/Run_sim2.png](../.pic/Vivado%20Basics/Run%20Simulation/Run_sim2.png)
![../.pic/Vivado%20Basics/Run%20Simulation/fig_1.png](../.pic/Vivado%20Basics/Run%20Simulation/fig_1.png)
2. В иерархии проекта нажать по папке `sim_1` ПКМ, далее выбрать `Run Simulation`.
_Рисунок 1. Запуск симуляции через вкладку `SIMULATION` окна `Flow Navigator`._
![../.pic/Vivado%20Basics/Run%20Simulation/Run_sim3.png](../.pic/Vivado%20Basics/Run%20Simulation/Run_sim3.png)
2. В иерархии проекта нажать по папке `sim_1` правой кнопкой мыши, далее выбрать `Run Simulation``Run Behavioral Simulation`.
Автоматически симуляция запускается на определенный промежуток времени, после чего останавливается, если этого времени не хватает для прохождения всех этапов симуляции, и в консоли вы не видите результат ее прохождения, тогда необходимо обратиться к появившимся вверху кнопкам управления и нажать на `Run All`(треугольный символ воспроизведения), после чего убедиться, что в консоли выдало информацию о достижении конца симуляции.
![../.pic/Vivado%20Basics/Run%20Simulation/fig_2.png](../.pic/Vivado%20Basics/Run%20Simulation/fig_2.png)
Важное замечание: если вы изменили топ-модуль симуляции, то вам необходимо закрыть текущую симуляцию. Без этого новая не сможет запуститься и будет выдавать ошибку. Подробнее об этой ошибке можно узнать в [`списке типичных ошибок`](../Other/FAQ.md#%D0%BD%D0%B5-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D0%B5%D1%82%D1%81%D1%8F-%D1%81%D0%B8%D0%BC%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F-boot-filesystem-remove-%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81-%D0%BD%D0%B5-%D0%BC%D0%BE%D0%B6%D0%B5%D1%82-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-%D1%84%D0%B0%D0%B9%D0%BB%D1%83). Это решается закрытием симуляции. Закрыть ее можно нажав ПКМ по шапке, расположенной сразу под кнопками управления симуляцией и выбрать `Close`, так же можно найти справа крестик этой шапки, либо нажать ПКМ по **разделу** `SIMULATION`, находящегося на панели слева, и выбрать `Close Simulation`, что так же закроет текущую симуляцию,
_Рисунок 2. Запуск симуляции через контекстное меню папки `sim_1` в `Simulation Sources`._
![../.pic/Vivado%20Basics/Run%20Simulation/Run_sim4.png](../.pic/Vivado%20Basics/Run%20Simulation/Run_sim4.png)
После запуска симуляции будет отмоделировано определенное количество времени, задаваемое через настройки проекта, после чего моделирование приостанавливается. Если этого времени не хватает для прохождения всех этапов симуляции (если в `Tcl Console` вы не видите сообщение о завершении моделирования), необходимо нажать кнопку `▶` (`Run all`) на панели инструментов появившегося окна `SIMULATION` (либо нажать горячую клавишу `F3`).
Для перезапуска симуляции не обязательно действовать так, как описано в двух способах запуска, можно воспользоваться иконкой закругленной стрелки, она это делает в один клик.
В случае, если вы изменили исходный код какого-то из модулей, симуляцию можно перезапустить тем же способом, которым вы запустили её в первый раз, либо нажав кнопку `Relaunch Simulation`.
В случае, не меняли исходный код, но хотите промоделировать модуль заново, вы можете воспользоваться кнопкой `Restart` (`|◀`). В этом случае, вы избежите повторной компиляции модулей.
Для закрытия симуляции вы можете кликнуть на крестик окна `SIMULATION` (бирюзовое), либо нажать правой кнопкой мыши по `SIMULATION` и выбрать `Close Simulation`.
![../.pic/Vivado%20Basics/Run%20Simulation/fig_3.png](../.pic/Vivado%20Basics/Run%20Simulation/fig_3.png)
_Рисунок 3. Закрытие симуляции через окно `Flow Navigator`._
> Если вы изменили модуль верхнего уровня в `Simulation Sources`, вам необходимо закрыть текущую симуляцию. Без этого новая не сможет запуститься и будет выдавать ошибку "boost filesystem remove: Процесс не может получить доступ к файлу".