Откройте модель, а на вкладке 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 Component Test Point Access.
На левой панели выберите 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, чтобы принять эти настройки и закрыть диалоговое окно Параметры конфигурации.
В модели щелкните правой кнопкой мыши блок, содержащий подсистему, из которой вы хотите сгенерировать компонент. Выберите Code > C/C++ Code > Build this Subsystem.
Нажмите Build в диалоговом окне.
Компонент SystemVerilog генерируется следующим
, где subsystem
_build/<reservedrangesplaceholder0 >
_dpi.svsubsystem
- имя подсистемы, из которой вы сгенерировали компонент DPI. Эта сборка также приводит к сгенерированному файлу пакета с именем
, который включает все объявления функций для компонента.subsystem
_build/<reservedrangesplaceholder0 >
_dpi_pkg.sv
Если вы создали компонент для хост-машины, теперь можно использовать этот компонент. Чтобы скопировать встроенный компонент на другую машину с той же операционной системой, скопируйте следующие файлы:
Общая библиотека, subsystem
.so
, или subsystem
_win64.dll
Сгенерированный упаковщик SystemVerilog, subsystem
_dpi.sv
Сгенерированный файл пакета SystemVerilog, subsystem
_dpi_pkg.sv
Сгенерирован испытательный стенд папка, dpi_tb
(необязательно)
Чтобы перенести компонент на другую машину с другой операционной системой, следуйте инструкциям в Generate Cross-Platform DPI Components.