uvmbuild

Сгенерируйте испытательный стенд UVM из модели Simulink

Описание

пример

uvmbuild(dut,sequence,scoreboard) генерирует модуль верхней части SystemVerilog, который включает испытательный стенд Универсальной методологии верификации (UVM) и поведенческий проект под тестом (DUT). Испытательный стенд UVM включает последовательность, табло, мониторы и драйверы. uvmbuild функциональные карты:

  • Подсистема Simulink® DUT к сгенерированному SystemVerilog DPI поведенческий DUT

  • Подсистема последовательности Simulink с блоком последовательности UVM

  • Подсистема табло Simulink к табло UVM

Примеры

свернуть все

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

Этот пример использует модель Simulink®, которая включает эти три подсистемы.

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

  • Подсистема DUT, которая представляет ваш проект HDL.

  • Подсистема табло, которая собирает выходные параметры и проверяет их. В этом примере DUT является простым блоком задержки.

open_system('hdlv_uvmbuild');

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

Сгенерируйте испытательный стенд UVM из этой модели Simulink, задав пути к DUT, последовательности и подсистемам табло.

uvmbuild('hdlv_uvmbuild/DUT','hdlv_uvmbuild/Sequence','hdlv_uvmbuild/Scoreboard');
### Starting DPI subsystem generation for UVM test bench
### Starting build procedure for model: DUT
### Starting SystemVerilog DPI Component Generation
### Generating DPI H Wrapper /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/DUT_build/DUT_dpi.h
### Generating DPI C Wrapper /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/DUT_build/DUT_dpi.c
### Generating UVM module package /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/DUT_build/DUT_dpi_pkg.sv
### Generating SystemVerilog module /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/DUT_build/DUT_dpi.sv
### Generating makefiles for: DUT_dpi
### Invoking make to build the DPI Shared Library
### Successful completion of build procedure for model: DUT
### Starting build procedure for model: Sequence
### Starting SystemVerilog DPI Component Generation
### Generating DPI H Wrapper /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/Sequence_build/Sequence_dpi.h
### Generating DPI C Wrapper /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/Sequence_build/Sequence_dpi.c
### Generating UVM module package /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/Sequence_build/Sequence_dpi_pkg.sv
### Generating SystemVerilog module /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/Sequence_build/Sequence_dpi.sv
### Generating makefiles for: Sequence_dpi
### Invoking make to build the DPI Shared Library
### Successful completion of build procedure for model: Sequence
### Starting build procedure for model: Scoreboard
### Starting SystemVerilog DPI Component Generation
### Generating DPI H Wrapper /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/Scoreboard_build/Scoreboard_dpi.h
### Generating DPI C Wrapper /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/Scoreboard_build/Scoreboard_dpi.c
### Generating UVM module package /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/Scoreboard_build/Scoreboard_dpi_pkg.sv
### Generating SystemVerilog module /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/Scoreboard_build/Scoreboard_dpi.sv
### Generating makefiles for: Scoreboard_dpi
### Invoking make to build the DPI Shared Library
### Successful completion of build procedure for model: Scoreboard
### Starting UVM test bench generation for model: hdlv_uvmbuild
### Generating UVM transaction object /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/uvm_artifacts/mw_DUT_trans.sv
### Generating UVM interface /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/uvm_artifacts/mw_DUT_if.sv
### Generating UVM sequence /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/sequence/mw_DUT_sequence.sv
### Generating UVM sequence transaction /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/sequence/mw_DUT_sequence_trans.sv
### Generating UVM driver /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/uvm_artifacts/mw_DUT_driver.sv
### Generating UVM monitor /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/uvm_artifacts/mw_DUT_monitor.sv
### Generating UVM agent /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/uvm_artifacts/mw_DUT_agent.sv
### Generating UVM scoreboard /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/scoreboard/mw_DUT_scoreboard.sv
### Generating UVM environment /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/uvm_artifacts/mw_DUT_environment.sv
### Generating UVM test /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/uvm_artifacts/mw_DUT_test.sv
### Generating UVM top /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/top/mw_DUT_top.sv
### Generating UVM test package /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/top/hdlv_uvmbuild_pkg.sv
### Generating UVM test bench simulation script for Mentor Graphics QuestaSim/Modelsim /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/top/run_tb_mq.do
### Generating UVM test bench simulation script for Cadence Incisive /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/top/run_tb_incisive.sh
### Generating UVM test bench simulation script for Cadence Xcelium /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/top/run_tb_xcelium.sh
### Generating UVM test bench simulation script for Synopsys VCS /tmp/BR2019bd_1188343_3658/publish_examples0/tp920b922e/ex87636604/hdlv_uvmbuild_uvmbuild/uvm_testbench/top/run_tb_vcs.sh

Наблюдайте сгенерированный выходной сигнал

Функция uvmbuild создает директорию под названием hdlv_uvmbuild_uvmbuild содержа uvm_testbench директория. uvm_testbench директория включает эти подкаталоги.

  • top директория включает модуль верхней части SystemVerilog и сгенерированные скрипты, чтобы выполниться в вашей среде симуляции HDL.

  • DPI_dut директория содержит SystemVerilog-DPI поведенческий DUT.

  • sequence директория содержит сгенерированный тип транзакции последовательности и секвенсер UVM, который управляет транзакцией к DUT.

  • scoreboard директория содержит сгенерированное табло UVM.

  • uvm_artifacts директория содержит компоненты UVM, такие как мониторы, драйверы и агенты, требуемые для среды UVM.

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

  1. Запустите Modelsim® или Questasim в режиме GUI.

  2. В симуляторе HDL перейдите к главной директории: cd hdlv_uvmbuild_uvmbuild\uvm_testbench\top\

  3. В симуляторе HDL введите эту команду, чтобы запустить вашу симуляцию: do run_tb_mq.do

Входные параметры

свернуть все

Спроектируйте под тестовой подсистемой, заданной как вектор символов, или представьте в виде строки скаляр, представляющий имя DUT-подсистемы или полный блок path.

Пример: 'hdlv_uvmbuild/DUT'

Типы данных: char | string

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

Пример: 'hdlv_uvmbuild/sequence'

Типы данных: char | string

Подсистема табло, заданная как вектор символов или скаляр строки представление имени подсистемы табло или полного блока path.

Пример: 'hdlv_uvmbuild/scoreboard'

Типы данных: char | string

Введенный в R2019b