Сгенерируйте компонент DPI SystemVerilog

Шаг 1. Выбор цели

  1. Откройте модель, а на вкладке Apps нажмите HDL Verifier. Затем на вкладке HDL Verifier нажмите C Code Settings. На панели Configuration Parameters откроется диалоговое окно Code Generation.

  2. На 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.

Шаг 2. Выбор набора инструментальных средств

На панели Code Generation выберите Toolchain. Чтобы сгенерировать общую библиотеку для той же операционной системы, что и хост-машина, выберите компилятор из списка установленных компиляторов или выберите Automatically locate an installed toolchain. Чтобы использовать компилятор, включенный в Симулятор HDL, или сгенерировать компонент для другой операционной системы, или сгенерировать проект Симулятора HDL, а не общую библиотеку, выберите Симулятор HDL и целевую операционную систему.

Для кросс-платформенной генерации выберите Package code and artifacts, чтобы сгенерировать .zip файл для порта сгенерированных файлов на целевую машину. См. «Генерация кросс-платформенных компонентов DPI».

Вы можете добавить дополнительные флаги компиляции. В группе Build Configuration выберите Specify. Чтобы отобразить текущие флаги, нажмите кнопку Show Settings.

Шаг 3. Включите доступ к тестовой точке (необязательно)

Завершите этот шаг, если вы определили внутренние сигналы в модели как тестовые точки и хотите получить доступ к ним в сгенерированном компоненте DPI.

  1. На левой панели выберите Code Generation > Interface.

  2. В разделе Generate C API for убедитесь, что установлен флажок signals.

  3. Выберите Code Generation > SystemVerilog DPI.

  4. Для Generate access function to test point выберите One function per Test Point или One function for all Test Points.

См. SystemVerilog DPI Component Test Point Access.

Шаг 4. Настройте опции генерации SystemVerilog

  1. На левой панели выберите Code Generation > SystemVerilog DPI.

  2. Выберите Report run-time error, чтобы экспортировать ошибки времени выполнения из Simulink® в симуляцию HDL. Не все блоки Simulink обеспечивают проверку ошибок времени выполнения. Можно добавить проверки во время выполнения, добавив блок Assertion к модели Simulink.

  3. Выберите Generate test bench, чтобы сгенерировать испытательный стенд. Испытательный стенд проверяет сгенерированный компонент C на соответствие векторам данных из подсистемы Simulink.

  4. В 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.

  5. Щелкните OK, чтобы принять эти настройки и закрыть диалоговое окно Параметры конфигурации.

Шаг 5. Сгенерируйте компонент DPI SystemVerilog

  1. В модели щелкните правой кнопкой мыши блок, содержащий подсистему, из которой вы хотите сгенерировать компонент. Выберите Code > C/C++ Code > Build this Subsystem.

  2. Нажмите Build в диалоговом окне.

    Компонент SystemVerilog генерируется следующим subsystem_build/<reservedrangesplaceholder0 >_dpi.sv, где subsystem - имя подсистемы, из которой вы сгенерировали компонент 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.

Похожие темы