系统Verilog断言位向量

时间:2016-06-29 18:02:33

标签: system-verilog system-verilog-assertions

我想断言如果在当前周期信号'a'中等于“0110”(二进制),在下一个周期信号'b'不大于31(它应该在0和31.之间,应该小于00000000000000000000000000011111)(宽度等于32) 每个人都可以帮我写断言吗?! 对不起,我的英文不好。

1 个答案:

答案 0 :(得分:1)

assert property  ( @ (posedge clk )  (a == 32'b0110) |=> ( b > 32'd0 && b < 32'd32 ) );

断言 - 将属性(断言)设置为动作。该物业必须以时钟为基础。选择触发寄存器a&amp;的适当时钟。 b在设计中。蕴涵运算符|=>表示该属性必须在下一个时钟周期内为真。在这种情况下,如果a等于6,则下一个周期b必须介于0和32之间。

如果发生故障,将显示一些类似的消息(基于模拟器)。

top.unnamed$$_0: started at  ns failed at  ns
    Offending '((b > 0) && (b < 32))'

您可以阅读有关断言的基本教程

https://www.doulos.com/knowhow/sysverilog/tutorial/assertions/