hdl.ast: Fix width for unary minus operator on signed argument.
authorMarcin Kościelnicki <mwk@0x04.net>
Tue, 3 Dec 2019 17:33:26 +0000 (18:33 +0100)
committerwhitequark <cz@m-labs.hk>
Wed, 4 Dec 2019 06:55:35 +0000 (06:55 +0000)
commitaf847f746283eb16d97b67fccb16aa333f8f3560
tree1a2c84fa5b05c80d04735f3a74b1cfc5ba06a019
parentf6856526c4ce5a156b61095931c839de9318a3f3
hdl.ast: Fix width for unary minus operator on signed argument.

To properly represent a negation of a signed X-bit quantity we may, in
general, need a signed (X+1)-bit signal — for example, negation of
3-bit -4 is 4, which is not representable in signed 3 bits.
nmigen/hdl/ast.py
nmigen/test/test_hdl_ast.py