"""
-
import sys
import functools
-from nmigen import Module, Signal, Cat, Const, Mux, Elaboratable
-from nmigen.cli import main, verilog
-
from nmutil.singlepipe import ControlBase
from nmutil.concurrentunit import ReservationStations, num_bits
-from ieee754.fpcommon.getop import FPADDBaseData
-from ieee754.fpcommon.pack import FPPackData
from ieee754.fpcommon.normtopack import FPNormToPack
-
-
-from nmigen import Module, Signal, Elaboratable
-from math import log
-
-from ieee754.fpcommon.getop import FPPipeContext
-
from ieee754.pipeline import PipelineSpec, DynamicPipe
from ieee754.fcvt.float2int import FPCVTFloatToIntMod
from ieee754.fcvt.downsize import FPCVTDownConvertMod
+# not used, yet
+# from nmigen import Signal
class SignedOp:
def __init__(self):
self.signed = Signal(reset_less=True)
sc = modkls(in_pspec, out_pspec)
in_pspec.stage = sc
super().__init__(in_pspec)
- self.out = self.ospec(None)
+# this one is slightly weird-looking because of course the INT output
+# is, duh, an INT, so of course does not get "FP normalised".
class FPCVTFtoIntBasePipe(ControlBase):
def __init__(self, modkls, e_extra, in_pspec, out_pspec):
ControlBase.__init__(self)
class FPCVTMuxInOutBase(ReservationStations):
""" Reservation-Station version of FPCVT pipeline.
- * fan-in on inputs (an array of FPADDBaseData: a,b,mid)
- * 2-stage multiplier pipeline
+ * fan-in on inputs (an array of FPBaseData: a,b,mid)
+ * converter pipeline (alu)
* fan-out on outputs (an array of FPPackData: z,mid)
Fan-in and Fan-out are combinatorial.
self.alu = pkls(modkls, e_extra, self.in_pspec, self.out_pspec)
ReservationStations.__init__(self, num_rows)
- def i_specfn(self):
- return FPADDBaseData(self.in_pspec)
-
- def o_specfn(self):
- return FPPackData(self.out_pspec)
-
class FPCVTF2IntMuxInOut(FPCVTMuxInOutBase):
""" Reservation-Station version of FPCVT pipeline.
- * fan-in on inputs (an array of FPADDBaseData: a,b,mid)
+ * fan-in on inputs (an array of FPBaseData: a,b,mid)
* 2-stage multiplier pipeline
* fan-out on outputs (an array of FPPackData: z,mid)