Настраиваемые параметры в подсистеме последовательности

Когда Simulink® подсистема последовательности включает настраиваемые параметры, uvmbuild функция генерирует объект последовательности, который содержит параметр SystemVerilog для каждого настраиваемого параметра. Эти параметры могут быть рандомизированы, и их минимальные, максимальные и значения по умолчанию получают из параметра Simulink.

Подготовка последовательности для генерации UVM с настраиваемыми параметрами

Чтобы подготовить подсистему последовательности для генерации универсальной методологии верификации (UVM) с настраиваемыми параметрами, выполните эти шаги.

  1. Настройте свою модель Simulink для генерации DPI и UVM. На вкладке Modeling в Simulink нажмите Model Settings. В диалоговом окне Параметры конфигурации выберите Code Generation на левой панели. Затем установите System target file равным systemverilog_dpi_grt.tlc Если у вас есть Embedded Coder® продукт можно также задать для этого значения значение systemverilog_dpi_ert.tlc.

  2. Создайте объект данных для вашего параметра с помощью 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 оптимизирует параметр во время генерации кода и не рекомендуется.

  3. Используйте параметр, созданный вами в подсистеме последовательности вашей модели Simulink. Например, можно параметризовать блок Constant (Simulink), чтобы сгенерировать случайные значения в заданной области значений путем установки его Constant value (Simulink) параметру Simulink, который вы ранее определили.

Сгенерируйте последовательность UVM

Используйте uvmbuild функция для генерации UVM- испытательного стенда. В дополнение к файлам, регулярно сгенерированным uvmbuildфункция добавляет компоненты к файлу top_model_name_uvmbuild/uvm_testbench/sequence/mw_<reservedrangesplaceholder0 >_sequence.sv.

  • Когда вы используете целочисленные типы данных, последовательность содержит два добавленных случайных блока кода SystemVerilog.

    • Значение по умолчанию

    • область значений

    Значения для этих ограничений получают из значения, заданного в параметре Simulink.

  • Когда вы используете типы данных с плавающей точкой, последовательность содержит эти две дополнительные функции.

    • pre_randomize - Эта функция устанавливает значение по умолчанию для настраиваемого параметра.

    • post_randomize - Эта функция проверяет, что набор значений для параметра находится в пределах области значений, заданной в параметре Simulink.

      При использовании целочисленных типов данных эти функции являются пустыми.

Для получения дополнительной информации о файлах, сгенерированных uvmbuild функция, см. Сгенерированные файлы и структура папки.

Управляйте параметрами последовательности в симуляции UVM

После генерации компонентов UVM для вашей системы, вы можете управлять генерацией стимула одним из этих двух способов.

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

Если настраиваемый параметр имеет тип данных с плавающей точкой, можно:

  • Напишите свою собственную функцию рандомизации при помощи pre_randomize функция.

  • Измените значение по умолчанию параметра путем расширения pre_randomize функция.

The post_randomize функция проверяет, что настраиваемый параметр с плавающей точкой находится в пределах области значений, заданной в модели Simulink. Если Minimum и Maximum свойства параметра Simulink пусты, эта функция пуста.

См. также

Похожие темы