系统verilog断言中 - >和=>之间有什么区别?

问题描述 投票:3回答:3

我想知道何时在SVA中使用->=>?之间有什么区别吗?

sequence A;
 req |-> ##1 gnt;
endsequence

sequence B;
 req |=> ##1 gnt;
endsequence

请让我知道..谢谢。

system-verilog assertions system-verilog-assertions
3个回答
2
投票

不同之处在于前因(左边的表达式)成功,结果(右边的表达式)是在相同的时钟周期|->(重叠)还是下一个时钟周期|=>(非重叠)开始。

一个方便的方法来记住这是-只有一个酒吧,所以这是重叠。在=有两个酒吧,所以这是不重叠的。


2
投票

|=>相当于|-> ##1 因此,req |=> ##1 gnt;相当于req |-> ##2 gnt;

参考IEEE Std 1800-2012§16.12.6含义


0
投票
  • 这两种蕴涵算子都使用以下类型的方法。
  • 我认为你有基本的想法,在哪里使用| - >(重叠)和| =>(非重叠)

property name(); Enabling sequence (|-> or |=>) Consequent sequence endproperty

结果:

  • 当启用序列为'true(1'b1)而不是检查后续序列时..如果后续seq'为'而不是断言通过,如果后续seq为'假,则断言失败。
  • 当启用seq为'false而不是通过但显示为“viscus success”时,您将无法在波形中看到绿色箭头

而...

property name(); sequence1 (## delay) sequence2 endproperty

  • 在这种情况下,如果seq1为'真,而不是在一些延迟之后,它检查seq2,如果seq2是'真于断言传递,并且如果seq2是'假,则断言失败。
  • 如果seq1是`false而不是断言直接失败..

这是这件事的主要区别。我认为这可能会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.