diff --git a/.pic/Vivado Basics/Run Simulation/Run_sim1.png b/.pic/Vivado Basics/Run Simulation/Run_sim1.png deleted file mode 100644 index fc5c6fc..0000000 Binary files a/.pic/Vivado Basics/Run Simulation/Run_sim1.png and /dev/null differ diff --git a/.pic/Vivado Basics/Run Simulation/Run_sim4.png b/.pic/Vivado Basics/Run Simulation/Run_sim4.png deleted file mode 100644 index fb907fb..0000000 Binary files a/.pic/Vivado Basics/Run Simulation/Run_sim4.png and /dev/null differ diff --git a/.pic/Vivado Basics/Run Simulation/Run_sim2.png b/.pic/Vivado Basics/Run Simulation/fig_1.png similarity index 100% rename from .pic/Vivado Basics/Run Simulation/Run_sim2.png rename to .pic/Vivado Basics/Run Simulation/fig_1.png diff --git a/.pic/Vivado Basics/Run Simulation/Run_sim3.png b/.pic/Vivado Basics/Run Simulation/fig_2.png similarity index 100% rename from .pic/Vivado Basics/Run Simulation/Run_sim3.png rename to .pic/Vivado Basics/Run Simulation/fig_2.png diff --git a/.pic/Vivado Basics/Run Simulation/fig_3.png b/.pic/Vivado Basics/Run Simulation/fig_3.png new file mode 100644 index 0000000..c91529c Binary files /dev/null and b/.pic/Vivado Basics/Run Simulation/fig_3.png differ diff --git a/Vivado Basics/Run Simulation.md b/Vivado Basics/Run Simulation.md index 3091e53..1965667 100644 --- a/Vivado Basics/Run Simulation.md +++ b/Vivado Basics/Run Simulation.md @@ -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: Процесс не может получить доступ к файлу".