主要内容

UVM组件发电概述

UVM组件发电概述

如果你有一个金宝app®编码器™许可证,您可以生成一个普遍的验证方法(UVM)试验台和附加组件从一个仿真软件模型。金宝app生成UVM组件可以直接从您的仿真软件环境过渡到UVM框架。金宝app

高密度脂蛋白校验™出口仿真软件子系统内部生成金宝app的C代码UVM组件直接编程接口(DPI)。你可以将这些生成的组件集成到您的现有UVM环境。您还可以使用生成的UVM试验台测试的高密度脂蛋白DUT取代生成的行为DUT详细的HDL设计。

准备UVM组件生金宝app成仿真软件模型

仿真软件模金宝app型必须包括这些子系统。

  • DUT子系统。这个子系统生成一个SystemVerilog DPI (SVDPI) DUT的行为模型。关于SystemVerilog DPI代的更多信息,请参阅DPI组件生成与仿真软件金宝app

  • 一个序列子系统。这个子系统产生刺激和推动DUT。

  • 一个记分牌子系统。这个子系统收集和检查DUT的输出。

  • 序列还可以直接驱动信号记分牌,见红图仿真软件模型结构。金宝app

有关如何创建一个子系统,明白了创建子系统(金宝app模型)

需要仿真软件模型结金宝app构

图像显示序列的框图,DUT,记分牌子系统。箭从序列连接到DUT,和另一个箭头连接DUT的记分牌。

除了前面的结构,您可以选择包含这些模块或子系统。

  • 一个司机子系统

  • 监控子系统

  • 预测子系统

  • 一个序列的反馈块(或是几部)

请注意

所有的子系统仿真软件模型必须以字母开头的名字和使用字母金宝app数字字符和下划线。

当添加一个监视器,司机,或预测子系统,该特性支持这些配置。金宝app

  • 所有信号的序列必须连接到司机,预测或计分板。其他UVM生成输出信号将被忽略。

  • 如果您的模型包括一个司机子系统,那么所有的信号必须连接到DUT的司机。

  • 如果你的模型包括一个司机子系统,那么所有输入信号驱动程序必须起源于序列。

  • 如果您的模型包括一个监控子系统,那么所有的信号必须连接到DUT的班长。

  • 如果您的模型包括一个监控子系统,那么所有信号的监测必须在记分板连接。

  • 如果你的模型包括预测子系统,那么所有输入信号预测必须起源于序列。额外的输入是无视UVM代。

  • 如果您的模型包括预测子系统,那么所有输出信号的预测必须在记分板连接。额外的输出被忽略UVM代。

  • 如果你的模型包括一个序列的反馈块,那么它的输入必须在记分板从子系统,子系统及其输出必须连接到序列。

这张图片显示了一个仿真软件模型,包括一金宝app个司机,一个监视器,和预测子系统,以及序列的反馈块。

扩大模型的模型结构金宝app

图像显示序列的框图,DUT,记分牌子系统。之间有一个司机子系统序列和DUT, DUT之间的监控子系统和记分板,和预测子系统序列和记分板之间。模型还包含一个序列反馈阻止携带数据序列的记分牌子系统。

选择系统目标

因为UVM代利用技术生成SystemVerilog DPI,您必须先选择一个支持系统目标文件。金宝app打开配置参数对话框,并选择代码生成从左边窗格。为系统目标文件,点击浏览,然后选择systemverilog_dpi_grt.tlc从列表中。

另外,如果你有嵌入式编码器®产品,您可以选择目标systemverilog_dpi_ert.tlc。这个目标使您能够访问额外的代码生成选项当您选择代码生成左窗格的配置参数对话框。

UVM代的例子,请参阅从模型生成参数化UVM试验台金宝app

生成UVM结构

使用uvmbuild函数来生成这个UVM组件的结构。

