From c91202a21ea96ee4e0e79489596e5dbe1d8aa88e Mon Sep 17 00:00:00 2001 From: morgan Date: Fri, 7 Feb 2025 10:31:55 +0800 Subject: [PATCH] frameline: update docs and fn name --- src/gateware/cxp_frame_pipeline.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/gateware/cxp_frame_pipeline.py b/src/gateware/cxp_frame_pipeline.py index 02aa8ad..f145277 100644 --- a/src/gateware/cxp_frame_pipeline.py +++ b/src/gateware/cxp_frame_pipeline.py @@ -918,26 +918,23 @@ class Stream2Pixel4x_Converter(Module): """ def __init__(self, res_width, count_width): - # # 32+8(dchar) 32 4x pixel - # sink ────/────> crc checker ─────> frame header ───/───> eol inserter ─────> 8, 10, 12, 14, 16 bits ───/───> pixel coordinate ─────> 4x pixel with - # reader pixel unpacker tracker coordinate - # + # sink ────/────> crc checker ─────> frame header ───/───> end of line ─────> 8, 10, 12, 14, 16 bits ───/───> pixel coordinate ─────> 4x pixel with + # reader marker pixel unpacker tracker xy coordinate self.submodules.crc_checker = crc_checker = CXPCRC32_Checker() self.submodules.header_reader = header_reader = Frame_Header_Reader() - # Pixel Praser - self.submodules.formatter = formatter = End_of_line_Marker() - self.sync += formatter.l_size.eq(header_reader.metadata.l_size) - self.sink = formatter.sink + # Mark the word just before new line data with eop for pixel unpacker + self.submodules.eol_marker = eol_marker = End_of_line_Marker() + self.sync += eol_marker.l_size.eq(header_reader.metadata.l_size) - - self.pipeline = [crc_checker, header_reader, formatter] + self.pipeline = [crc_checker, header_reader, eol_marker] for s, d in zip(self.pipeline, self.pipeline[1:]): self.comb += s.source.connect(d.sink) self.sink = self.pipeline[0].sink + # TODO: add docs for each modules unpackers = {} for s in [8, 10, 12, 14, 16]: @@ -960,10 +957,10 @@ class Stream2Pixel4x_Converter(Module): self.pixel4x = tracker.pixel4x # discard unknown pixel format - mux_cases = {"default": [formatter.source.ack.eq(1)]} + mux_cases = {"default": [eol_marker.source.ack.eq(1)]} for fmt in pix_fmt: mux_cases[pix_fmt[fmt]] = [ - formatter.source.connect(unpackers[fmt].sink), + eol_marker.source.connect(unpackers[fmt].sink), unpackers[fmt].source.connect(tracker.sink), ]