Exemplo n.º 1
0
    def __init__(self):
        self.submodules.streamer = PacketStreamer(
            EndpointDescription([("data", 24)], packetized=True))
        self.submodules.ycbcr444to422 = YCbCr444to422()
        self.submodules.ycbcr422to444 = YCbCr422to444()
        self.submodules.logger = PacketLogger(
            EndpointDescription([("data", 24)], packetized=True))

        self.comb += [
            Record.connect(self.streamer.source,
                           self.ycbcr444to422.sink,
                           leave_out=["data"]),
            self.ycbcr444to422.sink.payload.y.eq(
                self.streamer.source.data[16:24]),
            self.ycbcr444to422.sink.payload.cb.eq(
                self.streamer.source.data[8:16]),
            self.ycbcr444to422.sink.payload.cr.eq(
                self.streamer.source.data[0:8]),
            Record.connect(self.ycbcr444to422.source, self.ycbcr422to444.sink),
            Record.connect(self.ycbcr422to444.source,
                           self.logger.sink,
                           leave_out=["y", "cb", "cr"]),
            self.logger.sink.data[16:24].eq(self.ycbcr422to444.source.y),
            self.logger.sink.data[8:16].eq(self.ycbcr422to444.source.cb),
            self.logger.sink.data[0:8].eq(self.ycbcr422to444.source.cr)
        ]
Exemplo n.º 2
0
    def __init__(self):
        self.submodules.streamer = PacketStreamer(
            EndpointDescription([("data", 24)], packetized=True))
        self.submodules.ycbcr2rgb = YCbCr2RGB()
        self.submodules.logger = PacketLogger(
            EndpointDescription([("data", 24)], packetized=True))

        self.comb += [
            Record.connect(self.streamer.source,
                           self.ycbcr2rgb.sink,
                           leave_out=["data"]),
            self.ycbcr2rgb.sink.payload.y.eq(self.streamer.source.data[16:24]),
            self.ycbcr2rgb.sink.payload.cb.eq(self.streamer.source.data[8:16]),
            self.ycbcr2rgb.sink.payload.cr.eq(self.streamer.source.data[0:8]),
            Record.connect(self.ycbcr2rgb.source,
                           self.logger.sink,
                           leave_out=["r", "g", "b"]),
            self.logger.sink.data[16:24].eq(self.ycbcr2rgb.source.r),
            self.logger.sink.data[8:16].eq(self.ycbcr2rgb.source.g),
            self.logger.sink.data[0:8].eq(self.ycbcr2rgb.source.b)
        ]
Exemplo n.º 3
0
    def __init__(self):
        stream_description = EndpointDescription([("data", 128)],
                                                 packetized=True)

        self.submodules.streamer = PacketStreamer(stream_description)
        self.submodules.streamer_randomizer = AckRandomizer(
            stream_description, 50)
        self.submodules.buffer = EncoderBuffer()
        self.submodules.logger_randomizer = AckRandomizer(
            stream_description, 50)
        self.submodules.logger = PacketLogger(stream_description)
        self.comb += [
            Record.connect(self.streamer.source,
                           self.streamer_randomizer.sink),
            Record.connect(self.streamer_randomizer.source, self.buffer.sink),
            Record.connect(self.buffer.source, self.logger_randomizer.sink),
            Record.connect(self.logger_randomizer.source, self.logger.sink)
        ]
Exemplo n.º 4
0
def tlp_completion_layout(dw):
    layout = tlp_completion_header.get_layout() + [("dat", dw),
                                                   ("be", dw // 8)]
    return EndpointDescription(layout, packetized=True)
Exemplo n.º 5
0
def tlp_raw_layout(dw):
    layout = [("header", 4 * 32), ("dat", dw), ("be", dw // 8)]
    return EndpointDescription(layout, packetized=True)
Exemplo n.º 6
0
def user_description(dw):
    param_layout = [("dst", 8), ("length", 32)]
    payload_layout = [("data", dw), ("error", dw // 8)]
    return EndpointDescription(payload_layout, param_layout, packetized=True)
Exemplo n.º 7
0
def packet_description(dw):
    param_layout = packet_header.get_layout()
    payload_layout = [("data", dw), ("error", dw // 8)]
    return EndpointDescription(payload_layout, param_layout, packetized=True)
Exemplo n.º 8
0
def phy_description(dw):
    payload_layout = [("data", dw)]
    return EndpointDescription(payload_layout, packetized=False)