From: Luke Kenneth Casson Leighton Date: Sat, 17 Aug 2019 07:14:10 +0000 (+0100) Subject: store mask in intermediary X-Git-Tag: ls180-24jan2020~521 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f1e3b659571167f37a29a0340829395e6ed9bbae;p=ieee754fpu.git store mask in intermediary --- diff --git a/src/ieee754/part_mul_add/multiply.py b/src/ieee754/part_mul_add/multiply.py index f0bb95b5..be736e8e 100644 --- a/src/ieee754/part_mul_add/multiply.py +++ b/src/ieee754/part_mul_add/multiply.py @@ -323,7 +323,10 @@ class AddReduce(Elaboratable): intermediate_terms.append(intermediate_term) m.d.comb += intermediate_term.eq(value) - part_mask = self._reg_partition_points.as_mask(len(self.output)) + # store mask in intermediary (simplifies graph) + part_mask = Signal(len(self.output), reset_less=True) + mask = self._reg_partition_points.as_mask(len(self.output)) + m.d.comb += part_mask.eq(mask) # create full adders for this recursive level. # this shrinks N terms to 2 * (N // 3) plus the remainder