RE: [sv-bc] confusion in determining the type of an self determined binary expression during evalution of type operator

From: Feldman, Yulik <yulik.feldman_at_.....>
Date: Wed Oct 17 2007 - 02:12:40 PDT
 

 

-----Original Message-----
From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org] On
Behalf Of Steven Sharp
Sent: Tuesday, October 16, 2007 9:42 PM
To: gordonv@model.com; Feldman, Yulik
Cc: Brad.Pierce@synopsys.com; sv-bc@server.eda.org
Subject: RE: [sv-bc] confusion in determining the type of an self
determined binary expression during evalution of type operator

 

 

I don't agree about the type of a part select.  However, the example

you give here is not a part select.  It selects part of an object,

but "part select" is a technical term for a specific kind of select,

which you are not using here.

[Yulik] The problem here is that the LRM is very confusing on the
definition of the related terminology. I have tried to raise this issue
in the past, but it didn't get much attention. The end result is that I
and all my colleagues just use the "part select" term as a universal
term describing any kind of "select"/"slice"/"part select"/"bit
select"/"member select", even that we know that strictly speaking LRM
assigns some other mysterious meaning to this term. It looks that you're
using the term "select" for such a universal meaning; but I don't think
LRM clearly defines it as such either.

 

>There is one situation where the type may be normalized without any bad

>consequences, which is when a part select selects more than one element

>of an array, like in "a[6:5]".

 

This starts getting us into the area of true part selects (when it is

a vector) or slices (for arrays).  Here it sounds like you are more in

agreement with me (and Gord).  I would adjust your description slightly

though.  It is not the selection of more than one element that should

matter here; it is the use of the range (or part select) syntax, which

can select more than one element.  The slice "a[6:6]" only selects one

element, but it is still a slice.  

[Yulik] I agree

 

I agree that normalizing types that are strictly typed, such as classes

or unpacked structs, would cause problems.  However, I don't think that

the array cases from your examples are as bad as you suggest.  This is

because the assignment compatibility rules are based on "shape" rather

than exact bounds.  So the type information can be used to declare a

type that is compatible with the element, even if it is normalized.

The fact that the compatibility rules are based on "shape" actually

supports the argument that this is all that is retained about the

type of an array expression.

 

I haven't fully considered whether I think that things other than the

topmost dimension should be normalized.

[Yulik] See my previous reply in this thread; the rationale for keeping
the original type is to allow "selects" on arbitrary expressions,
without unnecessary complications

 

Steven Sharp

sharp@cadence.com

 

 

-- 

This message has been scanned for viruses and

dangerous content by MailScanner, 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 Oct 17 02:13:52 2007

This archive was generated by hypermail 2.1.8 : Wed Oct 17 2007 - 02:14:27 PDT