RE: [sv-bc] Doubts on Streaming Operator

From: Bresticker, Shalom <shalom.bresticker_at_.....>
Date: Thu Jan 04 2007 - 00:03:57 PST
Why should that be?

If we have an example
"int j = {>>{a,b,c}}; // error: j is 32 bits < 96 bits"

that seems to imply that the streaming_concatenation does have a
definite type.

In an assignment pattern, the contents of the pattern are interpreted
according to the context. That does not seem to be the case with a
streaming concatenation. 

So why indeed should it require a cast?

By the way, 8.17 has examples like
"{<<{8'b0011_0101}} // generates stream 'b1010_1100 (bit reverse)".

The notation in the comment "'b1010_1100" is an unsized literal,
implying it is at least 32 bits. I don't think that was the intention.

Shalom


> Regarding your first question, in
> 
>    http://www.eda-stds.org/svdb/bug_view_page.php?bug_id=0001526
> 
> I claimed it is not semantically correct, writing --
> 
>    Streaming concatenation, like assignment pattern, has no
> self-determined type
> 
>    The description in 8.17 that "The stream is not an integral value;
to
> participate in an expression, a cast is required." is both confusing
and
> incomplete.
> 
>    Instead it should echo the text in 8.13 and say something like --
"A
> streaming concatenation has no self-determined data type, but can be
> used as one of the sides in an assignment-like context when the other
> side has a self-determined data type or as the operand in a static
> cast."

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Thu Jan 4 00:05:22 2007

This archive was generated by hypermail 2.1.8 : Thu Jan 04 2007 - 00:05:39 PST