Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Fixes for GitHub issues 13 and 15.
The verinum arithmetic operators now observe the standard Verilog rules for calculating the result width if all operands are sized. If any operand is unsized, the result is lossless, as before. They also now all observe the standard rules for handling partially undefined operands (if any operand bit is 'x', the entire result is 'x'). I've also added the unary '-' operator, and renamed v_not() to be the unary '~' operator. This has allowed some simplification in other parts of the compiler.
- Loading branch information
Showing
with
235 additions
and 191 deletions.
- +4 −9 elab_expr.cc
- +2 −4 elab_scope.cc
- +2 −2 eval.cc
- +14 −22 eval_tree.cc
- +2 −2 parse.y
- +202 −145 verinum.cc
- +9 −7 verinum.h
Oops, something went wrong.