zircon: Use AXI stream tie module

Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
Alex Forencich
2026-04-07 15:37:02 -07:00
parent 1fe508a6bf
commit 9a6320c3f7
4 changed files with 12 additions and 31 deletions

View File

@@ -84,27 +84,11 @@ logic [ID_W-1:0] m_axis_meta_id_reg = '0;
logic [DEST_W-1:0] m_axis_meta_dest_reg = '0; logic [DEST_W-1:0] m_axis_meta_dest_reg = '0;
logic [USER_W-1:0] m_axis_meta_user_reg = '0; logic [USER_W-1:0] m_axis_meta_user_reg = '0;
assign m_axis_pkt.tdata = s_axis_pkt.tdata; taxi_axis_tie
assign m_axis_pkt.tkeep = s_axis_pkt.tkeep; axis_tie_pkt_inst (
assign m_axis_pkt.tstrb = s_axis_pkt.tstrb; .s_axis(s_axis_pkt),
if (ID_EN) begin .m_axis(m_axis_pkt)
assign m_axis_pkt.tid = s_axis_pkt.tid; );
end else begin
assign m_axis_pkt.tid = '0;
end
if (DEST_EN) begin
assign m_axis_pkt.tdest = s_axis_pkt.tdest;
end else begin
assign m_axis_pkt.tdest = '0;
end
if (USER_EN) begin
assign m_axis_pkt.tuser = s_axis_pkt.tuser;
end else begin
assign m_axis_pkt.tuser = '0;
end
assign m_axis_pkt.tlast = s_axis_pkt.tlast;
assign m_axis_pkt.tvalid = s_axis_pkt.tvalid;
assign s_axis_pkt.tready = m_axis_pkt.tready;
assign m_axis_meta.tdata = {m_axis_meta_csum_reg, m_axis_meta_len_reg}; assign m_axis_meta.tdata = {m_axis_meta_csum_reg, m_axis_meta_len_reg};
assign m_axis_meta.tkeep = '1; assign m_axis_meta.tkeep = '1;

View File

@@ -85,16 +85,11 @@ hdr_adapter_inst (
.m_axis(pkt_parts[0]) .m_axis(pkt_parts[0])
); );
assign pkt_parts[1].tdata = s_axis_pkt.tdata; taxi_axis_tie
assign pkt_parts[1].tkeep = s_axis_pkt.tkeep; axis_tie_pkt_inst (
assign pkt_parts[1].tstrb = s_axis_pkt.tstrb; .s_axis(s_axis_pkt),
assign pkt_parts[1].tvalid = s_axis_pkt.tvalid; .m_axis(pkt_parts[1])
assign pkt_parts[1].tlast = s_axis_pkt.tlast; );
assign pkt_parts[1].tid = s_axis_pkt.tid;
assign pkt_parts[1].tdest = s_axis_pkt.tdest;
assign pkt_parts[1].tuser = s_axis_pkt.tuser;
assign s_axis_pkt.tready = pkt_parts[1].tready;
// combine header and payload // combine header and payload
taxi_axis_concat #( taxi_axis_concat #(

View File

@@ -24,6 +24,7 @@ MODULE = $(COCOTB_TEST_MODULES)
TOPLEVEL = $(COCOTB_TOPLEVEL) TOPLEVEL = $(COCOTB_TOPLEVEL)
VERILOG_SOURCES += $(COCOTB_TOPLEVEL).sv VERILOG_SOURCES += $(COCOTB_TOPLEVEL).sv
VERILOG_SOURCES += $(RTL_DIR)/$(DUT).sv VERILOG_SOURCES += $(RTL_DIR)/$(DUT).sv
VERILOG_SOURCES += $(TAXI_SRC_DIR)/axis/rtl/taxi_axis_tie.sv
VERILOG_SOURCES += $(TAXI_SRC_DIR)/axis/rtl/taxi_axis_if.sv VERILOG_SOURCES += $(TAXI_SRC_DIR)/axis/rtl/taxi_axis_if.sv
# handle file list files # handle file list files

View File

@@ -259,6 +259,7 @@ def test_zircon_ip_len_cksum(request, data_w=32):
verilog_sources = [ verilog_sources = [
os.path.join(tests_dir, f"{toplevel}.sv"), os.path.join(tests_dir, f"{toplevel}.sv"),
os.path.join(rtl_dir, f"{dut}.sv"), os.path.join(rtl_dir, f"{dut}.sv"),
os.path.join(taxi_src_dir, "axis", "rtl", "taxi_axis_tie.sv"),
os.path.join(taxi_src_dir, "axis", "rtl", "taxi_axis_if.sv"), os.path.join(taxi_src_dir, "axis", "rtl", "taxi_axis_if.sv"),
] ]