add TODO comment-notes and rename part_prods to just parts,
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 7 Apr 2022 13:43:43 +0000 (14:43 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 7 Apr 2022 13:43:43 +0000 (14:43 +0100)
starting it from self.terms

src/nmigen_gf/hdl/clmul.py

index a3831aa882da90ccbd69d20b55966da2006f72fd..c332575a673843481dc847b5042113fc3bd510bf 100644 (file)
@@ -63,13 +63,15 @@ class CLMulAdd(Elaboratable):
     def elaborate(self, platform):
         m = Module()
 
-        part_prods = []
+        parts = self.terms
         for shift in range(self.factor_width):
             part_prod = Signal(self.output.width, name=f"part_prod_{shift}")
+            # TODO comment (nice ASCII diagram in docstring then refer to it?)
             mask = Repl(self.factor2[shift], self.factor_width)
-            m.d.comb += part_prod.eq((self.factor1 & mask) << shift)
-            part_prods.append(part_prod)
+            m.d.comb += parts.eq((self.factor1 & mask) << shift)
+            parts.append(parts)
 
-        output = treereduce(part_prods + self.terms, operator.xor)
+        # TODO comment
+        output = treereduce(parts, operator.xor)
         m.d.comb += self.output.eq(output)
         return m