Сгенерируйте утверждения SystemVerilog и функциональное покрытие от verify Оператор

Можно использовать verify операторы от Simulink® Test™ в вашей модели Simulink, чтобы сгенерировать утверждение SystemVerilog и собрать функциональную информацию покрытия. При использовании Test Assessment (Simulink Test) или Test Sequence (Simulink Test) блоки, можно оценить поведение модели включением verify операторы в тестовой последовательности. Сопоставлять verify операторы к утверждению SystemVerilog, сгенерируйте SystemVerilog DPI испытательный стенд или Универсальной методологии верификации (UVM) компонента из вашей модели Simulink.

Создайте последовательность Simulink Test

В Simulink создайте модель для устройства под тестом (DUT) и создайте испытательный стенд для модели с помощью Test Assessment (Simulink Test) или Test Sequence (Simulink Test) блоки. Используйте Тестовый Редактор Последовательности (Simulink Test), чтобы создать и отредактировать тестовые шаги. В тестовой последовательности используйте verify операторы, чтобы оценить симуляцию, как описано в Тестовом Синтаксисе Последовательности и Оценки (Simulink Test).

Можно использовать несколько verify операторы в вашей модели. В SystemVerilog, каждом verify оператор сопоставлен с утверждением и точкой покрытия. Можно настроить цели покрытия, отфильтровать определенные утверждения и видеть многословную информацию для каждого из проверять операторов.

verify оператор наряду с блоком Test Sequence представляет временную регистрацию Simulink. При генерации компонента SystemVerilog DPI временная логика расположена в сгенерированном коде C. Обертка SystemVerilog содержит мгновенное утверждение, которое инициировало, когда проверять условие нарушено.

При симуляции проекта в Simulink симуляция предупреждает если verify сбои оценки.

Diagnostic Viewer dialog box shows results of simulation: "Test verification failed at t = 7.1 : System should turn off above max on temp."

Можно просмотреть и смотреть результаты симуляции при помощи Simulation Data Inspector (Simulink). Откройте Simulation Data Inspector путем ввода этого кода в командной строке MATLAB®.

Simulink.sdi.view

Чтобы просматривать сигналы в зависимости от времени, выберите их на левой панели Simulation Data Inspector.

Simulation Data Inspector dialog box with two signals selected on the left pane. The graph on the right pane shows that one test passed and one failed.

Сгенерируйте компонент SystemVerilog DPI для verify Оператор

Сконфигурируйте модель для генерации кода

В диалоговом окне Configuration Parameters выберите Code Generation на левой панели. Под Target Selection, набор System Target File к systemverilog_dpi_grt.tlc или к systemverilog_dpi_ert.tlc при использовании Embedded Coder®.

Выберите SystemVerilog DPI на левой панели. Под SystemVerilog Ports, набор тип данных и настройки подключения. Нажмите OK.

Сгенерируйте компонент SystemVerilog DPI

Примечание

Чтобы сгенерировать Компонент DPI, блок Test Assessment или блок Test Sequence должны быть в Подсистеме Simulink.

В Simulink щелкните правой кнопкой по блоку подсистемы, который содержит тестовую последовательность, и выберите C/C++ Code> Build This Subsystem. Нажмите Build в диалоговом окне, которое открывается.

В качестве альтернативы можно использовать командную строку MATLAB, чтобы сгенерировать компонент DPI. Используйте rtwbuild (Simulink Coder) функция, чтобы создать систему. Например, чтобы создать подсистему по имени "My_verify_tst", введите этот код в командной строке MATLAB.

rtwbuild('My_verify_tst');

Можно также использовать uvmbuild функция, чтобы сгенерировать испытательный стенд UVM. Если ваша тестовая модель содержит verify операторы, они сопоставлены с утверждениями в вашей среде UVM, и данные о покрытии собраны.

Запустите симуляцию HDL со сгенерированным компонентом

Измените свою текущую папку в dpi_tb папка, которая находится под папкой генерации кода в вашей установке симулятора HDL. Запустите свой симулятор HDL и запустите сгенерированный скрипт, чтобы запустить симуляцию. Симуляция выход сопоставима с Simulink выход.

