Module axi_xbar_unmuxed

axi_xbar: Fully-connected AXI4+ATOP crossbar with an arbitrary number of slave and master ports.

See doc/axi_xbar.md for the documentation, including the definition of parameters and ports.

Parameters

Cfg: axi_pkg::xbar_cfg_t

Configuration struct for the crossbar see axi_pkg for fields and definitions.

ATOPs: bit

Enable atomic operations support.

Connectivity: bit [Cfg.NoSlvPorts-1:0][Cfg.NoMstPorts-1:0]

Connectivity matrix

aw_chan_t: type

AXI4+ATOP AW channel struct type for the slave ports.

w_chan_t: type

AXI4+ATOP W channel struct type for all ports.

b_chan_t: type

AXI4+ATOP B channel struct type for the slave ports.

ar_chan_t: type

AXI4+ATOP AR channel struct type for the slave ports.

r_chan_t: type

AXI4+ATOP R channel struct type for the slave ports.

req_t: type

AXI4+ATOP request struct type for the slave ports.

resp_t: type

AXI4+ATOP response struct type for the slave ports.

rule_t: type

Address rule type for the address decoders from common_cells:addr_decode.

Example types are provided in axi_pkg.

Required struct fields:


typedef struct packed {

  int unsigned idx;

  axi_addr_t   start_addr;

  axi_addr_t   end_addr;

} rule_t;

cfg_NoMstPorts: int unsigned

Ports

clk_i: input logic

Clock, positive edge triggered.

rst_ni: input logic

Asynchronous reset, active low.

test_i: input logic

Testmode enable, active high.

slv_ports_req_i: input req_t [Cfg.NoSlvPorts-1:0]

AXI4+ATOP requests to the slave ports.

slv_ports_resp_o: output resp_t [Cfg.NoSlvPorts-1:0]

AXI4+ATOP responses of the slave ports.

mst_ports_req_o: output req_t [Cfg.NoMstPorts-1:0][Cfg.NoSlvPorts-1:0]

AXI4+ATOP requests of the master ports.

mst_ports_resp_i: input resp_t [Cfg.NoMstPorts-1:0][Cfg.NoSlvPorts-1:0]

AXI4+ATOP responses to the master ports.

addr_map_i: input rule_t [Cfg.NoAddrRules-1:0]

Address map array input for the crossbar. This map is global for the whole module.

It is used for routing the transactions to the respective master ports.

Each master port can have multiple different rules.

en_default_mst_port_i: input logic [Cfg.NoSlvPorts-1:0]

Enable default master port.

default_mst_port_i: input logic [Cfg.NoSlvPorts-1:0][idx_width(Cfg.NoMstPorts)-1:0]

Enables a default master port for each slave port. When this is enabled unmapped

transactions get issued at the master port given by default_mst_port_i.

When not used, tie to '0.

Types

addr_t
mst_port_idx_t

Signals

slv_aw_select: mst_port_idx_t

slv_ar_select: mst_port_idx_t