Icarus does undef propagation of const multiplies incorrectly #18
Comments
|
It's not exactly related, as it is one of the general optimisations the compiler does, so would happen even if the second operand was a variable. I've fixed this in other places by adding a check that the second operand is not a four-state signal, but I missed this one. |
martinwhitaker
added a commit
that referenced
this issue
Feb 27, 2014
…ncorrect. When an expression is elaborated, the compiler converts multiplies with one constamt zero operand into a constant zero value. This is only valid if the other operand is not a 4-state variable.
|
I've pushed a fix for this to the git master branch. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The following module should set the output to constant 4'bxxxx:
But Icarus Verilog (git a3450bf) is too smart and outputs 4'b0000 instead.
I guess this is related to issue #15.
The text was updated successfully, but these errors were encountered: