RE: [sv-bc] $onehot(), $bits() and $signed() of streaming concatenations

From: Bresticker, Shalom <shalom.bresticker@intel.com>
Date: Sun Oct 23 2011 - 08:58:45 PDT

Brad,

For context, it may be helpful to see the threads beginning with

http://www.eda.org/sv-ac/hm/9764.html
http://www.eda.org/sv-ac/hm/9765.html
http://www.eda.org/sv-ac/hm/9791.html
http://www.eda.org/sv-ac/hm/9793.html

It is not clear to me, for example, that

So for $onehot() it's clear that you can legally call

     $onehot({>>{x,y,z}})

Regards,
Shalom

From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of Brad Pierce
Sent: Friday, October 21, 2011 1:47 AM
To: sv-bc@eda.org
Subject: RE: [sv-bc] $onehot(), $bits() and $signed() of streaming concatenations

> in such a context

I meant "in an assignment-like context".

---
When 11.4.14 says that a streaming_concatenation, such as, {>>{x,y,z}}, can be used "as the target of an assignment, or as the source of an assignment", I take that to mean that in an assignment-like context it's not "an operand in an expression" and that it can be used without "first casting it to a bit-stream type".
For example, if a streaming_concatenation is the actual input argument of a subroutine call and it's passed by value to a formal input argument of a bit-stream type, then the streaming_concatenation actual is being legally assigned to the formal with no need for a static cast.
     f({>>{x,y,z}}, ...)
What though about calls to LRM-defined $-functions that are polymorphic, such as $onehot(), $bits() and $signed()?
Mantis 2476 (http://www.eda-stds.org/mantis/view.php?id=2476) clarifies that the argument to $onehot() can be anything of bit-stream type, and that, if the argument is "expression", then "For the purpose of calculating the return value, the argument is treated as a vector of equal size assigned from {>>{expression}} (see 11.4.14)."
So for $onehot() it's clear that you can legally call
     $onehot({>>{x,y,z}})
But what about $bits() and $signed()? It seems to me that it should be legal to call them, too, with a streaming_concatenation argument, but that's not so clear in the LRM, as far as I can tell.
-- Brad
---------------------------------------------------------------------
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 Sun Oct 23 09:01:51 2011

This archive was generated by hypermail 2.1.8 : Sun Oct 23 2011 - 09:02:05 PDT