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