Этот пример показывает, как сгенерировать испытательный стенд HDL и проверить сгенерированный код для вашего проекта. Пример принимает, что у вас уже есть сгенерированный HDL-код для вашей модели. Этот пример иллюстрирует, как проверить сгенерированный код для простого суммирующего счетчика. Чтобы узнать больше об этой встречной модели и как сгенерировать HDL-код, смотрите, Генерируют HDL-код из Модели Simulink.
Если у вас уже нет сгенерированного HDL-кода, можно все еще открыть эту модель и сгенерировать испытательный стенд HDL. Прежде, чем сгенерировать испытательный стенд, HDL Coder™ запускает генерацию кода, чтобы гарантировать, что существует по крайней мере одна успешная генерация кода, запущенная прежде, чем сгенерировать испытательный стенд.
Откройте эту модель, чтобы видеть простой суммирующий счетчик. Модель подсчитывает от нуля до порогового значения и затем переносится назад, чтобы обнулить. В этой модели пороговое значение установлено в 15
. Можно изменить пороговое значение путем изменения значения блока Constant, который вводится к порту count_threshold
. Разрешать сигнал задает, должен ли счетчик подсчитать или содержать предыдущее значение. Разрешать сигнал установлен в 1
, что означает, что счетчик рассчитывает вверх постоянно.
open_system('hdlcoder_simple_up_counter.slx') set_param('hdlcoder_simple_up_counter', 'SimulationCommand', 'Update')
Этот пример иллюстрирует, как сгенерировать испытательный стенд HDL, чтобы моделировать и проверить сгенерированный HDL-код для вашего проекта. Можно также проверить сгенерированный HDL-код из модели с помощью этих методов:
Метод верификации | Для получения дополнительной информации |
---|---|
Модель валидации | Сгенерированная модель модели и валидации |
Cosimulation HDL (требует HDL Verifier™), | Cosimulation |
FPGA в цикле | FPGA в цикле |
Испытательный стенд SystemVerilog DPI | Испытательный стенд SystemVerilog DPI |
Чтобы проверить функциональность HDL-кода, который вы сгенерировали для DUT, сгенерируйте испытательный стенд HDL. Испытательный стенд включает:
Данные о стимуле, сгенерированные источниками сигнала, соединенными с сущностью под тестом.
Выходные данные сгенерированы сущностью под тестом. Во время запущенного испытательного стенда эти данные сравниваются с выходными параметрами модели VHDL® в целях верификации.
Синхронизируйте, сбросьте, и часы позволяют входным параметрам управлять сущностью под тестом.
Инстанцирование компонента сущности под тестом.
Код, чтобы управлять сущностью под тестом и сравнить его выходные параметры с ожидаемыми данными.
Можно моделировать сгенерированный испытательный стенд и файлы скрипта со средством моделирования Mentor Graphics® ModelSim®.
В зависимости от того, сгенерировали ли вы код VHDL или Verilog, сгенерируйте код испытательного стенда VHDL или Verilog. Код испытательного стенда управляет HDL-кодом, который вы сгенерировали для DUT. По умолчанию HDL-код и код испытательного стенда записаны в ту же целевую папку hdlsrc
относительно текущей папки.
Сгенерировать код испытательного стенда для встречной модели:
В панели HDL Code Generation, для Generate HDL for, убеждаются, что вы задали DUT, Counter/HDL_DUT
.
Если вы задаете целую модель как свой DUT, испытательный стенд HDL не может быть сгенерирован.
По умолчанию код испытательного стенда сгенерирован в VHDL. Чтобы сгенерировать код испытательного стенда Verilog
, для Language, выбирают Verilog
. Оставьте Folder hdlsrc
, который является значением по умолчанию.
В HDL Code Generation> панель Test Bench, убедитесь, что вы выбираете HDL test bench и Simulation tool как Mentor Graphics Modelsim
. Нажмите Generate Test Bench, чтобы сгенерировать код испытательного стенда HDL.
Если у вас уже нет сгенерированного кода для вашей модели, HDL Coder компилирует модель и генерирует HDL-код прежде, чем сгенерировать испытательный стенд. В зависимости от образцовых параметров экрана, таких как типы данных порта, модель может изменение внешности после генерации кода.
В то время как генерация испытательного стенда продолжает, HDL Coder отображает сообщения о ходе выполнения. Процесс должен вместе с сообщением
### HDL TestBench Generation Complete.
После генерации испытательного стенда вы видите сгенерированные файлы в папке hdlsrc
. Например, если вы сгенерировали испытательный стенд для Подсистемы HDL_DUT
в вашей модели суммирующего счетчика, папка содержит:
HDL_DUT_tb.vhd
: код испытательного стенда VHDL, со сгенерированными тестовыми и выходными данными.
Если вы сгенерировали код испытательного стенда Verilog, сгенерированным файлом является HDL_DUT_tb.v
.
HDL_DUT_tb_pkg.vhd
: файл Пакета для кода испытательного стенда VHDL. Этот файл не сгенерирован, если вы задали Verilog как выходной язык.
HDL_DUT_tb_compile.do
: скрипт компиляции Mentor Graphics ModelSim (команды vcom
). Этот скрипт компилирует и загружает сущность, которая будет протестирована (HDL_DUT.vhd
) и код испытательного стенда (HDL_DUT_tb.vhd
).
HDL_DUT_tb_sim.do
: скрипт Mentor Graphics ModelSim, чтобы инициализировать средство моделирования, настройте отображения сигнала окна wave и запустите симуляцию.
Чтобы просмотреть сгенерированный код испытательного стенда в Редакторе MATLAB®, дважды кликните HDL_DUT_tb.vhd
или файл HDL_DUT_tb.v
в Текущей папке.
Чтобы проверить результаты симуляции, можно использовать средство моделирования Mentor Graphics ModelSim. Убедитесь, что вы уже установили Mentor Graphics ModelSim.
Чтобы запустить средство моделирования, используйте функцию vsim
. Эта команда показывает, как открыть средство моделирования путем определения пути к исполняемому файлу:
vsim('vsimdir','C:\Program Files\ModelSim\questasim\10.6b\win64\vsim.exe')
Чтобы скомпилировать и запустить симуляцию сгенерированного кода образцового и испытательного стенда, используйте скрипты, которые сгенерированы HDL Coder. Следование примеру иллюстрирует команды, которые компилируют и моделируют сгенерированный испытательный стенд для Подсистемы hdlcoder_simple_up_counter/HDL_DUT
.
Откройте программное обеспечение Mentor Graphics ModelSim и перейдите к папке, которая имеет файлы сгенерированного кода и скрипты.
Используйте сгенерированный скрипт компиляции, чтобы скомпилировать и загрузить сгенерированный код места размещения модели и текста. Например, если вы сгенерировали испытательный стенд для Подсистемы hdlcoder_simple_up_counter/HDL_DUT
, запустите эту команду, чтобы скомпилировать сгенерированный код.
QuestaSim>do HDL_DUT_tb_compile.do
Используйте сгенерированный скрипт симуляции, чтобы выполнить симуляцию. Следующий листинг показывает команду и ответы. Можно проигнорировать любые предупреждающие сообщения. Сообщение завершения испытательного стенда указывает, что симуляция выполнение до завершения без ошибок сравнения. Например, если вы сгенерировали испытательный стенд для Подсистемы hdlcoder_simple_up_counter/HDL_DUT
, запустите эту команду, чтобы моделировать сгенерированный код.
QuestaSim>do HDL_DUT_tb_sim.do
Средство моделирования оптимизирует ваш проект и отображает результаты симуляции вашего проекта HDL в окне wave. если вы не видите результаты симуляции, открываете окно wave. Скрипт симуляции отображает вводы и выводы в модели включая часы, сброс, и часы включают сигналы в окне wave.
Можно теперь просмотреть сигналы и проверить, что результаты симуляции совпадают с функциональностью первоначального проекта. После проверки близко средство моделирования Mentor Graphics ModelSim, и затем закрывает файлы, которые вы открыли в редакторе MATLAB.
После того, как вы проверили функциональность своего проекта HDL, можно развернуть сгенерированный код на целевом устройстве FPGA. Для развертывания вы используете HDL Workflow Advisor Simulink. Чтобы учиться как больше, смотрите генерацию HDL-кода и Синтез FPGA Используя HDL Workflow Advisor Simulink.