Этот пример показывает вам, как настроить сгенерированный код SystemVerilog в процессе Генерации Компонента SystemVerilog DPI.
Продукты потребовали для этого примера:
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 из svpid_SimpleFeedBack модели. Установите следующие параметры:
Выберите Code Generation-> System Target File. Кликните по Кнопке обзора и выберите "systemverilog_dpi_grt.tlc".
В установке Toolchain выберите одну из версий Visual Studio, если вы используете Windows или один из наборов инструментальных средств GCC, если вы используете Linux. Убедитесь, что опция "Генерирует код только", неконтролируем.
Выберите Code Generation-> SystemVerilog DPI и проверяйте, что опция "Настраивает, сгенерировал код SystemVerilog". Убедитесь, что "Шаблон исходного файла" установлен в шаблон по умолчанию "svdpi_event.vgt".
Можно также нажать кнопку "Edit", чтобы просмотреть шаблон SystemVerilog по умолчанию.
Теперь мы сделаны с панелью Параметра конфигурации. Нажмите кнопку "OK", чтобы закрыть его.
В "svdpi_SimpleFeedBack" модели сгенерируйте код С для подсистем F0, F2, F3 и F4. Можно сгенерировать код С от командной строки запущенным следующие команды в MATLAB:
rtwbuild('svdpi_SimpleFeedBack/F0') rtwbuild('svdpi_SimpleFeedBack/F2') rtwbuild('svdpi_SimpleFeedBack/F3') rtwbuild('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.