a9c4f337be5c5c247efa016032d03efd0d8e959c
1 from nmutil
.singlepipe
import ControlBase
2 from nmutil
.pipemodbase
import PipeModBaseChain
3 from soc
.fu
.alu
.input_stage
import ALUInputStage
4 from soc
.fu
.alu
.main_stage
import ALUMainStage
5 from soc
.fu
.alu
.output_stage
import ALUOutputStage
8 class ALUStagesOld(PipeModBaseChain
):
10 inp
= ALUInputStage(self
.pspec
)
11 main
= ALUMainStage(self
.pspec
)
12 return [inp
, main
, out
]
15 class ALUStageEnd(PipeModBaseChain
):
17 out
= ALUOutputStage(self
.pspec
)
21 class ALUBasePipeOld(ControlBase
):
22 def __init__(self
, pspec
):
23 ControlBase
.__init
__(self
)
25 self
.pipe1
= ALUStages(pspec
)
26 self
.pipe2
= ALUStageEnd(pspec
)
27 self
._eqs
= self
.connect([self
.pipe1
, self
.pipe2
])
29 def elaborate(self
, platform
):
30 m
= ControlBase
.elaborate(self
, platform
)
31 m
.submodules
.pipe1
= self
.pipe1
32 m
.submodules
.pipe2
= self
.pipe2
37 class ALUStages(PipeModBaseChain
):
39 inp
= ALUInputStage(self
.pspec
)
40 main
= ALUMainStage(self
.pspec
)
41 out
= ALUOutputStage(self
.pspec
)
42 return [inp
, main
, out
]
45 class ALUBasePipe(ControlBase
):
46 def __init__(self
, pspec
):
47 ControlBase
.__init
__(self
)
49 self
.pipe1
= ALUStages(pspec
)
50 self
._eqs
= self
.connect([self
.pipe1
])
52 def elaborate(self
, platform
):
53 m
= ControlBase
.elaborate(self
, platform
)
54 m
.submodules
.pipe1
= self
.pipe1