问题标签 [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 投票
1 回答
818 浏览

system-verilog - SVA - 有没有办法使用系统verilog断言检查可变长度串行输出中的可变变量模式?

例如,我有一个模式 pt=1101 需要在串行输出 s_out= 1011101110111011 (LSB 优先)中进行检查。我试图检查“s_out”中的“pt”只使用SVA而不使用always块。注意:pt 和 s_out 的长度都是可变的。

我正在尝试对 pt 和 s_out 长度使用两个计数器,但我不知道如何在 SVA 中使用它们。

任何建议都会很有帮助。谢谢你,苏珊

0 投票
3 回答
3643 浏览

system-verilog - 何时在断言中使用带有信号的 $rose 系统任务

我试图了解何时$rose在断言中使用信号。例如,以下两个断言将以什么方式表现不同?

$rose要与异步信号一起使用吗?

0 投票
1 回答
2187 浏览

system-verilog - SystemVerilog 断言错误:非法使用非常量表达式

SLV_DCR_TIMEOUT_WAIT 是寄存器中编程的值,因此它不是一个常数值。我如何在断言中使用它。

错误信息 :

错误-[SVA-INCE] 非法使用非常数表达式
/lsi/designs/rsd_megatron/team/singhs/megatron/sim/testbench/mss_tb/interfaces/mss_internal_signal_if.sv, 41
mss_internal_signal_if, "DCR_TIMEOUT_WAIT"

使用非-对于延迟和重复范围等情况,属性、序列和断言中不允许使用常量表达式。
请用精化时间常数替换有问题的表达式。

0 投票
1 回答
4736 浏览

system-verilog - SystemVerilog 中的 $stable 是否在总线上运行?

我想验证总线在断言中是否稳定。例如,如果在下降沿data之后时钟发生变化,我希望以下断言标记错误。re

我相信$rose它只在总线的 LSB(链接)上运行。是否$stable也只在 LSB 上运行,还是支持任何宽度的信号?

0 投票
2 回答
4834 浏览

system-verilog - 断言以验证信号中的毛刺

可以说有一个信号a。当信号变高时,它必须至少在三个正时钟沿保持高电平。

我们可以将属性写为

对于以下情况,该属性失败。

时钟_ _ _ | = = = | _ _ _ | = = = | _ _ _ | = = = | _ _ _ | = = = |

一个_ _ | = = = | _ _ | = = = = = = = = = = = = = = = = = =

这不符合规范,其中 a 在中间变低,但会被下一个姿势拉高,因此上述断言不会抓住这一点。

谁能告诉是否有任何方法可以编写断言来捕获这个错误?

谢谢

0 投票
1 回答
191 浏览

fpga - Can I access delayed value in SystemVerilog assertion

I want to use an old value of a signal in a SystemVerilog assertion.

This is what I am currently doing

Is this how is should be done, or can I somehow use an old version of rdaddress directly in the assertion?

0 投票
1 回答
655 浏览

verilog - 我如何将 PSL 或 SVA 活性断言/属性翻译成 Verilog?

如何手动或使用(开源)工具自动将 PSL 或 SVA 活性断言翻译成 verilog?我可以做简单的安全属性,但我对活性属性一无所知。我知道一些商业工具有这个功能来检查 Verilog 设计,但我无权访问它们。

例如,我想将 PSL 中的活性断言翻译assert always req -> eventually! ack;成等效的 Verilog 电路,以便我可以使用一些工具来模型检查该属性是否存在。

  • 进行了编辑,将“是否可以翻译...”改写为“我如何翻译”,谢谢 ira!
0 投票
1 回答
3235 浏览

system-verilog - 宽度可配置时如何编写脉冲宽度systemverilog断言

场景是:信号active可以是 1 个周期、2 个周期、3 个周期或 4 个周期宽,具体取决于config[1:0]模块的输入

为此编写属性的最简单方法是:

但它在语法上是错误的。写这个断言的正确方法是什么?

0 投票
1 回答
13589 浏览

system-verilog - 如何在 systemverilog 断言中使用整个运算符

这是一个规范:如果信号a被断言,那么它必须被断言直到信号b被断言,然后它应该在下一个时钟沿取消断言。我正在阅读 LRM 的 16.9.9 (以及http://www.testbench.in/AS_06_SEQUENCES.html)以及我理解它的方式,上面提到的规范可以写成

然而,这在启动后的第二个时钟边沿立即失败,我不知道为什么。

0 投票
1 回答
2877 浏览

system-verilog - 系统verilog断言禁用条件

我有这个断言是为了检查 clk 频率:

在 disable_check 被置位后,fast_clk 在仿真期间(而不是从开始)开始切换。问题是断言似乎忽略了disable_iff 问题:即使断言被禁用(或者我是否遗漏了其他东西?),是否“注册”了一个 $rose(clk_1Mhz) 事件