frameline GW: remove router

This commit is contained in:
morgan 2025-01-14 11:37:58 +08:00
parent 62fa023efc
commit 3ca9c12c50

View File

@ -607,38 +607,3 @@ class ROI_Pipeline(Module):
# DEBUG
self.source = self.pipeline[-1].source
self.comb += self.source.ack.eq(1) # simulated a proper consumer, idk why but without this it will destory timing
class Frame_Packet_Router(Module):
# packet size expressed in bits
def __init__(self, downconns, framebuffer, packet_size, pmod_pads):
n_downconn = len(downconns)
n_buffer = len(framebuffer)
assert n_downconn > 0 and n_buffer > 0
self.n_ext_active = Signal(max=n_downconn)
self.routing_table = [Signal(char_width) for _ in range(1, n_buffer)]
# # #
# +---------+ +-------------+
# rx pipline ----->| | | |------> crc checker ------> raw stream data
# | arbiter |---->| broadcaster |
# rx pipline ----->| | | |------> crc checker ------> raw stream data
# +---------+ +-------------+
#
self.submodules.arbiter = arbiter = Stream_Arbiter(n_downconn)
self.sync += arbiter.n_ext_active.eq(self.n_ext_active)
self.submodules.broadcaster = broadcaster = Stream_Broadcaster(n_buffer)
for i, s in enumerate(self.routing_table):
self.sync += broadcaster.routing_ids[i].eq(s)
for i, d in enumerate(downconns):
# Assume downconns pipeline already marks the eop
self.comb += d.source.connect(arbiter.sinks[i])
self.comb += arbiter.source.connect(broadcaster.sink)
for i, fb in enumerate(framebuffer):
self.comb += broadcaster.sources[i].connect(fb.sink),