Changes before work
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<mxfile host="Electron" modified="2024-08-20T04:42:09.934Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36" etag="9NoZqOs_DXCG2bzulEHw" version="21.2.8" type="device">
|
<mxfile host="Electron" modified="2024-08-20T14:56:23.857Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36" etag="5c_2cSqm02fkQC83S7Kw" version="21.2.8" type="device">
|
||||||
<diagram name="Page-1" id="8lX2gjxiGhIz8fm0OWgg">
|
<diagram name="Page-1" id="8lX2gjxiGhIz8fm0OWgg">
|
||||||
<mxGraphModel dx="2048" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
<mxGraphModel dx="1766" dy="629" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||||
<root>
|
<root>
|
||||||
<mxCell id="0" />
|
<mxCell id="0" />
|
||||||
<mxCell id="1" parent="0" />
|
<mxCell id="1" parent="0" />
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
<mxPoint x="140" as="targetPoint" />
|
<mxPoint x="140" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-320" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d80073;strokeColor=#A50040;startArrow=classic;startFill=1;" parent="hUmURhrymKCytomf8O3q-317" source="hUmURhrymKCytomf8O3q-339" edge="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-320" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#a0522d;strokeColor=#6D1F00;startArrow=classic;startFill=1;" parent="hUmURhrymKCytomf8O3q-317" source="hUmURhrymKCytomf8O3q-339" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="140" as="targetPoint" />
|
<mxPoint x="140" as="targetPoint" />
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
<mxPoint x="140" as="targetPoint" />
|
<mxPoint x="140" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-296" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d80073;strokeColor=#A50040;startArrow=classic;startFill=1;" parent="hUmURhrymKCytomf8O3q-293" source="hUmURhrymKCytomf8O3q-315" edge="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-296" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#a0522d;strokeColor=#6D1F00;startArrow=classic;startFill=1;" parent="hUmURhrymKCytomf8O3q-293" source="hUmURhrymKCytomf8O3q-315" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="140" as="targetPoint" />
|
<mxPoint x="140" as="targetPoint" />
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
@@ -213,7 +213,7 @@
|
|||||||
<mxPoint x="140" as="targetPoint" />
|
<mxPoint x="140" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-272" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d80073;strokeColor=#A50040;startArrow=classic;startFill=1;" parent="hUmURhrymKCytomf8O3q-269" source="hUmURhrymKCytomf8O3q-291" edge="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-272" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#a0522d;strokeColor=#6D1F00;startArrow=classic;startFill=1;" parent="hUmURhrymKCytomf8O3q-269" source="hUmURhrymKCytomf8O3q-291" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="140" as="targetPoint" />
|
<mxPoint x="140" as="targetPoint" />
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
@@ -368,14 +368,12 @@
|
|||||||
<mxPoint x="840.0000000000005" y="570.0578688524588" as="targetPoint" />
|
<mxPoint x="840.0000000000005" y="570.0578688524588" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-359" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;fillColor=#d80073;strokeColor=#A50040;" parent="1" source="hUmURhrymKCytomf8O3q-14" edge="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-359" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;fillColor=#d80073;strokeColor=#A50040;" parent="1" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="280" y="80" as="targetPoint" />
|
<mxPoint x="280" y="80" as="targetPoint" />
|
||||||
|
<mxPoint x="280.0256410256411" y="120" as="sourcePoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-14" value="AXI4-Lite mux/demux" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="200" y="120" width="160" height="40" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-19" value="axis demux" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;" parent="1" vertex="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-19" value="axis demux" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;" parent="1" vertex="1">
|
||||||
<mxGeometry x="-0.030000000000001137" y="320.03" width="120" height="40.06" as="geometry" />
|
<mxGeometry x="-0.030000000000001137" y="320.03" width="120" height="40.06" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
@@ -416,12 +414,12 @@
|
|||||||
<mxCell id="hUmURhrymKCytomf8O3q-99" value="" style="group;strokeColor=default;fillColor=none;container=0;" parent="hUmURhrymKCytomf8O3q-268" vertex="1" connectable="0">
|
<mxCell id="hUmURhrymKCytomf8O3q-99" value="" style="group;strokeColor=default;fillColor=none;container=0;" parent="hUmURhrymKCytomf8O3q-268" vertex="1" connectable="0">
|
||||||
<mxGeometry width="610" height="400" as="geometry" />
|
<mxGeometry width="610" height="400" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d80073;strokeColor=#A50040;startArrow=classic;startFill=1;" parent="hUmURhrymKCytomf8O3q-268" source="hUmURhrymKCytomf8O3q-13" edge="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#a0522d;strokeColor=#6D1F00;startArrow=classic;startFill=1;" parent="hUmURhrymKCytomf8O3q-268" source="hUmURhrymKCytomf8O3q-13" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="140" as="targetPoint" />
|
<mxPoint x="140" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d80073;strokeColor=#A50040;startArrow=classic;startFill=1;" parent="hUmURhrymKCytomf8O3q-268" source="hUmURhrymKCytomf8O3q-16" edge="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#a0522d;strokeColor=#6D1F00;startArrow=classic;startFill=1;" parent="hUmURhrymKCytomf8O3q-268" source="hUmURhrymKCytomf8O3q-16" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="140" as="targetPoint" />
|
<mxPoint x="140" as="targetPoint" />
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
@@ -497,34 +495,34 @@
|
|||||||
<mxCell id="wy1xcPKCa-p-PBI3JPLa-102" value="REGS" style="rounded=0;whiteSpace=wrap;html=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;container=0;" parent="hUmURhrymKCytomf8O3q-268" vertex="1">
|
<mxCell id="wy1xcPKCa-p-PBI3JPLa-102" value="REGS" style="rounded=0;whiteSpace=wrap;html=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;container=0;" parent="hUmURhrymKCytomf8O3q-268" vertex="1">
|
||||||
<mxGeometry x="430" y="9.999999999999993" width="120" height="60" as="geometry" />
|
<mxGeometry x="430" y="9.999999999999993" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-16" value="Ring Buffer Manager" style="rounded=0;whiteSpace=wrap;html=1;container=0;" parent="hUmURhrymKCytomf8O3q-268" vertex="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-16" value="Ring Buffer Client" style="rounded=0;whiteSpace=wrap;html=1;container=0;" parent="hUmURhrymKCytomf8O3q-268" vertex="1">
|
||||||
<mxGeometry x="80" y="310" width="120" height="60" as="geometry" />
|
<mxGeometry x="80" y="310" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-13" value="Ring Buffer Manager" style="rounded=0;whiteSpace=wrap;html=1;container=0;" parent="hUmURhrymKCytomf8O3q-268" vertex="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-13" value="Ring Buffer Client" style="rounded=0;whiteSpace=wrap;html=1;container=0;" parent="hUmURhrymKCytomf8O3q-268" vertex="1">
|
||||||
<mxGeometry x="80" y="90.07" width="120" height="60" as="geometry" />
|
<mxGeometry x="80" y="90.07" width="120" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-341" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.625;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#d80073;strokeColor=#A50040;startArrow=classic;startFill=1;" parent="1" target="hUmURhrymKCytomf8O3q-14" edge="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-341" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.625;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#a0522d;strokeColor=#6D1F00;startArrow=classic;startFill=1;" parent="1" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="300" y="230" as="sourcePoint" />
|
<mxPoint x="300" y="230" as="sourcePoint" />
|
||||||
<mxPoint x="330" y="190" as="targetPoint" />
|
<mxPoint x="300" y="160" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-342" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.563;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#d80073;strokeColor=#A50040;startArrow=classic;startFill=1;" parent="1" target="hUmURhrymKCytomf8O3q-14" edge="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-342" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.563;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#a0522d;strokeColor=#6D1F00;startArrow=classic;startFill=1;" parent="1" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="290" y="220" as="sourcePoint" />
|
<mxPoint x="290" y="220" as="sourcePoint" />
|
||||||
<mxPoint x="330" y="190" as="targetPoint" />
|
<mxPoint x="290.0799999999999" y="160" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-343" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fillColor=#d80073;strokeColor=#A50040;startArrow=classic;startFill=1;" parent="1" target="hUmURhrymKCytomf8O3q-14" edge="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-343" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fillColor=#a0522d;strokeColor=#6D1F00;startArrow=classic;startFill=1;" parent="1" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="280" y="210" as="sourcePoint" />
|
<mxPoint x="280" y="210" as="sourcePoint" />
|
||||||
<mxPoint x="330" y="190" as="targetPoint" />
|
<mxPoint x="280" y="160" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-344" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.438;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#d80073;strokeColor=#A50040;startArrow=classic;startFill=1;" parent="1" target="hUmURhrymKCytomf8O3q-14" edge="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-344" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.438;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#a0522d;strokeColor=#6D1F00;startArrow=classic;startFill=1;" parent="1" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="270" y="200" as="sourcePoint" />
|
<mxPoint x="270" y="200" as="sourcePoint" />
|
||||||
<mxPoint x="270" y="170" as="targetPoint" />
|
<mxPoint x="270.0799999999999" y="160" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="hUmURhrymKCytomf8O3q-345" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;fillColor=#6a00ff;strokeColor=#3700CC;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.625;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="wy1xcPKCa-p-PBI3JPLa-102" target="wy1xcPKCa-p-PBI3JPLa-122" edge="1">
|
<mxCell id="hUmURhrymKCytomf8O3q-345" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;fillColor=#6a00ff;strokeColor=#3700CC;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.625;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="wy1xcPKCa-p-PBI3JPLa-102" target="wy1xcPKCa-p-PBI3JPLa-122" edge="1">
|
||||||
@@ -668,6 +666,20 @@
|
|||||||
<mxPoint x="1020" y="520" as="targetPoint" />
|
<mxPoint x="1020" y="520" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
|
<mxCell id="DDA_X_hQHvZcJVnLFhaM-10" value="Ring Buffer Manager" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="200" y="120" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="DDA_X_hQHvZcJVnLFhaM-12" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#a0522d;strokeColor=#6D1F00;startArrow=classic;startFill=1;" edge="1" parent="1">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="640" y="720" as="sourcePoint" />
|
||||||
|
<mxPoint x="720" y="720" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="DDA_X_hQHvZcJVnLFhaM-13" value="ring buffer stream" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="DDA_X_hQHvZcJVnLFhaM-12">
|
||||||
|
<mxGeometry x="-0.2471" y="-1" relative="1" as="geometry">
|
||||||
|
<mxPoint x="10" y="-11" as="offset" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
</root>
|
</root>
|
||||||
</mxGraphModel>
|
</mxGraphModel>
|
||||||
</diagram>
|
</diagram>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 166 KiB |
@@ -151,29 +151,29 @@ logic tcp_tx_ip_payload_axis_tready;
|
|||||||
logic tcp_tx_ip_payload_axis_tlast;
|
logic tcp_tx_ip_payload_axis_tlast;
|
||||||
logic tcp_tx_ip_payload_axis_tuser;
|
logic tcp_tx_ip_payload_axis_tuser;
|
||||||
|
|
||||||
logic udp_ip_hdr_valid;
|
logic udp_rx_ip_hdr_valid;
|
||||||
logic udp_ip_hdr_ready;
|
logic udp_rx_ip_hdr_ready;
|
||||||
logic [47:0] udp_ip_eth_dest_mac;
|
logic [47:0] udp_rx_ip_eth_dest_mac;
|
||||||
logic [47:0] udp_ip_eth_src_mac;
|
logic [47:0] udp_rx_ip_eth_src_mac;
|
||||||
logic [15:0] udp_ip_eth_type;
|
logic [15:0] udp_rx_ip_eth_type;
|
||||||
logic [3:0] udp_ip_version;
|
logic [3:0] udp_rx_ip_version;
|
||||||
logic [3:0] udp_ip_ihl;
|
logic [3:0] udp_rx_ip_ihl;
|
||||||
logic [5:0] udp_ip_dscp;
|
logic [5:0] udp_rx_ip_dscp;
|
||||||
logic [1:0] udp_ip_ecn;
|
logic [1:0] udp_rx_ip_ecn;
|
||||||
logic [15:0] udp_ip_length;
|
logic [15:0] udp_rx_ip_length;
|
||||||
logic [15:0] udp_ip_identification;
|
logic [15:0] udp_rx_ip_identification;
|
||||||
logic [2:0] udp_ip_flags;
|
logic [2:0] udp_rx_ip_flags;
|
||||||
logic [12:0] udp_ip_fragment_offset;
|
logic [12:0] udp_rx_ip_fragment_offset;
|
||||||
logic [7:0] udp_ip_ttl;
|
logic [7:0] udp_rx_ip_ttl;
|
||||||
logic [7:0] udp_ip_protocol;
|
logic [7:0] udp_rx_ip_protocol;
|
||||||
logic [15:0] udp_ip_header_checksum;
|
logic [15:0] udp_rx_ip_header_checksum;
|
||||||
logic [31:0] udp_ip_source_ip;
|
logic [31:0] udp_rx_ip_source_ip;
|
||||||
logic [31:0] udp_ip_dest_ip;
|
logic [31:0] udp_rx_ip_dest_ip;
|
||||||
logic [7:0] udp_ip_payload_axis_tdata;
|
logic [7:0] udp_rx_ip_payload_axis_tdata;
|
||||||
logic udp_ip_payload_axis_tvalid;
|
logic udp_rx_ip_payload_axis_tvalid;
|
||||||
logic udp_ip_payload_axis_tready;
|
logic udp_rx_ip_payload_axis_tready;
|
||||||
logic udp_ip_payload_axis_tlast;
|
logic udp_rx_ip_payload_axis_tlast;
|
||||||
logic udp_ip_payload_axis_tuser;
|
logic udp_rx_ip_payload_axis_tuser;
|
||||||
|
|
||||||
// tx is less because IP adds it automatically.
|
// tx is less because IP adds it automatically.
|
||||||
logic udp_tx_ip_hdr_valid;
|
logic udp_tx_ip_hdr_valid;
|
||||||
@@ -191,29 +191,29 @@ logic udp_tx_ip_payload_axis_tready;
|
|||||||
logic udp_tx_ip_payload_axis_tlast;
|
logic udp_tx_ip_payload_axis_tlast;
|
||||||
logic udp_tx_ip_payload_axis_tuser;
|
logic udp_tx_ip_payload_axis_tuser;
|
||||||
|
|
||||||
logic icmp_ip_hdr_valid;
|
logic icmp_rx_ip_hdr_valid;
|
||||||
logic icmp_ip_hdr_ready;
|
logic icmp_rx_ip_hdr_ready;
|
||||||
logic [47:0] icmp_ip_eth_dest_mac;
|
logic [47:0] icmp_rx_ip_eth_dest_mac;
|
||||||
logic [47:0] icmp_ip_eth_src_mac;
|
logic [47:0] icmp_rx_ip_eth_src_mac;
|
||||||
logic [15:0] icmp_ip_eth_type;
|
logic [15:0] icmp_rx_ip_eth_type;
|
||||||
logic [3:0] icmp_ip_version;
|
logic [3:0] icmp_rx_ip_version;
|
||||||
logic [3:0] icmp_ip_ihl;
|
logic [3:0] icmp_rx_ip_ihl;
|
||||||
logic [5:0] icmp_ip_dscp;
|
logic [5:0] icmp_rx_ip_dscp;
|
||||||
logic [1:0] icmp_ip_ecn;
|
logic [1:0] icmp_rx_ip_ecn;
|
||||||
logic [15:0] icmp_ip_length;
|
logic [15:0] icmp_rx_ip_length;
|
||||||
logic [15:0] icmp_ip_identification;
|
logic [15:0] icmp_rx_ip_identification;
|
||||||
logic [2:0] icmp_ip_flags;
|
logic [2:0] icmp_rx_ip_flags;
|
||||||
logic [12:0] icmp_ip_fragment_offset;
|
logic [12:0] icmp_rx_ip_fragment_offset;
|
||||||
logic [7:0] icmp_ip_ttl;
|
logic [7:0] icmp_rx_ip_ttl;
|
||||||
logic [7:0] icmp_ip_protocol;
|
logic [7:0] icmp_rx_ip_protocol;
|
||||||
logic [15:0] icmp_ip_header_checksum;
|
logic [15:0] icmp_rx_ip_header_checksum;
|
||||||
logic [31:0] icmp_ip_source_ip;
|
logic [31:0] icmp_rx_ip_source_ip;
|
||||||
logic [31:0] icmp_ip_dest_ip;
|
logic [31:0] icmp_rx_ip_dest_ip;
|
||||||
logic [7:0] icmp_ip_payload_axis_tdata;
|
logic [7:0] icmp_rx_ip_payload_axis_tdata;
|
||||||
logic icmp_ip_payload_axis_tvalid;
|
logic icmp_rx_ip_payload_axis_tvalid;
|
||||||
logic icmp_ip_payload_axis_tready;
|
logic icmp_rx_ip_payload_axis_tready;
|
||||||
logic icmp_ip_payload_axis_tlast;
|
logic icmp_rx_ip_payload_axis_tlast;
|
||||||
logic icmp_ip_payload_axis_tuser;
|
logic icmp_rx_ip_payload_axis_tuser;
|
||||||
|
|
||||||
// tx is less because IP adds it automatically.
|
// tx is less because IP adds it automatically.
|
||||||
logic icmp_tx_ip_hdr_valid;
|
logic icmp_tx_ip_hdr_valid;
|
||||||
@@ -446,6 +446,12 @@ ip_complete #(
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
logic ip_demux_drop;
|
||||||
|
assign ip_demux_drop = !((rx_ip_protocol == `PROTO_ICMP) || (rx_ip_protocol == `PROTO_UDP) || (rx_ip_protocol == `PROTO_TCP));
|
||||||
|
|
||||||
|
logic [1:0] ip_demux_sel;
|
||||||
|
assign ip_demux_sel = (rx_ip_protocol == `PROTO_ICMP) ? 2'h2 : (rx_ip_protocol == `PROTO_UDP) ? 2'h1 : 2'h0;
|
||||||
|
|
||||||
ip_demux #(
|
ip_demux #(
|
||||||
.M_COUNT(3),
|
.M_COUNT(3),
|
||||||
.DATA_WIDTH(MAC_DATA_WIDTH)
|
.DATA_WIDTH(MAC_DATA_WIDTH)
|
||||||
@@ -477,37 +483,103 @@ ip_demux #(
|
|||||||
.s_ip_payload_axis_tlast (rx_ip_payload_axis_tlast),
|
.s_ip_payload_axis_tlast (rx_ip_payload_axis_tlast),
|
||||||
.s_ip_payload_axis_tuser (rx_ip_payload_axis_tuser),
|
.s_ip_payload_axis_tuser (rx_ip_payload_axis_tuser),
|
||||||
|
|
||||||
.m_ip_hdr_valid ({icmp_ip_hdr_valid, udp_ip_hdr_valid, tcp_tx_ip_hdr_valid}),
|
.m_ip_hdr_valid ({icmp_rx_ip_hdr_valid, udp_rx_ip_hdr_valid, tcp_rx_ip_hdr_valid}),
|
||||||
.m_ip_hdr_ready ({icmp_ip_hdr_ready, udp_ip_hdr_ready, tcp_tx_ip_hdr_ready}),
|
.m_ip_hdr_ready ({icmp_rx_ip_hdr_ready, udp_rx_ip_hdr_ready, tcp_rx_ip_hdr_ready}),
|
||||||
.m_eth_dest_mac ({icmp_ip_eth_dest_mac, udp_ip_eth_dest_mac, tcp_tx_ip_eth_dest_mac}),
|
.m_eth_dest_mac ({icmp_rx_ip_eth_dest_mac, udp_rx_ip_eth_dest_mac, tcp_rx_ip_eth_dest_mac}),
|
||||||
.m_eth_src_mac ({icmp_ip_eth_src_mac, udp_ip_eth_src_mac, tcp_tx_ip_eth_src_mac}),
|
.m_eth_src_mac ({icmp_rx_ip_eth_src_mac, udp_rx_ip_eth_src_mac, tcp_rx_ip_eth_src_mac}),
|
||||||
.m_eth_type ({icmp_ip_eth_type, udp_ip_eth_type, tcp_tx_ip_eth_type}),
|
.m_eth_type ({icmp_rx_ip_eth_type, udp_rx_ip_eth_type, tcp_rx_ip_eth_type}),
|
||||||
.m_ip_version ({icmp_ip_version, udp_ip_version, tcp_tx_ip_version}),
|
.m_ip_version ({icmp_rx_ip_version, udp_rx_ip_version, tcp_rx_ip_version}),
|
||||||
.m_ip_ihl ({icmp_ip_ihl, udp_ip_ihl, tcp_tx_ip_ihl}),
|
.m_ip_ihl ({icmp_rx_ip_ihl, udp_rx_ip_ihl, tcp_rx_ip_ihl}),
|
||||||
.m_ip_dscp ({icmp_ip_dscp, udp_ip_dscp, tcp_tx_ip_dscp}),
|
.m_ip_dscp ({icmp_rx_ip_dscp, udp_rx_ip_dscp, tcp_rx_ip_dscp}),
|
||||||
.m_ip_ecn ({icmp_ip_ecn, udp_ip_ecn, tcp_tx_ip_ecn}),
|
.m_ip_ecn ({icmp_rx_ip_ecn, udp_rx_ip_ecn, tcp_rx_ip_ecn}),
|
||||||
.m_ip_length ({icmp_ip_length, udp_ip_length, tcp_tx_ip_length}),
|
.m_ip_length ({icmp_rx_ip_length, udp_rx_ip_length, tcp_rx_ip_length}),
|
||||||
.m_ip_identification ({icmp_ip_identification, udp_ip_identification, tcp_tx_ip_identification}),
|
.m_ip_identification ({icmp_rx_ip_identification, udp_rx_ip_identification, tcp_rx_ip_identification}),
|
||||||
.m_ip_flags ({icmp_ip_flags, udp_ip_flags, tcp_tx_ip_flags}),
|
.m_ip_flags ({icmp_rx_ip_flags, udp_rx_ip_flags, tcp_rx_ip_flags}),
|
||||||
.m_ip_fragment_offset ({icmp_ip_fragment_offset, udp_ip_fragment_offset, tcp_tx_ip_fragment_offset}),
|
.m_ip_fragment_offset ({icmp_rx_ip_fragment_offset, udp_rx_ip_fragment_offset, tcp_rx_ip_fragment_offset}),
|
||||||
.m_ip_ttl ({icmp_ip_ttl, udp_ip_ttl, tcp_tx_ip_ttl}),
|
.m_ip_ttl ({icmp_rx_ip_ttl, udp_rx_ip_ttl, tcp_rx_ip_ttl}),
|
||||||
.m_ip_protocol ({icmp_ip_protocol, udp_ip_protocol, tcp_tx_ip_protocol}),
|
.m_ip_protocol ({icmp_rx_ip_protocol, udp_rx_ip_protocol, tcp_rx_ip_protocol}),
|
||||||
.m_ip_header_checksum ({icmp_ip_header_checksum, udp_ip_header_checksum, tcp_tx_ip_header_checksum}),
|
.m_ip_header_checksum ({icmp_rx_ip_header_checksum, udp_rx_ip_header_checksum, tcp_rx_ip_header_checksum}),
|
||||||
.m_ip_source_ip ({icmp_ip_source_ip, udp_ip_source_ip, tcp_tx_ip_source_ip}),
|
.m_ip_source_ip ({icmp_rx_ip_source_ip, udp_rx_ip_source_ip, tcp_rx_ip_source_ip}),
|
||||||
.m_ip_dest_ip ({icmp_ip_dest_ip, udp_ip_dest_ip, tcp_tx_ip_dest_ip}),
|
.m_ip_dest_ip ({icmp_rx_ip_dest_ip, udp_rx_ip_dest_ip, tcp_rx_ip_dest_ip}),
|
||||||
.m_ip_payload_axis_tdata ({icmp_ip_payload_axis_tdata, udp_ip_payload_axis_tdata, tcp_tx_ip_payload_axis_tdata}),
|
.m_ip_payload_axis_tdata ({icmp_rx_ip_payload_axis_tdata, udp_rx_ip_payload_axis_tdata, tcp_rx_ip_payload_axis_tdata}),
|
||||||
.m_ip_payload_axis_tkeep (),
|
.m_ip_payload_axis_tkeep (),
|
||||||
.m_ip_payload_axis_tvalid ({icmp_ip_payload_axis_tvalid, udp_ip_payload_axis_tvalid, tcp_tx_ip_payload_axis_tvalid}),
|
.m_ip_payload_axis_tvalid ({icmp_rx_ip_payload_axis_tvalid, udp_rx_ip_payload_axis_tvalid, tcp_rx_ip_payload_axis_tvalid}),
|
||||||
.m_ip_payload_axis_tready ({icmp_ip_payload_axis_tready, udp_ip_payload_axis_tready, tcp_tx_ip_payload_axis_tready}),
|
.m_ip_payload_axis_tready ({icmp_rx_ip_payload_axis_tready, udp_rx_ip_payload_axis_tready, tcp_rx_ip_payload_axis_tready}),
|
||||||
.m_ip_payload_axis_tlast ({icmp_ip_payload_axis_tlast, udp_ip_payload_axis_tlast, tcp_tx_ip_payload_axis_tlast}),
|
.m_ip_payload_axis_tlast ({icmp_rx_ip_payload_axis_tlast, udp_rx_ip_payload_axis_tlast, tcp_rx_ip_payload_axis_tlast}),
|
||||||
.m_ip_payload_axis_tid (),
|
.m_ip_payload_axis_tid (),
|
||||||
.m_ip_payload_axis_tdest (),
|
.m_ip_payload_axis_tdest (),
|
||||||
.m_ip_payload_axis_tuser ({icmp_ip_payload_axis_tuser, udp_ip_payload_axis_tuser, tcp_tx_ip_payload_axis_tuser}),
|
.m_ip_payload_axis_tuser ({icmp_rx_ip_payload_axis_tuser, udp_rx_ip_payload_axis_tuser, tcp_rx_ip_payload_axis_tuser}),
|
||||||
|
|
||||||
.enable ('1),
|
.enable ('1),
|
||||||
.drop (ip_demux_drop),
|
.drop (ip_demux_drop),
|
||||||
.select (ip_demux_sel)
|
.select (ip_demux_sel)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
assign icmp_rx_ip_hdr_ready = '1;
|
||||||
|
assign icmp_rx_ip_payload_axis_tready = '1;
|
||||||
|
assign udp_rx_ip_hdr_ready = '1;
|
||||||
|
assign udp_rx_ip_payload_axis_tready = '1;
|
||||||
|
|
||||||
|
|
||||||
|
ip_arb_mux #(
|
||||||
|
.S_COUNT(3),
|
||||||
|
.DATA_WIDTH(MAC_DATA_WIDTH)
|
||||||
|
) u_ip_arb_mux (
|
||||||
|
.clk (i_clk),
|
||||||
|
.rst (i_rst),
|
||||||
|
|
||||||
|
.s_ip_hdr_valid ({icmp_tx_ip_hdr_valid, udp_tx_ip_hdr_valid, tcp_tx_ip_hdr_valid}),
|
||||||
|
.s_ip_hdr_ready ({icmp_tx_ip_hdr_ready, udp_tx_ip_hdr_ready, tcp_tx_ip_hdr_ready}),
|
||||||
|
.s_eth_dest_mac ('0),
|
||||||
|
.s_eth_src_mac ('0),
|
||||||
|
.s_eth_type ('0),
|
||||||
|
.s_ip_version ('0),
|
||||||
|
.s_ip_ihl ('0),
|
||||||
|
.s_ip_dscp ({icmp_tx_ip_dscp, udp_tx_ip_dscp, tcp_tx_ip_dscp}),
|
||||||
|
.s_ip_ecn ({icmp_tx_ip_ecn, udp_tx_ip_ecn, tcp_tx_ip_ecn}),
|
||||||
|
.s_ip_length ({icmp_tx_ip_length, udp_tx_ip_length, tcp_tx_ip_length}),
|
||||||
|
.s_ip_identification ('0),
|
||||||
|
.s_ip_flags ('0),
|
||||||
|
.s_ip_fragment_offset ('0),
|
||||||
|
.s_ip_ttl ({icmp_tx_ip_ttl, udp_tx_ip_ttl, tcp_tx_ip_ttl}),
|
||||||
|
.s_ip_protocol ({icmp_tx_ip_protocol, udp_tx_ip_protocol, tcp_tx_ip_protocol}),
|
||||||
|
.s_ip_header_checksum ('0),
|
||||||
|
.s_ip_source_ip ({icmp_tx_ip_source_ip, udp_tx_ip_source_ip, tcp_tx_ip_source_ip}),
|
||||||
|
.s_ip_dest_ip ({icmp_tx_ip_dest_ip, udp_tx_ip_dest_ip, tcp_tx_ip_dest_ip}),
|
||||||
|
.s_ip_payload_axis_tdata ({icmp_tx_ip_payload_axis_tdata, udp_tx_ip_payload_axis_tdata, tcp_tx_ip_payload_axis_tdata}),
|
||||||
|
.s_ip_payload_axis_tkeep ('1),
|
||||||
|
.s_ip_payload_axis_tvalid ({icmp_tx_ip_payload_axis_tvalid, udp_tx_ip_payload_axis_tvalid, tcp_tx_ip_payload_axis_tvalid}),
|
||||||
|
.s_ip_payload_axis_tready ({icmp_tx_ip_payload_axis_tready, udp_tx_ip_payload_axis_tready, tcp_tx_ip_payload_axis_tready}),
|
||||||
|
.s_ip_payload_axis_tlast ({icmp_tx_ip_payload_axis_tlast, udp_tx_ip_payload_axis_tlast, tcp_tx_ip_payload_axis_tlast}),
|
||||||
|
.s_ip_payload_axis_tid ('0),
|
||||||
|
.s_ip_payload_axis_tdest ('0),
|
||||||
|
.s_ip_payload_axis_tuser ({icmp_tx_ip_payload_axis_tuser, udp_tx_ip_payload_axis_tuser, tcp_tx_ip_payload_axis_tuser}),
|
||||||
|
|
||||||
|
.m_ip_hdr_valid (tx_ip_hdr_valid),
|
||||||
|
.m_ip_hdr_ready (tx_ip_hdr_ready),
|
||||||
|
.m_eth_dest_mac (),
|
||||||
|
.m_eth_src_mac (),
|
||||||
|
.m_eth_type (),
|
||||||
|
.m_ip_version (),
|
||||||
|
.m_ip_ihl (),
|
||||||
|
.m_ip_dscp (tx_ip_dscp),
|
||||||
|
.m_ip_ecn (tx_ip_ecn),
|
||||||
|
.m_ip_length (),
|
||||||
|
.m_ip_identification (),
|
||||||
|
.m_ip_flags (),
|
||||||
|
.m_ip_fragment_offset (),
|
||||||
|
.m_ip_ttl (tx_ip_ttl),
|
||||||
|
.m_ip_protocol (tx_ip_protocol),
|
||||||
|
.m_ip_header_checksum (),
|
||||||
|
.m_ip_source_ip (tx_ip_source_ip),
|
||||||
|
.m_ip_dest_ip (tx_ip_dest_ip),
|
||||||
|
.m_ip_payload_axis_tdata (tx_ip_payload_axis_tdata),
|
||||||
|
.m_ip_payload_axis_tvalid (tx_ip_payload_axis_tvalid),
|
||||||
|
.m_ip_payload_axis_tready (tx_ip_payload_axis_tready),
|
||||||
|
.m_ip_payload_axis_tlast (tx_ip_payload_axis_tlast),
|
||||||
|
.m_ip_payload_axis_tuser (tx_ip_payload_axis_tuser)
|
||||||
|
);
|
||||||
|
|
||||||
tcp #(
|
tcp #(
|
||||||
.NUM_TCP(NUM_TCP)
|
.NUM_TCP(NUM_TCP)
|
||||||
) tcp (
|
) tcp (
|
||||||
|
|||||||
@@ -61,7 +61,53 @@ module tcp #(
|
|||||||
output wire m_ip_payload_axis_tvalid,
|
output wire m_ip_payload_axis_tvalid,
|
||||||
input wire m_ip_payload_axis_tready,
|
input wire m_ip_payload_axis_tready,
|
||||||
output wire m_ip_payload_axis_tlast,
|
output wire m_ip_payload_axis_tlast,
|
||||||
output wire m_ip_payload_axis_tuser
|
output wire m_ip_payload_axis_tuser,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AXI DMA Interface
|
||||||
|
*/
|
||||||
|
input wire m_dma_axil_awready,
|
||||||
|
output wire m_dma_axil_awvalid,
|
||||||
|
output wire [31:0] m_dma_axil_awaddr,
|
||||||
|
output wire [2:0] m_dma_axil_awprot,
|
||||||
|
input wire m_dma_axil_wready,
|
||||||
|
output wire m_dma_axil_wvalid,
|
||||||
|
output wire [31:0] m_dma_axil_wdata,
|
||||||
|
output wire [3:0] m_dma_axil_wstrb,
|
||||||
|
output wire m_dma_axil_bready,
|
||||||
|
input wire m_dma_axil_bvalid,
|
||||||
|
input wire [1:0] m_dma_axil_bresp,
|
||||||
|
input wire m_dma_axil_arready,
|
||||||
|
output wire m_dma_axil_arvalid,
|
||||||
|
output wire [31:0] m_dma_axil_araddr,
|
||||||
|
output wire [2:0] m_dma_axil_arprot,
|
||||||
|
output wire m_dma_axil_rready,
|
||||||
|
input wire m_dma_axil_rvalid,
|
||||||
|
input wire [31:0] m_dma_axil_rdata,
|
||||||
|
input wire [1:0] m_dma_axil_rresp,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AXI Ring buffer Interface
|
||||||
|
*/
|
||||||
|
input wire m_rb_axil_awready,
|
||||||
|
output wire m_rb_axil_awvalid,
|
||||||
|
output wire [31:0] m_rb_axil_awaddr,
|
||||||
|
output wire [2:0] m_rb_axil_awprot,
|
||||||
|
input wire m_rb_axil_wready,
|
||||||
|
output wire m_rb_axil_wvalid,
|
||||||
|
output wire [31:0] m_rb_axil_wdata,
|
||||||
|
output wire [3:0] m_rb_axil_wstrb,
|
||||||
|
output wire m_rb_axil_bready,
|
||||||
|
input wire m_rb_axil_bvalid,
|
||||||
|
input wire [1:0] m_rb_axil_bresp,
|
||||||
|
input wire m_rb_axil_arready,
|
||||||
|
output wire m_rb_axil_arvalid,
|
||||||
|
output wire [31:0] m_rb_axil_araddr,
|
||||||
|
output wire [2:0] m_rb_axil_arprot,
|
||||||
|
output wire m_rb_axil_rready,
|
||||||
|
input wire m_rb_axil_rvalid,
|
||||||
|
input wire [31:0] m_rb_axil_rdata,
|
||||||
|
input wire [1:0] m_rb_axil_rresp
|
||||||
);
|
);
|
||||||
|
|
||||||
tcp_top_regfile_pkg::tcp_top_regfile__in_t tcp_hwif_in;
|
tcp_top_regfile_pkg::tcp_top_regfile__in_t tcp_hwif_in;
|
||||||
@@ -110,6 +156,22 @@ logic s2m_rx_axis_tlast;
|
|||||||
logic [DEST_WIDTH-1:0] s2m_rx_axis_tdest;
|
logic [DEST_WIDTH-1:0] s2m_rx_axis_tdest;
|
||||||
logic [USER_WIDTH-1:0] s2m_rx_axis_tuser;
|
logic [USER_WIDTH-1:0] s2m_rx_axis_tuser;
|
||||||
|
|
||||||
|
logic [NUM_TCP*DATA_WIDTH-1:0] stream_tx_axis_tdata;
|
||||||
|
logic [NUM_TCP*KEEP_WIDTH-1:0] stream_tx_axis_tkeep;
|
||||||
|
logic [NUM_TCP-1:0] stream_tx_axis_tvalid;
|
||||||
|
logic [NUM_TCP-1:0] stream_tx_axis_tready;
|
||||||
|
logic [NUM_TCP-1:0] stream_tx_axis_tlast;
|
||||||
|
logic [NUM_TCP*DEST_WIDTH-1:0] stream_tx_axis_tdest;
|
||||||
|
logic [NUM_TCP*USER_WIDTH-1:0] stream_tx_axis_tuser;
|
||||||
|
|
||||||
|
logic [NUM_TCP*DATA_WIDTH-1:0] stream_rx_axis_tdata;
|
||||||
|
logic [NUM_TCP*KEEP_WIDTH-1:0] stream_rx_axis_tkeep;
|
||||||
|
logic [NUM_TCP-1:0] stream_rx_axis_tvalid;
|
||||||
|
logic [NUM_TCP-1:0] stream_rx_axis_tready;
|
||||||
|
logic [NUM_TCP-1:0] stream_rx_axis_tlast;
|
||||||
|
logic [NUM_TCP*DEST_WIDTH-1:0] stream_rx_axis_tdest;
|
||||||
|
logic [NUM_TCP*USER_WIDTH-1:0] stream_rx_axis_tuser;
|
||||||
|
|
||||||
logic [NUM_TCP-1:0] tcp_rx_ip_hdr_valid;
|
logic [NUM_TCP-1:0] tcp_rx_ip_hdr_valid;
|
||||||
logic [NUM_TCP-1:0] tcp_rx_ip_hdr_ready;
|
logic [NUM_TCP-1:0] tcp_rx_ip_hdr_ready;
|
||||||
logic [NUM_TCP*48-1:0] tcp_rx_eth_dest_mac;
|
logic [NUM_TCP*48-1:0] tcp_rx_eth_dest_mac;
|
||||||
@@ -153,13 +215,138 @@ logic [NUM_TCP-1:0] tcp_tx_ip_payload_axis_tlast;
|
|||||||
logic [NUM_TCP*USER_WIDTH-1:0] tcp_tx_ip_payload_axis_tuser;
|
logic [NUM_TCP*USER_WIDTH-1:0] tcp_tx_ip_payload_axis_tuser;
|
||||||
|
|
||||||
|
|
||||||
|
// ring buffer manager
|
||||||
|
|
||||||
//m2s dma
|
//m2s dma
|
||||||
|
|
||||||
|
// axis demux
|
||||||
|
axis_demux #(
|
||||||
|
.M_COUNT(NUM_TCP),
|
||||||
|
.DATA_WIDTH(DATA_WIDTH),
|
||||||
|
.DEST_ENABLE(1),
|
||||||
|
.TDEST_ROUTE(1)
|
||||||
|
) u_stream_tx_demux (
|
||||||
|
.clk (i_clk),
|
||||||
|
.rst (i_rst),
|
||||||
|
|
||||||
|
.s_axis_tdata (m2s_tx_axis_tdata),
|
||||||
|
.s_axis_tkeep (m2s_tx_axis_tkeep),
|
||||||
|
.s_axis_tvalid (m2s_tx_axis_tvalid),
|
||||||
|
.s_axis_tready (m2s_tx_axis_tready),
|
||||||
|
.s_axis_tlast (m2s_tx_axis_tlast),
|
||||||
|
.s_axis_tid ('0),
|
||||||
|
.s_axis_tdest (m2s_tx_axis_tdest),
|
||||||
|
.s_axis_tuser (m2s_tx_axis_tuser),
|
||||||
|
|
||||||
|
.m_axis_tdata (stream_tx_axis_tdata),
|
||||||
|
.m_axis_tkeep (stream_tx_axis_tkeep),
|
||||||
|
.m_axis_tvalid (stream_tx_axis_tvalid),
|
||||||
|
.m_axis_tready (stream_tx_axis_tready),
|
||||||
|
.m_axis_tlast (stream_tx_axis_tlast),
|
||||||
|
.m_axis_tid (),
|
||||||
|
.m_axis_tdest (stream_tx_axis_tdest),
|
||||||
|
.m_axis_tuser (stream_tx_axis_tuser),
|
||||||
|
|
||||||
|
.enable ('1),
|
||||||
|
.drop ('0),
|
||||||
|
.select ('0) // route selected by tdest
|
||||||
|
);
|
||||||
|
|
||||||
//s2m dma
|
//s2m dma
|
||||||
|
|
||||||
// tx_stream demux (ip)
|
// axis mux
|
||||||
|
axis_arb_mux #(
|
||||||
|
.S_COUNT(NUM_TCP),
|
||||||
|
.DATA_WIDTH(DATA_WIDTH),
|
||||||
|
.DEST_ENABLE(1)
|
||||||
|
) u_stream_rx_arb_mux (
|
||||||
|
.clk (i_clk),
|
||||||
|
.rst (i_rst),
|
||||||
|
|
||||||
// rx_stream arb (ip)
|
.s_axis_tdata (stream_rx_axis_tdata),
|
||||||
|
.s_axis_tkeep (stream_rx_axis_tkeep),
|
||||||
|
.s_axis_tvalid (stream_rx_axis_tvalid),
|
||||||
|
.s_axis_tready (stream_rx_axis_tready),
|
||||||
|
.s_axis_tlast (stream_rx_axis_tlast),
|
||||||
|
.s_axis_tid ('0),
|
||||||
|
.s_axis_tdest (stream_rx_axis_tdest),
|
||||||
|
.s_axis_tuser (stream_rx_axis_tuser),
|
||||||
|
|
||||||
|
.m_axis_tdata (s2m_rx_axis_tdata),
|
||||||
|
.m_axis_tkeep (s2m_rx_axis_tkeep),
|
||||||
|
.m_axis_tvalid (s2m_rx_axis_tvalid),
|
||||||
|
.m_axis_tready (s2m_rx_axis_tready),
|
||||||
|
.m_axis_tlast (s2m_rx_axis_tlast),
|
||||||
|
.m_axis_tid (),
|
||||||
|
.m_axis_tdest (s2m_rx_axis_tdest),
|
||||||
|
.m_axis_tuser (s2m_rx_axis_tuser)
|
||||||
|
);
|
||||||
|
|
||||||
|
// tx_stream arb mux (ip)
|
||||||
|
ip_arb_mux #(
|
||||||
|
.S_COUNT(NUM_TCP),
|
||||||
|
.DATA_WIDTH(DATA_WIDTH)
|
||||||
|
) u_tx_stream_arb_mux (
|
||||||
|
.clk (i_clk),
|
||||||
|
.rst (i_rst),
|
||||||
|
|
||||||
|
.s_ip_hdr_valid (tcp_tx_ip_hdr_valid),
|
||||||
|
.s_ip_hdr_ready (tcp_tx_ip_hdr_ready),
|
||||||
|
.s_eth_dest_mac ('0),
|
||||||
|
.s_eth_src_mac ('0),
|
||||||
|
.s_eth_type ('0),
|
||||||
|
.s_ip_version ('0),
|
||||||
|
.s_ip_ihl ('0),
|
||||||
|
.s_ip_dscp (tcp_tx_ip_dscp),
|
||||||
|
.s_ip_ecn (tcp_tx_ip_ecn),
|
||||||
|
.s_ip_length (tcp_tx_ip_length),
|
||||||
|
.s_ip_identification ('0),
|
||||||
|
.s_ip_flags ('0),
|
||||||
|
.s_ip_fragment_offset ('0),
|
||||||
|
.s_ip_ttl (tcp_tx_ip_ttl),
|
||||||
|
.s_ip_protocol (tcp_tx_ip_protocol),
|
||||||
|
.s_ip_header_checksum ('0),
|
||||||
|
.s_ip_source_ip (tcp_tx_ip_source_ip),
|
||||||
|
.s_ip_dest_ip (tcp_tx_ip_dest_ip),
|
||||||
|
.s_ip_payload_axis_tdata (tcp_tx_ip_payload_axis_tdata),
|
||||||
|
.s_ip_payload_axis_tkeep ('1),
|
||||||
|
.s_ip_payload_axis_tvalid (tcp_tx_ip_payload_axis_tvalid),
|
||||||
|
.s_ip_payload_axis_tready (tcp_tx_ip_payload_axis_tready),
|
||||||
|
.s_ip_payload_axis_tlast (tcp_tx_ip_payload_axis_tlast),
|
||||||
|
.s_ip_payload_axis_tid ('0),
|
||||||
|
.s_ip_payload_axis_tdest ('0),
|
||||||
|
.s_ip_payload_axis_tuser (tcp_tx_ip_payload_axis_tuser),
|
||||||
|
|
||||||
|
.m_ip_hdr_valid (m_ip_hdr_valid),
|
||||||
|
.m_ip_hdr_ready (m_ip_hdr_ready),
|
||||||
|
.m_eth_dest_mac (),
|
||||||
|
.m_eth_src_mac (),
|
||||||
|
.m_eth_type (),
|
||||||
|
.m_ip_version (),
|
||||||
|
.m_ip_ihl (),
|
||||||
|
.m_ip_dscp (m_ip_dscp),
|
||||||
|
.m_ip_ecn (m_ip_ecn),
|
||||||
|
.m_ip_length (m_ip_length),
|
||||||
|
.m_ip_identification (),
|
||||||
|
.m_ip_flags (),
|
||||||
|
.m_ip_fragment_offset (),
|
||||||
|
.m_ip_ttl (m_ip_ttl),
|
||||||
|
.m_ip_protocol (m_ip_protocol),
|
||||||
|
.m_ip_header_checksum (),
|
||||||
|
.m_ip_source_ip (m_ip_source_ip),
|
||||||
|
.m_ip_dest_ip (m_ip_dest_ip),
|
||||||
|
.m_ip_payload_axis_tdata (m_ip_payload_axis_tdata),
|
||||||
|
.m_ip_payload_axis_tkeep (),
|
||||||
|
.m_ip_payload_axis_tvalid (m_ip_payload_axis_tvalid),
|
||||||
|
.m_ip_payload_axis_tready (m_ip_payload_axis_tready),
|
||||||
|
.m_ip_payload_axis_tlast (m_ip_payload_axis_tlast),
|
||||||
|
.m_ip_payload_axis_tid (),
|
||||||
|
.m_ip_payload_axis_tdest (),
|
||||||
|
.m_ip_payload_axis_tuser (m_ip_payload_axis_tuser)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// rx_stream demux (ip)
|
||||||
|
|
||||||
|
|
||||||
generate
|
generate
|
||||||
@@ -178,22 +365,61 @@ generate
|
|||||||
assign wr_biten = tcp_hwif_out.tcp_streams[i].wr_biten;
|
assign wr_biten = tcp_hwif_out.tcp_streams[i].wr_biten;
|
||||||
|
|
||||||
tcp_stream u_tcp_stream (
|
tcp_stream u_tcp_stream (
|
||||||
.clk (i_clk),
|
.clk (i_clk),
|
||||||
.rst (i_rst),
|
.rst (i_rst),
|
||||||
|
|
||||||
// This is the hacky decoder alex was telling me about
|
// This is the hacky decoder alex was telling me about
|
||||||
.s_cpuif_req (req),
|
.s_cpuif_req (req),
|
||||||
.s_cpuif_req_is_wr (req_is_wr),
|
.s_cpuif_req_is_wr (req_is_wr),
|
||||||
.s_cpuif_addr (addr),
|
.s_cpuif_addr (addr),
|
||||||
.s_cpuif_wr_data (wr_data),
|
.s_cpuif_wr_data (wr_data),
|
||||||
.s_cpuif_wr_biten (wr_biten),
|
.s_cpuif_wr_biten (wr_biten),
|
||||||
.s_cpuif_req_stall_wr (),
|
.s_cpuif_req_stall_wr (),
|
||||||
.s_cpuif_req_stall_rd (),
|
.s_cpuif_req_stall_rd (),
|
||||||
.s_cpuif_rd_ack (tcp_hwif_in.tcp_streams[i].rd_ack),
|
.s_cpuif_rd_ack (tcp_hwif_in.tcp_streams[i].rd_ack),
|
||||||
.s_cpuif_rd_err (),
|
.s_cpuif_rd_err (),
|
||||||
.s_cpuif_rd_data (tcp_hwif_in.tcp_streams[i].rd_data),
|
.s_cpuif_rd_data (tcp_hwif_in.tcp_streams[i].rd_data),
|
||||||
.s_cpuif_wr_ack (tcp_hwif_in.tcp_streams[i].wr_ack),
|
.s_cpuif_wr_ack (tcp_hwif_in.tcp_streams[i].wr_ack),
|
||||||
.s_cpuif_wr_err ()
|
.s_cpuif_wr_err (),
|
||||||
|
|
||||||
|
.s_ip_hdr_valid (tcp_rx_ip_hdr_valid[i]),
|
||||||
|
.s_ip_hdr_ready (tcp_rx_ip_hdr_ready[i]),
|
||||||
|
.s_ip_eth_dest_mac (tcp_rx_eth_dest_mac[i*48+:48]),
|
||||||
|
.s_ip_eth_src_mac (tcp_rx_eth_src_mac[i*48+:48]),
|
||||||
|
.s_ip_eth_type (tcp_rx_eth_type[i*16+:16]),
|
||||||
|
.s_ip_version (tcp_rx_ip_version[i*4+:4]),
|
||||||
|
.s_ip_ihl (tcp_rx_ip_ihl[i*4+:4]),
|
||||||
|
.s_ip_dscp (tcp_rx_ip_dscp[i*6+:6]),
|
||||||
|
.s_ip_ecn (tcp_rx_ip_ecn),
|
||||||
|
.s_ip_length (tcp_rx_ip_length),
|
||||||
|
.s_ip_identification (tcp_rx_ip_identification),
|
||||||
|
.s_ip_flags (tcp_rx_ip_flags),
|
||||||
|
.s_ip_fragment_offset (tcp_rx_ip_fragment_offset),
|
||||||
|
.s_ip_ttl (tcp_rx_ip_ttl),
|
||||||
|
.s_ip_protocol (tcp_rx_ip_protocol),
|
||||||
|
.s_ip_header_checksum (tcp_rx_ip_header_checksum),
|
||||||
|
.s_ip_source_ip (tcp_rx_ip_source_ip),
|
||||||
|
.s_ip_dest_ip (tcp_rx_ip_dest_ip),
|
||||||
|
.s_ip_payload_axis_tdata (tcp_rx_ip_payload_axis_tdata),
|
||||||
|
.s_ip_payload_axis_tvalid (tcp_rx_ip_payload_axis_tvalid),
|
||||||
|
.s_ip_payload_axis_tready (tcp_rx_ip_payload_axis_tready),
|
||||||
|
.s_ip_payload_axis_tlast (tcp_rx_ip_payload_axis_tlast),
|
||||||
|
.s_ip_payload_axis_tuser (tcp_rx_ip_payload_axis_tuser),
|
||||||
|
|
||||||
|
.m_ip_hdr_valid (tcp_tx_ip_hdr_valid),
|
||||||
|
.m_ip_hdr_ready (tcp_tx_ip_hdr_ready),
|
||||||
|
.m_ip_dscp (tcp_tx_ip_dscp),
|
||||||
|
.m_ip_ecn (tcp_tx_ip_ecn),
|
||||||
|
.m_ip_length (tcp_tx_ip_length),
|
||||||
|
.m_ip_ttl (tcp_tx_ip_ttl),
|
||||||
|
.m_ip_protocol (tcp_tx_ip_protocol),
|
||||||
|
.m_ip_source_ip (tcp_tx_ip_source_ip),
|
||||||
|
.m_ip_dest_ip (tcp_tx_ip_dest_ip),
|
||||||
|
.m_ip_payload_axis_tdata (tcp_tx_ip_payload_axis_tdata),
|
||||||
|
.m_ip_payload_axis_tvalid (tcp_tx_ip_payload_axis_tvalid),
|
||||||
|
.m_ip_payload_axis_tready (tcp_tx_ip_payload_axis_tready),
|
||||||
|
.m_ip_payload_axis_tlast (tcp_tx_ip_payload_axis_tlast),
|
||||||
|
.m_ip_payload_axis_tuser (tcp_tx_ip_payload_axis_tuser)
|
||||||
);
|
);
|
||||||
end
|
end
|
||||||
endgenerate
|
endgenerate
|
||||||
|
|||||||
Reference in New Issue
Block a user