from nmigen import Module
from nmigen.cli import main, verilog
-from singlepipe import (StageChain, UnbufferedPipeline,
+from singlepipe import (StageChain, SimpleHandshake,
PassThroughStage)
from fpbase import FPState
from fpadd.add1 import FPAddStage1Mod
-class FPAddAlignSingleAdd(FPState, UnbufferedPipeline):
+class FPAddAlignSingleAdd(FPState, SimpleHandshake):
def __init__(self, width, id_wid):
FPState.__init__(self, "align")
self.width = width
self.id_wid = id_wid
- UnbufferedPipeline.__init__(self, self) # pipeline is its own stage
+ SimpleHandshake.__init__(self, self) # pipeline is its own stage
self.a1o = self.ospec()
def ispec(self):
from nmigen import Module
from nmigen.cli import main, verilog
-from singlepipe import (ControlBase, UnbufferedPipeline, PassThroughStage)
+from singlepipe import (ControlBase, SimpleHandshake, PassThroughStage)
from multipipe import CombMuxOutPipe
from multipipe import PriorityCombMuxInPipe
from math import log
from fpbase import FPNumDecode
-from singlepipe import UnbufferedPipeline, StageChain
+from singlepipe import SimpleHandshake, StageChain
from fpbase import FPState, FPID
from fpcommon.getop import FPADDBaseData
m.next = "denormalise"
-class FPAddSpecialCasesDeNorm(FPState, UnbufferedPipeline):
+class FPAddSpecialCasesDeNorm(FPState, SimpleHandshake):
""" special cases: NaNs, infs, zeros, denormalised
NOTE: some of these are unique to add. see "Special Operations"
https://steve.hollasch.net/cgindex/coding/ieeefloat.html
FPState.__init__(self, "special_cases")
self.width = width
self.id_wid = id_wid
- UnbufferedPipeline.__init__(self, self) # pipe is its own stage
+ SimpleHandshake.__init__(self, self) # pipe is its own stage
self.out = self.ospec()
def ispec(self):
from fpbase import FPOp
from fpbase import Trigger
-from singlepipe import (StageChain, UnbufferedPipeline)
+from singlepipe import (StageChain, SimpleHandshake)
from fpbase import FPState, FPID
from fpcommon.getop import (FPGetOp, FPADDBaseData, FPGet2Op)
from fpbase import FPNumIn, FPNumOut, FPOp, Overflow, FPBase, FPNumBase
from fpbase import MultiShiftRMerge, Trigger
-from singlepipe import (ControlBase, StageChain, UnbufferedPipeline,
+from singlepipe import (ControlBase, StageChain, SimpleHandshake,
PassThroughStage)
from multipipe import CombMuxOutPipe
from multipipe import PriorityCombMuxInPipe
#from nmigen.cli import main, verilog
-from singlepipe import StageChain, UnbufferedPipeline
+from singlepipe import StageChain, SimpleHandshake
from fpbase import FPState, FPID
from fpcommon.postcalc import FPAddStage1Data
from fpcommon.pack import FPPackData, FPPackMod
-class FPNormToPack(FPState, UnbufferedPipeline):
+class FPNormToPack(FPState, SimpleHandshake):
def __init__(self, width, id_wid):
FPState.__init__(self, "normalise_1")
self.id_wid = id_wid
self.width = width
- UnbufferedPipeline.__init__(self, self) # pipeline is its own stage
+ SimpleHandshake.__init__(self, self) # pipeline is its own stage
def ispec(self):
return FPAddStage1Data(self.width, self.id_wid) # Norm1ModSingle ispec
from multipipe import CombMultiOutPipeline, CombMuxOutPipe
from multipipe import PriorityCombMuxInPipe
-from singlepipe import UnbufferedPipeline
+from singlepipe import SimpleHandshake
class PassData: # (Value):
-class PassThroughPipe(UnbufferedPipeline):
+class PassThroughPipe(SimpleHandshake):
def __init__(self):
- UnbufferedPipeline.__init__(self, PassThroughStage())
+ SimpleHandshake.__init__(self, PassThroughStage())
class InputTest:
from nmigen.cli import verilog, rtlil
from multipipe import CombMuxOutPipe
-from singlepipe import UnbufferedPipeline
+from singlepipe import SimpleHandshake
class PassInData:
-class PassThroughPipe(UnbufferedPipeline):
+class PassThroughPipe(SimpleHandshake):
def __init__(self):
- UnbufferedPipeline.__init__(self, PassThroughDataStage())
+ SimpleHandshake.__init__(self, PassThroughDataStage())