我想断言,如果在当前周期信号'a'等于“0110”(二进制)在下一个周期信号'b'不大于31(它应该在0和31之间。它应该小于00000000000000000000000000011111)(它的宽度等于 32)每个人都可以帮我写断言吗?!请原谅我的英语不好。
问问题
620 次
1 回答
1
assert property ( @ (posedge clk ) (a == 32'b0110) |=> ( b > 32'd0 && b < 32'd32 ) );
断言 - 将属性(断言)设置为行动。该属性必须基于时钟。a
在设计中选择触发寄存器和的适当时钟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/
于 2016-06-29T22:14:00.010 回答