Рабочие процессы создания компонентов SystemVerilog DPI и Universal Verification Methody (UVM) позволяют повторно использовать модели проверки Simulink ® в результирующем SystemVerilog. Блоки проверки модели Simulink, такие как Assertion (Simulink) или Check Dynamic Lower Bound (Simulink), и вызовы verify Операторы (Simulink Test) создают проверки ошибок и функциональные точки покрытия в сгенерированном SystemVerilog.
При утверждении Simulink или verify ошибка вызова, по умолчанию генерируется ошибка SystemVerilog. При успешном выполнении любой из них создается точка обложки SystemVerilog, которая регистрирует результат PASS. Утверждения и verify поведение операторов можно настроить с помощью аргументов командной строки SystemVerilog и блока утверждения верификатора HDL. Дополнительные сведения о настройке см. в разделе Настройка утверждения.
В Simulink создайте модель для тестируемого устройства (DUT), а затем создайте тестовый стенд для модели. Можно использовать комбинацию блоков утверждения из библиотеки Simulink/Model Verification и блоков, содержащих verify операторы из библиотеки Simulink Test, такие как:
A verify (Simulink Test) оператор
Блок из библиотеки проверки модели (Simulink)
Блок подтверждения HDL Verifier™
В модели испытательного стенда включите verify путем добавления одного или нескольких из следующих блоков:
Оценка испытаний (Simulink Test)
Последовательность испытаний (Simulink Test)
Диаграмма (поток состояний)
Для создания и редактирования шагов тестирования используйте редактор тестовых последовательностей (Simulink Test). В тестовой последовательности используйте verify операторы для оценки моделирования, как описано в тестовой последовательности и синтаксисе оценки (Simulink Test).
verify оператор и блок тестовой последовательности представляют временную проверку в Simulink. При создании компонента SystemVerilog DPI временная логика располагается в сгенерированном коде C. Оболочка SystemVerilog содержит немедленное утверждение, которое запускается при нарушении условия проверки.
Эти блоки утверждения можно также включить из библиотеки Simulink/Model Verification (Simulink).
Утверждение (Simulink)
Проверка динамического зазора (Simulink)
Проверка динамического диапазона (Simulink)
Проверка статического зазора (Simulink)
Проверка статического диапазона (Simulink)
Проверка динамической нижней границы (Simulink)
Проверить динамическую верхнюю границу (Simulink)
Проверка разрешения ввода (Simulink)
Проверка статической нижней границы (Simulink)
Проверка статической верхней границы (Simulink)
Проверка дискретного градиента (Simulink)
Кроме того, можно включить блок подтверждения проверки HDL для создания настраиваемых утверждений. Пример использования блока «Утверждение верификатора HDL» см. в разделе Создание собственных утверждений SystemVerilog из Simulink.
В SystemVerilog каждый блок проверки модели и verify оператор сопоставляется с утверждением и точкой покрытия. Можно настроить цели покрытия, отфильтровать определенные утверждения и просмотреть подробную информацию для каждого из операторов проверки.
Можно использовать несколько verify операторы и блоки утверждения в модели.
При моделировании конструкции в Simulink, моделирование предупреждает, если утверждение или verify не удается выполнить оценку.

Просмотреть и проверить результаты моделирования можно с помощью инспектора данных моделирования (Simulation Data Inspector, Simulink). Откройте инспектор данных моделирования, введя этот код в командной строке MATLAB ®.
Simulink.sdi.view
Для просмотра сигналов во времени выберите их на левой панели инспектора данных моделирования.

Немедленное утверждение SystemVerilog можно настроить двумя способами:
Включите блок утверждения верификатора HDL и настройте сгенерированное немедленное утверждение SystemVerilog. Можно задать пользовательское сообщение при сбое утверждения и выбрать между предупреждением, ошибкой или пользовательской командой при сбое утверждения. Пример использования блока «Утверждение верификатора HDL» см. в разделе Создание собственных утверждений SystemVerilog из Simulink. Результат аналогичен этой цифре.

Чтобы настроить утверждение из библиотеки проверки модели, подключите вывод блока к настраиваемому блоку подтверждения HDL, выполнив следующие действия.
Добавьте в модель блок из библиотеки Simulink/Model Verification.
Откройте маску блока и задайте следующие параметры (как показано на этом рисунке):
Сбросьте параметр Enable assertion, чтобы предотвратить избыточные выходные сигналы утверждения.
Выберите параметр Output assertion signal, чтобы создать логический выходной сигнал, фиксирующий утверждение.

