Is there any difference in a sequence coded as transition of coverpoint vs a sequence coded as a series of events in cover property

Hi,

I have a question regarding transition sequence and sequence used in cover property. Consider the following 2 examples – the intention for both of them is to cover a sequence of events.

SigA should transition the following way :- 0->1->0->1

Using covergroup:

covergroup sig_cov @(posedge clk);
                sigA_tran : coverpoint sigA {
                                bins hi_lo_hi_seq = 0 => 1[=1] => 0[=1] => 1
                }
endgroup

Using sequence and cover property

sequence sigA_cov;
                @(posedge clk)
                ($rose(sigA) ##1 $fell(sigA) ##1 $rose(sigA))
endsequence

Won’t the above 2 sequences cover the same sigA transition? Is there anything different in using one vs other?(from covering the transition point of view)

Not much difference other than $rose has the potential to become true on the first clock cycle, whereas the covergroup transition bin requires that sigA start at 0. Also, $rose is true for an X->1 transition.

If you coded the sequence as

sequence sigA_cov;
                @(posedge clk)
                !sigA ##1 sigA ##1 !sigA ##1 sigA
endsequence

Then they would be exactly the same.

In reply to dave_59:

Thanks, Dave!
Also, the non-consecutive repetition would modify the transition meaning in the bins, isn’t it? Essentially, the bin would mean that the transition need not happen at consecutive sampling points. The sequence then can mean that there can be multiple sample points between each transition and after.

In that sense, the new sequence you mentioned would differ, as we now have a strict rule that transition should happen at consecutive sample points - am I right?

How if I modify the sequence you mentioned as :-

sequence sigA_cov;
                @(posedge clk)
                !sigA ##1 sigA[->1] ##1 !sigA[->1] ##1 sigA
endsequence