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

Table 1. Parameters
NameTypeDefaultDescription
AXI_ADDR_WIDTHint unsigned64AXI address width.
AXI_DATA_WIDTHint unsigned64Width of W and R data on both ports; sets the strobe width.
AXI_ID_WIDTHint unsigned1Width of the AW, AR, B and R IDs, identical on both ports.
AXI_USER_WIDTHint unsigned1Width of every user field on both ports; must hold AXI_USER_OVERRIDE.
AXI_USER_OVERRIDEint unsigned0Constant written onto outbound AW/AR/W user fields.
AxiStrbWidthint unsignedAXI_DATA_WIDTH / 8Write-strobe width from AXI_DATA_WIDTH.

Ports

Table 2. Ports
NameDirectionTypeDescription
axi_in_awvalid_iinputlogicForwarded unchanged to axi_out_awvalid_o.
axi_in_awid_iinputid_tForwarded unchanged to axi_out_awid_o.
axi_in_awaddr_iinputaddr_tForwarded unchanged to axi_out_awaddr_o.
axi_in_awlen_iinputaxi_pkg::len_tForwarded unchanged to axi_out_awlen_o.
axi_in_awsize_iinputaxi_pkg::size_tForwarded unchanged to axi_out_awsize_o.
axi_in_awburst_iinputaxi_pkg::burst_tForwarded unchanged to axi_out_awburst_o.
axi_in_awlock_iinputlogicForwarded unchanged to axi_out_awlock_o.
axi_in_awcache_iinputaxi_pkg::cache_tForwarded unchanged to axi_out_awcache_o.
axi_in_awprot_iinputaxi_pkg::prot_tForwarded unchanged to axi_out_awprot_o.
axi_in_awqos_iinputaxi_pkg::qos_tForwarded unchanged to axi_out_awqos_o.
axi_in_awregion_iinputaxi_pkg::region_tForwarded unchanged to axi_out_awregion_o.
axi_in_awatop_iinputaxi_pkg::atop_tForwarded unchanged to axi_out_awatop_o.
axi_in_awuser_iinputuser_tNot used; axi_out_awuser_o carries AXI_USER_OVERRIDE instead.
axi_in_awready_ooutputlogicDriven unchanged from axi_out_awready_i.
axi_in_wvalid_iinputlogicForwarded unchanged to axi_out_wvalid_o.
axi_in_wdata_iinputdata_tForwarded unchanged to axi_out_wdata_o.
axi_in_wstrb_iinputstrb_tForwarded unchanged to axi_out_wstrb_o.
axi_in_wlast_iinputlogicForwarded unchanged to axi_out_wlast_o.
axi_in_wuser_iinputuser_tNot used; axi_out_wuser_o carries AXI_USER_OVERRIDE instead.
axi_in_wready_ooutputlogicDriven unchanged from axi_out_wready_i.
axi_in_bvalid_ooutputlogicDriven unchanged from axi_out_bvalid_i.
axi_in_bid_ooutputid_tDriven unchanged from axi_out_bid_i.
axi_in_bresp_ooutputaxi_pkg::resp_tDriven unchanged from axi_out_bresp_i.
axi_in_buser_ooutputuser_tDriven unchanged from axi_out_buser_i.
axi_in_bready_iinputlogicForwarded unchanged to axi_out_bready_o.
axi_in_arvalid_iinputlogicForwarded unchanged to axi_out_arvalid_o.
axi_in_arid_iinputid_tForwarded unchanged to axi_out_arid_o.
axi_in_araddr_iinputaddr_tForwarded unchanged to axi_out_araddr_o.
axi_in_arlen_iinputaxi_pkg::len_tForwarded unchanged to axi_out_arlen_o.
axi_in_arsize_iinputaxi_pkg::size_tForwarded unchanged to axi_out_arsize_o.
axi_in_arburst_iinputaxi_pkg::burst_tForwarded unchanged to axi_out_arburst_o.
axi_in_arlock_iinputlogicForwarded unchanged to axi_out_arlock_o.
axi_in_arcache_iinputaxi_pkg::cache_tForwarded unchanged to axi_out_arcache_o.
axi_in_arprot_iinputaxi_pkg::prot_tForwarded unchanged to axi_out_arprot_o.
axi_in_arqos_iinputaxi_pkg::qos_tForwarded unchanged to axi_out_arqos_o.
axi_in_arregion_iinputaxi_pkg::region_tForwarded unchanged to axi_out_arregion_o.
axi_in_aruser_iinputuser_tNot used; axi_out_aruser_o carries AXI_USER_OVERRIDE instead.
axi_in_arready_ooutputlogicDriven unchanged from axi_out_arready_i.
axi_in_rvalid_ooutputlogicDriven unchanged from axi_out_rvalid_i.
axi_in_rid_ooutputid_tDriven unchanged from axi_out_rid_i.
axi_in_rdata_ooutputdata_tDriven unchanged from axi_out_rdata_i.
axi_in_rresp_ooutputaxi_pkg::resp_tDriven unchanged from axi_out_rresp_i.
axi_in_rlast_ooutputlogicDriven unchanged from axi_out_rlast_i.
axi_in_ruser_ooutputuser_tDriven unchanged from axi_out_ruser_i.
axi_in_rready_iinputlogicForwarded unchanged to axi_out_rready_o.
axi_out_awvalid_ooutputlogicDriven unchanged from axi_in_awvalid_i.
axi_out_awid_ooutputid_tDriven unchanged from axi_in_awid_i.
axi_out_awaddr_ooutputaddr_tDriven unchanged from axi_in_awaddr_i.
axi_out_awlen_ooutputaxi_pkg::len_tDriven unchanged from axi_in_awlen_i.
axi_out_awsize_ooutputaxi_pkg::size_tDriven unchanged from axi_in_awsize_i.
axi_out_awburst_ooutputaxi_pkg::burst_tDriven unchanged from axi_in_awburst_i.
axi_out_awlock_ooutputlogicDriven unchanged from axi_in_awlock_i.
axi_out_awcache_ooutputaxi_pkg::cache_tDriven unchanged from axi_in_awcache_i.
axi_out_awprot_ooutputaxi_pkg::prot_tDriven unchanged from axi_in_awprot_i.
axi_out_awqos_ooutputaxi_pkg::qos_tDriven unchanged from axi_in_awqos_i.
axi_out_awregion_ooutputaxi_pkg::region_tDriven unchanged from axi_in_awregion_i.
axi_out_awatop_ooutputaxi_pkg::atop_tDriven unchanged from axi_in_awatop_i.
axi_out_awuser_ooutputuser_tDriven with AXI_USER_OVERRIDE in place of axi_in_awuser_i.
axi_out_awready_iinputlogicForwarded unchanged to axi_in_awready_o.
axi_out_wvalid_ooutputlogicDriven unchanged from axi_in_wvalid_i.
axi_out_wdata_ooutputdata_tDriven unchanged from axi_in_wdata_i.
axi_out_wstrb_ooutputstrb_tDriven unchanged from axi_in_wstrb_i.
axi_out_wlast_ooutputlogicDriven unchanged from axi_in_wlast_i.
axi_out_wuser_ooutputuser_tDriven with AXI_USER_OVERRIDE in place of axi_in_wuser_i.
axi_out_wready_iinputlogicForwarded unchanged to axi_in_wready_o.
axi_out_bvalid_iinputlogicForwarded unchanged to axi_in_bvalid_o.
axi_out_bid_iinputid_tForwarded unchanged to axi_in_bid_o.
axi_out_bresp_iinputaxi_pkg::resp_tForwarded unchanged to axi_in_bresp_o.
axi_out_buser_iinputuser_tForwarded unchanged to axi_in_buser_o.
axi_out_bready_ooutputlogicDriven unchanged from axi_in_bready_i.
axi_out_arvalid_ooutputlogicDriven unchanged from axi_in_arvalid_i.
axi_out_arid_ooutputid_tDriven unchanged from axi_in_arid_i.
axi_out_araddr_ooutputaddr_tDriven unchanged from axi_in_araddr_i.
axi_out_arlen_ooutputaxi_pkg::len_tDriven unchanged from axi_in_arlen_i.
axi_out_arsize_ooutputaxi_pkg::size_tDriven unchanged from axi_in_arsize_i.
axi_out_arburst_ooutputaxi_pkg::burst_tDriven unchanged from axi_in_arburst_i.
axi_out_arlock_ooutputlogicDriven unchanged from axi_in_arlock_i.
axi_out_arcache_ooutputaxi_pkg::cache_tDriven unchanged from axi_in_arcache_i.
axi_out_arprot_ooutputaxi_pkg::prot_tDriven unchanged from axi_in_arprot_i.
axi_out_arqos_ooutputaxi_pkg::qos_tDriven unchanged from axi_in_arqos_i.
axi_out_arregion_ooutputaxi_pkg::region_tDriven unchanged from axi_in_arregion_i.
axi_out_aruser_ooutputuser_tDriven with AXI_USER_OVERRIDE in place of axi_in_aruser_i.
axi_out_arready_iinputlogicForwarded unchanged to axi_in_arready_o.
axi_out_rvalid_iinputlogicForwarded unchanged to axi_in_rvalid_o.
axi_out_rid_iinputid_tForwarded unchanged to axi_in_rid_o.
axi_out_rdata_iinputdata_tForwarded unchanged to axi_in_rdata_o.
axi_out_rresp_iinputaxi_pkg::resp_tForwarded unchanged to axi_in_rresp_o.
axi_out_rlast_iinputlogicForwarded unchanged to axi_in_rlast_o.
axi_out_ruser_iinputuser_tForwarded unchanged to axi_in_ruser_o.
axi_out_rready_ooutputlogicDriven unchanged from axi_in_rready_i.