From: Cary R. <cy...@ya...> - 2008-10-30 21:43:00
|
--- On Thu, 10/30/08, Stephen Williams <st...@ic...> wrote: > The ! would and should interfere with the expression width > calculation > because its argument is self-determined. In other words, it > should > prevent the l-value width impacting the width of the > argument > expression. Yes it should interfere with it's argument, but it should not interfere with what is calling it as an argument. ! has a higher precedence so it is bound first. The division is then done using the resulting expression from ! and the zero variable. The division should be done at the L-value width not the argument width. It is this incorrect width calculation that is causing the incorrect run-time result. My guess is that ! is being stubborn about resizing itself. FYI, one of your recent patches fixed the compiler to give the correct result. Also, replacing the !1'b0 with 1'b1 will make things work correctly. Cary |