RE: [sv-ec] New Mantis item on Coverage: bins rhs non-constant expressions

From: Arturo Salz <Arturo.Salz_at_.....>
Date: Tue May 08 2007 - 11:44:25 PDT
Doug,

The decision to restrict the bins specification to be constant (or
constant per class with an embedded covergroup) was a deliberate choice.
The motivation was to keep the per-type coverage space the same for all
instances of a particular covergroup. Otherwise, merging the coverage
results of multiple covergroup instances onto the covergroup type
becomes more complicated and more confusing.

If we do choose to relax this restriction, I agree that the proper
semantics would be to take snapshot of the expression values at
covergroup construction time. But, I believe that we will also have to
specify the mechanism for merging the coverage results of multiple bins
with different ranges. Unless we are addressing a specific user need, my
bias would be to leave this restriction in place and document the
motivation in the LRM.

	Arturo

-----Original Message-----
From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf Of
Warmke, Doug
Sent: Sunday, May 06, 2007 1:48 PM
To: sv-ec@eda.org
Subject: [sv-ec] New Mantis item on Coverage: bins rhs non-constant
expressions

Hi All,

I've uploaded a new Mantis item
   http://www.eda-stds.org/svdb/bug_view_page.php?bug_id=0001802

Following is the Mantis Description, reproduced for convenience.
Comments, anyone?  Based on feedback, I can either create a proposal
for this issue, or close the Mantis as "Not to be fixed".

Consider this testcase:

class myclass;
     int id;
     int ign_id;
     covergroup cg;
         coverpoint id {
             ignore_bins ign = {ign_id};
         }
     endgroup
endclass

The P1800-2005 LRM currently states, in 18.4:

    The open_range_list used to specify the set of values
    associated with a bin shall be constant expressions,
    instance constants (for classes only), or non-ref
    arguments to the coverage group.

Thus, the above testcase is illegal.
Is this overly restrictive?

The need for requiring constant expressions isn't clear. It would be
possible to accept non-constant expressions, and take a "snapshot" of
the expression value at covergroup construction time. There may be some
subtelties involved, such as function calls with side effects as part of
the expression. This should be considered, but we think it won't be a
showstopper. Non-constant variables could easily be handled, in any
case.

One clear fact is that the expressions used on the rhs of coverage bins
must not be allowed to vary with time after the covergroup is
constructed.

Regards,
Doug

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue May 8 11:44:51 2007

This archive was generated by hypermail 2.1.8 : Tue May 08 2007 - 11:45:24 PDT