Re: [sv-ec] Query on illegal/ignore_bins

From: Swapnajit Chakraborti <swapnaj_at_.....>
Date: Tue May 03 2005 - 00:30:06 PDT
Hi Arturo,

Thanks for your reply. So, essentially, if a coverpoint
has only got declaration of ignore_bins/illegal_bins, it
is equivalent to automatic bin declaration with extra
filtering provided by ignore_bins/illegal_bins construct.
I think this clarification can be added to the LRM.

I have another question regarding the non automatic case. 
Consider the following example:

coverpoint a {
   bins b1[] = {0, 1, 2, 3};
   ignore_bins ig_bins = {0, 1} iff x+y;  // Note guard expression
}

Now, as per LRM, bins are effective only when guard expression
evaluates to true. I believe this will apply for ignore_bins. If
that is the case, values 0 & 1 will only be ignored iff "x+y"
is true while sampling. Now, it may happen that value 0 is ignored
during one sampling event (x+y true) and not ignored (x+y false)
during another sampling event. In such scenario, LRM does not specify
how to calculate the final coverage. 

Regards,
Swapnajit.

Arturo Salz wrote:
> 
> Swapnajit,
> 
> An ignored coverbin does not modify the coverage space, it only indicates
> that the specified bins not be counted.
> Thus, your example would do the following:
>     - Create 7 auto-bins (0..6).
>     - Bins 0, 1, and 2 never take a hit.
> And, if the sampled "a" takes on all values 0-7, the coverage is 4/7 => 57.1%
> 
>     Answer
> 
> ----- Original Message -----
> From: "Swapnajit Chakraborti" <swapnaj@cadence.com>
> To: <sv-ec@eda.org>
> Sent: Friday, April 29, 2005 7:17 AM
> Subject: [sv-ec] Query on illegal/ignore_bins
> 
>   If the user specifies only ignore_bins with a coverpoint, what will
>   be the behavior? Consider the following example:
> 
>   reg [2:0] a;
>   coverpoint a {
>      ignore_bins ig_bins = {0, 1, 2};
>   }
> 
>   LRM clearly says that (section 20.4.4) values 0, 1 & 2 will not
>   be considered(ignored) during sampling. What LRM does not clarify
>   is what happens for the values which are not ignored, e.g. 3, 4,
>   5, 6 & 7.
>   Should we interpret the above declaration as an automatic bin
>   declaration for coverpoint a and create bins for the values which
>   are not ignored. This implies we create auto[3], auto[4] etc.
>   depending on whether these values occurred during simulation
>   and were sampled. This makes sense since if we do not create auto
>   bins, specifying ignore_bins doesn't serve any purpose. But this
>   is in contradiction with how automatic bins are specified. For your
>   convenience, I have given a couple of examples of how automatic
>   bins are specified.
> 
>   coverpoint a;
>   coverpoint b {
>     option.auto_bin_max = 7;
>   }
>   coverpoint c {
>     type_option.weight = 7;
>   }
> 
>   In all the above three cases, automatic bins are created.
>   Note that the basic criteria is that no user-defined bins are
> specified.
> 
>   Now as soon as user specifies a bin with  ignore_bins keyword, as per
>   LRM its an user-defined bin. So if we create an automatic bin in this
>   case, it may be confusing. This applies to illegal_bins as well.
> 
>   I believe this needs to be clarified in LRM.
> 
> Thx,
> Swapnajit.
Received on Tue May 3 00:30:14 2005

This archive was generated by hypermail 2.1.8 : Tue May 03 2005 - 00:31:28 PDT