X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fadd%2Ffpcommon%2Fnormtopack.py;h=87d08125f8723738db9177b4275f2c542b4967d2;hb=6bff1a997f3846872cf489c24b5c01426c4dc97c;hp=2eb4459255e62bb93aa762d2057b2a3a7a80d078;hpb=6d7f448a7ba1f400e724eaafc2d56ee3532b549b;p=ieee754fpu.git diff --git a/src/add/fpcommon/normtopack.py b/src/add/fpcommon/normtopack.py index 2eb44592..87d08125 100644 --- a/src/add/fpcommon/normtopack.py +++ b/src/add/fpcommon/normtopack.py @@ -2,17 +2,9 @@ # Copyright (C) Jonathan P Dawson 2013 # 2013-12-12 -from nmigen import Module, Signal, Cat, Mux, Array, Const -from nmigen.lib.coding import PriorityEncoder -from nmigen.cli import main, verilog -from math import log - -from fpbase import FPNumIn, FPNumOut, FPOp, Overflow, FPBase, FPNumBase -from fpbase import MultiShiftRMerge, Trigger -from singlepipe import (ControlBase, StageChain, UnbufferedPipeline, - PassThroughStage) -from multipipe import CombMuxOutPipe -from multipipe import PriorityCombMuxInPipe +#from nmigen.cli import main, verilog + +from singlepipe import StageChain, SimpleHandshake from fpbase import FPState, FPID from fpcommon.postcalc import FPAddStage1Data @@ -22,13 +14,13 @@ from fpcommon.corrections import FPCorrectionsMod 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 @@ -45,7 +37,8 @@ class FPNormToPack(FPState, UnbufferedPipeline): rmod = FPRoundMod(self.width, self.id_wid) cmod = FPCorrectionsMod(self.width, self.id_wid) pmod = FPPackMod(self.width, self.id_wid) - chain = StageChain([nmod, rmod, cmod, pmod]) + stages = [nmod, rmod, cmod, pmod] + chain = StageChain(stages) chain.setup(m, i) self.out_z = pmod.ospec()