RE: [sv-bc] Const cast of Mantis 2398

From: Bresticker, Shalom <shalom.bresticker_at_.....>
Date: Wed Aug 13 2008 - 07:35:22 PDT
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