From: Yves Delley Date: Wed, 9 Sep 2015 13:32:09 +0000 (+0200) Subject: fixed bug in value_bits_sign of mul operatiors X-Git-Tag: 24jan2021_ls180~2099^2~20^2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6e9d6d7a8e4456e1782a5eabb09287dc7a413789;p=litex.git fixed bug in value_bits_sign of mul operatiors --- diff --git a/migen/fhdl/bitcontainer.py b/migen/fhdl/bitcontainer.py index 381afc35..9763845f 100644 --- a/migen/fhdl/bitcontainer.py +++ b/migen/fhdl/bitcontainer.py @@ -50,13 +50,13 @@ def value_bits_sign(v): elif v.op == "*": if not obs[0][1] and not obs[1][1]: # both operands unsigned - return obs[0][0] + obs[1][0] + return obs[0][0] + obs[1][0], False elif obs[0][1] and obs[1][1]: # both operands signed - return obs[0][0] + obs[1][0] - 1 + return obs[0][0] + obs[1][0] - 1, True else: # one operand signed, the other unsigned (add sign bit) - return obs[0][0] + obs[1][0] + 1 - 1 + return obs[0][0] + obs[1][0] + 1 - 1, True elif v.op == "<<<": if obs[1][1]: extra = 2**(obs[1][0] - 1) - 1