hdl.ast: avoid unnecessary sign padding in ArrayProxy.
authorwhitequark <whitequark@whitequark.org>
Wed, 26 Aug 2020 06:58:22 +0000 (06:58 +0000)
committerwhitequark <whitequark@whitequark.org>
Wed, 26 Aug 2020 07:07:48 +0000 (07:07 +0000)
commit00026c6e4a0d3f9c2eff054b1bd4d8d18342a2ed
tree619eb366140540508296210bc7057205be43e46b
parentcb81618c28d9cbcf1713bbcf632c740a12b30d45
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