mirror of
https://github.com/corundum/corundum.git
synced 2025-01-16 08:12:53 +08:00
Update FIFO instances
This commit is contained in:
parent
e89097c8b1
commit
ad8828d5b7
@ -38,7 +38,13 @@ module eth_mac_10g_fifo #
|
||||
parameter ENABLE_DIC = 1,
|
||||
parameter MIN_FRAME_LENGTH = 64,
|
||||
parameter TX_FIFO_ADDR_WIDTH = 9,
|
||||
parameter RX_FIFO_ADDR_WIDTH = 9
|
||||
parameter TX_FRAME_FIFO = 1,
|
||||
parameter TX_DROP_BAD_FRAME = TX_FRAME_FIFO,
|
||||
parameter TX_DROP_WHEN_FULL = 0,
|
||||
parameter RX_FIFO_ADDR_WIDTH = 9,
|
||||
parameter RX_FRAME_FIFO = 1,
|
||||
parameter RX_DROP_BAD_FRAME = RX_FRAME_FIFO,
|
||||
parameter RX_DROP_WHEN_FULL = RX_FRAME_FIFO
|
||||
)
|
||||
(
|
||||
input wire rx_clk,
|
||||
@ -172,100 +178,100 @@ eth_mac_10g_inst (
|
||||
.ifg_delay(ifg_delay)
|
||||
);
|
||||
|
||||
axis_async_frame_fifo #(
|
||||
axis_async_fifo #(
|
||||
.ADDR_WIDTH(TX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(DATA_WIDTH),
|
||||
.KEEP_ENABLE(1),
|
||||
.KEEP_WIDTH(KEEP_WIDTH),
|
||||
.LAST_ENABLE(1),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.FRAME_FIFO(TX_FRAME_FIFO),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(0)
|
||||
.DROP_BAD_FRAME(TX_DROP_BAD_FRAME),
|
||||
.DROP_WHEN_FULL(TX_DROP_WHEN_FULL)
|
||||
)
|
||||
tx_fifo (
|
||||
// Common reset
|
||||
.async_rst(logic_rst | tx_rst),
|
||||
// AXI input
|
||||
.input_clk(logic_clk),
|
||||
.input_axis_tdata(tx_axis_tdata),
|
||||
.input_axis_tkeep(tx_axis_tkeep),
|
||||
.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),
|
||||
.s_clk(logic_clk),
|
||||
.s_axis_tdata(tx_axis_tdata),
|
||||
.s_axis_tkeep(tx_axis_tkeep),
|
||||
.s_axis_tvalid(tx_axis_tvalid),
|
||||
.s_axis_tready(tx_axis_tready),
|
||||
.s_axis_tlast(tx_axis_tlast),
|
||||
.s_axis_tid(0),
|
||||
.s_axis_tdest(0),
|
||||
.s_axis_tuser(tx_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(tx_clk),
|
||||
.output_axis_tdata(tx_fifo_axis_tdata),
|
||||
.output_axis_tkeep(tx_fifo_axis_tkeep),
|
||||
.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(),
|
||||
.m_clk(tx_clk),
|
||||
.m_axis_tdata(tx_fifo_axis_tdata),
|
||||
.m_axis_tkeep(tx_fifo_axis_tkeep),
|
||||
.m_axis_tvalid(tx_fifo_axis_tvalid),
|
||||
.m_axis_tready(tx_fifo_axis_tready),
|
||||
.m_axis_tlast(tx_fifo_axis_tlast),
|
||||
.m_axis_tid(),
|
||||
.m_axis_tdest(),
|
||||
.m_axis_tuser(tx_fifo_axis_tuser),
|
||||
// Status
|
||||
.input_status_overflow(tx_fifo_overflow),
|
||||
.input_status_bad_frame(tx_fifo_bad_frame),
|
||||
.input_status_good_frame(tx_fifo_good_frame),
|
||||
.output_status_overflow(),
|
||||
.output_status_bad_frame(),
|
||||
.output_status_good_frame()
|
||||
.s_status_overflow(tx_fifo_overflow),
|
||||
.s_status_bad_frame(tx_fifo_bad_frame),
|
||||
.s_status_good_frame(tx_fifo_good_frame),
|
||||
.m_status_overflow(),
|
||||
.m_status_bad_frame(),
|
||||
.m_status_good_frame()
|
||||
);
|
||||
|
||||
assign tx_fifo_axis_tuser = 1'b0;
|
||||
|
||||
axis_async_frame_fifo #(
|
||||
axis_async_fifo #(
|
||||
.ADDR_WIDTH(RX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(DATA_WIDTH),
|
||||
.KEEP_ENABLE(1),
|
||||
.KEEP_WIDTH(KEEP_WIDTH),
|
||||
.LAST_ENABLE(1),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.FRAME_FIFO(RX_FRAME_FIFO),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(1)
|
||||
.DROP_BAD_FRAME(RX_DROP_BAD_FRAME),
|
||||
.DROP_WHEN_FULL(RX_DROP_WHEN_FULL)
|
||||
)
|
||||
rx_fifo (
|
||||
// Common reset
|
||||
.async_rst(rx_rst | logic_rst),
|
||||
// AXI input
|
||||
.input_clk(rx_clk),
|
||||
.input_axis_tdata(rx_fifo_axis_tdata),
|
||||
.input_axis_tkeep(rx_fifo_axis_tkeep),
|
||||
.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),
|
||||
.s_clk(rx_clk),
|
||||
.s_axis_tdata(rx_fifo_axis_tdata),
|
||||
.s_axis_tkeep(rx_fifo_axis_tkeep),
|
||||
.s_axis_tvalid(rx_fifo_axis_tvalid),
|
||||
.s_axis_tready(),
|
||||
.s_axis_tlast(rx_fifo_axis_tlast),
|
||||
.s_axis_tid(0),
|
||||
.s_axis_tdest(0),
|
||||
.s_axis_tuser(rx_fifo_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(logic_clk),
|
||||
.output_axis_tdata(rx_axis_tdata),
|
||||
.output_axis_tkeep(rx_axis_tkeep),
|
||||
.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(),
|
||||
.m_clk(logic_clk),
|
||||
.m_axis_tdata(rx_axis_tdata),
|
||||
.m_axis_tkeep(rx_axis_tkeep),
|
||||
.m_axis_tvalid(rx_axis_tvalid),
|
||||
.m_axis_tready(rx_axis_tready),
|
||||
.m_axis_tlast(rx_axis_tlast),
|
||||
.m_axis_tid(),
|
||||
.m_axis_tdest(),
|
||||
.m_axis_tuser(rx_axis_tuser),
|
||||
// Status
|
||||
.input_status_overflow(),
|
||||
.input_status_bad_frame(),
|
||||
.input_status_good_frame(),
|
||||
.output_status_overflow(rx_fifo_overflow),
|
||||
.output_status_bad_frame(rx_fifo_bad_frame),
|
||||
.output_status_good_frame(rx_fifo_good_frame)
|
||||
.s_status_overflow(),
|
||||
.s_status_bad_frame(),
|
||||
.s_status_good_frame(),
|
||||
.m_status_overflow(rx_fifo_overflow),
|
||||
.m_status_bad_frame(rx_fifo_bad_frame),
|
||||
.m_status_good_frame(rx_fifo_good_frame)
|
||||
);
|
||||
|
||||
assign rx_axis_tuser = 1'b0;
|
||||
|
||||
endmodule
|
||||
|
@ -34,7 +34,13 @@ module eth_mac_1g_fifo #
|
||||
parameter ENABLE_PADDING = 1,
|
||||
parameter MIN_FRAME_LENGTH = 64,
|
||||
parameter TX_FIFO_ADDR_WIDTH = 12,
|
||||
parameter RX_FIFO_ADDR_WIDTH = 12
|
||||
parameter TX_FRAME_FIFO = 1,
|
||||
parameter TX_DROP_BAD_FRAME = TX_FRAME_FIFO,
|
||||
parameter TX_DROP_WHEN_FULL = 0,
|
||||
parameter RX_FIFO_ADDR_WIDTH = 12,
|
||||
parameter RX_FRAME_FIFO = 1,
|
||||
parameter RX_DROP_BAD_FRAME = RX_FRAME_FIFO,
|
||||
parameter RX_DROP_WHEN_FULL = RX_FRAME_FIFO
|
||||
)
|
||||
(
|
||||
input wire rx_clk,
|
||||
@ -174,98 +180,98 @@ eth_mac_1g_inst (
|
||||
.ifg_delay(ifg_delay)
|
||||
);
|
||||
|
||||
axis_async_frame_fifo #(
|
||||
axis_async_fifo #(
|
||||
.ADDR_WIDTH(TX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.LAST_ENABLE(1),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.FRAME_FIFO(TX_FRAME_FIFO),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(0)
|
||||
.DROP_BAD_FRAME(TX_DROP_BAD_FRAME),
|
||||
.DROP_WHEN_FULL(TX_DROP_WHEN_FULL)
|
||||
)
|
||||
tx_fifo (
|
||||
// Common reset
|
||||
.async_rst(logic_rst | tx_rst),
|
||||
// AXI input
|
||||
.input_clk(logic_clk),
|
||||
.input_axis_tdata(tx_axis_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.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),
|
||||
.s_clk(logic_clk),
|
||||
.s_axis_tdata(tx_axis_tdata),
|
||||
.s_axis_tkeep(0),
|
||||
.s_axis_tvalid(tx_axis_tvalid),
|
||||
.s_axis_tready(tx_axis_tready),
|
||||
.s_axis_tlast(tx_axis_tlast),
|
||||
.s_axis_tid(0),
|
||||
.s_axis_tdest(0),
|
||||
.s_axis_tuser(tx_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(tx_clk),
|
||||
.output_axis_tdata(tx_fifo_axis_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.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(),
|
||||
.m_clk(tx_clk),
|
||||
.m_axis_tdata(tx_fifo_axis_tdata),
|
||||
.m_axis_tkeep(),
|
||||
.m_axis_tvalid(tx_fifo_axis_tvalid),
|
||||
.m_axis_tready(tx_fifo_axis_tready),
|
||||
.m_axis_tlast(tx_fifo_axis_tlast),
|
||||
.m_axis_tid(),
|
||||
.m_axis_tdest(),
|
||||
.m_axis_tuser(tx_fifo_axis_tuser),
|
||||
// Status
|
||||
.input_status_overflow(tx_fifo_overflow),
|
||||
.input_status_bad_frame(tx_fifo_bad_frame),
|
||||
.input_status_good_frame(tx_fifo_good_frame),
|
||||
.output_status_overflow(),
|
||||
.output_status_bad_frame(),
|
||||
.output_status_good_frame()
|
||||
.s_status_overflow(tx_fifo_overflow),
|
||||
.s_status_bad_frame(tx_fifo_bad_frame),
|
||||
.s_status_good_frame(tx_fifo_good_frame),
|
||||
.m_status_overflow(),
|
||||
.m_status_bad_frame(),
|
||||
.m_status_good_frame()
|
||||
);
|
||||
|
||||
assign tx_fifo_axis_tuser = 1'b0;
|
||||
|
||||
axis_async_frame_fifo #(
|
||||
axis_async_fifo #(
|
||||
.ADDR_WIDTH(RX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.LAST_ENABLE(1),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.FRAME_FIFO(TX_FRAME_FIFO),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(1)
|
||||
.DROP_BAD_FRAME(TX_DROP_BAD_FRAME),
|
||||
.DROP_WHEN_FULL(TX_DROP_WHEN_FULL)
|
||||
)
|
||||
rx_fifo (
|
||||
// Common reset
|
||||
.async_rst(rx_rst | logic_rst),
|
||||
// AXI input
|
||||
.input_clk(rx_clk),
|
||||
.input_axis_tdata(rx_fifo_axis_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.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),
|
||||
.s_clk(rx_clk),
|
||||
.s_axis_tdata(rx_fifo_axis_tdata),
|
||||
.s_axis_tkeep(0),
|
||||
.s_axis_tvalid(rx_fifo_axis_tvalid),
|
||||
.s_axis_tready(),
|
||||
.s_axis_tlast(rx_fifo_axis_tlast),
|
||||
.s_axis_tid(0),
|
||||
.s_axis_tdest(0),
|
||||
.s_axis_tuser(rx_fifo_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(logic_clk),
|
||||
.output_axis_tdata(rx_axis_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.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(),
|
||||
.m_clk(logic_clk),
|
||||
.m_axis_tdata(rx_axis_tdata),
|
||||
.m_axis_tkeep(),
|
||||
.m_axis_tvalid(rx_axis_tvalid),
|
||||
.m_axis_tready(rx_axis_tready),
|
||||
.m_axis_tlast(rx_axis_tlast),
|
||||
.m_axis_tid(),
|
||||
.m_axis_tdest(),
|
||||
.m_axis_tuser(rx_axis_tuser),
|
||||
// Status
|
||||
.input_status_overflow(),
|
||||
.input_status_bad_frame(),
|
||||
.input_status_good_frame(),
|
||||
.output_status_overflow(rx_fifo_overflow),
|
||||
.output_status_bad_frame(rx_fifo_bad_frame),
|
||||
.output_status_good_frame(rx_fifo_good_frame)
|
||||
.s_status_overflow(),
|
||||
.s_status_bad_frame(),
|
||||
.s_status_good_frame(),
|
||||
.m_status_overflow(rx_fifo_overflow),
|
||||
.m_status_bad_frame(rx_fifo_bad_frame),
|
||||
.m_status_good_frame(rx_fifo_good_frame)
|
||||
);
|
||||
|
||||
assign rx_axis_tuser = 1'b0;
|
||||
|
||||
endmodule
|
||||
|
@ -45,7 +45,13 @@ module eth_mac_1g_gmii_fifo #
|
||||
parameter ENABLE_PADDING = 1,
|
||||
parameter MIN_FRAME_LENGTH = 64,
|
||||
parameter TX_FIFO_ADDR_WIDTH = 12,
|
||||
parameter RX_FIFO_ADDR_WIDTH = 12
|
||||
parameter TX_FRAME_FIFO = 1,
|
||||
parameter TX_DROP_BAD_FRAME = TX_FRAME_FIFO,
|
||||
parameter TX_DROP_WHEN_FULL = 0,
|
||||
parameter RX_FIFO_ADDR_WIDTH = 12,
|
||||
parameter RX_FRAME_FIFO = 1,
|
||||
parameter RX_DROP_BAD_FRAME = RX_FRAME_FIFO,
|
||||
parameter RX_DROP_WHEN_FULL = RX_FRAME_FIFO
|
||||
)
|
||||
(
|
||||
input wire gtx_clk,
|
||||
@ -201,98 +207,98 @@ eth_mac_1g_gmii_inst (
|
||||
.ifg_delay(ifg_delay)
|
||||
);
|
||||
|
||||
axis_async_frame_fifo #(
|
||||
axis_async_fifo #(
|
||||
.ADDR_WIDTH(TX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.LAST_ENABLE(1),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.FRAME_FIFO(TX_FRAME_FIFO),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(0)
|
||||
.DROP_BAD_FRAME(TX_DROP_BAD_FRAME),
|
||||
.DROP_WHEN_FULL(TX_DROP_WHEN_FULL)
|
||||
)
|
||||
tx_fifo (
|
||||
// Common reset
|
||||
.async_rst(logic_rst | tx_rst),
|
||||
// AXI input
|
||||
.input_clk(logic_clk),
|
||||
.input_axis_tdata(tx_axis_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.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),
|
||||
.s_clk(logic_clk),
|
||||
.s_axis_tdata(tx_axis_tdata),
|
||||
.s_axis_tkeep(0),
|
||||
.s_axis_tvalid(tx_axis_tvalid),
|
||||
.s_axis_tready(tx_axis_tready),
|
||||
.s_axis_tlast(tx_axis_tlast),
|
||||
.s_axis_tid(0),
|
||||
.s_axis_tdest(0),
|
||||
.s_axis_tuser(tx_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(tx_clk),
|
||||
.output_axis_tdata(tx_fifo_axis_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.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(),
|
||||
.m_clk(tx_clk),
|
||||
.m_axis_tdata(tx_fifo_axis_tdata),
|
||||
.m_axis_tkeep(),
|
||||
.m_axis_tvalid(tx_fifo_axis_tvalid),
|
||||
.m_axis_tready(tx_fifo_axis_tready),
|
||||
.m_axis_tlast(tx_fifo_axis_tlast),
|
||||
.m_axis_tid(),
|
||||
.m_axis_tdest(),
|
||||
.m_axis_tuser(tx_fifo_axis_tuser),
|
||||
// Status
|
||||
.input_status_overflow(tx_fifo_overflow),
|
||||
.input_status_bad_frame(tx_fifo_bad_frame),
|
||||
.input_status_good_frame(tx_fifo_good_frame),
|
||||
.output_status_overflow(),
|
||||
.output_status_bad_frame(),
|
||||
.output_status_good_frame()
|
||||
.s_status_overflow(tx_fifo_overflow),
|
||||
.s_status_bad_frame(tx_fifo_bad_frame),
|
||||
.s_status_good_frame(tx_fifo_good_frame),
|
||||
.m_status_overflow(),
|
||||
.m_status_bad_frame(),
|
||||
.m_status_good_frame()
|
||||
);
|
||||
|
||||
assign tx_fifo_axis_tuser = 1'b0;
|
||||
|
||||
axis_async_frame_fifo #(
|
||||
axis_async_fifo #(
|
||||
.ADDR_WIDTH(RX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.LAST_ENABLE(1),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.FRAME_FIFO(TX_FRAME_FIFO),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(1)
|
||||
.DROP_BAD_FRAME(TX_DROP_BAD_FRAME),
|
||||
.DROP_WHEN_FULL(TX_DROP_WHEN_FULL)
|
||||
)
|
||||
rx_fifo (
|
||||
// Common reset
|
||||
.async_rst(rx_rst | logic_rst),
|
||||
// AXI input
|
||||
.input_clk(rx_clk),
|
||||
.input_axis_tdata(rx_fifo_axis_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.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),
|
||||
.s_clk(rx_clk),
|
||||
.s_axis_tdata(rx_fifo_axis_tdata),
|
||||
.s_axis_tkeep(0),
|
||||
.s_axis_tvalid(rx_fifo_axis_tvalid),
|
||||
.s_axis_tready(),
|
||||
.s_axis_tlast(rx_fifo_axis_tlast),
|
||||
.s_axis_tid(0),
|
||||
.s_axis_tdest(0),
|
||||
.s_axis_tuser(rx_fifo_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(logic_clk),
|
||||
.output_axis_tdata(rx_axis_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.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(),
|
||||
.m_clk(logic_clk),
|
||||
.m_axis_tdata(rx_axis_tdata),
|
||||
.m_axis_tkeep(),
|
||||
.m_axis_tvalid(rx_axis_tvalid),
|
||||
.m_axis_tready(rx_axis_tready),
|
||||
.m_axis_tlast(rx_axis_tlast),
|
||||
.m_axis_tid(),
|
||||
.m_axis_tdest(),
|
||||
.m_axis_tuser(rx_axis_tuser),
|
||||
// Status
|
||||
.input_status_overflow(),
|
||||
.input_status_bad_frame(),
|
||||
.input_status_good_frame(),
|
||||
.output_status_overflow(rx_fifo_overflow),
|
||||
.output_status_bad_frame(rx_fifo_bad_frame),
|
||||
.output_status_good_frame(rx_fifo_good_frame)
|
||||
.s_status_overflow(),
|
||||
.s_status_bad_frame(),
|
||||
.s_status_good_frame(),
|
||||
.m_status_overflow(rx_fifo_overflow),
|
||||
.m_status_bad_frame(rx_fifo_bad_frame),
|
||||
.m_status_good_frame(rx_fifo_good_frame)
|
||||
);
|
||||
|
||||
assign rx_axis_tuser = 1'b0;
|
||||
|
||||
endmodule
|
||||
|
@ -47,7 +47,13 @@ module eth_mac_1g_rgmii_fifo #
|
||||
parameter ENABLE_PADDING = 1,
|
||||
parameter MIN_FRAME_LENGTH = 64,
|
||||
parameter TX_FIFO_ADDR_WIDTH = 12,
|
||||
parameter RX_FIFO_ADDR_WIDTH = 12
|
||||
parameter TX_FRAME_FIFO = 1,
|
||||
parameter TX_DROP_BAD_FRAME = TX_FRAME_FIFO,
|
||||
parameter TX_DROP_WHEN_FULL = 0,
|
||||
parameter RX_FIFO_ADDR_WIDTH = 12,
|
||||
parameter RX_FRAME_FIFO = 1,
|
||||
parameter RX_DROP_BAD_FRAME = RX_FRAME_FIFO,
|
||||
parameter RX_DROP_WHEN_FULL = RX_FRAME_FIFO
|
||||
)
|
||||
(
|
||||
input wire gtx_clk,
|
||||
@ -200,98 +206,98 @@ eth_mac_1g_rgmii_inst (
|
||||
.ifg_delay(ifg_delay)
|
||||
);
|
||||
|
||||
axis_async_frame_fifo #(
|
||||
axis_async_fifo #(
|
||||
.ADDR_WIDTH(TX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.LAST_ENABLE(1),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.FRAME_FIFO(TX_FRAME_FIFO),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(0)
|
||||
.DROP_BAD_FRAME(TX_DROP_BAD_FRAME),
|
||||
.DROP_WHEN_FULL(TX_DROP_WHEN_FULL)
|
||||
)
|
||||
tx_fifo (
|
||||
// Common reset
|
||||
.async_rst(logic_rst | tx_rst),
|
||||
// AXI input
|
||||
.input_clk(logic_clk),
|
||||
.input_axis_tdata(tx_axis_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.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),
|
||||
.s_clk(logic_clk),
|
||||
.s_axis_tdata(tx_axis_tdata),
|
||||
.s_axis_tkeep(0),
|
||||
.s_axis_tvalid(tx_axis_tvalid),
|
||||
.s_axis_tready(tx_axis_tready),
|
||||
.s_axis_tlast(tx_axis_tlast),
|
||||
.s_axis_tid(0),
|
||||
.s_axis_tdest(0),
|
||||
.s_axis_tuser(tx_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(tx_clk),
|
||||
.output_axis_tdata(tx_fifo_axis_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.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(),
|
||||
.m_clk(tx_clk),
|
||||
.m_axis_tdata(tx_fifo_axis_tdata),
|
||||
.m_axis_tkeep(),
|
||||
.m_axis_tvalid(tx_fifo_axis_tvalid),
|
||||
.m_axis_tready(tx_fifo_axis_tready),
|
||||
.m_axis_tlast(tx_fifo_axis_tlast),
|
||||
.m_axis_tid(),
|
||||
.m_axis_tdest(),
|
||||
.m_axis_tuser(tx_fifo_axis_tuser),
|
||||
// Status
|
||||
.input_status_overflow(tx_fifo_overflow),
|
||||
.input_status_bad_frame(tx_fifo_bad_frame),
|
||||
.input_status_good_frame(tx_fifo_good_frame),
|
||||
.output_status_overflow(),
|
||||
.output_status_bad_frame(),
|
||||
.output_status_good_frame()
|
||||
.s_status_overflow(tx_fifo_overflow),
|
||||
.s_status_bad_frame(tx_fifo_bad_frame),
|
||||
.s_status_good_frame(tx_fifo_good_frame),
|
||||
.m_status_overflow(),
|
||||
.m_status_bad_frame(),
|
||||
.m_status_good_frame()
|
||||
);
|
||||
|
||||
assign tx_fifo_axis_tuser = 1'b0;
|
||||
|
||||
axis_async_frame_fifo #(
|
||||
axis_async_fifo #(
|
||||
.ADDR_WIDTH(RX_FIFO_ADDR_WIDTH),
|
||||
.DATA_WIDTH(8),
|
||||
.KEEP_ENABLE(0),
|
||||
.LAST_ENABLE(1),
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1),
|
||||
.FRAME_FIFO(TX_FRAME_FIFO),
|
||||
.USER_BAD_FRAME_VALUE(1'b1),
|
||||
.USER_BAD_FRAME_MASK(1'b1),
|
||||
.DROP_BAD_FRAME(1),
|
||||
.DROP_WHEN_FULL(1)
|
||||
.DROP_BAD_FRAME(TX_DROP_BAD_FRAME),
|
||||
.DROP_WHEN_FULL(TX_DROP_WHEN_FULL)
|
||||
)
|
||||
rx_fifo (
|
||||
// Common reset
|
||||
.async_rst(rx_rst | logic_rst),
|
||||
// AXI input
|
||||
.input_clk(rx_clk),
|
||||
.input_axis_tdata(rx_fifo_axis_tdata),
|
||||
.input_axis_tkeep(0),
|
||||
.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),
|
||||
.s_clk(rx_clk),
|
||||
.s_axis_tdata(rx_fifo_axis_tdata),
|
||||
.s_axis_tkeep(0),
|
||||
.s_axis_tvalid(rx_fifo_axis_tvalid),
|
||||
.s_axis_tready(),
|
||||
.s_axis_tlast(rx_fifo_axis_tlast),
|
||||
.s_axis_tid(0),
|
||||
.s_axis_tdest(0),
|
||||
.s_axis_tuser(rx_fifo_axis_tuser),
|
||||
// AXI output
|
||||
.output_clk(logic_clk),
|
||||
.output_axis_tdata(rx_axis_tdata),
|
||||
.output_axis_tkeep(),
|
||||
.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(),
|
||||
.m_clk(logic_clk),
|
||||
.m_axis_tdata(rx_axis_tdata),
|
||||
.m_axis_tkeep(),
|
||||
.m_axis_tvalid(rx_axis_tvalid),
|
||||
.m_axis_tready(rx_axis_tready),
|
||||
.m_axis_tlast(rx_axis_tlast),
|
||||
.m_axis_tid(),
|
||||
.m_axis_tdest(),
|
||||
.m_axis_tuser(rx_axis_tuser),
|
||||
// Status
|
||||
.input_status_overflow(),
|
||||
.input_status_bad_frame(),
|
||||
.input_status_good_frame(),
|
||||
.output_status_overflow(rx_fifo_overflow),
|
||||
.output_status_bad_frame(rx_fifo_bad_frame),
|
||||
.output_status_good_frame(rx_fifo_good_frame)
|
||||
.s_status_overflow(),
|
||||
.s_status_bad_frame(),
|
||||
.s_status_good_frame(),
|
||||
.m_status_overflow(rx_fifo_overflow),
|
||||
.m_status_bad_frame(rx_fifo_bad_frame),
|
||||
.m_status_good_frame(rx_fifo_good_frame)
|
||||
);
|
||||
|
||||
assign rx_axis_tuser = 1'b0;
|
||||
|
||||
endmodule
|
||||
|
@ -204,29 +204,34 @@ axis_fifo #(
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
.USER_WIDTH(1),
|
||||
.FRAME_FIFO(0)
|
||||
)
|
||||
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),
|
||||
.s_axis_tdata(input_udp_payload_fifo_tdata),
|
||||
.s_axis_tkeep(0),
|
||||
.s_axis_tvalid(input_udp_payload_fifo_tvalid),
|
||||
.s_axis_tready(input_udp_payload_fifo_tready),
|
||||
.s_axis_tlast(input_udp_payload_fifo_tlast),
|
||||
.s_axis_tid(0),
|
||||
.s_axis_tdest(0),
|
||||
.s_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)
|
||||
.m_axis_tdata(output_udp_payload_fifo_tdata),
|
||||
.m_axis_tkeep(),
|
||||
.m_axis_tvalid(output_udp_payload_fifo_tvalid),
|
||||
.m_axis_tready(output_udp_payload_fifo_tready),
|
||||
.m_axis_tlast(output_udp_payload_fifo_tlast),
|
||||
.m_axis_tid(),
|
||||
.m_axis_tdest(),
|
||||
.m_axis_tuser(output_udp_payload_fifo_tuser),
|
||||
// Status
|
||||
.status_overflow(),
|
||||
.status_bad_frame(),
|
||||
.status_good_frame()
|
||||
);
|
||||
|
||||
assign input_udp_payload_fifo_tdata = input_udp_payload_tdata;
|
||||
|
@ -210,29 +210,34 @@ axis_fifo #(
|
||||
.ID_ENABLE(0),
|
||||
.DEST_ENABLE(0),
|
||||
.USER_ENABLE(1),
|
||||
.USER_WIDTH(1)
|
||||
.USER_WIDTH(1),
|
||||
.FRAME_FIFO(0)
|
||||
)
|
||||
payload_fifo (
|
||||
.clk(clk),
|
||||
.rst(rst),
|
||||
// AXI input
|
||||
.input_axis_tdata(input_udp_payload_fifo_tdata),
|
||||
.input_axis_tkeep(input_udp_payload_fifo_tkeep),
|
||||
.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),
|
||||
.s_axis_tdata(input_udp_payload_fifo_tdata),
|
||||
.s_axis_tkeep(input_udp_payload_fifo_tkeep),
|
||||
.s_axis_tvalid(input_udp_payload_fifo_tvalid),
|
||||
.s_axis_tready(input_udp_payload_fifo_tready),
|
||||
.s_axis_tlast(input_udp_payload_fifo_tlast),
|
||||
.s_axis_tid(0),
|
||||
.s_axis_tdest(0),
|
||||
.s_axis_tuser(input_udp_payload_fifo_tuser),
|
||||
// AXI output
|
||||
.output_axis_tdata(output_udp_payload_fifo_tdata),
|
||||
.output_axis_tkeep(output_udp_payload_fifo_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)
|
||||
.m_axis_tdata(output_udp_payload_fifo_tdata),
|
||||
.m_axis_tkeep(output_udp_payload_fifo_tkeep),
|
||||
.m_axis_tvalid(output_udp_payload_fifo_tvalid),
|
||||
.m_axis_tready(output_udp_payload_fifo_tready),
|
||||
.m_axis_tlast(output_udp_payload_fifo_tlast),
|
||||
.m_axis_tid(),
|
||||
.m_axis_tdest(),
|
||||
.m_axis_tuser(output_udp_payload_fifo_tuser),
|
||||
// Status
|
||||
.status_overflow(),
|
||||
.status_bad_frame(),
|
||||
.status_good_frame()
|
||||
);
|
||||
|
||||
assign input_udp_payload_fifo_tdata = input_udp_payload_tdata;
|
||||
|
@ -40,7 +40,7 @@ srcs.append("../rtl/lfsr.v")
|
||||
srcs.append("../rtl/axis_xgmii_rx_32.v")
|
||||
srcs.append("../rtl/axis_xgmii_tx_32.v")
|
||||
srcs.append("../rtl/eth_mac_10g.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_frame_fifo.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_fifo.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
@ -40,7 +40,7 @@ srcs.append("../rtl/lfsr.v")
|
||||
srcs.append("../rtl/axis_xgmii_rx_64.v")
|
||||
srcs.append("../rtl/axis_xgmii_tx_64.v")
|
||||
srcs.append("../rtl/eth_mac_10g.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_frame_fifo.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_fifo.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
@ -40,7 +40,7 @@ srcs.append("../rtl/lfsr.v")
|
||||
srcs.append("../rtl/axis_gmii_rx.v")
|
||||
srcs.append("../rtl/axis_gmii_tx.v")
|
||||
srcs.append("../rtl/eth_mac_1g.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_frame_fifo.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_fifo.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
@ -45,7 +45,7 @@ srcs.append("../rtl/gmii_phy_if.v")
|
||||
srcs.append("../rtl/oddr.v")
|
||||
srcs.append("../rtl/ssio_sdr_in.v")
|
||||
srcs.append("../rtl/ssio_sdr_out.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_frame_fifo.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_fifo.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
@ -46,7 +46,7 @@ srcs.append("../rtl/iddr.v")
|
||||
srcs.append("../rtl/oddr.v")
|
||||
srcs.append("../rtl/ssio_ddr_in.v")
|
||||
srcs.append("../rtl/ssio_ddr_out.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_frame_fifo.v")
|
||||
srcs.append("../lib/axis/rtl/axis_async_fifo.v")
|
||||
srcs.append("%s.v" % testbench)
|
||||
|
||||
src = ' '.join(srcs)
|
||||
|
Loading…
x
Reference in New Issue
Block a user