tests: add wrapper for axis

This commit is contained in:
Phil
2026-06-09 17:22:25 +03:00
parent 52a2bccc77
commit 7e7008ed87

View File

@ -0,0 +1,108 @@
module tb_axis_loopback;
localparam int unsigned DATA_W = 64;
localparam int unsigned KEEP_W = DATA_W / 8;
localparam int unsigned ID_W = 8;
localparam int unsigned DEST_W = 8;
localparam int unsigned USER_W = 8;
logic clk = 1'b0;
logic rst = 1'b1;
logic rst_n;
assign rst_n = ~rst;
// Classic AXI-Stream flat input side
logic [DATA_W-1:0] s_axis_tdata;
logic [KEEP_W-1:0] s_axis_tkeep;
logic [KEEP_W-1:0] s_axis_tstrb;
logic s_axis_tlast;
logic [ID_W-1:0] s_axis_tid;
logic [DEST_W-1:0] s_axis_tdest;
logic [USER_W-1:0] s_axis_tuser;
logic s_axis_tvalid;
logic s_axis_tready;
// Classic AXI-Stream flat output side
logic [DATA_W-1:0] m_axis_tdata;
logic [KEEP_W-1:0] m_axis_tkeep;
logic [KEEP_W-1:0] m_axis_tstrb;
logic m_axis_tlast;
logic [ID_W-1:0] m_axis_tid;
logic [DEST_W-1:0] m_axis_tdest;
logic [USER_W-1:0] m_axis_tuser;
logic m_axis_tvalid;
logic m_axis_tready;
axis_if #(
.DATA_W(DATA_W),
.KEEP_W(KEEP_W),
.ID_W(ID_W),
.DEST_W(DEST_W),
.USER_W(USER_W)
) s_axis_if (
.aclk(clk),
.aresetn(rst_n)
);
axis_if #(
.DATA_W(DATA_W),
.KEEP_W(KEEP_W),
.ID_W(ID_W),
.DEST_W(DEST_W),
.USER_W(USER_W)
) m_axis_if (
.aclk(clk),
.aresetn(rst_n)
);
axis_flat_to_if #(
.DATA_W(DATA_W),
.KEEP_W(KEEP_W),
.ID_W(ID_W),
.DEST_W(DEST_W),
.USER_W(USER_W)
) axis_in_conv_inst (
.s_axis_tdata (s_axis_tdata),
.s_axis_tkeep (s_axis_tkeep),
.s_axis_tstrb (s_axis_tstrb),
.s_axis_tlast (s_axis_tlast),
.s_axis_tid (s_axis_tid),
.s_axis_tdest (s_axis_tdest),
.s_axis_tuser (s_axis_tuser),
.s_axis_tvalid (s_axis_tvalid),
.s_axis_tready (s_axis_tready),
.m_axis (s_axis_if)
);
axis_loopback #(
.DATA_W(DATA_W),
.KEEP_W(KEEP_W),
.ID_W(ID_W),
.DEST_W(DEST_W),
.USER_W(USER_W)
) axis_dut_inst (
.s_axis(s_axis_if),
.m_axis(m_axis_if)
);
axis_if_to_flat #(
.DATA_W(DATA_W),
.KEEP_W(KEEP_W),
.ID_W(ID_W),
.DEST_W(DEST_W),
.USER_W(USER_W)
) axis_out_conv_inst (
.s_axis (m_axis_if),
.m_axis_tdata (m_axis_tdata),
.m_axis_tkeep (m_axis_tkeep),
.m_axis_tstrb (m_axis_tstrb),
.m_axis_tlast (m_axis_tlast),
.m_axis_tid (m_axis_tid),
.m_axis_tdest (m_axis_tdest),
.m_axis_tuser (m_axis_tuser),
.m_axis_tvalid(m_axis_tvalid),
.m_axis_tready(m_axis_tready)
);
endmodule : tb_axis_loopback