de-modulify PartitionedSignal, call "set_module" to use it
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 24 Jan 2020 11:07:33 +0000 (11:07 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 24 Jan 2020 11:07:33 +0000 (11:07 +0000)
src/ieee754/part/partsig.py
src/ieee754/part/test/test_partsig.py

index 949bebc2e148c27e5213df848db79ef5a35fbfc4..df7ad7b648d552c3740f9ca8ffbfa10843d36982 100644 (file)
@@ -11,21 +11,20 @@ the class turns into a SIMD variant of Signal.  *this is dynamic*.
 http://bugs.libre-riscv.org/show_bug.cgi?id=132
 """
 
-from nmigen import (Module, Signal, Elaboratable,
-                    )
 from ieee754.part_mul_add.adder import PartitionedAdder
+from nmigen import (Signal,
+                    )
 
-class PartitionedSignal(Elaboratable):
+class PartitionedSignal:
     def __init__(self, partition_points, *args, **kwargs):
         self.partpoints = partition_points
         self.sig = Signal(*args, **kwargs)
         self.modnames = {}
         for name in ['add']:
             self.modnames[name] = 0
-        self.m = Module()
 
-    def elaborate(self, platform):
-        return self.m
+    def set_module(self, m):
+        self.m = m
 
     def get_modname(self, category):
         self.modnames[category] += 1
index cae067dc633183356dc7efa14799114eed41fc41..36ec0a4166ea2dbe880116af7ff80a0f67071cd3 100644 (file)
@@ -30,8 +30,8 @@ class TestAddMod(Elaboratable):
 
     def elaborate(self, platform):
         m = Module()
-        m.submodules.a = self.a
-        m.submodules.b = self.b
+        self.a.set_module(m)
+        self.b.set_module(m)
         m.d.comb += self.add_output.eq(self.a + self.b)
 
         return m