Hi All, as discussed above, needs some clarification for the following
Example_1 :
covergroup cgmaskbit(input bit [31:0] position, ref bit [31:0] vector);
pos: coverpoint (position & vector) !=0 {
bins tr[] = (1=> 0,0 => 1 ;}
option.per_instance = 1;
endgroup
cgmaskbit cgmaskbits[32];
foreach (cgmaskbits[i]) cgmaskbits[i] = new(1'b1<<i,m_csr_intr_mask.interrupting_csrmask)
This Example_1 is ensuring that each bit in in the 32bit is toggling from zero to one and one to zero, means, this will create two bins
bins tr[] = (1=> 0,0 => 1 ;}
1 bin to 1=>0 transition
1 bin to 0=>1 transition
Is this understanding is correct?
Example_2 :
covergroup cgmaskbit(input bit [31:0] position, ref bit [31:0] vector);
pos: coverpoint (position & vector) !=0 {
option.per_instance = 1;
endgroup
cgmaskbit cgmaskbits[32];
foreach (cgmaskbits[i]) cgmaskbits[i] = new(1'b1<<i,m_csr_intr_mask.interrupting_csrmask)
This Example_2 is ensuring that each bit is going HIGH at least once.
bit [31:0] addr;
addr[31], addr[30]....addr[0] should be set to ONE
This is like one hot encoding
This will create 32 bins.
Is this understanding is correct?
In the above link, many examples have been discussed, hence wanted to have a clarification.
Kindly confirm 1 and 2
Thank you