Обзор генерации компонента UVM

Обзор генерации компонента UVM

Если у вас есть лицензия Simulink® Coder™, можно сгенерировать испытательный стенд Универсальной методологии верификации (UVM) и дополнительные компоненты из модели Simulink. Генерация компоненты UVM включает прямой переход от вашего окружения Simulink до среды UVM.

HDL Verifier™ экспортирует Подсистемы Simulink как сгенерированный код C в компонентах UVM с интерфейсом программирования на машинном языке (DPI). Можно интегрировать эти сгенерированные компоненты в существующую среду UVM. Можно также использовать сгенерированный испытательный стенд UVM, чтобы протестировать HDL DUT, заменяя сгенерированный поведенческий DUT на подробный проект HDL.

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

Ваша модель Simulink должна включать эти подсистемы.

  • Подсистема DUT. Эта подсистема генерирует SystemVerilog DPI (SVDPI) поведенческая модель вашего DUT. Для получения дополнительной информации о генерации SystemVerilog DPI, смотрите Генерацию Компонента DPI с Simulink.

  • Подсистема последовательности. Эта подсистема создает стимул и управляет им к DUT.

  • Подсистема табло. Эта подсистема собирает и проверяет выход DUT.

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

Структура модели Simulink

Выберите System Target

Поскольку генерация UVM использует технологию для генерации SystemVerilog DPI, необходимо сначала выбрать системный конечный файл поддержки. Откройте диалоговое окно параметров конфигурации и выберите Code Generation из левой панели. Для Системного конечного файла нажмите Browse, и затем выберите systemverilog_dpi_grt.tlc из списка.

В качестве альтернативы, если у вас есть продукт Embedded Coder®, можно выбрать целевой systemverilog_dpi_ert.tlc. Эта цель позволяет опциям генерации дополнительного кода доступа, когда вы выбираете Code Generation из левой панели диалогового окна Configuration Parameters.

Сгенерированная структура UVM

Используйте uvmbuild функция, чтобы сгенерировать эту структуру компонентов UVM.

  • Верхняя часть – Этот модуль инстанцирует сгенерированного поведенческого DUT и тестовой среды. Главный модуль имеет часы и сигналы сброса, которые распространяют в проект.

  • DUT – поведенческий модуль проекта под тестом сгенерирован от вашей подсистемы DUT Simulink.

  • Тест – Этот модуль включает среду UVM и класс последовательности.

  • Объект Sequence - This UVM задает набор транзакций. Объект последовательности сгенерирован от вашей подсистемы последовательности Simulink.

  • Среда – Этот модуль включает агента и сгенерированное табло.

  • Табло – табло UVM сгенерировано от вашей подсистемы табло Simulink.

  • Агент – агент UVM включает секвенсер, драйвер и монитор. Если прямой путь существует от подсистемы последовательности Simulink до подсистемы табло Simulink, дополнительный монитор, проиллюстрированный в красном в фигуре, включен, чтобы контролировать тот сигнал.

  • Секвенсер – Этот модуль управляет потоком транзакций последовательности к DUT.

  • Драйвер – Этот модуль преобразовывает каждую транзакцию к желаемому протоколу и управляет транзакцией к DUT.

  • Монитор – Эта пассивная сущность выборки сигналы DUT.

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

Сгенерированные файлы и структура папок

При генерации компонентов UVM HDL Verifier генерирует компоненты SystemVerilog DPI от DUT, последовательности и подсистем табло. Артефакты генерации DPI помещаются в три директории, один для каждой подсистемы: DUT, последовательность и табло. Для каждой из этих трех подсистем папка создается с этим содержимым.

subsystem_build – Эта папка содержит сгенерированные компоненты SVDPI для каждой из этих трех подсистем (DUT, последовательность или табло). Именем папки является subsystem_build, где подсистема заменяется DUT, последовательностью или табло. Каждая папка включает:

  • subsystem_dpi_pkg.sv – Файл пакета SystemVerilog с объявлениями функции для компонента

  • subsystem_dpi.sv – Сгенерированный компонент SystemVerilog

  • DPI и заголовочные файлы компонента с расширениями.c и.h

  • Метаданные и информационные файлы с расширениями .mat, .txt, .dmr, .tmw, и .def

  • Make-файл для компиляции компонентов в.o и .so файлы

