I understand that [-> m]
is a non-consecutive GoTo operator and can be used as (e.g.)
@(posedge clk) a |=> b [->2] ##1 c;
But I came across an example, where I see (in the middle of a property), a -> b
. What does that mean? Does it mean if a
is true that b
is true? Does it behave like an overlapping implication operator? Please see the example below. Thanks.
property count_event(reg [15:0] PerfCtr, reg [15:0] event_count);
@(posedge DfiClk)
disable iff (disable_perfcntcheck)
((PWR_OK === 1'b1) && (Reset === 1'b0) && (DebugPerfCtrEn === 1) && (dfi_event_select === 1) && ($rose(dfi_event))) |->
##[1:5] !$isunknown(capture_dly) && (**!capture_dly -> event_count == PerfCtr**) ##1 !$isunknown(capture_dly) && (**capture_dly -> event_count == PerfCtr**);