316fb832918c4df0ac6828f29e2c339d3044ac7b
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 ShiftRotStages(PipeModBaseChain
):
9 inp
= ShiftRotInputStage(self
.pspec
)
10 main
= ShiftRotMainStage(self
.pspec
)
11 out
= ALUOutputStage(self
.pspec
)
12 return [inp
, main
, out
]
15 class ShiftRotBasePipe(ControlBase
):
16 def __init__(self
, pspec
):
17 ControlBase
.__init
__(self
)
18 self
.pipe1
= ShiftRotStages(pspec
)
19 self
._eqs
= self
.connect([self
.pipe1
])
21 def elaborate(self
, platform
):
22 m
= ControlBase
.elaborate(self
, platform
)
23 m
.submodules
.pipe
= self
.pipe1