В этом примере показано, как сгенерировать испытательный стенд 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 |
Испытательный стенд SystemVerilog DPI | Испытательный стенд SystemVerilog DPI |
FPGA в цикле | FPGA в цикле |
Чтобы проверить функциональность HDL-кода, который вы сгенерировали для DUT, сгенерируйте испытательный стенд HDL. Испытательный стенд включает:
Данные о стимуле, сгенерированные источниками сигнала, соединенными с сущностью под тестом.
Выходные данные сгенерированы сущностью под тестом. Во время запущенного испытательного стенда эти данные сравниваются с выходными параметрами модели VHDL® в целях верификации.
Синхронизируйте, сбросьте, и часы позволяют входным параметрам управлять сущностью под тестом.
Инстанцирование компонента сущности под тестом.
Код, чтобы управлять сущностью под тестом и сравнить его выходные параметры с ожидаемыми данными.
Можно симулировать сгенерированный испытательный стенд и файлы скрипта со средством моделирования Mentor Graphics® ModelSim®.
В зависимости от того, сгенерировали ли вы код VHDL или Verilog, сгенерируйте код испытательного стенда VHDL или Verilog. Код испытательного стенда управляет HDL-кодом, который вы сгенерировали для DUT. По умолчанию HDL-код и код испытательного стенда записаны в ту же целевую папку hdlsrc
относительно текущей папки.
Для модели суммирующего счетчика Подсистема HDL_DUT является DUT. Чтобы сгенерировать испытательный стенд, выберите эту Подсистему. Вы не можете сгенерировать испытательный стенд HDL для целой модели.
Во вкладке Apps выберите HDL Coder. Вкладка HDL Code появляется.
Выберите DUT Subsystem в своей модели и убедитесь, что это имя Subsystem появляется в опции Code for. Чтобы помнить выбор, можно прикрепить эту опцию. Нажмите Generate Testbench.
По умолчанию HDL Coder генерирует код испытательного стенда VHDL в целевом hdlsrc
папка.
Сгенерировать код испытательного стенда Verilog для встречной модели:
Во вкладке HDL Code нажмите Settings.
В панели HDL Code Generation, для Language, выбирают Verilog
. Оставьте другие настройки значению по умолчанию.
В HDL Code Generation> панель Test Bench, нажмите Generate Test Bench.
Если у вас уже нет сгенерированного кода для вашей модели, 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.