self.inpipe = TestPriorityMuxPipe(nr) # fan-in (combinatorial)
self.pipe1 = PassThroughPipe(nr) # stage 1 (clock-sync)
self.pipe2 = PassThroughPipe(nr) # stage 2 (clock-sync)
+ self.pipe3 = PassThroughPipe(nr) # stage 3 (clock-sync)
+ self.pipe4 = PassThroughPipe(nr) # stage 4 (clock-sync)
self.outpipe = TestMuxOutPipe(nr) # fan-out (combinatorial)
self.p = self.inpipe.p # kinda annoying,
m.submodules.inpipe = self.inpipe
m.submodules.pipe1 = self.pipe1
m.submodules.pipe2 = self.pipe2
+ m.submodules.pipe3 = self.pipe3
+ m.submodules.pipe4 = self.pipe4
m.submodules.outpipe = self.outpipe
m.d.comb += self.inpipe.n.connect_to_next(self.pipe1.p)
m.d.comb += self.pipe1.connect_to_next(self.pipe2)
- m.d.comb += self.pipe2.connect_to_next(self.outpipe)
+ m.d.comb += self.pipe2.connect_to_next(self.pipe3)
+ m.d.comb += self.pipe3.connect_to_next(self.pipe4)
+ m.d.comb += self.pipe4.connect_to_next(self.outpipe)
return m