После генерации трех папок для заданных подсистем четвертая папка создается для дополнительных файлов компонента UVM и скриптов выполнения. Папку называют top-model-name_uvmbuild/uvm_testbench, где top-model-name имя вашей главной модели Simulink. Эта папка включает несколько подпапок.

  • DPI_dut – Эта папка содержит копию пакета SystemVerilog, файлов модуля и .dll файла от dut_build папка.

  • scoreboard – Эта папка содержит копию пакета SystemVerilog и .dll файла от scoreboard_build папка. Эта папка также включает класс табло.

  • sequence – Эта папка содержит копию пакета SystemVerilog и .dll файла от sequence_build папка. Эта папка также включает класс последовательности, введите определения и шаблонный класс секвенсера.

  • top – Эта папка содержит пакет SystemVerilog и файлы модуля для главной модели Simulink. Эта папка также содержит скрипты для выполнения симулятора HDL.

  • uvm_artifacts – Эта папка содержит эти файлы SystemVerilog.

    • mw_DUT_trans.sv – Этот файл содержит объект UVM, который задает тип входной транзакции для табло.

    • mw_DUT_if.sv – Этот файл задает тип интерфейса DUT SystemVerilog. Это содержит вводы и выводы DUT, а также порты для часов, сброса, и часы - включают сигналы.

    • mw_DUT_driver.sv – Этот файл включает передачу драйвер UVM.

    • mw_DUT_monitor_input.sv – Этот файл включает передачу монитор UVM. Выборки монитора сигнализируют с драйвера на табло.

    • mw_DUT_monitor.sv – Этот файл включает передачу монитор UVM. Выборки монитора сигнализируют с DUT на табло.

    • mw_DUT_agent.sv – Этот файл включает агента UVM, который инстанцирует последовательности, драйвера и монитора.

    • mw_DUT_environment.sv – Этот файл включает среду UVM, которая инстанцирует агента и табло.

    • mw_DUT_test.sv – Этот файл включает тест UVM, который инстанцирует среды и последовательности. Тестовый модуль запускает транзакции путем вызова seq.start.

Поддерживаемые типы данных Simulink

Поддерживаемые типы данных Simulink преобразованы в типы данных SystemVerilog, как показано в этой таблице.

Тип данных SimulinkТип данных SystemVerilog
uint8byte unsigned
uint16shortint unsigned
uint32int unsigned
uint64longint unsigned
int8byte
int16shortint
int32int
int64longint
singleshortreal
doublereal
booleanbyte unsigned
complex

Кодер сглаживает комплексные сигналы в действительные и мнимые части в интерфейсе SystemVerilog.

векторы, матрицы

массивы

Например, 4 2 матрица в Simulink преобразована в одномерный массив восьми элементов в SystemVerilog. Кодер сглаживает матрицы в порядке развертывания по столбцам.

невиртуальная шина

Не поддерживаемый для генерации UVM

перечислимые типы данныхНе поддерживаемый для генерации UVM
фиксированная точка

Можно выбрать немного вектора, логического вектора или совместимый тип C. На диалоговом окне Configuration Parameters выберите Code Generation> SystemVerilog DPI. В разделе SystemVerilog Ports, набор Fixed-point data type.

Ограничения

  • HDL Verifier преобразует матрицы и векторы к одномерным массивам в SystemVerilog. Например, 4 2 матрица в Simulink преобразована в одномерный массив восьми элементов в SystemVerilog.

  • Генерация компонента UVM не поддерживает многоскоростные подсистемы.

  • Проигнорированы компоненты Simulink, которые не заданы как DUT, последовательность или подсистемы табло.

  • Обратная связь позволена в каждой из подсистем, но не между ними.

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

Похожие темы

Внешние веб-сайты