How to delay transition coverage event

I have very complex transtions that I need to get coverage on. Transition coverage of more than one event seems to require that the transitions are on sequential clock cycles (not positive on this but this is my hypothesis on why multiple transtions are failing when they pass when tested separately). I don’t see any syntax that allow me to delay the second event an indeterminant number of clocks like what is available in sequences [0:$]. Anyone know how to do this? I have been searching for an answer, but their is not too much documentation on transitions.

You need to specify, with an example possibly, what you are looking to cover. The we might suggest an alternative. But transition bins are very limited in what you can specify so you may need to resort to using sequences with a cover directive.

In reply to etuers:

Here is an example code. Need to verify the path through a transition tree, where one or more bits change and there could be more than one clock cycle between transitions. Don’t have this code working at this time:
tracking_bits_cp: coverpoint tracking_bits[i] iff(rst_l2c_n) {

  wildcard bins P0a_1_2a_3a_5_17_18_0_p  =   ( 32'b????????_????????_????????_???????0    [*1:100] => //invalid  0
                                                   32'b00000000_00000000_00000000_00000001    [*1:100] => //CmdValid  1
                                                   32'b00000000_00000000_00000000_000???11    [*1:100] => //SnpSent_0  2
                                                   32'b00000000_00000000_0000000?_??1???11    [*1:100] => //SnpRespValid_0  3
                                                   32'b00000000_00000000_000001??_??1???11    [*1:100] => //SnpUpdateTaken  5
                                                    32'b????????_????????_????????_???????0 );             //invalid  0

endgroup: sequence_cover

sequence_cover sequence_cover_inst[16];
initial
foreach (sequence_cover_inst[i]) sequence_cover_inst[i] = new(i);

In reply to etuers:

Try to use goto repetition/non-consecutive repetition instead of range repetition.


  value [-> 1]  
 or value [= 1]

Using range repetition you are trying to say that the same sequence should come 1 or 2 or… 100 times consecutively followed by next value. Looks like your intent is do following.

seq1 =>…=> seq2=>…seq3=>…
… means any value can come in between.