X-Git-Url: https://git.libre-soc.org/?p=ieee754fpu.git;a=blobdiff_plain;f=src%2Fieee754%2Fpart_mul_add%2Fmultiply.py;h=93b1e22877e5998fc3134ee02f8c4d809b5c5617;hp=e2954e7609d21f200ecb1b25db81e0f9d8b9fe2e;hb=8cf32169a3ce0290028d0887b8fbde5e5e07480e;hpb=cb0766a2cfa982ee8afaaea6a171ef3de71b7840 diff --git a/src/ieee754/part_mul_add/multiply.py b/src/ieee754/part_mul_add/multiply.py index e2954e76..93b1e228 100644 --- a/src/ieee754/part_mul_add/multiply.py +++ b/src/ieee754/part_mul_add/multiply.py @@ -569,6 +569,9 @@ class AddReduce(Elaboratable): inputs = self.inputs ilen = len(inputs) while True: + groups = AddReduceSingle.full_adder_groups(len(inputs)) + if len(groups) == 0: + break next_level = AddReduceSingle(ilen, self.output_width, n_parts, next_levels, partition_points) mods.append(next_level) @@ -577,9 +580,6 @@ class AddReduce(Elaboratable): inputs = next_level.o.inputs ilen = len(inputs) part_ops = next_level.i.part_ops - next_groups = AddReduceSingle.full_adder_groups(len(inputs)) - if len(next_groups) == 0: - break next_level = FinalAdd(ilen, self.output_width, n_parts, next_levels, partition_points)