from ieee754.fpcommon.fpbase import FPState, FPID
from ieee754.fpcommon.getop import FPADDBaseData
from ieee754.fpcommon.denorm import (FPSCData, FPAddDeNormMod)
+from ieee754.fpmul.align import FPAlignModSingle
class FPMulSpecialCasesMod(Elaboratable):
#m.submodules.sc_out_z = self.o.z
# decode: XXX really should move to separate stage
- width = self.pspec['width']
+ width = self.pspec.width
a1 = FPNumBaseRecord(width, False)
b1 = FPNumBaseRecord(width, False)
m.submodules.sc_decode_a = a1 = FPNumDecode(None, a1)
"""
smod = FPMulSpecialCasesMod(self.pspec)
dmod = FPAddDeNormMod(self.pspec, False)
+ amod = FPAlignModSingle(self.pspec, False)
- chain = StageChain([smod, dmod])
+ chain = StageChain([smod, dmod, amod])
chain.setup(m, i)
# only needed for break-out (early-out)
# self.out_do_z = smod.o.out_do_z
- self.o = dmod.o
+ self.o = amod.o # output is from last .o in the chain
def process(self, i):
return self.o