hdl.ast: avoid unnecessary sign padding in ArrayProxy.
authorwhitequark <whitequark@whitequark.org>
Wed, 26 Aug 2020 06:58:22 +0000 (06:58 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 31 Dec 2021 15:06:05 +0000 (15:06 +0000)
commit2b91c39d0bcbd965413d2523f1bc50b3caad747b
tree90a18cf1148d6f42de02d6bb528fde942dd8612f
parent593e95e327889159af17794737435e7f81f737e7
hdl.ast: avoid unnecessary sign padding in ArrayProxy.

Before this commit, ArrayProxy would add sign padding (an extra bit)
a homogeneous array of signed values, or an array where all unsigned
values are smaller than the largest signed one. After this commit,
ArrayProxy would only add padding in arrays with mixed signedness
where all signed values are smaller or equal in size to the largest
unsigned value.

Fixes #476.

Co-authored-by: Pepijn de Vos <pepijndevos@gmail.com>
nmigen/hdl/ast.py
nmigen/test/test_hdl_ast.py