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

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

  1. Откройте свою модель и выберите Simulation> Model Configuration Parameters.

  2. Выберите панель Code Generation.

  3. В System target file, под Target Selection, нажимают Browse. Выберите systemverilog_dpi_grt.tlc из списка.

    • Также, если у вас есть лицензия Embedded Coder®, можно выбрать целевой systemverilog_dpi_ert.tlc. Эта цель позволяет вам получить доступ к своим опциям генерации дополнительного кода на панели Code Generation диалогового окна Model Configuration Parameters.

Шаг 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. Чтобы сгенерировать испытательный стенд, выберите Generate test bench. Испытательный стенд проверяет сгенерированный компонент C по векторам данных от вашей подсистемы Simulink®.

  3. В разделе SystemVerilog Ports:

    • Выберите типы данных SystemVerilog. (дополнительный)

    • Задайте Port list или Interface для Connection.

    • Выберите Structure for Composite data types. Эта опция создает типы данных SystemVerilog struct для любых невиртуальных шин или для сложных типов данных. Также выберите Flattened, чтобы создать сглаженные порты.

  4. Нажмите OK, чтобы принять эти настройки и закрыть диалоговое окно Configuration Parameters.

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

  1. В вашей модели щелкните правой кнопкой по блоку, содержащему подсистему, от которой вы хотите сгенерировать компонент и установить подсистему как атомарную:

    1. Кликните по подсистеме.

    2. Выберите Block Parameters (Subsystem).

    3. Выберите Treat as atomic unit.

  2. Выберите Code> C/C++ Code> Build Selected Subsystem.

  3. Нажмите Build.

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

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

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

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

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

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

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

Похожие темы