Entity: axi_dma_desc_mux

Diagram

PORTS AXI_ADDR_WIDTH AXIS_ID_ENABLE AXIS_ID_WIDTH AXIS_DEST_ENABLE AXIS_DEST_WIDTH AXIS_USER_ENABLE AXIS_USER_WIDTH LEN_WIDTH S_TAG_WIDTH M_TAG_WIDTH ARB_TYPE_ROUND_ROBIN ARB_LSB_HIGH_PRIORITY CL_PORTS wire clk wire rst wire m_axis_desc_ready wire [LEN_WIDTH-1:0] s_axis_desc_status_len wire [M_TAG_WIDTH-1:0] s_axis_desc_status_tag wire [AXIS_ID_WIDTH-1:0] s_axis_desc_status_id wire [AXIS_DEST_WIDTH-1:0] s_axis_desc_status_dest wire [AXIS_USER_WIDTH-1:0] s_axis_desc_status_user wire [3:0] s_axis_desc_status_error wire s_axis_desc_status_valid wire [PORTS*AXI_ADDR_WIDTH-1:0] s_axis_desc_addr wire [PORTS*LEN_WIDTH-1:0] s_axis_desc_len wire [PORTS*S_TAG_WIDTH-1:0] s_axis_desc_tag wire [PORTS*AXIS_ID_WIDTH-1:0] s_axis_desc_id wire [PORTS*AXIS_DEST_WIDTH-1:0] s_axis_desc_dest wire [PORTS*AXIS_USER_WIDTH-1:0] s_axis_desc_user wire [PORTS-1:0] s_axis_desc_valid wire [AXI_ADDR_WIDTH-1:0] m_axis_desc_addr wire [LEN_WIDTH-1:0] m_axis_desc_len wire [M_TAG_WIDTH-1:0] m_axis_desc_tag wire [AXIS_ID_WIDTH-1:0] m_axis_desc_id wire [AXIS_DEST_WIDTH-1:0] m_axis_desc_dest wire [AXIS_USER_WIDTH-1:0] m_axis_desc_user wire m_axis_desc_valid wire [PORTS-1:0] s_axis_desc_ready wire [PORTS*LEN_WIDTH-1:0] m_axis_desc_status_len wire [PORTS*S_TAG_WIDTH-1:0] m_axis_desc_status_tag wire [PORTS*AXIS_ID_WIDTH-1:0] m_axis_desc_status_id wire [PORTS*AXIS_DEST_WIDTH-1:0] m_axis_desc_status_dest wire [PORTS*AXIS_USER_WIDTH-1:0] m_axis_desc_status_user wire [PORTS*4-1:0] m_axis_desc_status_error wire [PORTS-1:0] m_axis_desc_status_valid

Description

Language: Verilog 2001

Generics

Generic name Type Value Description
PORTS 2 Number of ports
AXI_ADDR_WIDTH 16 AXI address width
AXIS_ID_ENABLE 0 Propagate AXI stream tid signal
AXIS_ID_WIDTH 8 AXI stream tid signal width
AXIS_DEST_ENABLE 0 Propagate AXI stream tdest signal
AXIS_DEST_WIDTH 8 AXI stream tdest signal width
AXIS_USER_ENABLE 1 Propagate AXI stream tuser signal
AXIS_USER_WIDTH 1 AXI stream tuser signal width
LEN_WIDTH 20 Length field width
S_TAG_WIDTH 8 Input tag field width
M_TAG_WIDTH S_TAG_WIDTH+$clog2(PORTS) Output tag field width (towards CDMA module) Additional bits required for response routing
ARB_TYPE_ROUND_ROBIN 1 select round robin arbitration
ARB_LSB_HIGH_PRIORITY 1 LSB priority selection
CL_PORTS $clog2(PORTS)

Ports

