1 from nmutil
.pipemodbase
import PipeModBaseChain
, PipeModBase
2 from ieee754
.fpcommon
.postnormalise
import FPNorm1Data
3 from ieee754
.fpcommon
.roundz
import FPRoundMod
4 from ieee754
.fpcommon
.corrections
import FPCorrectionsMod
5 from ieee754
.fpcommon
.pack
import FPPackMod
6 from ieee754
.fpfma
.main_stage
import FPFMAPostCalcData
7 from nmigen
.hdl
.dsl
import Module
9 from ieee754
.fpfma
.util
import get_fpformat
12 class FPFMANorm(PipeModBase
):
13 def __init__(self
, pspec
):
14 super().__init
__(pspec
, "norm")
17 return FPFMAPostCalcData(self
.pspec
)
20 return FPNorm1Data(self
.pspec
)
22 def elaborate(self
, platform
):
24 fpf
= get_fpformat(self
.pspec
)
28 raise NotImplementedError # FIXME: finish
40 class FPFMANormToPack(PipeModBaseChain
):
41 def __init__(self
, pspec
):
42 super().__init
__(pspec
)
45 """ gets chain of modules
47 nmod
= FPFMANorm(self
.pspec
)
48 rmod
= FPRoundMod(self
.pspec
)
49 cmod
= FPCorrectionsMod(self
.pspec
)
50 pmod
= FPPackMod(self
.pspec
)
51 return [nmod
, rmod
, cmod
, pmod
]