图像显示与DUT UVM框图和测试模块在模块。测试环境包括一个模块和一个序列。环境包括一个模块记分牌,预测,一个代理模块。代理包含一个音序器,与序列测试模块,记分板的输入,与驱动模块。司机开着监视和Monitor-Input块。监视器连接到记分牌,监控输入直接连接到记分板,或通过预测模块的环境。

  • 这个模块实例化一个行为DUT生成和测试环境。高层模块时钟和复位信号传播到设计。

  • DUT -行为design-under-test从模型生成模块DUT子系统。金宝app

  • 测试这个模块包括UVM环境和序列类。

  • 序列——这UVM对象定义了一组事务。模型序列的序列对象生成子系统。金宝app

  • 环境——这个模块包括代理和生成的记分板,并选择性地预测。

  • 记分板——UVM记分板从模型生成记分牌子系统。金宝app记分板与DUT的输出比较预期的结果。

  • 代理——UVM代理包括音序器,司机,和监控。如果直接从模型序列路径子系统仿真软件记分牌子系统,包括额外的监测监金宝app控信号。

  • 音序器这个模块控制序列流DUT事务。

  • 司机这个模块从模型生成驱动子系统和转换每个事务的行为DUT理解序列信号。金宝app如果你不包括司机金宝app子系统仿真软件模块,司机是一个直通UVM司机。

  • 监控这个模块从模型生成监控子系统和从行为样本信号发送到DUT并生成事务UVM记分牌。金宝app如果你的仿真软件金宝app模块不包含监控子系统,监视器是一个直通UVM监视器。

  • 监控输入这个模块生成的如果你有一个预测或直接连接序列的记分牌子系统。监控输入样本序列的信号并生成事务发送到UVM预测或记分牌。

  • 从你的模型预测这个模块生成预测子系统。金宝app预测是一个黄金DUT的模型。它接收的输入序列,计算结果,并驱动结果对DUT的记分板比较结果。

关于UVM组件和结构的更多信息,参见UVM参考指南

生成的文件和文件夹结构

当生成UVM组件,高密度脂蛋白验证器生成SystemVerilog DPI (SV-DPI)组件从DUT序列,和记分板子系统,以及可选的SV-DPI组件司机,显示器或如果你的模型包括他们预测子系统。DPI生成的工件放置在一个目录命名uvm_build在您的工作目录,包括这两个目录:

  • top_model_dpi_components——这个目录包含所有生成的DPI组件。

  • top_model_uvm_testbench这个目录包括UVM testbench,生成的DUT,共享库。

在哪里top_model是你的名字顶层仿真软件模型。金宝app你可以改变通过设置默认目录buildDirectory财产的uvmcodegen.uvmconfig配置对象。

top_model_dpi_components目录包含目录的每一个子系统在模型顶部(DUT、序列、记分牌、司机、监控或预测)命名子系统_build。每个目录包括:

  • 子系统_dpi_pkg.sv——SystemVerilog包文件和函数声明组件

  • 子系统_dpi.sv——生成SystemVerilog组件

  • DPI组件和扩展. c和. h头文件

  • 元数据和信息文件扩展.mat .dmr, .tmw, . def . txt

  • 编译组件的makefile . o和所以的文件

top_model_uvm_testbench目录包括几个UVM生成的各种组件的子文件夹:

  • DPI_dut这个文件夹包含一份SystemVerilog包,模块文件,和一个. dll文件dut_build文件夹中。

  • 司机(可选)——这个文件夹是如果你指定一个司机子系统生成的uvmbuild函数。这个文件夹包含一个UVM司机,一份SystemVerilog包,和一个共享库文件(dll文件或文件)司机_build文件夹中。

  • 监控(可选)——这个文件夹生成如果你指定的监控子系统uvmbuild函数。这个文件夹包含UVM监视器,一份SystemVerilog包,和一个共享库文件(dll文件或文件)监控_build文件夹中。

  • 预测(可选)——这个文件夹是如果你指定一个预测子系统生成的uvmbuild函数。这个文件夹包含UVM预测,一份SystemVerilog方案,预测交易和共享库文件(dll文件或文件)预测_build文件夹中。

  • 记分板这个文件夹包含一份SystemVerilog包和一个. dll文件记分板_build文件夹中。这个文件夹还包括UVM记分板类,记分板配置对象,记分牌事务定义了记分板的输入事务类型。

  • 序列这个文件夹包含一份SystemVerilog包和一个. dll文件序列_build文件夹中。这个文件夹还包括UVM音序器,序列类,和一系列事务定义了事务类型音序器的司机。

  • 这个文件夹包含SystemVerilog包和模块文件顶部仿真软件模型。金宝app这个文件夹还包含HDL-simulator执行的脚本。

  • uvm_artifacts这个文件夹包含这些SystemVerilog文件。

    • mw_DUT_agent.sv,这个文件包含一个UVM代理实例化序列,司机,和监控。

    • mw_DUT_environment.sv——这个文件包括UVM环境中,实例化一个代理和一个记分牌。

    • mw_DUT_if.sv这个文件定义了DUT SystemVerilog接口类型。它包含DUT的输入和输出,以及港口时钟,重置,clock-enable信号。

    • mw_DUT_monitor_input.sv,这个文件包含一个直通UVM监视器。监测样本信号从司机记分板或预测。

    • mw_DUT_test.sv,这个文件包含一个UVM测试,实例化一个环境和序列。测试模块通过调用启动事务seq.start

    • mw_dpi_types_pkg.sv——这个文件包含的定义生成SystemVerilog类型,如枚举结构体,由UVM组件接口暴露。只有UVM组件使用这些类型导入这个包。

    • mw_DUT_driver.sv,这个文件包含一个直通UVM默认驱动程序。当指定的司机子系统uvmbuild功能,该模块包括一个调度器和DPI的API调用组件司机_dpi_pkg.sv

    • mw_DUT_monitor.sv,这个文件包含一个直通UVM监视器。监测样本信号DUT的记分牌。当指定的监控子系统uvmbuild功能,该模块包括一个调度器和DPI-component API调用监控_dpi_pkg.sv

