+from nmutil.pipemodbase import PipeModBase
+from soc.fu.branch.pipe_data import BranchInputData
+from nmigen import Module
+
+# gives a 1-clock delay to stop combinatorial link between in and out
+class DummyBranchStage(PipeModBase):
+ def __init__(self, pspec): super().__init__(pspec, "dummy")
+ def ispec(self): return BranchInputData(self.pspec)
+ def ospec(self): return BranchInputData(self.pspec)
+
+ def elaborate(self, platform):
+ m = Module()
+ m.d.comb += self.o.eq(self.i) # pass-through output
+ return m
+
+class BranchDummyStages(PipeModBaseChain):
+ def get_chain(self):
+ dummy = DummyBranchStage(self.pspec)
+ return [dummy]
+