В этом примере показано, как сгенерировать компонент SystemVerilog DPI от диспетчера пропорциональной интегральной производной (PID) в модели Simulink® и как экспортировать компонент в симулятор HDL.
Эти продукты требуются для этого примера.
Один из этих поддерживаемых симуляторов HDL: Наставник Graphics® ModelSim®/QuestaSim® или Cadence® Incisive
Один из этих поддерживаемых компиляторов C: Microsoft® Visual C ++ или GNU GCC
Чтобы настроить модель с правильным конечным файлом, откройте приложение HDL Verifier путем нажатия на его значок приложения от вкладки Apps. Это действие добавляет вкладку HDL Verifier в Панель инструментов Simulink. Затем в Mode раздел выбирают DPI Component Generation, чтобы установить системный конечный файл модели к "systemverilog_dpi_grt.tlc". Если Embedded Coder® установлен, конечный файл установлен в "systemverilog_dpi_ert.tlc" вместо этого.
Чтобы сгенерировать испытательный стенд SystemVerilog для компонента DPI, в разделе Map по вкладке HDL Verifier, выбирают Include Testbench.
Откройте параметры конфигурации для модели путем нажатия на C Code Settings в разделе Prepare.
В разделе настроек Toolchain выберите одну из версий Visual Studio, если вы используете Windows или один из наборов инструментальных средств GCC, если вы используете Linux.
Ясный Генерируют код только.
Чтобы получить доступ к внутренним сигналам компонента DPI в среде SystemVerilog, используйте возможность логгирования тестовой точки DPI-C.
Дважды кликните сигнал, к которому вы хотите получить доступ, чтобы подсветить сигнал и ввести имя сигнала для него. Чтобы отметить сигнал как тестовая точка, от раздела Prepare Панели инструментов Simulink, нажимают Test Point. Чтобы также получить тестовый вектор внутреннего сигнала и воспроизведения вектора в сгенерированном испытательном стенде, нажмите Log Signals в галерее, в то время как сигнал подсвечен.
Включите опции API C. В диалоговом окне Configuration Parameters, на вкладке Code Generation> Interface, избранных сигналах.
Выберите интерфейс функций SystemVerilog, которые вы хотите использовать, чтобы получить доступ к тестовым точкам. Настройте сгенерированный компонент DPI при помощи опции на вкладке Code Generation> SystemVerilog DPI.
Под Функциями доступа Тестовой точки, когда вы устанавливаете, Генерируют функцию доступа к тестовой точке к None
, проигнорированы тестовые точки, которые отмечены, и никакие функции доступа не сгенерированы. Изменение значения к One function per test point
позволяет вам получить доступ к каждой тестовой точке независимо. Этот рисунок показывает интерфейс, сгенерированный для этого примера.
Используя значение One function for all test points
позволяет вам получить доступ ко всем тестовым точкам с одним вызовом функции.
В "svdpi_pid" модели Simulink выберите блок Controller Subsystem. В разделе Generate по панели инструментов нажмите Generate DPI Component.
Нажмите Build в диалоговом окне, которое появляется.
Компонент SystemVerilog сгенерирован как "Controller_build/Controller_dpi.sv". Когда генерация кода будет завершена, исследуйте новый компонент.
Чтобы выбрать симулятор HDL, нажмите Select Simulator в разделе Verify панели инструментов, и выберите симулятор HDL или добавьте средство моделирования в путь.
Чтобы симулировать испытательный стенд SystemVerilog в пакетном режиме, нажмите Run Testbench. В качестве альтернативы можно выполнить симуляцию в режиме GUI путем нажатия на Run Testbench> Средство моделирования Запуска в режиме GUI.
Когда симуляция заканчивается, этот текст печать в консоли.
**************TEST COMPLETED (PASSED)**************