2574517164094c5cd9da58e58da8c425fb3b1f3d
1 from nmutil
.singlepipe
import ControlBase
2 from nmutil
.pipemodbase
import PipeModBaseChain
3 from soc
.fu
.shift_rot
.input_stage
import ShiftRotInputStage
4 from soc
.fu
.shift_rot
.main_stage
import ShiftRotMainStage
5 from soc
.fu
.alu
.output_stage
import ALUOutputStage
7 class MulStages1(PipeModBaseChain
):
9 inp
= ALUInputStage(self
.pspec
)
10 main
= MulMainStage1(self
.pspec
)
13 class MulStages2(PipeModBaseChain
):
15 main2
= MulMainStage2(self
.pspec
)
16 out
= ALUOutputStage(self
.pspec
)
20 class ShiftRotBasePipe(ControlBase
):
21 def __init__(self
, pspec
):
22 ControlBase
.__init
__(self
)
23 self
.pipe1
= MulStages1(pspec
)
24 self
.pipe2
= MulStages2(pspec
)
25 self
._eqs
= self
.connect([self
.pipe1
, self
.pipe2
])
27 def elaborate(self
, platform
):
28 m
= ControlBase
.elaborate(self
, platform
)
29 m
.submodules
.pipe
= self
.pipe1