В этом примере показано, как создать компонент SystemVerilog DPI из контроллера пропорциональной интегральной производной (PID) в модели Simulink ® и как экспортировать компонент в имитатор HDL.
Эти продукты необходимы для этого примера.
Один из поддерживаемых имитаторов HDL: Mentor Graphics ® ModelSim ®/QuestaSim ® или Cadence ® Incisive
Один из поддерживаемых компиляторов C: Microsoft ® Visual C++ или GNU GCC
Чтобы настроить модель с правильным целевым файлом, откройте приложение HDL Verifier, щелкнув его значок приложения на вкладке Приложения. Это действие добавляет вкладку «Верификатор HDL» на панель инструментов Simulink. Затем в разделе Mode (Режим) выберите DPI Component Generation (Генерация компонентов DPI), чтобы задать системному целевому файлу модели значение «» systemverilog_dpi_grt.tlc. Если установлен Embedded Coder ®, для целевого файла устанавливается значение «systemverilog_dpi_ert.tlc».
Чтобы создать тестовый стенд SystemVerilog для компонента DPI, в разделе Map на вкладке HDL Verifier выберите Include Testbench.

Откройте параметры конфигурации для модели, щелкнув Настройки кода C (C Code Settings) в разделе Подготовка (Prepare).
В разделе «Параметры цепочки инструментов» выберите одну из версий Visual Studio, если используется Windows, или одну из групп инструментов GCC, если используется Linux.
Снимите флажок Только генерировать код.

Для доступа к внутренним сигналам компонента DPI в среде SystemVerilog используйте функцию регистрации контрольных точек DPI-C.
Дважды щелкните по сигналу, к которому требуется получить доступ, чтобы выделить сигнал и ввести для него имя сигнала. Чтобы пометить сигнал как контрольную точку, в разделе «Подготовка» панели инструментов Simulink выберите пункт «Контрольная точка». Чтобы также зафиксировать тестовый вектор внутреннего сигнала и воспроизвести вектор обратно в сгенерированном тестовом инструменте, щелкните Log Signals в галерее, пока сигнал подсвечен.

Включить параметры C API. В диалоговом окне «Параметры конфигурации» на вкладке «Создание кода» > «Интерфейс» выберите сигналы.

Выберите интерфейс функций SystemVerilog, которые необходимо использовать для доступа к контрольным точкам. Настройте созданный компонент DPI с помощью опции на вкладке Создание кода > SystemVerilog DPI.
В разделе Функции доступа к контрольной точке (Test Point Access Functions) при установке для функции создания доступа (Generate access function) значения None, отмеченные контрольные точки игнорируются, и функции доступа не создаются. Изменение значения на One function per test point позволяет получить независимый доступ к каждой контрольной точке. На этом рисунке показан интерфейс, созданный для этого примера.

Использование значения One function for all test points позволяет получить доступ ко всем контрольным точкам с помощью одного вызова функции.
В модели «svdpi_pid» Simulink выберите блок Controller Subsystem. В разделе «Создание» на панели инструментов выберите «Создать компонент DPI».
Нажмите кнопку Построить (Build) в появившемся диалоговом окне.
Компонент SystemVerilog создается как «» Controller_build/Controller_dpi.sv. По завершении создания кода проверьте новый компонент.
Чтобы выбрать имитатор ЛПВП, щелкните Выбрать имитатор (Select Simulator) в разделе Проверить (Verify) панели инструментов и выберите имитатор ЛПВП или добавьте имитатор к пути.
Чтобы смоделировать тестовую среду SystemVerilog в пакетном режиме, щелкните Запустить тестовую среду (Run Testbench). Можно также выполнить моделирование в режиме GUI, щелкнув Run Testbench > Launch Simulator в режиме GUI.

По завершении моделирования этот текст печатается на консоли.
**************TEST COMPLETED (PASSED)**************