问题标签 [system-verilog-assertions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
14303 浏览

properties - 我可以在一个循环中生成多个 SystemVerilog 属性吗?

我有两个打包的信号数组,我需要为该属性创建一个属性和相关的断言,以证明这两个数组在某些条件下是相同的。我正在正式验证,该工具无法证明单个属性中的两个完整数组,因此我需要将其拆分为单个元素。那么有没有一种方法可以使用循环为数组的每个元素生成一个属性?目前,我的代码非常冗长且难以导航。

我的代码目前如下所示:

这就是我希望我的代码看起来像的样子:

0 投票
1 回答
1303 浏览

system-verilog - 如何避免最后的断言(如果我理解正确的话)

我正在关注http://verificationguild.com/modules.php?name=Forums&file=viewtopic&p=5019来检查特定信号的周期。该方法效果很好,但是在模拟的最后,如果断言被posedge(活动边缘)踢出,它基本上会失败,因为没有下一个边缘。

请考虑以下示例:测试台时钟以 2MHz 运行,更新时钟(我已经写过断言)以 5Hz(周期 200ms)运行以进行特定测试。假设模拟运行了 500 毫秒,断言在 400 毫秒时被踢失败。

我应该如何避免这种情况?

0 投票
2 回答
5973 浏览

verilog - SVA(SystemVerilog 断言):$assertoff 和 $assertkill 之间的区别?

$assertoff;SystemVerilog Assertions和有什么区别$assertkill;

他们似乎都停止了断言的执行。

0 投票
1 回答
2056 浏览

system-verilog - SVA:使用暗示(|=>)与序列?

SystemVerilog 断言属性可以使用隐含运算符|=>和序列构建##1

例如 :

上面我们使用A ##1 B了作为启动序列(前件)和C ##1 D完成序列(后件)。

我不明白为什么它不能被重写为:

您何时以及为什么会选择暗示|=>而不是序列##1

0 投票
2 回答
1599 浏览

testing - 使用 System-Verilog 进行串行测试和断言

我有一个 verilog 模块的串行输出,我想使用 system-verilog 进行测试。

给定正确的串行输入“SI”,其值为 8'h9A,称为“SO”的输出将输出类似 8'hC6 的内容。

有没有一种简单的方法来编码/解码串行 IO,而不必明确描述每个信号?

例如:

它看起来像一团乱麻,几乎不可读。我很想写

但显然这不起作用。任何建议或示例都将受到欢迎。提前致谢。

0 投票
1 回答
1011 浏览

verilog - 在递归属性中使用队列

我有一些来自 1 位串行端口的数据,这些数据以不同长度的字节的倍数出现,如下所示:

在每个正时钟沿,发送一位。我需要测试数百个序列(将来可能有数千个),所以我想用系统 verilog 中的断言来自动化这个过程。新的 2012 标准允许将队列传递给属性,但是可以通过递归属性发送队列吗?我收到了一些关于分层参考的错误。

这就是我到目前为止所拥有的(在@Greg here的帮助下):

在我的测试台中调用断言应该像这样简单:

错误消息如下:

我对断言长可变长度串行序列的其他想法持开放态度。

0 投票
2 回答
2176 浏览

system-verilog - 用于握手的 SVA

我正在尝试为握手过程编写 SVA 断言。

在我的搜索中,我发现了以下内容:

但是,在有效周期变高后,允许我的“完成”信号出现多个周期。您如何做出此声明以确保在断言valid 之后的任何时候都断言“done”,而不会取消断言 valid?

0 投票
1 回答
1454 浏览

system-verilog - verilog 断言:暗示的前件永远不满足

如果模块被禁用,我会收到以下消息:

暗示的前件永远不满足

是否有标志(或任何其他方式)来关闭上述消息?

0 投票
2 回答
1820 浏览

system-verilog - 系统verilog断言触发器==1 信号断言前4个周期

我将如何编写 SVA 来检查 sig 是否变高,触发器是否在 4 个周期之前trigger [*4] |-> signal 为高还不够好,因为它没有检查信号在 3 个周期内没有变高。我应该$past 如何使用?

0 投票
1 回答
3663 浏览

system-verilog - 我可以在生成块中使用绑定吗

我有一个简单的断言:让我们说

我通常使用单独的绑定模块将它与设计信号连接起来

我有一个情况:dut 有一个 45 位的总线,每个位都是单独生成/驱动的,但它们都遵循相同的断言。

我可以在生成块中使用绑定语句吗?(范围为 0 到 44)然后代替 .* 使用.a (in_bus[i]), .b (out_bus[i])