Этот пример показывает вам, как настроить сгенерированный код 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.
Запустите следующий код, чтобы настроить проект
cd(tempdir); [~, ~, ~] = rmdir('svdpi_SimpleFeedBack', 's'); mkdir('svdpi_SimpleFeedBack'); cd('svdpi_SimpleFeedBack'); 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", соответственно.
Запустите следующую команду, чтобы скопировать все необходимые файлы испытательного стенда в текущий каталог
copyfile(fullfile(matlabroot,'toolbox','hdlverifier','hdlverifier_examples','svdpi_SimpleFeedBack','*'),pwd)
В испытательном стенде соединяется управляющий сигнал так, чтобы это вытекало из модуля с более высоким порядком выполнения в Simulink к модулю с более низким порядком выполнения в Simulink.
Запустите ModelSim/QuestaSim в режиме GUI и измените директорию на текущий каталог в MATLAB. В ModelSim/QuestaSim введите следующую команду, чтобы скомпилировать ваш проект
do build.do
В ModelSim/QuestaSim введите следующую команду, чтобы моделировать ваш проект
do sim.do
Когда симуляция заканчивается, вы можете экзамен различие между выводом каждой подсистемы и полученным сигналом в окне формы волны ModelSim.