exponenta event banner

Начало настройки сгенерированного кода SystemVerilog

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

Требования и предпосылки

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

  • MATLAB ®

  • Симулинк ®

  • Симулинк Coder™

  • Mentor Graphics ® ModelSim ®/QuestaSim ®

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

Фон

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

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

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

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

open_system('svdpi_SimpleFeedBack');

Настройка модели для создания кода

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

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

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

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

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

Теперь работа с панелью Configuration Parameter завершена. Нажмите кнопку «OK» для ее закрытия.

Создать компонент DPI SystemVerilog

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

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

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

Файлы испытательного стенда

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

Запуск созданного тестового стенда

  • Запустите ModelSim/QuestaSim в режиме графического интерфейса пользователя и измените каталог на текущий каталог в MATLAB. В ModelSim/QuestaSim введите следующую команду для компиляции конструкции.

do  build.do
  • В ModelSim/QuestaSim введите следующую команду для моделирования конструкции.

do  sim.do

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