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

Шаг 1. Выберите Target

  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. Выберите Toolchain

Все еще на панели 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 доступ.

Шаг 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, чтобы принять эти настройки и закрыть диалоговое окно Configuration Parameters.

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

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

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

    Компонент SystemVerilog сгенерирован как subsystem_build/subsystem_dpi.sv, где subsystem имя подсистемы, от которой вы сгенерировали компонент DPI. Эта сборка также приводит к сгенерированному файлу с именем пакета subsystem_build/subsystem_dpi_pkg.sv, который включает все объявления функции для компонента.

Если вы создали компонент для хост-машины, можно теперь использовать компонент. Чтобы скопировать созданный компонент в другую машину с той же операционной системой, скопируйте эти файлы:

  • Разделяемая библиотека, subsystem.so, или subsystem_win64.dll

  • Сгенерированная обертка SystemVerilog, subsystem_dpi.sv

  • Сгенерированный файл пакета SystemVerilog, subsystem_dpi_pkg.sv

  • Сгенерированная папка испытательного стенда, dpi_tb (дополнительный)

Чтобы портировать компонент на другую машину с различной операционной системой, следуйте инструкциям в, Генерируют Кросс-платформенные Компоненты DPI.

Похожие темы