If you take this literally, this defines what it "can" have as RHS, not what it "cannot" have. I agree with mantis 2372. This sentence should be removed. ________________________________ From: Surya Pratik Saha [mailto:spsaha@cal.interrasystems.com] Sent: Tuesday, September 23, 2008 11:55 AM To: Rich, Dave Cc: sv-bc@eda.org Subject: Re: [sv-bc] Question on const declaration RHS Hi Dave, Here is the 1800-2005 LRM text: A static constant declared with the const keyword can be set to an expression of literals, parameters, local parameters, genvars, enumerated names, a constant function of these, or other constants. This does not match with your statement. Regards Surya -------- Original Message -------- Subject: Re:[sv-bc] Question on const declaration RHS From: Rich, Dave <Dave_Rich@mentor.com> <mailto:Dave_Rich@mentor.com> To: Surya Pratik Saha <spsaha@cal.interrasystems.com> <mailto:spsaha@cal.interrasystems.com> , sv-bc@eda.org Date: Tuesday, September 23, 2008 9:45:51 PM Surya, A "const" does not affect the RHS of the declaration. Whatever is allowed for a non-cost variable declaration is allowed for a const. In fact, a const variable declared inside an automatic block is initialized every time the block is entered to whatever is the current value of the RHS expression. It's just that a const variable becomes read-only after initialization. Dave -----Original Message----- From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org] On Behalf Of Surya Pratik Saha Sent: Tuesday, September 23, 2008 12:45 AM To: sv-bc@server.eda.org Subject: [sv-bc] Question on const declaration RHS Hi, As per SV 1800 LRM, the RHS side of 'const' declaration should be consisting of normal const_expression or anything which is already declared by another 'const' declaration. But consider the e.g. below: module top; int x; function int f(input y); x = 1; return f + x; endfunction const int r1 = f(1); // function 'f' is not a constant as it used a global non-parameter variable 'x' const int r2 = x; // 'x' is not declared with 'const' endmodule Most of the standard simulators pass the case. Is it a bug in the simulators? Also OVM package has this type of declaration too which is against LRM. Please comment. -- Regards Surya -- 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 Sep 23 12:08:14 2008
This archive was generated by hypermail 2.1.8 : Tue Sep 23 2008 - 12:08:27 PDT