Rajiv I've copied this to SV-EC, since the streaming operators were part of their remit. > Is context of streaming expressions self determined or not ? > Consider the following > assign out[7:0] = {<< 1 {{>> 1 {3'b110}}}}; > While evaluating this nested streaming expression , when we evaluate > {<<1{{>> 1 {3'b110}}}} > > If self determined, > evaluation of leaf part {{>> 1 {3'b110}}} will be 110 > and similarly final out put of expression will be out [7:0] = 01100000 > > If not, > evaluation of {{>> 1 {3'b110}}} will be: 11000000 (padding done as > stream size is smaller than variable size) > and final out in this case out[7:0] = 00000110 This is related to Mantis 1707, which tried to clarify some of the uncertainty around the streaming operators. You can find the amended text in clause 11.4.14 of P1800-2009 draft 8. At the time I wrote 1707, there was considerable disagreement between implementations. I think there remain some imperfections in the new version, but it's at least somewhat clearer than it was. I believe that the direct answer to your question is that streaming expressions are neither self- nor context- determined, but special rules apply to them. However, a streaming expression that is a subexpression of another streaming expression should be first cast to an array of bit, which effectively makes it self-determined. -- Jonathan Bromley Consultant DOULOS - Developing Design Know-how VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services Doulos Ltd. Church Hatch, 22 Market Place, Ringwood, Hampshire, BH24 1AW, UK Tel: +44 (0)1425 471223 Email: jonathan.bromley@doulos.com Fax: +44 (0)1425 471573 Web: http://www.doulos.com This message may contain personal views which are not the views of Doulos Ltd., unless specifically stated. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Wed Dec 17 01:56:45 2008
This archive was generated by hypermail 2.1.8 : Wed Dec 17 2008 - 01:57:27 PST