exponenta event banner

Начало работы с генерацией компонентов SystemVerilog DPI

В этом примере показано, как создать компонент 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 позволяет получить доступ ко всем контрольным точкам с помощью одного вызова функции.

Создать компонент DPI SystemVerilog

  1. В модели «svdpi_pid» Simulink выберите блок Controller Subsystem. В разделе «Создание» на панели инструментов выберите «Создать компонент DPI».

  2. Нажмите кнопку Построить (Build) в появившемся диалоговом окне.

  3. Компонент SystemVerilog создается как «» Controller_build/Controller_dpi.sv. По завершении создания кода проверьте новый компонент.

Запустить созданный испытательный стенд

Чтобы выбрать имитатор ЛПВП, щелкните Выбрать имитатор (Select Simulator) в разделе Проверить (Verify) панели инструментов и выберите имитатор ЛПВП или добавьте имитатор к пути.

Чтобы смоделировать тестовую среду SystemVerilog в пакетном режиме, щелкните Запустить тестовую среду (Run Testbench). Можно также выполнить моделирование в режиме GUI, щелкнув Run Testbench > Launch Simulator в режиме GUI.

По завершении моделирования этот текст печатается на консоли.

**************TEST COMPLETED (PASSED)**************