RE: [sv-bc] When are constant expressions evaluated?

From: Bresticker, Shalom <shalom.bresticker_at_.....>
Date: Sun Feb 11 2007 - 04:49:37 PST
Regarding case 1, I forgot to mention an additional consideration, at least with the ?: operator, which is evaluation of the size of the result, which is the maximum of the sizes of both expression2 and expression 3.

Shalom

> 1.
>    sync
>      #(.BUS_WIDTH(ADD_WIDTH),
>        .RST_VALUE(ADD_WIDTH == 2 ? 2'b11  :
>                   ADD_WIDTH == 3 ? 3'b111 :
>                   {1'b1,{ADD_WIDTH-3{1'b0}},2'b11})
>        )
>        sync(...);
> 
> In this case, if ADD_WIDTH is less than 3, the replication constant
> ADD_WIDTH-3 is negative and it is not legal.
> 
> However, if ADD_WIDTH is 2, one could say that the replication constant
> does not need to be evaluated at all.
> 
> This is related to the short-circuiting issue we discussed last year.
> 
> Is this legal? Should it be?

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Sun Feb 11 04:50:28 2007

This archive was generated by hypermail 2.1.8 : Sun Feb 11 2007 - 04:50:36 PST