Port name Direction Type Description
clk input wire
rst input wire
m_axis_desc_addr output wire [AXI_ADDR_WIDTH-1:0] * Descriptor output (to AXI DMA core) */
m_axis_desc_len output wire [LEN_WIDTH-1:0]
m_axis_desc_tag output wire [M_TAG_WIDTH-1:0]
m_axis_desc_id output wire [AXIS_ID_WIDTH-1:0]
m_axis_desc_dest output wire [AXIS_DEST_WIDTH-1:0]
m_axis_desc_user output wire [AXIS_USER_WIDTH-1:0]
m_axis_desc_valid output wire
m_axis_desc_ready input wire
s_axis_desc_status_len input wire [LEN_WIDTH-1:0] * Descriptor status input (from AXI DMA core) */
s_axis_desc_status_tag input wire [M_TAG_WIDTH-1:0]
s_axis_desc_status_id input wire [AXIS_ID_WIDTH-1:0]
s_axis_desc_status_dest input wire [AXIS_DEST_WIDTH-1:0]
s_axis_desc_status_user input wire [AXIS_USER_WIDTH-1:0]
s_axis_desc_status_error input wire [3:0]
s_axis_desc_status_valid input wire
s_axis_desc_addr input wire [PORTS*AXI_ADDR_WIDTH-1:0] * Descriptor input */
s_axis_desc_len input wire [PORTS*LEN_WIDTH-1:0]
s_axis_desc_tag input wire [PORTS*S_TAG_WIDTH-1:0]
s_axis_desc_id input wire [PORTS*AXIS_ID_WIDTH-1:0]
s_axis_desc_dest input wire [PORTS*AXIS_DEST_WIDTH-1:0]
s_axis_desc_user input wire [PORTS*AXIS_USER_WIDTH-1:0]
s_axis_desc_valid input wire [PORTS-1:0]
s_axis_desc_ready output wire [PORTS-1:0]
m_axis_desc_status_len output wire [PORTS*LEN_WIDTH-1:0] * Descriptor status output */
m_axis_desc_status_tag output wire [PORTS*S_TAG_WIDTH-1:0]
m_axis_desc_status_id output wire [PORTS*AXIS_ID_WIDTH-1:0]
m_axis_desc_status_dest output wire [PORTS*AXIS_DEST_WIDTH-1:0]
m_axis_desc_status_user output wire [PORTS*AXIS_USER_WIDTH-1:0]
m_axis_desc_status_error output wire [PORTS*4-1:0]
m_axis_desc_status_valid output wire [PORTS-1:0]

Signals

Name Type Description
request wire [PORTS-1:0] descriptor mux
acknowledge wire [PORTS-1:0]
grant wire [PORTS-1:0]
grant_valid wire
grant_encoded wire [CL_PORTS-1:0]
m_axis_desc_addr_int reg [AXI_ADDR_WIDTH-1:0] internal datapath
m_axis_desc_len_int reg [LEN_WIDTH-1:0]
m_axis_desc_tag_int reg [M_TAG_WIDTH-1:0]
m_axis_desc_id_int reg [AXIS_ID_WIDTH-1:0]
m_axis_desc_dest_int reg [AXIS_DEST_WIDTH-1:0]
m_axis_desc_user_int reg [AXIS_USER_WIDTH-1:0]
m_axis_desc_valid_int reg
m_axis_desc_ready_int_reg reg
m_axis_desc_ready_int_early wire
current_s_desc_addr wire [AXI_ADDR_WIDTH-1:0] mux for incoming packet
current_s_desc_len wire [LEN_WIDTH-1:0]
current_s_desc_tag wire [S_TAG_WIDTH-1:0]
current_s_desc_id wire [AXIS_ID_WIDTH-1:0]
current_s_desc_dest wire [AXIS_DEST_WIDTH-1:0]
current_s_desc_user wire [AXIS_USER_WIDTH-1:0]
current_s_desc_valid wire
current_s_desc_ready wire
m_axis_desc_addr_reg reg [AXI_ADDR_WIDTH-1:0] output datapath logic
m_axis_desc_len_reg reg [LEN_WIDTH-1:0]
m_axis_desc_tag_reg reg [M_TAG_WIDTH-1:0]
m_axis_desc_id_reg reg [AXIS_ID_WIDTH-1:0]
m_axis_desc_dest_reg reg [AXIS_DEST_WIDTH-1:0]
m_axis_desc_user_reg reg [AXIS_USER_WIDTH-1:0]
m_axis_desc_valid_reg reg
m_axis_desc_valid_next reg
temp_m_axis_desc_addr_reg reg [AXI_ADDR_WIDTH-1:0]
temp_m_axis_desc_len_reg reg [LEN_WIDTH-1:0]
temp_m_axis_desc_tag_reg reg [M_TAG_WIDTH-1:0]
temp_m_axis_desc_id_reg reg [AXIS_ID_WIDTH-1:0]
temp_m_axis_desc_dest_reg reg [AXIS_DEST_WIDTH-1:0]
temp_m_axis_desc_user_reg reg [AXIS_USER_WIDTH-1:0]
temp_m_axis_desc_valid_reg reg
temp_m_axis_desc_valid_next reg
store_axis_int_to_output reg datapath control
store_axis_int_to_temp reg
store_axis_temp_to_output reg
m_axis_desc_status_len_reg reg [LEN_WIDTH-1:0] descriptor status demux
m_axis_desc_status_tag_reg reg [S_TAG_WIDTH-1:0]
m_axis_desc_status_id_reg reg [AXIS_ID_WIDTH-1:0]
m_axis_desc_status_dest_reg reg [AXIS_DEST_WIDTH-1:0]
m_axis_desc_status_user_reg reg [AXIS_USER_WIDTH-1:0]
m_axis_desc_status_error_reg reg [3:0]
m_axis_desc_status_valid_reg reg [PORTS-1:0]

Processes

Type: always

Type: always

Type: always

Type: always

Instantiations

Description
arbiter instance