Откройте свою модель, и на вкладке Apps, нажмите HDL Verifier. Затем на вкладке HDL Verifier нажмите C Code Settings. Диалоговое окно Configuration Parameters открывается на панели Code Generation.
В System target file, под Target Selection, нажимают Browse. Выберите systemverilog_dpi_grt.tlc
из списка.
В качестве альтернативы, если у вас есть лицензия Embedded Coder®, можно выбрать целевой systemverilog_dpi_ert.tlc
. Эта цель позволяет вам получить доступ к своим опциям генерации дополнительного кода на панели Code Generation диалогового окна Model Configuration Parameters.
Если вы генерируете кросс-платформенный компонент, необходимо выбрать systemverilog_dpi_ert.tlc
для параметра System target file.
Все еще на панели Code Generation, выберите Toolchain. Чтобы сгенерировать разделяемую библиотеку для той же операционной системы как хост-машина, выберите компилятор из списка установленных компиляторов или выберите Automatically locate an installed toolchain
. Чтобы использовать компилятор, включенный с симулятором HDL, или сгенерировать компонент для различной операционной системы или сгенерировать проект симулятора HDL, а не разделяемую библиотеку, выбирают симулятор HDL и вашу целевую операционную систему.
Для кросс-платформенной генерации выберите Package code and artifacts, чтобы сгенерировать .zip
файл, чтобы портировать сгенерированные файлы на целевую машину. Смотрите Генерируют Кросс-платформенные Компоненты DPI.
Можно опционально добавить дополнительные флаги компиляции. Под Build Configuration выберите Specify
. Чтобы отобразить текущие флаги, нажмите Show Settings.
Завершите этот шаг, если вы определяли внутренние сигналы в своей модели как тестовые точки, и хотят получить доступ к ним в сгенерированном компоненте DPI.
На левой панели выберите Code Generation> Interface.
В разделе Generate C API for проверьте, что флажок signals устанавливается.
Выберите Code Generation> SystemVerilog DPI.
Для Generate access function to test point выберите One function per Test Point
или One function for all Test Points
.
Смотрите тестовую точку компонента SystemVerilog DPI доступ.
На левой панели выберите Code Generation> SystemVerilog DPI.
Выберите Report run-time error, чтобы экспортировать ошибки времени выполнения от Simulink® до вашей симуляции HDL. Не все блоки Simulink обеспечивают проверки ошибки времени выполнения. Можно добавить проверки на этапе выполнения путем добавления блока Assertion в модель Simulink.
Выберите Generate test bench, чтобы сгенерировать испытательный стенд. Испытательный стенд проверяет сгенерированный компонент C по векторам данных от вашей Подсистемы Simulink.
В разделе SystemVerilog Ports, установленном эти параметры.
Выберите типы данных SystemVerilog. (дополнительный)
Установите Connection на Port list
или Interface
.
Установите Composite data type на Structure
. Эта опция создает SystemVerilog struct
типы данных для любых невиртуальных шин или для сложных типов данных. В качестве альтернативы выберите Flattened
создать сглаженные порты.
Выберите Scalarize matrix and vector ports, чтобы создать несколько скалярных портов SystemVerilog из вектора Simulink или массива. Очистите эту опцию, чтобы сохранить массивы в интерфейсе.
Совет
При использовании HDL Coder™ для генерации кода совпадайте со сгенерированным интерфейсом путем выбора следующих опций:
Установите Ports data type на Logic Vector
.
Установите Composite data type на Flattened
.
Выберите Scalarize matrix and vector ports.
Нажмите OK, чтобы принять эти настройки и закрыть диалоговое окно Configuration Parameters.
В вашей модели щелкните правой кнопкой по блоку, содержащему подсистему, от которой вы хотите сгенерировать компонент. Выберите Code> C/C++ Code> Build this Subsystem.
Нажмите Build в диалоговом окне.
Компонент SystemVerilog сгенерирован как
, где subsystem
_build/subsystem
_dpi.svsubsystem
имя подсистемы, от которой вы сгенерировали компонент DPI. Эта сборка также приводит к сгенерированному файлу с именем пакета
, который включает все объявления функции для компонента.subsystem
_build/subsystem
_dpi_pkg.sv
Если вы создали компонент для хост-машины, можно теперь использовать компонент. Чтобы скопировать созданный компонент в другую машину с той же операционной системой, скопируйте эти файлы:
Разделяемая библиотека, subsystem
.so
, или subsystem
_win64.dll
Сгенерированная обертка SystemVerilog, subsystem
_dpi.sv
Сгенерированный файл пакета SystemVerilog, subsystem
_dpi_pkg.sv
Сгенерированная папка испытательного стенда, dpi_tb
(дополнительный)
Чтобы портировать компонент на другую машину с различной операционной системой, следуйте инструкциям в, Генерируют Кросс-платформенные Компоненты DPI.