mirror of
https://github.com/alexforencich/verilog-ethernet.git
synced 2025-01-14 06:43:18 +08:00
AXI stream updates
This commit is contained in:
parent
18787c2eed
commit
bd27156f35
@ -545,7 +545,12 @@ udp_complete_inst (
|
||||
|
||||
axis_fifo #(
|
||||
.ADDR_WIDTH(12),
|
||||
.DATA_WIDTH(8)
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
)
|
||||
udp_payload_fifo (
|
||||
.clk(clk),
|
||||
@ -553,16 +558,22 @@ udp_payload_fifo (
|
||||
|
||||
// AXI input
|
||||
.input_axis_tdata(rx_fifo_udp_payload_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.input_axis_tvalid(rx_fifo_udp_payload_tvalid),
|
||||
.input_axis_tready(rx_fifo_udp_payload_tready),
|
||||
.input_axis_tlast(rx_fifo_udp_payload_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_udp_payload_tuser),
|
||||
|
||||
// AXI output
|
||||
.output_axis_tdata(tx_fifo_udp_payload_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.output_axis_tvalid(tx_fifo_udp_payload_tvalid),
|
||||
.output_axis_tready(tx_fifo_udp_payload_tready),
|
||||
.output_axis_tlast(tx_fifo_udp_payload_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(tx_fifo_udp_payload_tuser)
|
||||
);
|
||||
|
||||
|
@ -40,8 +40,8 @@ SYN_FILES += lib/eth/rtl/xgmii_interleave.v
|
||||
SYN_FILES += lib/eth/rtl/xgmii_deinterleave.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/arbiter.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/priority_encoder.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_fifo_64.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_async_frame_fifo_64.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_fifo.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_async_frame_fifo.v
|
||||
SYN_FILES += cores/phy/phy.qip
|
||||
SYN_FILES += cores/phy_reconfig/phy_reconfig.qip
|
||||
|
||||
|
@ -564,9 +564,15 @@ udp_complete_inst (
|
||||
.clear_arp_cache(1'b0)
|
||||
);
|
||||
|
||||
axis_fifo_64 #(
|
||||
axis_fifo #(
|
||||
.ADDR_WIDTH(10),
|
||||
.DATA_WIDTH(64)
|
||||
.DATA_WIDTH(64),
|
||||
.KEEP_ENABLE(1),
|
||||
.KEEP_WIDTH(64),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
)
|
||||
udp_payload_fifo (
|
||||
.clk(clk),
|
||||
@ -578,6 +584,8 @@ udp_payload_fifo (
|
||||
.input_axis_tvalid(rx_fifo_udp_payload_tvalid),
|
||||
.input_axis_tready(rx_fifo_udp_payload_tready),
|
||||
.input_axis_tlast(rx_fifo_udp_payload_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_udp_payload_tuser),
|
||||
|
||||
// AXI output
|
||||
@ -586,6 +594,8 @@ udp_payload_fifo (
|
||||
.output_axis_tvalid(tx_fifo_udp_payload_tvalid),
|
||||
.output_axis_tready(tx_fifo_udp_payload_tready),
|
||||
.output_axis_tlast(tx_fifo_udp_payload_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(tx_fifo_udp_payload_tuser)
|
||||
);
|
||||
|
||||
|
@ -63,8 +63,8 @@ srcs.append("../lib/eth/rtl/eth_arb_mux_64_2.v")
|
||||
srcs.append("../lib/eth/rtl/eth_mux_64_2.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/arbiter.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/priority_encoder.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_fifo_64.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_async_frame_fifo_64.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_fifo.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_async_frame_fifo.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
@ -45,8 +45,8 @@ SYN_FILES += lib/eth/rtl/xgmii_interleave.v
|
||||
SYN_FILES += lib/eth/rtl/xgmii_deinterleave.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/arbiter.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/priority_encoder.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_fifo_64.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_async_frame_fifo_64.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_fifo.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_async_frame_fifo.v
|
||||
SYN_FILES += coregen/ten_gig_eth_pcs_pma_v2_6/ten_gig_eth_pcs_pma_v2_6.v
|
||||
SYN_FILES += coregen/ten_gig_eth_pcs_pma_v2_6/ten_gig_eth_pcs_pma_v2_6/example_design/ten_gig_eth_pcs_pma_v2_6_management_arbiter.v
|
||||
SYN_FILES += coregen/ten_gig_eth_pcs_pma_v2_6_v6gth_wrapper/ten_gig_eth_pcs_pma_v2_6_v6gth_wrapper_quad.v
|
||||
|
@ -708,9 +708,15 @@ udp_complete_inst (
|
||||
.clear_arp_cache(1'b0)
|
||||
);
|
||||
|
||||
axis_fifo_64 #(
|
||||
axis_fifo #(
|
||||
.ADDR_WIDTH(10),
|
||||
.DATA_WIDTH(64)
|
||||
.DATA_WIDTH(64),
|
||||
.KEEP_ENABLE(1),
|
||||
.KEEP_WIDTH(64),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
)
|
||||
udp_payload_fifo (
|
||||
.clk(clk),
|
||||
@ -722,6 +728,8 @@ udp_payload_fifo (
|
||||
.input_axis_tvalid(rx_fifo_udp_payload_tvalid),
|
||||
.input_axis_tready(rx_fifo_udp_payload_tready),
|
||||
.input_axis_tlast(rx_fifo_udp_payload_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_udp_payload_tuser),
|
||||
|
||||
// AXI output
|
||||
@ -730,6 +738,8 @@ udp_payload_fifo (
|
||||
.output_axis_tvalid(tx_fifo_udp_payload_tvalid),
|
||||
.output_axis_tready(tx_fifo_udp_payload_tready),
|
||||
.output_axis_tlast(tx_fifo_udp_payload_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(tx_fifo_udp_payload_tuser)
|
||||
);
|
||||
|
||||
|
@ -63,8 +63,8 @@ srcs.append("../lib/eth/rtl/eth_arb_mux_64_2.v")
|
||||
srcs.append("../lib/eth/rtl/eth_mux_64_2.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/arbiter.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/priority_encoder.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_fifo_64.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_async_frame_fifo_64.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_fifo.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_async_frame_fifo.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
@ -558,7 +558,12 @@ udp_complete_inst (
|
||||
|
||||
axis_fifo #(
|
||||
.ADDR_WIDTH(12),
|
||||
.DATA_WIDTH(8)
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
)
|
||||
udp_payload_fifo (
|
||||
.clk(clk_125mhz),
|
||||
@ -566,16 +571,22 @@ udp_payload_fifo (
|
||||
|
||||
// AXI input
|
||||
.input_axis_tdata(rx_fifo_udp_payload_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.input_axis_tvalid(rx_fifo_udp_payload_tvalid),
|
||||
.input_axis_tready(rx_fifo_udp_payload_tready),
|
||||
.input_axis_tlast(rx_fifo_udp_payload_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_udp_payload_tuser),
|
||||
|
||||
// AXI output
|
||||
.output_axis_tdata(tx_fifo_udp_payload_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.output_axis_tvalid(tx_fifo_udp_payload_tvalid),
|
||||
.output_axis_tready(tx_fifo_udp_payload_tready),
|
||||
.output_axis_tlast(tx_fifo_udp_payload_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(tx_fifo_udp_payload_tuser)
|
||||
);
|
||||
|
||||
|
@ -555,7 +555,12 @@ udp_complete_inst (
|
||||
|
||||
axis_fifo #(
|
||||
.ADDR_WIDTH(12),
|
||||
.DATA_WIDTH(8)
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
)
|
||||
udp_payload_fifo (
|
||||
.clk(clk_125mhz),
|
||||
@ -563,16 +568,22 @@ udp_payload_fifo (
|
||||
|
||||
// AXI input
|
||||
.input_axis_tdata(rx_fifo_udp_payload_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.input_axis_tvalid(rx_fifo_udp_payload_tvalid),
|
||||
.input_axis_tready(rx_fifo_udp_payload_tready),
|
||||
.input_axis_tlast(rx_fifo_udp_payload_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_udp_payload_tuser),
|
||||
|
||||
// AXI output
|
||||
.output_axis_tdata(tx_fifo_udp_payload_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.output_axis_tvalid(tx_fifo_udp_payload_tvalid),
|
||||
.output_axis_tready(tx_fifo_udp_payload_tready),
|
||||
.output_axis_tlast(tx_fifo_udp_payload_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(tx_fifo_udp_payload_tuser)
|
||||
);
|
||||
|
||||
|
@ -555,7 +555,12 @@ udp_complete_inst (
|
||||
|
||||
axis_fifo #(
|
||||
.ADDR_WIDTH(12),
|
||||
.DATA_WIDTH(8)
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
)
|
||||
udp_payload_fifo (
|
||||
.clk(clk_125mhz),
|
||||
@ -563,16 +568,22 @@ udp_payload_fifo (
|
||||
|
||||
// AXI input
|
||||
.input_axis_tdata(rx_fifo_udp_payload_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.input_axis_tvalid(rx_fifo_udp_payload_tvalid),
|
||||
.input_axis_tready(rx_fifo_udp_payload_tready),
|
||||
.input_axis_tlast(rx_fifo_udp_payload_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_udp_payload_tuser),
|
||||
|
||||
// AXI output
|
||||
.output_axis_tdata(tx_fifo_udp_payload_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.output_axis_tvalid(tx_fifo_udp_payload_tvalid),
|
||||
.output_axis_tready(tx_fifo_udp_payload_tready),
|
||||
.output_axis_tlast(tx_fifo_udp_payload_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(tx_fifo_udp_payload_tuser)
|
||||
);
|
||||
|
||||
|
@ -544,7 +544,12 @@ udp_complete_inst (
|
||||
|
||||
axis_fifo #(
|
||||
.ADDR_WIDTH(12),
|
||||
.DATA_WIDTH(8)
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
)
|
||||
udp_payload_fifo (
|
||||
.clk(clk),
|
||||
@ -552,16 +557,22 @@ udp_payload_fifo (
|
||||
|
||||
// AXI input
|
||||
.input_axis_tdata(rx_fifo_udp_payload_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.input_axis_tvalid(rx_fifo_udp_payload_tvalid),
|
||||
.input_axis_tready(rx_fifo_udp_payload_tready),
|
||||
.input_axis_tlast(rx_fifo_udp_payload_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_udp_payload_tuser),
|
||||
|
||||
// AXI output
|
||||
.output_axis_tdata(tx_fifo_udp_payload_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.output_axis_tvalid(tx_fifo_udp_payload_tvalid),
|
||||
.output_axis_tready(tx_fifo_udp_payload_tready),
|
||||
.output_axis_tlast(tx_fifo_udp_payload_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(tx_fifo_udp_payload_tuser)
|
||||
);
|
||||
|
||||
|
@ -44,10 +44,8 @@ SYN_FILES += lib/eth/lib/axis/rtl/arbiter.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/priority_encoder.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_adapter.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_fifo.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_fifo_64.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_switch_64_4x4.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_switch_4x4.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_async_frame_fifo.v
|
||||
SYN_FILES += lib/eth/lib/axis/rtl/axis_async_frame_fifo_64.v
|
||||
|
||||
# XDC files
|
||||
XDC_FILES = fpga.xdc
|
||||
|
@ -562,10 +562,13 @@ always @* begin
|
||||
end
|
||||
end
|
||||
|
||||
axis_switch_64_4x4 #(
|
||||
axis_switch_4x4 #(
|
||||
.DATA_WIDTH(64),
|
||||
.KEEP_WIDTH(8),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_WIDTH(2),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.OUT_0_BASE(0),
|
||||
.OUT_0_TOP(0),
|
||||
.OUT_0_CONNECT(4'b1111),
|
||||
@ -590,6 +593,7 @@ axis_switch_inst (
|
||||
.input_0_axis_tvalid(mac_rx_axis_tvalid),
|
||||
.input_0_axis_tready(mac_rx_axis_tready),
|
||||
.input_0_axis_tlast(mac_rx_axis_tlast),
|
||||
.input_0_axis_tid(0),
|
||||
.input_0_axis_tdest(mac_rx_tdest),
|
||||
.input_0_axis_tuser(mac_rx_axis_tuser),
|
||||
.input_1_axis_tdata(tx_axis_tdata),
|
||||
@ -597,6 +601,7 @@ axis_switch_inst (
|
||||
.input_1_axis_tvalid(tx_axis_tvalid),
|
||||
.input_1_axis_tready(tx_axis_tready),
|
||||
.input_1_axis_tlast(tx_axis_tlast),
|
||||
.input_1_axis_tid(0),
|
||||
.input_1_axis_tdest(tx_tdest),
|
||||
.input_1_axis_tuser(tx_axis_tuser),
|
||||
.input_2_axis_tdata(gig_rx_axis_tdata_64),
|
||||
@ -604,6 +609,7 @@ axis_switch_inst (
|
||||
.input_2_axis_tvalid(gig_rx_axis_tvalid_64),
|
||||
.input_2_axis_tready(gig_rx_axis_tready_64),
|
||||
.input_2_axis_tlast(gig_rx_axis_tlast_64),
|
||||
.input_2_axis_tid(0),
|
||||
.input_2_axis_tdest(gig_rx_tdest),
|
||||
.input_2_axis_tuser(gig_rx_axis_tuser_64),
|
||||
.input_3_axis_tdata(64'd0),
|
||||
@ -611,6 +617,7 @@ axis_switch_inst (
|
||||
.input_3_axis_tvalid(1'b0),
|
||||
.input_3_axis_tready(),
|
||||
.input_3_axis_tlast(1'b0),
|
||||
.input_3_axis_tid(0),
|
||||
.input_3_axis_tdest(2'd0),
|
||||
.input_3_axis_tuser(1'b0),
|
||||
// AXI outputs
|
||||
@ -619,6 +626,7 @@ axis_switch_inst (
|
||||
.output_0_axis_tvalid(mac_tx_axis_tvalid),
|
||||
.output_0_axis_tready(mac_tx_axis_tready),
|
||||
.output_0_axis_tlast(mac_tx_axis_tlast),
|
||||
.output_0_axis_tid(),
|
||||
.output_0_axis_tdest(),
|
||||
.output_0_axis_tuser(mac_tx_axis_tuser),
|
||||
.output_1_axis_tdata(rx_axis_tdata),
|
||||
@ -626,6 +634,7 @@ axis_switch_inst (
|
||||
.output_1_axis_tvalid(rx_axis_tvalid),
|
||||
.output_1_axis_tready(rx_axis_tready),
|
||||
.output_1_axis_tlast(rx_axis_tlast),
|
||||
.output_1_axis_tid(),
|
||||
.output_1_axis_tdest(),
|
||||
.output_1_axis_tuser(rx_axis_tuser),
|
||||
.output_2_axis_tdata(gig_tx_axis_tdata_64),
|
||||
@ -633,6 +642,7 @@ axis_switch_inst (
|
||||
.output_2_axis_tvalid(gig_tx_axis_tvalid_64),
|
||||
.output_2_axis_tready(gig_tx_axis_tready_64),
|
||||
.output_2_axis_tlast(gig_tx_axis_tlast_64),
|
||||
.output_2_axis_tid(),
|
||||
.output_2_axis_tdest(),
|
||||
.output_2_axis_tuser(gig_tx_axis_tuser_64),
|
||||
.output_3_axis_tdata(),
|
||||
@ -640,6 +650,7 @@ axis_switch_inst (
|
||||
.output_3_axis_tvalid(),
|
||||
.output_3_axis_tready(1'b1),
|
||||
.output_3_axis_tlast(),
|
||||
.output_3_axis_tid(),
|
||||
.output_3_axis_tdest(),
|
||||
.output_3_axis_tuser()
|
||||
);
|
||||
@ -837,9 +848,15 @@ udp_complete_inst (
|
||||
.clear_arp_cache(1'b0)
|
||||
);
|
||||
|
||||
axis_fifo_64 #(
|
||||
axis_fifo #(
|
||||
.ADDR_WIDTH(10),
|
||||
.DATA_WIDTH(64)
|
||||
.DATA_WIDTH(64),
|
||||
.KEEP_ENABLE(1),
|
||||
.KEEP_WIDTH(64),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
)
|
||||
udp_payload_fifo (
|
||||
.clk(clk),
|
||||
@ -851,6 +868,8 @@ udp_payload_fifo (
|
||||
.input_axis_tvalid(rx_fifo_udp_payload_tvalid),
|
||||
.input_axis_tready(rx_fifo_udp_payload_tready),
|
||||
.input_axis_tlast(rx_fifo_udp_payload_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_udp_payload_tuser),
|
||||
|
||||
// AXI output
|
||||
@ -859,6 +878,8 @@ udp_payload_fifo (
|
||||
.output_axis_tvalid(tx_fifo_udp_payload_tvalid),
|
||||
.output_axis_tready(tx_fifo_udp_payload_tready),
|
||||
.output_axis_tlast(tx_fifo_udp_payload_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(tx_fifo_udp_payload_tuser)
|
||||
);
|
||||
|
||||
|
@ -72,10 +72,8 @@ srcs.append("../lib/eth/lib/axis/rtl/arbiter.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/priority_encoder.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_adapter.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_fifo.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_fifo_64.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_switch_64_4x4.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_switch_4x4.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_async_frame_fifo.v")
|
||||
srcs.append("../lib/eth/lib/axis/rtl/axis_async_frame_fifo_64.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
@ -546,7 +546,12 @@ udp_complete_inst (
|
||||
|
||||
axis_fifo #(
|
||||
.ADDR_WIDTH(12),
|
||||
.DATA_WIDTH(8)
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
)
|
||||
udp_payload_fifo (
|
||||
.clk(clk),
|
||||
@ -554,16 +559,22 @@ udp_payload_fifo (
|
||||
|
||||
// AXI input
|
||||
.input_axis_tdata(rx_fifo_udp_payload_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.input_axis_tvalid(rx_fifo_udp_payload_tvalid),
|
||||
.input_axis_tready(rx_fifo_udp_payload_tready),
|
||||
.input_axis_tlast(rx_fifo_udp_payload_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_udp_payload_tuser),
|
||||
|
||||
// AXI output
|
||||
.output_axis_tdata(tx_fifo_udp_payload_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.output_axis_tvalid(tx_fifo_udp_payload_tvalid),
|
||||
.output_axis_tready(tx_fifo_udp_payload_tready),
|
||||
.output_axis_tlast(tx_fifo_udp_payload_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(tx_fifo_udp_payload_tuser)
|
||||
);
|
||||
|
||||
|
@ -166,9 +166,18 @@ eth_mac_10g_inst (
|
||||
.ifg_delay(ifg_delay)
|
||||
);
|
||||
|
||||
axis_async_frame_fifo_64 #(
|
||||
axis_async_frame_fifo #(
|
||||
.ADDR_WIDTH(TX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(64),
|
||||
.KEEP_ENABLE(1),
|
||||
.KEEP_WIDTH(8),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(0)
|
||||
)
|
||||
tx_fifo (
|
||||
@ -181,6 +190,8 @@ tx_fifo (
|
||||
.input_axis_tvalid(tx_axis_tvalid),
|
||||
.input_axis_tready(tx_axis_tready),
|
||||
.input_axis_tlast(tx_axis_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(tx_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(tx_clk),
|
||||
@ -189,6 +200,9 @@ tx_fifo (
|
||||
.output_axis_tvalid(tx_fifo_axis_tvalid),
|
||||
.output_axis_tready(tx_fifo_axis_tready),
|
||||
.output_axis_tlast(tx_fifo_axis_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(),
|
||||
// Status
|
||||
.input_status_overflow(tx_fifo_overflow),
|
||||
.input_status_bad_frame(tx_fifo_bad_frame),
|
||||
@ -200,9 +214,18 @@ tx_fifo (
|
||||
|
||||
assign tx_fifo_axis_tuser = 1'b0;
|
||||
|
||||
axis_async_frame_fifo_64 #(
|
||||
axis_async_frame_fifo #(
|
||||
.ADDR_WIDTH(RX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(64),
|
||||
.KEEP_ENABLE(1),
|
||||
.KEEP_WIDTH(8),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(1)
|
||||
)
|
||||
rx_fifo (
|
||||
@ -215,6 +238,8 @@ rx_fifo (
|
||||
.input_axis_tvalid(rx_fifo_axis_tvalid),
|
||||
.input_axis_tready(),
|
||||
.input_axis_tlast(rx_fifo_axis_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(logic_clk),
|
||||
@ -223,6 +248,9 @@ rx_fifo (
|
||||
.output_axis_tvalid(rx_axis_tvalid),
|
||||
.output_axis_tready(rx_axis_tready),
|
||||
.output_axis_tlast(rx_axis_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(),
|
||||
// Status
|
||||
.input_status_overflow(),
|
||||
.input_status_bad_frame(),
|
||||
|
@ -177,6 +177,14 @@ eth_mac_1g_inst (
|
||||
axis_async_frame_fifo #(
|
||||
.ADDR_WIDTH(TX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(0)
|
||||
)
|
||||
tx_fifo (
|
||||
@ -188,6 +196,8 @@ tx_fifo (
|
||||
.input_axis_tvalid(tx_axis_tvalid),
|
||||
.input_axis_tready(tx_axis_tready),
|
||||
.input_axis_tlast(tx_axis_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(tx_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(tx_clk),
|
||||
@ -195,6 +205,9 @@ tx_fifo (
|
||||
.output_axis_tvalid(tx_fifo_axis_tvalid),
|
||||
.output_axis_tready(tx_fifo_axis_tready),
|
||||
.output_axis_tlast(tx_fifo_axis_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(),
|
||||
// Status
|
||||
.input_status_overflow(tx_fifo_overflow),
|
||||
.input_status_bad_frame(tx_fifo_bad_frame),
|
||||
@ -209,6 +222,14 @@ assign tx_fifo_axis_tuser = 1'b0;
|
||||
axis_async_frame_fifo #(
|
||||
.ADDR_WIDTH(RX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(1)
|
||||
)
|
||||
rx_fifo (
|
||||
@ -220,6 +241,8 @@ rx_fifo (
|
||||
.input_axis_tvalid(rx_fifo_axis_tvalid),
|
||||
.input_axis_tready(),
|
||||
.input_axis_tlast(rx_fifo_axis_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(logic_clk),
|
||||
@ -227,6 +250,9 @@ rx_fifo (
|
||||
.output_axis_tvalid(rx_axis_tvalid),
|
||||
.output_axis_tready(rx_axis_tready),
|
||||
.output_axis_tlast(rx_axis_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(),
|
||||
// Status
|
||||
.input_status_overflow(),
|
||||
.input_status_bad_frame(),
|
||||
|
@ -204,6 +204,14 @@ eth_mac_1g_gmii_inst (
|
||||
axis_async_frame_fifo #(
|
||||
.ADDR_WIDTH(TX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(0)
|
||||
)
|
||||
tx_fifo (
|
||||
@ -215,6 +223,8 @@ tx_fifo (
|
||||
.input_axis_tvalid(tx_axis_tvalid),
|
||||
.input_axis_tready(tx_axis_tready),
|
||||
.input_axis_tlast(tx_axis_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(tx_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(tx_clk),
|
||||
@ -222,6 +232,9 @@ tx_fifo (
|
||||
.output_axis_tvalid(tx_fifo_axis_tvalid),
|
||||
.output_axis_tready(tx_fifo_axis_tready),
|
||||
.output_axis_tlast(tx_fifo_axis_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(),
|
||||
// Status
|
||||
.input_status_overflow(tx_fifo_overflow),
|
||||
.input_status_bad_frame(tx_fifo_bad_frame),
|
||||
@ -236,6 +249,14 @@ assign tx_fifo_axis_tuser = 1'b0;
|
||||
axis_async_frame_fifo #(
|
||||
.ADDR_WIDTH(RX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(1)
|
||||
)
|
||||
rx_fifo (
|
||||
@ -247,6 +268,8 @@ rx_fifo (
|
||||
.input_axis_tvalid(rx_fifo_axis_tvalid),
|
||||
.input_axis_tready(),
|
||||
.input_axis_tlast(rx_fifo_axis_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(logic_clk),
|
||||
@ -254,6 +277,9 @@ rx_fifo (
|
||||
.output_axis_tvalid(rx_axis_tvalid),
|
||||
.output_axis_tready(rx_axis_tready),
|
||||
.output_axis_tlast(rx_axis_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(),
|
||||
// Status
|
||||
.input_status_overflow(),
|
||||
.input_status_bad_frame(),
|
||||
|
@ -203,6 +203,14 @@ eth_mac_1g_rgmii_inst (
|
||||
axis_async_frame_fifo #(
|
||||
.ADDR_WIDTH(TX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(0)
|
||||
)
|
||||
tx_fifo (
|
||||
@ -214,6 +222,8 @@ tx_fifo (
|
||||
.input_axis_tvalid(tx_axis_tvalid),
|
||||
.input_axis_tready(tx_axis_tready),
|
||||
.input_axis_tlast(tx_axis_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(tx_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(tx_clk),
|
||||
@ -221,6 +231,9 @@ tx_fifo (
|
||||
.output_axis_tvalid(tx_fifo_axis_tvalid),
|
||||
.output_axis_tready(tx_fifo_axis_tready),
|
||||
.output_axis_tlast(tx_fifo_axis_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(),
|
||||
// Status
|
||||
.input_status_overflow(tx_fifo_overflow),
|
||||
.input_status_bad_frame(tx_fifo_bad_frame),
|
||||
@ -235,6 +248,14 @@ assign tx_fifo_axis_tuser = 1'b0;
|
||||
axis_async_frame_fifo #(
|
||||
.ADDR_WIDTH(RX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(1)
|
||||
)
|
||||
rx_fifo (
|
||||
@ -246,6 +267,8 @@ rx_fifo (
|
||||
.input_axis_tvalid(rx_fifo_axis_tvalid),
|
||||
.input_axis_tready(),
|
||||
.input_axis_tlast(rx_fifo_axis_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(rx_fifo_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(logic_clk),
|
||||
@ -253,6 +276,9 @@ rx_fifo (
|
||||
.output_axis_tvalid(rx_axis_tvalid),
|
||||
.output_axis_tready(rx_axis_tready),
|
||||
.output_axis_tlast(rx_axis_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(),
|
||||
// Status
|
||||
.input_status_overflow(),
|
||||
.input_status_bad_frame(),
|
||||
|
@ -197,23 +197,35 @@ wire output_udp_payload_fifo_tlast;
|
||||
wire output_udp_payload_fifo_tuser;
|
||||
|
||||
axis_fifo #(
|
||||
.ADDR_WIDTH(PAYLOAD_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.ADDR_WIDTH(PAYLOAD_FIFO_ADDR_WIDTH)
|
||||
.KEEP_ENABLE(0),
|
||||
.LAST_ENABLE(1),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
)
|
||||
payload_fifo (
|
||||
.clk(clk),
|
||||
.rst(rst),
|
||||
// AXI input
|
||||
.input_axis_tdata(input_udp_payload_fifo_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.input_axis_tvalid(input_udp_payload_fifo_tvalid),
|
||||
.input_axis_tready(input_udp_payload_fifo_tready),
|
||||
.input_axis_tlast(input_udp_payload_fifo_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(input_udp_payload_fifo_tuser),
|
||||
// AXI output
|
||||
.output_axis_tdata(output_udp_payload_fifo_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.output_axis_tvalid(output_udp_payload_fifo_tvalid),
|
||||
.output_axis_tready(output_udp_payload_fifo_tready),
|
||||
.output_axis_tlast(output_udp_payload_fifo_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(output_udp_payload_fifo_tuser)
|
||||
);
|
||||
|
||||
|
@ -201,9 +201,16 @@ wire output_udp_payload_fifo_tready;
|
||||
wire output_udp_payload_fifo_tlast;
|
||||
wire output_udp_payload_fifo_tuser;
|
||||
|
||||
axis_fifo_64 #(
|
||||
axis_fifo #(
|
||||
.ADDR_WIDTH(PAYLOAD_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(64),
|
||||
.ADDR_WIDTH(PAYLOAD_FIFO_ADDR_WIDTH)
|
||||
.KEEP_ENABLE(1),
|
||||
.KEEP_WIDTH(8),
|
||||
.LAST_ENABLE(1),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
)
|
||||
payload_fifo (
|
||||
.clk(clk),
|
||||
@ -214,6 +221,8 @@ payload_fifo (
|
||||
.input_axis_tvalid(input_udp_payload_fifo_tvalid),
|
||||
.input_axis_tready(input_udp_payload_fifo_tready),
|
||||
.input_axis_tlast(input_udp_payload_fifo_tlast),
|
||||
.input_axis_tid(0),
|
||||
.input_axis_tdest(0),
|
||||
.input_axis_tuser(input_udp_payload_fifo_tuser),
|
||||
// AXI output
|
||||
.output_axis_tdata(output_udp_payload_fifo_tdata),
|
||||
@ -221,6 +230,8 @@ payload_fifo (
|
||||
.output_axis_tvalid(output_udp_payload_fifo_tvalid),
|
||||
.output_axis_tready(output_udp_payload_fifo_tready),
|
||||
.output_axis_tlast(output_udp_payload_fifo_tlast),
|
||||
.output_axis_tid(),
|
||||
.output_axis_tdest(),
|
||||
.output_axis_tuser(output_udp_payload_fifo_tuser)
|
||||
);
|
||||
|
||||
|
@ -40,7 +40,7 @@ srcs.append("../rtl/lfsr.v")
|
||||
srcs.append("../rtl/eth_mac_10g_rx.v")
|
||||
srcs.append("../rtl/eth_mac_10g_tx.v")
|
||||
srcs.append("../rtl/eth_mac_10g.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_frame_fifo_64.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_frame_fifo.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
@ -354,7 +354,7 @@ def bench():
|
||||
|
||||
rx_frame = sink.recv()
|
||||
|
||||
assert rx_frame.user[-1]
|
||||
assert rx_frame.last_cycle_user
|
||||
|
||||
rx_frame = sink.recv()
|
||||
|
||||
|
@ -272,7 +272,7 @@ def bench():
|
||||
axis_frame1 = test_frame1.build_axis()
|
||||
axis_frame2 = test_frame2.build_axis()
|
||||
|
||||
axis_frame1.user = 1
|
||||
axis_frame1.last_cycle_user = 1
|
||||
|
||||
source.send(axis_frame1)
|
||||
source.send(axis_frame2)
|
||||
|
@ -350,7 +350,7 @@ def bench():
|
||||
|
||||
rx_frame = sink.recv()
|
||||
|
||||
assert rx_frame.user[-1]
|
||||
assert rx_frame.last_cycle_user
|
||||
|
||||
rx_frame = sink.recv()
|
||||
|
||||
|
@ -272,7 +272,7 @@ def bench():
|
||||
axis_frame1 = test_frame1.build_axis()
|
||||
axis_frame2 = test_frame2.build_axis()
|
||||
|
||||
axis_frame1.user = 1
|
||||
axis_frame1.last_cycle_user = 1
|
||||
|
||||
source.send(axis_frame1)
|
||||
source.send(axis_frame2)
|
||||
|
@ -39,7 +39,7 @@ srcs.append("../rtl/%s.v" % module)
|
||||
srcs.append("../rtl/udp_checksum_gen_64.v")
|
||||
srcs.append("../rtl/udp_ip_rx_64.v")
|
||||
srcs.append("../rtl/udp_ip_tx_64.v")
|
||||
srcs.append("../lib/axis/rtl/axis_fifo_64.v")
|
||||
srcs.append("../lib/axis/rtl/axis_fifo.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
@ -37,7 +37,7 @@ testbench = 'test_%s' % module
|
||||
srcs = []
|
||||
|
||||
srcs.append("../rtl/%s.v" % module)
|
||||
srcs.append("../lib/axis/rtl/axis_fifo_64.v")
|
||||
srcs.append("../lib/axis/rtl/axis_fifo.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
@ -55,7 +55,7 @@ srcs.append("../rtl/eth_arb_mux_64_2.v")
|
||||
srcs.append("../rtl/eth_mux_64_2.v")
|
||||
srcs.append("../lib/axis/rtl/arbiter.v")
|
||||
srcs.append("../lib/axis/rtl/priority_encoder.v")
|
||||
srcs.append("../lib/axis/rtl/axis_fifo_64.v")
|
||||
srcs.append("../lib/axis/rtl/axis_fifo.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
Loading…
x
Reference in New Issue
Block a user