prim_axi_user_override
Pass an AXI port through while forcing AW, AR, and W user fields to AXI_USER_OVERRIDE.
Wire every other channel field straight across; the module is purely combinational. Pass response user fields through unchanged. AXI_USER_WIDTH must cover the override value; wider values are truncated. prim_axi_user_override_struct provides the same function on request and response structs and checks the struct field widths at elaboration.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
AXI_ADDR_WIDTH | int unsigned | 64 | AXI address width. |
AXI_DATA_WIDTH | int unsigned | 64 | Width of W and R data on both ports; sets the strobe width. |
AXI_ID_WIDTH | int unsigned | 1 | Width of the AW, AR, B and R IDs, identical on both ports. |
AXI_USER_WIDTH | int unsigned | 1 | Width of every user field on both ports; must hold AXI_USER_OVERRIDE. |
AXI_USER_OVERRIDE | int unsigned | 0 | Constant written onto outbound AW/AR/W user fields. |
AxiStrbWidth | int unsigned | AXI_DATA_WIDTH / 8 | Write-strobe width from AXI_DATA_WIDTH. |
Ports
| Name | Direction | Type | Description |
|---|---|---|---|
axi_in_awvalid_i | input | logic | Forwarded unchanged to axi_out_awvalid_o. |
axi_in_awid_i | input | id_t | Forwarded unchanged to axi_out_awid_o. |
axi_in_awaddr_i | input | addr_t | Forwarded unchanged to axi_out_awaddr_o. |
axi_in_awlen_i | input | axi_pkg::len_t | Forwarded unchanged to axi_out_awlen_o. |
axi_in_awsize_i | input | axi_pkg::size_t | Forwarded unchanged to axi_out_awsize_o. |
axi_in_awburst_i | input | axi_pkg::burst_t | Forwarded unchanged to axi_out_awburst_o. |
axi_in_awlock_i | input | logic | Forwarded unchanged to axi_out_awlock_o. |
axi_in_awcache_i | input | axi_pkg::cache_t | Forwarded unchanged to axi_out_awcache_o. |
axi_in_awprot_i | input | axi_pkg::prot_t | Forwarded unchanged to axi_out_awprot_o. |
axi_in_awqos_i | input | axi_pkg::qos_t | Forwarded unchanged to axi_out_awqos_o. |
axi_in_awregion_i | input | axi_pkg::region_t | Forwarded unchanged to axi_out_awregion_o. |
axi_in_awatop_i | input | axi_pkg::atop_t | Forwarded unchanged to axi_out_awatop_o. |
axi_in_awuser_i | input | user_t | Not used; axi_out_awuser_o carries AXI_USER_OVERRIDE instead. |
axi_in_awready_o | output | logic | Driven unchanged from axi_out_awready_i. |
axi_in_wvalid_i | input | logic | Forwarded unchanged to axi_out_wvalid_o. |
axi_in_wdata_i | input | data_t | Forwarded unchanged to axi_out_wdata_o. |
axi_in_wstrb_i | input | strb_t | Forwarded unchanged to axi_out_wstrb_o. |
axi_in_wlast_i | input | logic | Forwarded unchanged to axi_out_wlast_o. |
axi_in_wuser_i | input | user_t | Not used; axi_out_wuser_o carries AXI_USER_OVERRIDE instead. |
axi_in_wready_o | output | logic | Driven unchanged from axi_out_wready_i. |
axi_in_bvalid_o | output | logic | Driven unchanged from axi_out_bvalid_i. |
axi_in_bid_o | output | id_t | Driven unchanged from axi_out_bid_i. |
axi_in_bresp_o | output | axi_pkg::resp_t | Driven unchanged from axi_out_bresp_i. |
axi_in_buser_o | output | user_t | Driven unchanged from axi_out_buser_i. |
axi_in_bready_i | input | logic | Forwarded unchanged to axi_out_bready_o. |
axi_in_arvalid_i | input | logic | Forwarded unchanged to axi_out_arvalid_o. |
axi_in_arid_i | input | id_t | Forwarded unchanged to axi_out_arid_o. |
axi_in_araddr_i | input | addr_t | Forwarded unchanged to axi_out_araddr_o. |
axi_in_arlen_i | input | axi_pkg::len_t | Forwarded unchanged to axi_out_arlen_o. |
axi_in_arsize_i | input | axi_pkg::size_t | Forwarded unchanged to axi_out_arsize_o. |
axi_in_arburst_i | input | axi_pkg::burst_t | Forwarded unchanged to axi_out_arburst_o. |
axi_in_arlock_i | input | logic | Forwarded unchanged to axi_out_arlock_o. |
axi_in_arcache_i | input | axi_pkg::cache_t | Forwarded unchanged to axi_out_arcache_o. |
axi_in_arprot_i | input | axi_pkg::prot_t | Forwarded unchanged to axi_out_arprot_o. |
axi_in_arqos_i | input | axi_pkg::qos_t | Forwarded unchanged to axi_out_arqos_o. |
axi_in_arregion_i | input | axi_pkg::region_t | Forwarded unchanged to axi_out_arregion_o. |
axi_in_aruser_i | input | user_t | Not used; axi_out_aruser_o carries AXI_USER_OVERRIDE instead. |
axi_in_arready_o | output | logic | Driven unchanged from axi_out_arready_i. |
axi_in_rvalid_o | output | logic | Driven unchanged from axi_out_rvalid_i. |
axi_in_rid_o | output | id_t | Driven unchanged from axi_out_rid_i. |
axi_in_rdata_o | output | data_t | Driven unchanged from axi_out_rdata_i. |
axi_in_rresp_o | output | axi_pkg::resp_t | Driven unchanged from axi_out_rresp_i. |
axi_in_rlast_o | output | logic | Driven unchanged from axi_out_rlast_i. |
axi_in_ruser_o | output | user_t | Driven unchanged from axi_out_ruser_i. |
axi_in_rready_i | input | logic | Forwarded unchanged to axi_out_rready_o. |
axi_out_awvalid_o | output | logic | Driven unchanged from axi_in_awvalid_i. |
axi_out_awid_o | output | id_t | Driven unchanged from axi_in_awid_i. |
axi_out_awaddr_o | output | addr_t | Driven unchanged from axi_in_awaddr_i. |
axi_out_awlen_o | output | axi_pkg::len_t | Driven unchanged from axi_in_awlen_i. |
axi_out_awsize_o | output | axi_pkg::size_t | Driven unchanged from axi_in_awsize_i. |
axi_out_awburst_o | output | axi_pkg::burst_t | Driven unchanged from axi_in_awburst_i. |
axi_out_awlock_o | output | logic | Driven unchanged from axi_in_awlock_i. |
axi_out_awcache_o | output | axi_pkg::cache_t | Driven unchanged from axi_in_awcache_i. |
axi_out_awprot_o | output | axi_pkg::prot_t | Driven unchanged from axi_in_awprot_i. |
axi_out_awqos_o | output | axi_pkg::qos_t | Driven unchanged from axi_in_awqos_i. |
axi_out_awregion_o | output | axi_pkg::region_t | Driven unchanged from axi_in_awregion_i. |
axi_out_awatop_o | output | axi_pkg::atop_t | Driven unchanged from axi_in_awatop_i. |
axi_out_awuser_o | output | user_t | Driven with AXI_USER_OVERRIDE in place of axi_in_awuser_i. |
axi_out_awready_i | input | logic | Forwarded unchanged to axi_in_awready_o. |
axi_out_wvalid_o | output | logic | Driven unchanged from axi_in_wvalid_i. |
axi_out_wdata_o | output | data_t | Driven unchanged from axi_in_wdata_i. |
axi_out_wstrb_o | output | strb_t | Driven unchanged from axi_in_wstrb_i. |
axi_out_wlast_o | output | logic | Driven unchanged from axi_in_wlast_i. |
axi_out_wuser_o | output | user_t | Driven with AXI_USER_OVERRIDE in place of axi_in_wuser_i. |
axi_out_wready_i | input | logic | Forwarded unchanged to axi_in_wready_o. |
axi_out_bvalid_i | input | logic | Forwarded unchanged to axi_in_bvalid_o. |
axi_out_bid_i | input | id_t | Forwarded unchanged to axi_in_bid_o. |
axi_out_bresp_i | input | axi_pkg::resp_t | Forwarded unchanged to axi_in_bresp_o. |
axi_out_buser_i | input | user_t | Forwarded unchanged to axi_in_buser_o. |
axi_out_bready_o | output | logic | Driven unchanged from axi_in_bready_i. |
axi_out_arvalid_o | output | logic | Driven unchanged from axi_in_arvalid_i. |
axi_out_arid_o | output | id_t | Driven unchanged from axi_in_arid_i. |
axi_out_araddr_o | output | addr_t | Driven unchanged from axi_in_araddr_i. |
axi_out_arlen_o | output | axi_pkg::len_t | Driven unchanged from axi_in_arlen_i. |
axi_out_arsize_o | output | axi_pkg::size_t | Driven unchanged from axi_in_arsize_i. |
axi_out_arburst_o | output | axi_pkg::burst_t | Driven unchanged from axi_in_arburst_i. |
axi_out_arlock_o | output | logic | Driven unchanged from axi_in_arlock_i. |
axi_out_arcache_o | output | axi_pkg::cache_t | Driven unchanged from axi_in_arcache_i. |
axi_out_arprot_o | output | axi_pkg::prot_t | Driven unchanged from axi_in_arprot_i. |
axi_out_arqos_o | output | axi_pkg::qos_t | Driven unchanged from axi_in_arqos_i. |
axi_out_arregion_o | output | axi_pkg::region_t | Driven unchanged from axi_in_arregion_i. |
axi_out_aruser_o | output | user_t | Driven with AXI_USER_OVERRIDE in place of axi_in_aruser_i. |
axi_out_arready_i | input | logic | Forwarded unchanged to axi_in_arready_o. |
axi_out_rvalid_i | input | logic | Forwarded unchanged to axi_in_rvalid_o. |
axi_out_rid_i | input | id_t | Forwarded unchanged to axi_in_rid_o. |
axi_out_rdata_i | input | data_t | Forwarded unchanged to axi_in_rdata_o. |
axi_out_rresp_i | input | axi_pkg::resp_t | Forwarded unchanged to axi_in_rresp_o. |
axi_out_rlast_i | input | logic | Forwarded unchanged to axi_in_rlast_o. |
axi_out_ruser_i | input | user_t | Forwarded unchanged to axi_in_ruser_o. |
axi_out_rready_o | output | logic | Driven unchanged from axi_in_rready_i. |