Re: [sv-bc] streaming operator example

From: Greg Jaxon <Greg.Jaxon_at_.....>
Date: Thu Jan 04 2007 - 12:37:27 PST
The text currently says:
> The stream operator determines the order in which data are streamed: >> causes data to be streamed in leftto-
> right order, while << causes data to be streamed in right-to-left order. If a slice size is specified, then the
> data to be streamed are first broken up into slices with the specified number of bits, and then the slices are
> streamed in the specified order.

Assuming the example is not blatantly wrong, it may have been written
to settle the textual ambiguity about whether slicing happens
"in the specified order", or "first" (before considering the
direction of streaming).  Which reading is the most natural
handling of endianness if the datasize != 0 mod grainsize?

My answer: Neither is natural for the odd-sized cases, because
the "final" grain changes value.  BUT endian-sensitive slicing
has one desirable property:  {<< byte ...} and {>> byte ...}
become inverse functions.

{<< byte {6'b11_0101}} is either   0111_01  or  0101_11
               {>> byte {that} is   01_0111  or  11_0101

I think the LRM example and the idea that these are complimentary
functions suggests that the word "first" should be dropped and
the comma in the text should be moved:

"data to be streamed are broken up into slices with the specified
number of bits and the slices are streamed, both in the specified
order."

Greg Jaxon

Rich, Dave wrote:
> I believe the intent is that the slicing begins with the MSB. I will 
> enter a mantis issue for this.
> 
>  
> 
> Dave
> 
>  
> 
> ------------------------------------------------------------------------
> 
> *From:* owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org] 
> *On Behalf Of *Subhamoy Pal
> *Sent:* Thursday, January 04, 2007 10:02 AM
> *To:* sv-bc@server.eda-stds.org; sv-ec@server.eda-stds.org
> *Subject:* [sv-bc] streaming operator example
> 
>  
> 
> In SV LRM 1800-2005 section no 8.17,
> 
>  
> 
> I found the following example:
> 
>  
> 
> “{ << 4 { 6'b11_0101 }} // generates stream 'b0101_11”
> 
>  
> 
> This, I think, is wrong.
> 
>  
> 
> “If a slice size is specified, then the data to be streamed are first 
> broken up into slices with the specified number of bits, and then the 
> slices are
> 
> streamed in the specified order.”
> 
>  
> 
> However the verse does not mention the order of breaking up, so the 
> above stream can be broken up as ‘b1101_01 (Left->right) or ‘b11_0101 
> (Right->left). Now stream operator can make the result stream either as 
> ‘b01_1101 or as ‘b0101_11.
> 
>  
> 
> Why the first one is not chosen here is not clear to me. Can anyone 
> explain on this?
> 
>  
> 
>  
> 
> --Subhamoy
> 
>  
> 
> 
> -- 
> This message has been scanned for viruses and
> dangerous content by *MailScanner* <http://www.mailscanner.info/>*, and is
> believed to be clean.
> -- 
> This message has been scanned for viruses and
> dangerous content by *MailScanner* <http://www.mailscanner.info/>, and is
> believed to be clean. *


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

This archive was generated by hypermail 2.1.8 : Thu Jan 04 2007 - 12:38:15 PST