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