Проверьте сгенерированный код с помощью HDL- Испытательного стенда в командной строке

В этом примере показов, как сгенерировать HDL- испытательного стенда и проверить сгенерированный код для вашего проекта. Пример принимает, что вы уже сгенерированными HDL-кодами для своей модели. Если вы еще не сгенерированный HDL-код, вы все еще можете открыть эту модель и сгенерировать HDL- испытательного стенда. Перед генерацией испытательного стенда HDL Coder™ генерацию кода запусков чтобы убедиться, что перед генерацией тестбенча выполняется по крайней мере один успешный запуск генерации кода.

Этот пример иллюстрирует, как проверить сгенерированный код для модели конечной импульсной характеристики. Чтобы узнать, как сгенерировать HDL-код, смотрите Сгенерируйте HDL-код из модели Simulink из командной строки.

Модель конечной импульсной характеристики

В этом примере используется модель Symmetric конечной импульсной характеристики, которая совместима с генерацией HDL-кода. Чтобы открыть эту модель в командной строке, введите:

sfir_fixed

Модель использует деление труда, которая подходит для HDL- проекта.

  • The symmetric_fir подсистема, реализующая алгоритм фильтра, является тестируемым устройством (DUT). Из этой подсистемы генерируется сущность HDL.

  • Компоненты модели верхнего уровня, которые управляют подсистемой, работают как испытательный стенд.

Модель верхнего уровня генерирует 16-битные входные сигналы с фиксированной точкой для symmetric_fir подсистема. Блок Рабочая область Signal From генерирует тестовое воздействие (стимулирующий) сигнал для фильтра. Четыре блока Constant обеспечивают коэффициенты фильтра. Блоки Scope используются для симуляции и не используются для генерации HDL-кода.

Для перехода к symmetric_fir подсистема, введите:

open_system('sfir_fixed/symmetric_fir')

Symmetric FIR filter algorithm.

Создайте папку и скопируйте соответствующие файлы

В MATLAB®:

  1. Создайте папку с именем sl_hdlcoder_work, для примера:

    mkdir C:\work\sl_hdlcoder_work
    

    sl_hdlcoder_work хранит локальную копию модели примера и папки и сгенерированный HDL-код. Используйте папку, которая не находится в дереве папок MATLAB.

  2. Сделайте sl_hdlcoder_work папка в рабочей папке, например:

    cd C:\work\sl_hdlcoder_work
  3. Сохраните локальную копию sfir_fixed моделируйте в текущую рабочую папку. Оставьте модель открытой.

Что такое HDL- Испытательного стенда?

Чтобы проверить функциональность HDL-кода, созданного для DUT, сгенерируйте HDL- испытательного стенда. Испытательный стенд включает в себя:

  • Стимулирующие данные, генерируемые источниками сигналов, подключенными к тестируемой сущности.

  • Выход данных, сгенерированных сущностью. Во время испытательного стенда прогона эти данные сравниваются с выходами VHDL® код, для целей верификации.

  • Часы, сброс и часы позволяют входам управлять тестируемой сущностью.

  • Экземпляр компонента тестируемой сущности.

  • Код для управления сущностью тестирования и сравнения его выходов с ожидаемыми данными.

Можно симулировать сгенерированный испытательный стенд и файлы скриптов с помощью Mentor Graphics® ModelSim® симулятор.

Как проверить сгенерированный код

Этот пример иллюстрирует, как сгенерировать HDL- испытательного стенда для моделирования и проверки сгенерированного HDL-кода для вашего проекта. Можно также проверить сгенерированный HDL-код из вашей модели с помощью следующих методов:

Метод верификацииДля получения дополнительной информации
Модель валидацииСгенерированная модель и модель валидации
HDL-косимуляция (требует HDL- Verifier™)Cosimulation
SystemVerilog DPI Испытательного стенда (требует HDL Verifier)DPI- Испытательного стенда SystemVerilog
Цикл (требует HDL Verifier)Цикл

Сгенерируйте HDL- Испытательного стенда

В зависимости от того, сгенерировали ли вы VHDL или Verilog код, сгенерируйте VHDL или Verilog испытательный стенд. Код испытательного стенда управляет HDL-кодом, который вы сгенерировали для DUT. По умолчанию HDL-код и тестовый стендовый код записываются в одну и ту же целевую папку hdlsrc относительно текущей папки.

Чтобы сгенерировать испытательный стенд и скрипты для компиляции и симуляции, используйте makehdltb функция. В командной строке введите:

makehdltb('sfir_fixed/symmetric_fir')

