Ben ,
- I believe the tools are correct in their output.
By simply adding an enclosed parenthesis your sequence ‘dynamic_delay’ from sva-package-for-dynamic-and-range-delays-and-repeats can be re-written as
// ****** DYNAMIC DELAY ##d1 **********
// Implements ##[d1]
// Application: sq_1 ##0 dynamic_delay(d1) ##0 sq_2;
sequence dynamic_delay(count);
int v;
( (1, v=count) ##0 ( (v>0, v=v-1) [*0:$] ##1 v<=0 ) );
endsequence // dynamic_delay
When actual to count is 0 / -ve value sequence is equivalent to
( (1, v=count) ##0 v<=0 ) )
It matches at the same time that the sequence is invoked
- Using dynamic_delay(0) ,
Why is it that we observe either “T:5 LHS Sequence matches” or “T:5 RHS Sequence matches” ?
( 3 tools shows one of the either message but not both , 1 tool shows both messages )
Since both LHS and RHS sequence match at T:5 , shouldn’t we observe both messages ?
Or is it that due to implicit first_match in consequent that a tool shows only one message ?
Ideally as per LRM would it be incorrect if a tool were to show both display messages ?