Запуск с генерацией компонентов DPI SystemVerilog

В этом примере показано, как сгенерировать компонент DPI SystemVerilog из пропорционально-интегрально-производного (PID) контроллера в модели Simulink ® и как экспортировать компонент в HDL-симулятор.

Требования и необходимые условия

Эти продукты требуются для этого примера.

  • Один из следующих поддерживаемых HDL-симуляторов: Mentor Graphics ® ModelSim ®/QuestaSim ® или Cadence ® Incisive

  • Один из следующих поддерживаемых компиляторов C: Microsoft ® Visual C++ или GNU GCC

Настройте модель для генерации кода

Чтобы настроить модель с правильным целевым файлом, откройте приложение HDL Verifier, щелкнув значок его приложения на вкладке Приложения. Это действие добавляет вкладку HDL Verifier к панели инструментов Simulink. Затем в разделе Mode выберите DPI Component Generation, чтобы установить системный целевой файл модели на «systemverilog_dpi_grt.tlc.» Если установлен Embedded Coder ®, целевой файл устанавливается на «systemverilog_dpi_ert.tlc» вместо этого.

Чтобы сгенерировать испытательный стенд SystemVerilog для компонента DPI, в разделе Map на вкладке HDL Verifier выберите Include Testbench.

Откройте параметры конфигурации модели, нажав на Код С Settings в разделе Prepare.

В разделе Настройки набора инструментальных средств выберите одну из версий Visual Studio, если вы используете Windows или одну из сетей GCC, если вы используете Linux.

Очистить только Генерация кода.

Выберите внутренние сигналы для регистрации в тестовой точке (необязательно)

Для доступа к внутренним сигналам компонента DPI в среде SystemVerilog используйте возможность логгирования тестовых точек DPI-C.

Дважды кликните сигнал, к которому вы хотите получить доступ, чтобы подсветить сигнал и ввести имя сигнала для него. Чтобы отметить сигнал как тестовая точка, из раздела Prepare на панели инструментов Simulink Toolstrip нажмите Тестовую точку. Чтобы также захватить тестовый вектор внутреннего сигнала и воспроизвести вектор назад в сгенерированном тестовом наборе, нажмите Log Signals в галерее, пока сигнал подсвечивается.

Включите опции C API. В диалоговом окне Параметров конфигурации на вкладке Генерации кода > Interface выберите сигналы.

Выберите интерфейс функций SystemVerilog, которые необходимо использовать для доступа к тестовым точкам. Настройте сгенерированный компонент DPI с помощью опции на вкладке Генерация Кода > SystemVerilog DPI.

В разделе Тестовой точки Доступа 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.» Когда генерация кода завершена, исследуйте новый компонент.

Запустите сгенерированный испытательный стенд

Чтобы выбрать Симулятор HDL, нажмите Select Simulator в разделе Verify на панели инструментов и выберите Симулятор HDL или добавьте симулятор к пути.

Чтобы симулировать тестовый набор SystemVerilog в пакетном режиме, нажмите Запуск Testbench. Также можно выполнить симуляцию в режиме GUI, нажав Run Testbench > Launch Simulator в режиме GUI.

Когда симуляция заканчивается, этот текст печатается в консоли.

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