Добавьте блок подтверждения из программы проверки HDL/For Use с библиотекой SystemVerilog DPI-C и подключите выходной сигнал блока проверки модели к входному порту блока подтверждения.
Настройте блок Утверждение (Assertion), следуя шагам в примере «Создать утверждение» (Generate Assertions).
Результат аналогичен этой цифре.

В диалоговом окне «Параметры конфигурации» выберите «Создание кода» на левой панели. В разделе Выбор цели (Target Selection) задайте для параметра Файл цели системы (System Target File) значение systemverilog_dpi_grt.tlc или в systemverilog_dpi_ert.tlc при использовании встроенного кодера ®.
Выберите SystemVerilog DPI на левой панели. В разделе Порты SystemVerilog задайте тип данных и параметры подключения. Нажмите кнопку ОК.
Примечание
Чтобы создать компонент UVM или DPI, утверждение или тестовый блок должны находиться внутри подсистемы Simulink.
В Simulink щелкните правой кнопкой мыши блок подсистемы, содержащий тестовую последовательность, и выберите C/C + + Code > Build This Subsystem. Щелкните Построить (Build) в открывшемся диалоговом окне.
Кроме того, для создания компонента DPI можно использовать командную строку MATLAB. Используйте slbuild (Simulink) для построения системы. Например, чтобы построить подсистему с именем «My_verify_tst,», введите этот код в командной строке MATLAB.
slbuild('My_verify_tst');Вы также можете использовать uvmbuild для создания тестового стенда UVM. Если тестовая модель содержит verify операторы сопоставляются с утверждениями в среде UVM, и собираются данные покрытия.
Измените текущую папку на dpi_tb папка, которая находится под папкой создания кода при установке имитатора HDL. Запустите имитатор HDL и запустите созданный сценарий для запуска моделирования. Выходные данные моделирования согласуются с выходными данными Simulink.
После завершения моделирования для каждого утверждения отображается информация о покрытии. По умолчанию утверждение считается охватываемым, если оно было оценено хотя бы один раз.

Дополнительные сведения о выполнении моделирования 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 -c -sv_lib ../Req_4 work.Req_4_dpi_tb +Req_scenario_4:32:60=-1
Можно использовать блоки утверждения и verify операторы для сбора функционального покрытия во время моделирования SystemVerilog. После создания SystemVerilog с помощью uvmbuild или slbuild Функции (Simulink) определяют цели покрытия для каждого утверждения. После завершения моделирования SystemVerilog просмотрите результаты в созданном файле журнала или используйте стороннее средство для извлечения результатов. Целью покрытия по умолчанию является, по крайней мере, одно проходное выполнение утверждения или verify звоните.
Чтобы увеличить функциональную цель покрытия для конкретного утверждения, укажите связанный SID в качестве аргумента «плюс» в командной строке и приравняйте SID к цели покрытия. Например, для увеличения цели покрытия verify оператор с SID Req_scenario_4:32:60 введите этот код в командной строке HDL от одного до двух проходных чеков по умолчанию.
vsim -c -sv_lib ../Req_4 work.Req_4_dpi_tb +Req_scenario_4:32:60=2
По умолчанию генерируемый компонент DPI выдает ошибку при оценке и сбое функциональной точки покрытия. Для просмотра дополнительных выходных данных, генерируемых функциональной точкой покрытия, введите аргумент +VERBOSE_VERIFY в командной строке моделирования HDL. Этот аргумент добавляет следующую дополнительную информацию:
UNTESTED - Когда функциональная точка покрытия не была оценена
PASSED - Когда была оценена функциональная точка покрытия и тест прошел
Например, при использовании ModelSim ® введите этот код в командной строке.
vsim -c -sv_lib ../Req_4 work.Req_4_dpi_tb +VERBOSE_VERIFY
После выполнения моделирования SystemVerilog с созданной тестовой последовательностью файл журнала отображает предупреждения и ошибки. Чтобы определить, какой блок вызвал определенное предупреждение или вывод ошибки, используйте hilite_system (Simulink) функция.
Например, чтобы выделить блок, который создал предупреждение для SID Req_scenario_4:32:60введите этот код в командной строке MATLAB.
hilite_system('Req_scenario_4:32:60');На этом рисунке показан оператор проверки и блок тестовой последовательности, который создал предупреждение.


Дополнительные сведения о SID см. в разделе Идентификаторы Simulink (Simulink).