这张图片显示生成的目录结构顶层模型命名drv_and_mon_uvmtb

生成的目录结构顶层模型drv_and_mon_uvmtb命名。目录命名为“drv_and_mon_uvmtb_dpi_components”扩展为显示内容,和一个名为“drv_and_mon_uvmtb_uvm_testbench”扩展到的目录显示内容。

金宝app支持金宝app数据类型

金宝app支持模型的数据类型转金宝app换为SystemVerilog数据类型,如表所示。

生成SystemVerilog类型

MATLAB® SystemVerilog
兼容的C类型 逻辑向量 位向量
uint8 字节无符号 逻辑(7:0) 位(7:0)
uint16 shortint无符号 逻辑15:0 位(15:0)
uint32 int无符号 逻辑(31:0) 位(31:0)
uint64 longint无符号 逻辑(63:0) 位(63:0)
int8 字节 逻辑(7:0)签署 位签署(7:0)
int16 shortint 逻辑(15:0)签署 位签署(15:0)
int32 int 逻辑(31:0)签署 位签署(31:0)
int64 longint 逻辑(63:0)签署 位签署(63:0)
布尔 字节无符号 逻辑0时 位(0时)
定点

端口是符号扩展到一个内置的C类型,如int,int无符号,字节,字节无符号等。

逻辑(n-1:0)

逻辑(n-1:0)签署

逻辑向量长度(n)=。符号是继承了不动点的类型。

位(n-1:0)

位签署(n-1:0)

位向量的长度(n)=。符号是继承了不动点的类型。

shortreal
真正的
复杂的

你可以选择一个SystemVerilog之间结构体数据类型或平端口SystemVerilog实部和虚部的接口。这些选项之间选择,左窗格中的配置参数对话框中,选择代码生成>SystemVerilog DPI,然后设置复合数据类型参数结构夷为平地

向量,矩阵

你可以选择SystemVerilog数组或标量港口之间。这些选项之间选择,左窗格中的配置参数对话框中,选择代码生成>SystemVerilog DPI,然后选择Scalarize矩阵和向量的港口参数。

例如,一个双元素向量类型的uint32在仿真金宝app软件生成这个SystemVerilog向量端口:

输入逻辑[31:0]vecInput (0:1)

当您选择Scalarize矩阵和向量的港口,生成的SystemVerilog包括这两个端口,每个类型逻辑(31:0):

输入逻辑31:0 vecInput_0,输入逻辑31:0 vecInput_1

在生成向量和阵列端口时,编码器平缓矩阵列为主的顺序。

nonvirtual总线

你可以选择一个SystemVerilog之间结构体为单独的组件类型或扁平的港口在SystemVerilog接口信号。这些选项之间选择,左窗格中的配置参数对话框中,选择代码生成>SystemVerilog DPI部分,并设置复合数据类型结构夷为平地

枚举数据类型 枚举

限制

  • 默认情况下,高密度脂蛋白校验矩阵和向量转换为一维数组SystemVerilog。例如,一个4×2的矩阵矩阵模型转化为一维SystemVerilo金宝appg八个元素的数组。生成多个标量港口SystemVerilog界面,选择Scalarize矩阵和向量的港口的配置参数。

  • uvmbuild未指定函数忽略了仿真软件组件DUT金宝app,序列,记分板,司机,监视器,或者预测子系统。

  • 您可以使用反馈回路内的任何子系统。您还可以创建反馈音序器的记分板使用序列的反馈块。其他子系统之间的反馈循环是不允许的。

  • 序列、记分牌和预测子系统必须运行在一个单一税率,和子系统的基本示例倍必须相等。样品倍更多信息,请参阅样品在系统(金宝app模型)

  • 司机的基本样例次,DUT,监控子系统必须相等。可以多重速率的端口,但最大公约数(GCD)或基本样本时间必须相同。

  • 记分板的样本时间序列,预测子系统必须大于或等于基本样本的司机,DUT,班长。

另请参阅

相关的话题

外部网站