主要内容

从Simulink生成本机SystemVerilog断言万博1manbetx

本示例向您展示了如何从Simulink®模型中的断言生成本机SystemVerilog断言。当您在Simulink和HDL测试环境中需要相同的断言行为时,此功能非常有用。万博1manbetx

需求和先决条件

s manbetx 845本示例所需产品:

  • MATLAB®

  • 万博1manbetx仿真软件®

  • 万博1manbetxSimulink编码器™

  • Mentor Graphics®ModelSim®/QuestaSim®或受支持的万博1manbetxSystemVerilog模拟器

  • 支持的C编译器之一:微万博1manbetx软®Visual C++,或GNU GCC

概述

要生成包含SystemVerilog断言的DPI-C组件,Simulink模型必须使用万博1manbetx断言为DPI-C块。找到这个块在高密度脂蛋白验证器->与DPI-C SystemVerilog一起使用库,如下所示:

此块可以像通用块一样使用断言块的模型验证图书馆。模拟行为与Simulink Assertion块相同,但是在DPI-C组件生成期间,块为万博1manbetx每个组件生成一个本机SystemVerilog断言断言为DPI-C模型中存在的块。

设置示例

本例中的模型包含两个DPI-C块的断言.其中一个块用于使用自定义选项提供延迟信息,第二个块被设置为在第二个延迟结束时提供警告。

运行以下代码以打开设计。

开放式系统(“svdpi_assertion”);

建立代码生成模型

该模型使用一个DPI-C系统目标文件(systemverilog\u DPI\u grt.tlc)预配置。在生成DPI-C组件之前,请确保通过块掩码在SystemVerilog中配置所需的断言行为。

默认情况下,断言块将生成SystemVerilog错误(美元的误差(" "))触发时显示空消息。可以通过提供错误消息或将错误更改为警告来更改此设置($warning(“”)),或者提供您自己的自定义SystemVerilog命令来执行。

下图显示了第一次延迟后断言块的SystemVerilog行为配置DPI-C断言选项组只影响Simulink仿真行为。万博1manbetx

请注意,断言定义命令是有效的SystemVerilog语句。

第二个断言块被配置为输出带有指定消息的警告,如下所示。

如果我们运行这个模型,我们可以看到在Simulink中会触发两个断言警告:万博1manbetx

生成SystemVerilog DPI-C组件

  1. svdpi_assertion模型,右键单击DPI_C_Assertion块,然后选择C/C++代码->构建此子系统。

  2. 在出现的对话框中单击Build。

  3. 生成的C代码DPI_C_Assertion子系统,以及一个名为“DPI_C_Assertion_build / DPI_C_Assertion_dpi.sv”“DPI_C_Assertion_build / DPI_C_Assertion_dpi_pkg.sv”

或者,你可以通过执行以下命令来生成组件:

slbuild (“svdpi_断言/DPI_C_断言”);

在HDL模拟器中运行生成的测试台

对于本例,将使用ModelsSim/QuestaSim模拟器。要获得更多关于如何运行测试台的详细说明,请参阅“开始使用SystemVerilog DPI组件生成”。

运行测试台之后,请注意DPI-C组件抛出的消息和警告。

跟踪SystemVerilog断言回Simulink万博1manbetx

如果你想跟踪生成警告的断言到Simulink,你需要从警告消息中找到Simulink标识符(SID),如下所示:万博1manbetx

找到断言块的SID后,可以使用Simulink编程API突出显示相应的块。万博1manbetx执行:

万博1manbetxSimulink.ID.hilite (“svdpi_断言:7”);

这将突出显示相关块。

在HDL模拟器中过滤断言

如果希望在HDL Simulator中过滤断言,则需要将想要过滤的块的SID作为一个plusargs参数提供给HDL Simulator。

例如,“InfoAssertion”断言块的SID为“svdpi_assertion:6”。因此,为了过滤这个块提供的信息消息,我们需要向HDL模拟器提供参数“+svdpi_assertion:6”。对于ModelSim/QuestaSim中的这个例子,仿真命令是:

vsim-c-voptargs = + acc-sv_lib. . / DPI_C_Assertion工作。DPI_C_Assertion_dpi_tb+ svdpi_assertion: 6