Чтобы задать индивидуальные настройки перед генерацией кода testbench, используйте hdlset_param функция. Можно также задать различные аргументы пары "имя-значение" с makehdltb функция для настройки опций генерации HDL-кода при генерации HDL-кода. Для примера, чтобы сгенерировать испытательный стенд код Verilog, используйте TargetLanguage свойство.

makehdltb('sfir_fixed/symmetric_fir', 'TargetLanguage', 'Verilog')
Кроме того, если вы используете hdlset_param, установите этот параметр в модели, а затем запустите makehdltb функция.
hdlset_param('sfir_fixed', 'TargetLanguage', 'Verilog')
makehdltb('sfir_fixed/symmetric_fir')

Если вы еще не сгенерированный код для своей модели, HDL Coder компилирует модель и генерирует HDL-код перед генерацией испытательного стенда. В зависимости от параметров отображения модели, таких как типы данных портов, модель может измениться во внешнем виде после генерации кода.

Когда продолжается генерация испытательного стенда, HDL Coder отображает сообщения о прогрессе. Процесс должен быть завершен сообщением

### HDL TestBench Generation Complete.

После генерации испытательного стенда вы видите сгенерированные файлы в hdlsrc папка.

Просмотр файлов Испытательного стенда HDL

  • symmetric_fir_tb.vhd: VHDL тестовый стендовый код, с сгенерированными тестовыми и выходными данными. Если вы сгенерировали испытательный стенд Verilog, сгенерированный файл будет symmetric_fir_tb.v.

  • symmetric_fir_tb_pkg.vhd: Упаковать файл для кода испытательного стенда VHDL. Этот файл не генерируется, если в качестве целевого языка указан Verilog.

  • symmetric_fir_tb_compile.vhd: Скрипт компиляции (команды vcom). Этот скрипт компилирует и загружает сущности, подлежащие тестированию (symmetric_fir.vhd) и код испытательного стенда (symmetric_fir_tb.vhd)..

  • symmetric_fir_tb_sim.do: Скрипт Mentor Graphics ModelSim, чтобы инициализировать симулятор, настроить отображения сигнала окна волны и запустить симуляцию.

Чтобы просмотреть сгенерированный код испытательного стенда в РЕДАКТОРА MATLAB, дважды кликните symmetric_fir_tb.vhd или symmetric_fir_tb.v файл в текущей папке.

Запустите симуляцию и проверьте сгенерированный HDL-код

Чтобы проверить результаты симуляции, можно использовать симулятор Mentor Graphics ModelSim. Убедитесь, что вы уже установили Mentor Graphics ModelSim.

Чтобы запустить симулятор, используйте vsim (HDL Verifier). Эта команда показывает, как открыть симулятор, указав путь к исполняемому файлу:

vsim('vsimdir','C:\Program Files\ModelSim\questasim\10.6b\win64\vsim.exe')

Чтобы скомпилировать и запустить симуляцию сгенерированной модели и испытательного стенда, используйте скрипты, которые сгенерированы HDL Coder. Следующий пример иллюстрирует команды, которые компилируют и симулируют сгенерированный испытательный стенд для sfir_fixed/symmetric_fir подсистема.

  1. Откройте программное обеспечение Mentor Graphics ModelSim и перейдите к папке, которая имеет ранее сгенерированного кода файлы и скрипты.

    QuestaSim>cd C:/work/sl_hdlcoder_work/hdlsrc
    
    
  2. Используйте сгенерированный скрипт компиляции, чтобы скомпилировать и загрузить сгенерированные модель и текстовый стендовый код. Запустите эту команду, чтобы скомпилировать сгенерированный код.

    QuestaSim>do symmetric_fir_tb_compile.do
    
    
  3. Используйте сгенерированный скрипт симуляции, чтобы выполнить симуляцию. В следующем списке показаны команда и ответы. Можно игнорировать любые предупреждающие сообщения. Сообщение о завершении испытательного стенда указывает, что симуляция прошла до своего завершения без ошибок сравнения. Запустите эту команду, чтобы симулировать сгенерированный код.

    QuestaSim>do symmetric_fir_tb_sim.do
    
    

    Симулятор оптимизирует ваш проект и отображает результаты симуляции вашего HDL-дизайна в wave окне. если вы не видите результаты симуляции, откройте wave окно. Скрипт симуляции отображает входы и выходы в модели, включая часы, сброс и активацию синхроимпульса в wave окне.

    set of input stimulus and output response from test bench.

Теперь можно просмотреть сигналы и проверить, что результаты симуляции соответствуют функциональности вашего исходного проекта. После проверки закройте симулятор Mentor Graphics ModelSim, а затем закройте файлы, которые вы открыли в РЕДАКТОРА MATLAB.

См. также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте