В этом примере показано, как сгенерировать компонент 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
позволяет вам получить доступ ко всем тестовым точкам с помощью одного вызова функции.
В модели «svdpi_pid» Simulink выберите блок Controller Subsystem. В разделе «Сгенерировать» на панели инструментов нажмите «Сгенерировать компонент DPI».
Нажмите Build в появившемся диалоговом окне.
Компонент SystemVerilog генерируется как «Controller_build/Controller_dpi.sv.» Когда генерация кода завершена, исследуйте новый компонент.
Чтобы выбрать Симулятор HDL, нажмите Select Simulator в разделе Verify на панели инструментов и выберите Симулятор HDL или добавьте симулятор к пути.
Чтобы симулировать тестовый набор SystemVerilog в пакетном режиме, нажмите Запуск Testbench. Также можно выполнить симуляцию в режиме GUI, нажав Run Testbench > Launch Simulator в режиме GUI.
Когда симуляция заканчивается, этот текст печатается в консоли.
**************TEST COMPLETED (PASSED)**************