exponenta event banner

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

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

В этом примере показано, как проверить созданный код для модели фильтра FIR. Сведения о создании кода HDL см. в разделе Создание кода HDL из модели Simulink из командной строки.

Модель фильтра FIR

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

sfir_fixed

Модель использует разделение труда, которое подходит для конструирования ЛПВП.

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

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

Модель верхнего уровня генерирует 16-разрядные входные сигналы с фиксированной точкой для symmetric_fir подсистема. Блок «Сигнал из рабочего пространства» генерирует тестовый входной (стимулирующий) сигнал для фильтра. Четыре постоянных блока обеспечивают коэффициенты фильтра. Блоки 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 из модели, используя следующие методы:

Метод проверкиДля получения дополнительной информации
Модель проверкиСгенерированная модель и модель проверки
Косимуляция ЛПВП (требует Verifier™ ЛПВП)Cosimulation
Тестовый стенд SystemVerilog DPI (требует проверки HDL)Испытательный стенд SystemVerilog DPI
FPGA-in-the-Loop (требуется верификатор HDL)FPGA-в-контуре

Создание испытательного стенда ЛПВП

В зависимости от того, был ли создан код 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 компилирует модель и генерирует код HDL перед созданием тестового стенда. В зависимости от опций отображения модели, таких как типы данных портов, модель может изменяться в виде после генерации кода.

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

### 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). Эта команда показывает, как открыть симулятор, указав путь к исполняемому файлу:

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

Для компиляции и выполнения моделирования созданной модели и кода тестового стенда используются сценарии, создаваемые кодером HDL. Следующий пример иллюстрирует команды, которые компилируют и моделируют созданный тестовый стенд для 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
    
    

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

    set of input stimulus and output response from test bench.

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

См. также

|

Связанные темы