SystemVerilog DPI组件生成和通用验证方法(UVM)测试台生成工作流使您能够重用Simulink金宝app®结果SystemVerilog中的验证模型。金宝appSimulink模型验证模块,如断言(金宝app模型)或检查动态下限(金宝app模型)和呼叫验证
(金宝app仿真软件测试)语句在生成的SystemVerilog中创建错误检查和功能覆盖点。
当Simuli金宝appnk断言或验证
呼叫失败,默认情况下会生成SystemVerilog错误。当要么成功时,它会生成一个系统vileog封面,记录传递结果。断言和验证
可以使用SystemVerilog命令行参数和HDL验证程序断言块自定义语句行为。有关自定义的更多信息,请参阅定制的断言.
在Si金宝appmulink中,为被测试设备(DUT)创建一个模型,然后为该模型创建一个测试工作台。您可以使用来自Simulink / Model Verification库的断言块和包含的块的组合金宝app验证
Simulink测试库的语句,例如:金宝app
在您的测试台模型中,包括一个验证
语句,添加一个或多个这样的块:
要创建和编辑测试步骤,请使用测试序列编辑器(金宝app仿真软件测试).在测试序列中,使用验证
评估模拟的陈述,如测试序列和评估语法(金宝app仿真软件测试).
这验证
声明和测试序列块表示Simulink中的临时检查。金宝app当您生成SystemVerilog DPI组件时,时态逻辑位于生成的C代码中。SystemVerilog包装器包含了当验证条件被违反时触发的立即断言。
您还可以从Simulink /中包含这些断言块/金宝app模型验证(金宝app模型)图书馆。
此外,您可以包含HDL验证器断言块创建可定制的断言。有关使用HDL验证程序的示例断言块,看从Simulink生成本机SystemVerilog断言金宝app.
在SystemVerilog中,每个模型验证块和验证
语句被映射到断言和覆盖点。您可以调整覆盖率目标,过滤特定的断言,并查看每个验证语句的详细信息。
您可以使用多个验证
模型中的语句和断言块。
在Simulink中模拟设计时,仿真如果断言或者金宝app验证
评估失败。
您可以通过使用来查看和检查模拟结果仿真数据检查(金宝app模型).打开仿真数据检查在MATLAB中输入这个代码®命令提示符。
金宝appSimulink.sdi.view
要随时间查看信号,请在左窗格中选择它们仿真数据检查.
你可以用两种方式自定义SystemVerilog立即断言:
包含一个HDL验证器断言块,并自定义生成的SystemVerilog立即断言。当断言失败时,可以在断言失败时设置自定义消息,并且当断言失败时可以在警告,错误或自定义命令之间进行选择。有关使用HDL验证程序的示例断言块,看从Simulink生成本机SystemVerilog断言金宝app.结果类似于这个数字。
要自定义模型验证库中的断言,请将块输出连接到可自定义的HDL验证程序断言通过以下步骤块。
结果类似于这个数字。
在“配置参数”对话框中,选择代码生成在左窗格中。在下面目标选择, 放系统目标文件到systemverilog_dpi_grt.tlc
或systemverilog_dpi_ert.tlc
当使用嵌入式编码器®.
选择SystemVerilog DPI在左窗格中。在下面SystemVerilog港口,设置数据类型和连接设置。点击好吧.
笔记
要生成UVM或DPI组件,断言或测试块必须位于Simulink子系统中。金宝app
在Si金宝appmulink中,右键单击包含测试序列的子系统块,然后选择C / c++代码>构建这个子系统.点击构建在打开的对话框中。
或者,您可以使用MATLAB命令行来生成DPI组件。使用slbuild
(金宝app模型)函数构建系统。例如,要构建名为“my_verify_tst”的子系统,请在matlab命令行中输入此代码。
slbuild(“My_verify_tst”);
你也可以用theuvmbuild
函数生成UVM测试台。如果您的测试模型包含验证
语句,它们映射到UVM环境中的断言,并收集覆盖数据。
将当前文件夹更改为dpi_tb
文件夹,它位于HDL模拟器安装中的代码生成文件夹下。启动HDL模拟器,并运行生成的脚本以启动模拟。仿真输出与Simulink输出一致。金宝app
模拟完成后,将显示每个断言的覆盖率信息。默认情况下,如果断言至少求值一次,则认为它已被覆盖。
有关运行HDL模拟的其他信息,请参见验证生成的组件与Simulink数据金宝app.
生成的每个错误或警告都显示一个唯一的名称,标识其来源。该数字是该块的Simulink标识符(金宝appSID)。例如,该日志显示了一个由SID块生成的错误Req_scenario_4:32:60
.
# **错误:Req_scenario_4:32:60: At step 'Check2' verify id 'Simul金宝appink:verify_sc4_off' Failed
在一个测试序列中,您可能有几个步骤使用验证
评估或多个DPI组件记录来自模拟的警告。在您的测试模型中,您可以过滤生成的输出验证
通过在命令行中将关联的SID指定为加号参数并将SID等同于-1
.例如,要关闭SID的所有输出和功能覆盖范围Req_scenario_4:32:60
,请在HDL命令行中输入此代码。
Vsim -c -sv_lib ../ Req_4工作。Req_4_dpi_tb + Req_scenario_4:32:60 = 1
您可以使用断言块和验证
在SystemVerilog模拟中收集功能覆盖的陈述。使用中生成SystemVerilog之后uvmbuild
或slbuild
(金宝app模型)函数,为每个断言定义覆盖率目标。在SystemVerilog模拟完成后,在生成的日志文件中查看结果,或者使用第三方工具提取结果。默认覆盖目标是至少一次断言或验证
称呼。
为了增加特定断言的功能覆盖目标,将关联的SID指定为命令行中的Plus参数,并将SID等同于您的覆盖范围。例如,增加一个覆盖范围验证
Sid.的声明Req_scenario_4:32:60
从默认的一到两个通过的检查开始,在HDL命令行输入这段代码。
Vsim -c -sv_lib ../ Req_4工作。Req_4_dpi_tb + Req_scenario_4:32:60 = 2
默认情况下,生成的DPI组件在评估功能覆盖点并失败时输出错误。要查看功能覆盖点生成的额外输出,请输入参数+ VERBOSE_VERIFY
在HDL仿真指令行。此参数添加了此附加信息:
未测试的
—未评估功能覆盖点时
通过
- 当评估功能覆盖点并通过测试时
例如,使用Modelsim时®,在命令行输入以下代码。
vsim -c -sv_lib ../req_4 work.req_4_dpi_tb + verbose_verify
在使用生成的测试序列运行SystemVerilog模拟之后,日志文件将显示警告和错误。要识别哪个块发出了特定的警告或错误输出,请使用hilite_system.
(金宝app模型)函数。
例如,要突出显示生成SID警告的块Req_scenario_4:32:60
,在MATLAB命令行中输入此代码。
hilite_system(“Req_scenario_4:32:60”);
该图突出显示了验证语句和创建警告的测试序列块。
有关SID的其他信息,请参阅金宝app动态仿真模块标识符(金宝app模型).