主要内容

生成SystemVerilog断言和功能覆盖

SystemVerilog DPI组件生成和通用验证方法(UVM)测试台生成工作流使您能够重用Simulink金宝app®结果SystemVerilog中的验证模型。金宝appSimulink模型验证模块,如断言(金宝app模型)检查动态下限(金宝app模型)和呼叫验证(金宝app仿真软件测试)语句在生成的SystemVerilog中创建错误检查和功能覆盖点。

当Simuli金宝appnk断言或验证呼叫失败,默认情况下会生成SystemVerilog错误。当要么成功时,它会生成一个系统vileog封面,记录传递结果。断言和验证可以使用SystemVerilog命令行参数和HDL验证程序断言块自定义语句行为。有关自定义的更多信息,请参阅定制的断言

创建一个Simul金宝appink测试台模型

在Si金宝appmulink中,为被测试设备(DUT)创建一个模型,然后为该模型创建一个测试工作台。您可以使用来自Simulink / Model Verification库的断言块和包含的块的组合金宝app验证Simulink测试库的语句,例如:金宝app

  • 一种验证(金宝app仿真软件测试)声明

  • 一个街区外模型验证(金宝app模型)图书馆

  • HDL Verifier™断言

创建Simul金宝appink测试序列

在您的测试台模型中,包括一个验证语句,添加一个或多个这样的块:

要创建和编辑测试步骤,请使用测试序列编辑器(金宝app仿真软件测试).在测试序列中,使用验证评估模拟的陈述,如测试序列和评估语法(金宝app仿真软件测试)

验证声明和测试序列块表示Simulink中的临时检查。金宝app当您生成SystemVerilog DPI组件时,时态逻辑位于生成的C代码中。SystemVerilog包装器包含了当验证条件被违反时触发的立即断言。

包括Simuli金宝appnk模型验证块

您还可以从Simulink /中包含这些断言块/金宝app模型验证(金宝app模型)图书馆。

此外,您可以包含HDL验证器断言块创建可定制的断言。有关使用HDL验证程序的示例断言块,看从Simulink生成本机SystemVerilog断言金宝app

在SystemVerilog中,每个模型验证块和验证语句被映射到断言和覆盖点。您可以调整覆盖率目标,过滤特定的断言,并查看每个验证语句的详细信息。

您可以使用多个验证模型中的语句和断言块。

在Simulink中模拟设计时,仿真如果断言或者金宝app验证评估失败。

显示模拟结果的诊断查看器对话框:“T = 7.1的测试验证失败:系统应关闭最大的最大值。”

您可以通过使用来查看和检查模拟结果仿真数据检查(金宝app模型).打开仿真数据检查在MATLAB中输入这个代码®命令提示符。

金宝appSimulink.sdi.view

要随时间查看信号,请在左窗格中选择它们仿真数据检查

“模拟数据检查器”对话框,其中左边窗格中选择了两个信号,右边窗格中显示了一个测试通过,一个测试失败的图形。

定制的断言

你可以用两种方式自定义SystemVerilog立即断言:

  • 包含一个HDL验证器断言块,并自定义生成的SystemVerilog立即断言。当断言失败时,可以在断言失败时设置自定义消息,并且当断言失败时可以在警告,错误或自定义命令之间进行选择。有关使用HDL验证程序的示例断言块,看从Simulink生成本机SystemVerilog断言金宝app.结果类似于这个数字。

    输入逻辑连接到增益块,增益块连接到DPI自定义断言块

  • 要自定义模型验证库中的断言,请将块输出连接到可自定义的HDL验证程序断言通过以下步骤块。

    1. 将Simulink / Model验证库中金宝app的块添加到模型中。

    2. 打开块掩码,然后设置这些参数(如图所示):

      • 清除启用断言参数以防止冗余断言输出。

      • 选择断言输出信号参数创建捕获断言的布尔输出信号。

      检查静态上限块的块掩码,表示清除“启用断置”参数,并选择“输出断置信号”参数。

    3. 添加一个断言块的HDL验证器/用于DPI-C SystemVerilog库,并将模型验证块的输出信号连接到输入端口断言堵塞。

    4. 自定义断言通过遵循以下步骤来阻止生成断言工作流程的例子。

    结果类似于这个数字。

    连接到静态上限断置块的正弦波发生器,连接到DPI定制断言块

生成UVM或SystemVerilog DPI组件

为代码生成配置模型

在“配置参数”对话框中,选择代码生成在左窗格中。在下面目标选择, 放系统目标文件systemverilog_dpi_grt.tlcsystemverilog_dpi_ert.tlc当使用嵌入式编码器®

选择SystemVerilog DPI在左窗格中。在下面SystemVerilog港口,设置数据类型和连接设置。点击好吧

生成UVM或SystemVerilog DPI组件

笔记

要生成UVM或DPI组件,断言或测试块必须位于Simulink子系统中。金宝app

在Si金宝appmulink中,右键单击包含测试序列的子系统块,然后选择C / c++代码>构建这个子系统.点击构建在打开的对话框中。

或者,您可以使用MATLAB命令行来生成DPI组件。使用slbuild(金宝app模型)函数构建系统。例如,要构建名为“my_verify_tst”的子系统,请在matlab命令行中输入此代码。

slbuild(“My_verify_tst”);

你也可以用theuvmbuild函数生成UVM测试台。如果您的测试模型包含验证语句,它们映射到UVM环境中的断言,并收集覆盖数据。

使用生成的组件运行HDL仿真

将当前文件夹更改为dpi_tb文件夹,它位于HDL模拟器安装中的代码生成文件夹下。启动HDL模拟器,并运行生成的脚本以启动模拟。仿真输出与Simulink输出一致。金宝app

模拟完成后,将显示每个断言的覆盖率信息。默认情况下,如果断言至少求值一次,则认为它已被覆盖。

日志文件从HDL模拟。日志显示检查了两个验证调用。一个在模拟中被覆盖,另一个没有。

有关运行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之后uvmbuildslbuild(金宝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错误返回金宝app

在使用生成的测试序列运行SystemVerilog模拟之后,日志文件将显示警告和错误。要识别哪个块发出了特定的警告或错误输出,请使用hilite_system.(金宝app模型)函数。

例如,要突出显示生成SID警告的块Req_scenario_4:32:60,在MATLAB命令行中输入此代码。

hilite_system(“Req_scenario_4:32:60”);

该图突出显示了验证语句和创建警告的测试序列块。

突出显示的测试序列块的图像。这个块是来自SID Req_scenario_4:32:60的警告的来源。

为SID Req_scenario_4:32:60创建警告的verify语句映像。

有关SID的其他信息,请参阅金宝app动态仿真模块标识符(金宝app模型)

另请参阅

matlab语言语法

  • (金宝app仿真软件测试)

相关的话题