После того, как симуляция завершается, информация о покрытии отображена для каждого verify оператор. По умолчанию утверждение рассматривается покрытым, если оно было протестировано, по крайней мере, однажды.

Log file from HDL simulation. The log shows that two verify calls were checked. One was covered in simulation and the other was not.

Для получения дополнительной информации о выполнении симуляции HDL смотрите, Проверяют Сгенерированный Компонент По Данным Simulink.

Фильтр проверяет оценки

Каждая сгенерированная ошибка или предупреждение отображений уникальное имя, идентифицирующее его источник. Тот номер является идентификатором Simulink (SID) того блока. Например, этот журнал показывает ошибку, которая была сгенерирована блоком с SID Req_scenario_4:32:60.

# ** Error: Req_scenario_4:32:60: At step 'Check2' verify id 'Simulink:verify_sc4_off' Failed

У вас может быть несколько шагов в тестовой последовательности, которые используют verify оценка или несколько компонентов DPI, регистрирующих предупреждения от симуляции. В вашей тестовой модели можно отфильтровать сгенерированный выход для определенного verify проверяет определение связанного SID как плюс аргумент на командной строке и приравнивании SID к -1. Например, чтобы выключить весь выход и функциональное покрытие для SID Req_scenario_4:32:60, введите этот код в командной строке HDL.

vsim -classdebug -c -voptargs=+acc -voptargs=+acc -sv_lib ../Req_4 work.Req_4_dpi_tb +Req_scenario_4:32:60=-1

Настройте функциональные цели покрытия

Можно использовать verify операторы, чтобы собрать функциональное покрытие во время симуляции SystemVerilog. После генерации SystemVerilog с помощью uvmbuild или rtwbuild (Simulink Coder) функции, задайте цели покрытия для каждого, проверяют оператор. После того, как симуляция SystemVerilog завершается, просмотрите результаты в сгенерированном файле журнала или используйте сторонний инструмент, чтобы извлечь результаты. Целью покрытия по умолчанию является по крайней мере одно передающее выполнение проверять утверждения.

Увеличить функциональную цель покрытия для определенного verify оценка, задайте связанный SID как плюс аргумент в командной строке и приравняйте SID к своей цели покрытия. Например, чтобы увеличить цель покрытия verify оператор с SID Req_scenario_4:32:60 от значения по умолчанию одной - двух передающих проверок введите этот код в командной строке HDL.

vsim -classdebug -c -voptargs=+acc -sv_lib ../Req_4 work.Req_4_dpi_tb +Req_scenario_4:32:60=2

Многословный режим

По умолчанию сгенерированный компонент DPI выводит ошибку когда verify оценка тестируется и перестала работать. Видеть дополнительный выход, сгенерированный verify оценка, введите аргумент +VERBOSE_VERIFY в командной строке симуляции HDL. Этот аргумент добавляет эту дополнительную информацию:

  • UNTESTED – Когда verify оценка не была протестирована

  • PASSED – Когда verify оценка была протестирована, и тест передал

Например, при использовании ModelSim®, введите этот код в командной строке.

vsim -classdebug -c -voptargs=+acc -sv_lib ../Req_4 work.Req_4_dpi_tb +VERBOSE_VERIFY

Проследите сгенерированную ошибку SystemVerilog до источника Simulink

После выполнения симуляции SystemVerilog со сгенерированной тестовой последовательностью ваш файл журнала выводит предупреждения и ошибки. Чтобы идентифицировать, какой блок породил определенное предупреждение или вывод ошибок, используйте hilite_system (Simulink) функция.

Например, чтобы подсветить блок, который сгенерировал предупреждение для SID Req_scenario_4:32:60, введите этот код в командной строке MATLAB.

hilite_system('Req_scenario_4:32:60');

Этот рисунок подсвечивает проверять оператор и тестовый блок последовательности, который создал предупреждение.

Image of highlighted Test Sequence block. This block is the source of warnings from SID Req_scenario_4:32:60.

Image of verify statement which created the warning for SID Req_scenario_4:32:60.

Для получения дополнительной информации о SIDs смотрите Идентификаторы Simulink (Simulink).

Смотрите также

Блоки

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте