from nmigen import Module
from nmigen.cli import main, verilog
-from nmutil.singlepipe import (StageChain, SimpleHandshake)
+from nmutil.singlepipe import StageChain
-from ieee754.fpcommon.fpbase import FPState
+from ieee754.pipeline import DynamicPipe
from ieee754.fpcommon.denorm import FPSCData
from ieee754.fpcommon.postcalc import FPAddStage1Data
-from .mul0 import FPMulStage0Mod
-from .mul1 import FPMulStage1Mod
+from ieee754.fpmul.mul0 import FPMulStage0Mod
+from ieee754.fpmul.mul1 import FPMulStage1Mod
-class FPMulStages(FPState, SimpleHandshake):
+class FPMulStages(DynamicPipe):
def __init__(self, pspec):
- FPState.__init__(self, "mulstages")
self.pspec = pspec
- SimpleHandshake.__init__(self, self) # pipeline is its own stage
+ super().__init__(pspec)
self.m1o = self.ospec()
def ispec(self):
def process(self, i):
return self.o
- def action(self, m):
- m.d.sync += self.m1o.eq(self.process(None))
- m.next = "normalise_1"
-
-