RE: [sv-ec] Query on bin value

From: Swapnajit Chakraborti <swapnaj@cadence.com>
Date: Thu Aug 05 2010 - 00:24:12 PDT

Hi Arturo, Dave,

Thanks for your comments. I believe this is the correct thing to do. So, do we plan to
put a clarification around this in the next version?

Regds,
Swapnajit

________________________________
From: Arturo Salz [mailto:Arturo.Salz@synopsys.com]
Sent: Wednesday, August 04, 2010 10:42 PM
To: Rich, Dave; Swapnajit Chakraborti; sv-ec@eda.org
Subject: RE: [sv-ec] Query on bin value

I agree with Dave. When dealing with cover-groups, the only thing that matters is the value at the time the cover-group's constructor is called.

                Arturo

From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf Of Rich, Dave
Sent: Wednesday, August 04, 2010 8:57 AM
To: Swapnajit Chakraborti; sv-ec@eda.org
Subject: RE: [sv-ec] Query on bin value

Swapnajit,

I was stating what the current LRM says. You have to understand that to know how to change it to what you think it should say.

Today, it makes an exception to the restriction to allow 'const' bin values within embedded covergroups. I agree the restriction no longer makes sense.

x_obj.a is dotted name that is a member select, not a hierarchical reference. See section 23.7. In any case 'a' is not a const variable. I don't think it's worth arguing what constitutes a 'const' for the sake of a bin value. I would rather argue removing the restriction and say the bin value at the time of the construction is what is used.

Dave

From: Swapnajit Chakraborti [mailto:swapnaj@cadence.com]
Sent: Wednesday, August 04, 2010 6:43 AM
To: Rich, Dave; sv-ec@eda.org
Subject: RE: [sv-ec] Query on bin value

Hi Dave,

Please let me know what is your thought on this.

Regds,
Swapnajit

________________________________
From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf Of Swapnajit Chakraborti
Sent: Thursday, July 29, 2010 3:46 PM
To: Rich, Dave; sv-ec@eda.org
Subject: RE: [sv-ec] Query on bin value
Hi Dave,

Thanks for your response. Basic intent of this query was to figure out if "const" ness of an object propogates
down or not. For example, if I declare something like below, will x_obj.a be treated as instance const although this
is hierarchical expression and then treated legal as bin value.
class x;
    int a;
endclass
x myobj = new;
class y;
   const x x_obj = myobj;
   covergroup cg @
       coverpoint v {
            bins b1 = {x_obj.a}; // Is this a instance const just because x_obj is a const member of class?
       }
   endgroup
endclass
I also refered to mantis 1802. But the logic provided there doesn't hold anymore. The reason is that we already
introduced "merge_instances" type_option to take care of merging different coevrage spaces across multiple covergroup
instances. Please let me know if I am missing something here.

>Third, myt.xx is a field select, not a hierarchical reference. If you were to change "const" to "parameter", it would be legal.
So, do you mean the member select expression is illegal as long as we keep it "const"?
If you notice, I am trying to figure out if a dot-separated name (be it member select or hierarchical reference) can be considered
an instance const in case the top-level element of the name is declared "const" within a class.

Regds,
Swapnajit
________________________________
From: Rich, Dave [mailto:Dave_Rich@mentor.com]
Sent: Friday, July 23, 2010 9:47 PM
To: Swapnajit Chakraborti; sv-ec@eda.org
Subject: RE: [sv-ec] Query on bin value
Swapnajit,

First, a variable declared as "const" cannot be used in the context of a constant expression. It is a write-once variable.
Second, an instance constant is only valid in the context of an embedded covergroup within a class.
Third, myt.xx is a field select, not a hierarchical reference. If you were to change "const" to "parameter", it would be legal.
Finally, the reason for the LRM restriction is discussed but not resolved in http://www.eda.org/mantis/view.php?id=1802

Dave

From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf Of Swapnajit Chakraborti
Sent: Friday, July 23, 2010 4:37 AM
To: sv-ec@eda.org
Subject: [sv-ec] Query on bin value

I have query regarding use of hierarchical names as bin value of a coverpoint.

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

Now, if I have something like below, should "myt.xx" be treated as instance constant/constant expression
and thus allowed in bin value expression. Or will it be considered as hierarchical expression and hence should be treated as illegal.

module test;
   typedef struct { int xx; } my_t;
   class item_c;
      const my_t myt = '{xx:6};
      covergroup data_cg;
          DATA: coverpoint data{
                 bins chid[] = {[0:myt.xx]}; // This is a member of a const struct. Should this be allowed as instance const or const expression or illegal?
          }
      endgroup : data_cg
      ...
   endclass : item_c
....
endmodule : test

Regds,
Swapnajit

--
This message has been scanned for viruses and
dangerous content by MailScanner<http://www.mailscanner.info/>, and is
believed to be clean.
--
This message has been scanned for viruses and
dangerous content by MailScanner<http://www.mailscanner.info/>, and is
believed to be clean.
--
This message has been scanned for viruses and
dangerous content by MailScanner<http://www.mailscanner.info/>, 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 Thu Aug 5 00:26:19 2010

This archive was generated by hypermail 2.1.8 : Thu Aug 05 2010 - 00:26:37 PDT