I write this before looking at the proposals again: A bit-select can be a variable. In a non-indexed part-select, e.g. name[i:j], both the msb and lsb indexes need to be elaboration-time constants, otherwise the size (number of bits), i.e., the type (since size is part of the type) will vary at run-time. In an indexed part-select, e.g., name[i+:width], the first part of the index (i.e., starting position) can be variable, the second part of the index, the width, must be an elab-time constant. Shalom ________________________________ From: Seligman, Erik Sent: Wednesday, August 13, 2008 5:29 PM To: Bresticker, Shalom; Brad Pierce; sv-bc@server.eda.org Cc: sv-sc@eda.org Subject: RE: [sv-bc] Const cast of Mantis 2398 Hold on-- does the index of an expression have to be an elaboration-time constant? Wouldn't this invalidate examples in 1900 and 2398, and in fact defeat the entire concept of assertions & checkers in procedural code as described in these proposals, since we would not be able to effectively use procedural variables in indexes? ________________________________ From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org] On Behalf Of Bresticker, Shalom Sent: Tuesday, August 12, 2008 11:42 PM To: Brad Pierce; sv-bc@server.eda.org Subject: RE: [sv-bc] Const cast of Mantis 2398 Yes, that is correct. Shalom ________________________________ From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org] On Behalf Of Brad Pierce Sent: Wednesday, August 13, 2008 9:34 AM To: sv-bc@server.eda.org Subject: [sv-bc] Const cast of Mantis 2398 As I understand the new const'() cast of http://www.eda-stds.org/svdb/view.php?id=2398 the following part-select would be illegal for (int i = 3; i >= 0; i--) begin y[ const'(i)*2 + 1 : const'(i)*2 ] = i; end because const'(i) would be like a simulation-time const variable, not like an elaboration-time constant expression. An expression may be changed to a constant with a const cast. const'(x) When casting an expression as a constant, the type of the expression to be cast shall pass through unchanged. The only effect is to treat the value as though it had been used to define a const variable of the type of the expression. Correct understanding? n Brad -- This message has been scanned for viruses and dangerous content by MailScanner <http://www.mailscanner.info/> , and is believed to be clean. --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. -- This message has been scanned for viruses and dangerous content by MailScanner <http://www.mailscanner.info/> , and is believed to be clean. --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Wed Aug 13 07:40:48 2008
This archive was generated by hypermail 2.1.8 : Wed Aug 13 2008 - 07:41:21 PDT