Начало работы с пользовательской настройкой сгенерированного кода SystemVerilog

В этом примере показано, как настроить сгенерированный код SystemVerilog в процессе генерации компонента DPI SystemVerilog.

Требования и необходимые условия

Продукты, необходимые для этого примера:

  • MATLAB ®

  • Simulink ®

  • Функции Simulink Coder™

  • Ментор Graphics ® ModelSim ®/QuestaSim ®

  • Один из поддерживаемых компиляторов C: Microsoft ® Visual C++ или GNU GCC

Фон

Если сгенерированный по умолчанию код SystemVerilog не соответствует вашим требованиям, у вас есть опция настроить сгенерированный код. В этом примере показано, как настроить сгенерированный код.

В следующей модели Simulink сгенерированный код, соответствующий подсистемам, F0, F2, F3 и F4, экспортируются отдельно как модули SystemVerilog. По умолчанию каждый модуль содержит три управляющих сигнала: синхроимпульс, синхроимпульс и сброс. В симуляции HDL на выходные функции сигнал будет вызвано обновление и фронт подсистемы. Планировщик событий инициирует эти обновления и выходную функцию в Симулятор HDL в той же последовательности, что и в модели Simulink.

Открытый пример

Запустите следующий код, чтобы открыть проект

open_system('svdpi_SimpleFeedBack');

Настройте модель для генерации кода

Откройте панель Параметра конфигурации Simulink Model из модели svpid_SimpleFeedBack. Установите следующие параметры:

Выберите Генерация Кода - > Системный целевой файл. Нажмите кнопку «Обзор» и выберите «systemverilog_dpi_grt.tlc.»

В настройке набора инструментальных средств выберите одну из версий Visual Studio, если вы используете Windows, или одну из сетей GCC, если вы используете Linux. Убедитесь, что опция «Сгенерировать только код» снята.

Выберите Генерация Кода - > SystemVerilog DPI и установите флажок «Настроить сгенерированный код SystemVerilog». Убедитесь, что для параметра «Шаблон исходного файла» задан шаблон по умолчанию «svdpi_event.vgt.»

Можно также нажать кнопку «Изменить», чтобы просмотреть шаблон SystemVerilog по умолчанию.

Теперь мы закончили с Параметром конфигурации панелью. Нажмите кнопку «OK» для ее закрытия.

Сгенерируйте компонент DPI SystemVerilog

В модели «svdpi_SimpleFeedBack» сгенерируйте код С для подсистем F0, F2, F3 и F4. Вы можете сгенерировать код С из командной строки, запустив следующие команды в MATLAB:

slbuild('svdpi_SimpleFeedBack/F0')
slbuild('svdpi_SimpleFeedBack/F2')
slbuild('svdpi_SimpleFeedBack/F3')
slbuild('svdpi_SimpleFeedBack/F4')

Теперь код С для этих подсистем генерируется в подкаталогах "F0_build," "F2_build," F3_build "и" F4_build, "соответственно.

Испытательный стенд

В тестовом модуле «SimpleFeedback_tb.sv» управляющий сигнал соединяется так, что он течет из модулей с более высоким порядком выполнения в Simulink к модулям с более низким порядком выполнения в Simulink.

Запуск сгенерированного испытательного стенда

  • Запустите ModelSim/QuestaSim в режиме GUI и смените директорию на текущую директорию в MATLAB. В ModelSim/QuestaSim введите следующую команду, чтобы скомпилировать проект

do  build.do
  • В ModelSim/QuestaSim введите следующую команду, чтобы симулировать ваш проект

do  sim.do

Когда симуляция закончится, можно изучить различие между выходом каждой подсистемы и записанным сигналом в окне формы волны ModelSim.