Когда Simulink® подсистема последовательности включает настраиваемые параметры, uvmbuild
функция генерирует объект последовательности, который содержит параметр SystemVerilog для каждого настраиваемого параметра. Эти параметры могут быть рандомизированы, и их минимальные, максимальные и значения по умолчанию получают из параметра Simulink.
Чтобы подготовить подсистему последовательности для генерации универсальной методологии верификации (UVM) с настраиваемыми параметрами, выполните эти шаги.
Настройте свою модель Simulink для генерации DPI и UVM. На вкладке Modeling в Simulink нажмите Model Settings. В диалоговом окне Параметры конфигурации выберите Code Generation на левой панели. Затем установите System target file равным systemverilog_dpi_grt.tlc
Если у вас есть Embedded Coder® продукт можно также задать для этого значения значение systemverilog_dpi_ert.tlc
.
Создайте объект данных для вашего параметра с помощью Simulink.Parameter
(Simulink) объект. Например, чтобы создать параметр с именем dataValue
введите этот код в командной строке MATLAB.
dataValue = Simulink.Parameter open dataValue
Задайте свойства для dataValue
параметр. В окне Simulink. Параметру установите эти значения.
Value - Установите значение по умолчанию для сгенерированного параметра UVM.
Minimum - Установите минимальное значение для сгенерированного параметра UVM.
Maximum - Установите максимальное значение для сгенерированного параметра UVM.
Data type - Установите тип данных для сгенерированного параметра UVM. Для подсистемы последовательности обратите внимание на различие между использованием целого числа и типов данных с плавающей точкой для случайных параметров с ограничениями.
Storage class - Выбор Model default
, SimulinkGlobal
, или ExportedGlobal
.
Использование Model default
когда ваш параметр специфичен для экземпляра. Используйте любой из SimulinkGlobal
или ExportedGlobal
чтобы сгенерировать глобальную переменную. Установка значения Storage class Auto
оптимизирует параметр во время генерации кода и не рекомендуется.
Используйте параметр, созданный вами в подсистеме последовательности вашей модели Simulink. Например, можно параметризовать блок Constant (Simulink), чтобы сгенерировать случайные значения в заданной области значений путем установки его Constant value
(Simulink) параметру Simulink, который вы ранее определили.
Используйте uvmbuild
функция для генерации UVM- испытательного стенда. В дополнение к файлам, регулярно сгенерированным uvmbuild
функция добавляет компоненты к файлу
.top_model_name
_uvmbuild/uvm_testbench/sequence/mw_<reservedrangesplaceholder0 >
_sequence.sv
Когда вы используете целочисленные типы данных, последовательность содержит два добавленных случайных блока кода SystemVerilog.
Значение по умолчанию
область значений
Значения для этих ограничений получают из значения, заданного в параметре Simulink.
Когда вы используете типы данных с плавающей точкой, последовательность содержит эти две дополнительные функции.
pre_randomize
- Эта функция устанавливает значение по умолчанию для настраиваемого параметра.
post_randomize
- Эта функция проверяет, что набор значений для параметра находится в пределах области значений, заданной в параметре Simulink.
При использовании целочисленных типов данных эти функции являются пустыми.
Для получения дополнительной информации о файлах, сгенерированных uvmbuild
функция, см. Сгенерированные файлы и структура папки.
После генерации компонентов UVM для вашей системы, вы можете управлять генерацией стимула одним из этих двух способов.
Если настраиваемый параметр имеет целочисленный тип данных, можно включить или выключить ограничения значения по умолчанию и области значений. Можно также добавить и задать дополнительные ограничения SystemVerilog.
Если настраиваемый параметр имеет тип данных с плавающей точкой, можно:
Напишите свою собственную функцию рандомизации при помощи pre_randomize
функция.
Измените значение по умолчанию параметра путем расширения pre_randomize
функция.
The post_randomize
функция проверяет, что настраиваемый параметр с плавающей точкой находится в пределах области значений, заданной в модели Simulink. Если Minimum и Maximum свойства параметра Simulink пусты, эта функция пуста.