XPM_NMU_MM_SV - 2025.2 English - Parameterized Macro: AXI Memory Mapped NOC Master Unit - UG1344

Versal Architecture Prime Series Libraries Guide (UG1344)

Document ID
UG1344
Release Date
2025-12-17
Version
2025.2 English

Parameterized Macro: AXI Memory Mapped NOC Master Unit

  • MACRO_GROUP: XPM
  • MACRO_SUBGROUP: NOC
Page-1 Sheet.8 Sheet.11 s_axi_awaddr[AXI_ADDR_WIDTH-1:0] S_AXI Sheet.17 Sheet.18 m_axi_awready s_axi_aclk Sheet.87 s_axi_awready nmu_firewall_rd_err Sheet.100 Sheet.114 m_axi_wvalid nmu_firewall_wr_err Sheet.125 Sheet.230 XPM_FIFO_AXIF XPM_NMU_MM_SV Sheet.235 Sheet.236 m_axi_awready nmu_usr_interrupt_in Sheet.238 X50885-120625 X50885-120625

Introduction

This macro is used to instantiate AXI Memory Mapped (AXI Full) NOC Master Unit.

Module Ports

The vivado_interfaces.svh file includes the following module ports for AXI4, AXI4-Stream, and AXI4-Lite interfaces.

Interface Type Ports
vivado_axis_v1_0 TID, TDEST, TDATA, TSTRB, TKEEP, TLAST, TUSER, TVALID, TREADY
vivado_aximm_v1_0 AWID, AWADDR, AWLEN, AWSIZE, AWBURST, AWLOCK, AWCACHE, AWPROT, AWREGION, AWQOS, AWUSER, AWVALID, WID, WDATA, WSTRB, WLAST, WUSER, WVALID, BREADY, ARID, ARADDR, ARLEN, ARSIZE, ARBURST, ARLOCK, ARCACHE, ARPROT, ARREGION, ARQOS, ARUSER, ARVALID, RREADY, AWREADY, WREADY, BID, BRESP, BUSER, BVALID, ARREADY, RID, RDATA, RRESP, RLAST, RUSER, RVALID
vivado_axi4_lite_v1_0 AWADDR, AWPROT, AWVALID, WDATA, WSTRB, WVALID, BREADY, ARADDR, ARPROT, ARVALID, RREADY, AWREADY, WREADY, BRESP, BVALID, ARREADY, RDATA, RRESP, RVALID
Note: The parameter values passed to the interfaces must match the port mapping in the module instantiations.

Port Descriptions

Port Direction Width Domain Sense Handling if Unused Function
S_AXI           Slave AXI interface.
s_axi_aclk Input 1 NA EDGE_RISING Active Slave Interface Clock: All signals on slave interface are sampled on the rising edge of this clock.
nmu_firewall_rd_err Output 1 s_axi_aclk LEVEL_HIGH Active Indicates that firewall error occured during read transaction
nmu_firewall_wr_err Output 1 s_axi_aclk LEVEL_HIGH Active Indicates that firewall error occured during write transaction
nmu_usr_interrupt_in Input 1 s_axi_aclk LEVEL_HIGH Active User interrupt signal.

Design Entry Method

Instantiation Yes
Inference No
IP and IP Integrator Catalog No

Available Attributes

Attribute Type Allowed Values Default Description
ADDR_WIDTH DECIMAL 12 to 64 64 Defines the width of the ADDR ports, s_axi_araddr, s_axi_awaddr
AUSER_WIDTH DECIMAL 16, 18 16 Defines the width of the Address USER ports, s_axi_aruser, s_axi_awuser
DATA_WIDTH DECIMAL 512, 32, 64, 128, 256 512 Defines the width of the DATA ports, s_axi_rdata, s_axi_wdata.
DUSER_WIDTH DECIMAL 128, 0 128 Defines the width of the Data USER ports, s_axi_ruser, s_axi_wuser
ENABLE_FIREWALL STRING "false", "true" "false"
  • "false" - Firewall feature is disabled
  • "true" - Firewall feature is enabled
NOTE: The Firewall feature is only availale for NOC2 devices
ENABLE_USR_INTERRUPT STRING "false", "true" "false"
  • "true" - Enable user interrupt functionality
  • "false" - Disable user interrupt functionality
ID_WIDTH DECIMAL 0 to 16 16 Defines the width of the ID ports, s_axi_arid, s_axi_awid, s_axi_wid, s_axi_rid
NOC_FABRIC STRING "VNOC", "BLI", "pl", "pl_hbm" "VNOC"
  • "VNOC"/"pl" - Choosing the VNOC NMU of given device
  • "BLI"/"pl_hbm" - Disables Packet FIFO mode
SIDEBAND_PINS STRING "false", "true" "false"
  • "true" - Drive AXI sideband parity signals over Address and Data User ports
  • "addr" - Drive AXI sideband parity signals over Address User ports
  • "data" - Drive AXI sideband parity signals over Data User ports
  • "false" - Disable driving AXI sideband parity signals over Address or Data User ports

System Verilog Instantiation Template

// xpm_nmu_mm_sv  	: In order to incorporate this function into the design,
// System Verilog   : the following instance declaration needs to be placed
//  instance   		: in the body of the design code.  The instance name
// declaration 		: (xpm_nmu_mm_sv_inst) and/or the port declarations within the
//    code     		: parenthesis may be changed to properly reference and
//             		: connect this function to the design.  All inputs
//             		: and outputs must be connected.
// Please reference the appropriate libraries guide for additional information on the XPM modules.

// -------------- Begin Cut here for INTERFACE Include ------- // INCLUDE_TAG
`include "vivado_interfaces.svh" 
// -- INCLUDE_TAG_END ------ End INTERFACE Include ------------

// -------------- Begin Cut here for INTERFACE Template ------- // INTF_TAG 
// Default parameter used by the module are for S_AXI
vivado_aximm_v1_0 #(
    .ID_WIDTH(1),
    .ADDR_WIDTH(32),
    .AWUSER_WIDTH(16),
    .DATA_WIDTH(32),
    .WUSER_WIDTH(4),
    .BUSER_WIDTH(16),
    .ARUSER_WIDTH(16),
    .RUSER_WIDTH(4)
) S_AXI();

//  -- INTF_TAG_END -------------- End INTERFACE Template ------------------ 

// xpm_nmu_mm_sv: AXI Memory Mapped (AXI Full) NOC Master Unit
//  <-----Cut code below this line---->
// Xilinx Parameterized Macro, version 2025.2

xpm_nmu_mm_sv #(
    .ADDR_WIDTH(ADDR_WIDTH),          // DECIMAL
    .AUSER_WIDTH(AWUSER_WIDTH),       // DECIMAL
    .DATA_WIDTH(DATA_WIDTH),          // DECIMAL
    .DUSER_WIDTH(WUSER_WIDTH),        // DECIMAL
    .ENABLE_FIREWALL("false"),        // STRING
    .ENABLE_USR_INTERRUPT("false"),  // STRING
    .ID_WIDTH(ID_WIDTH),              // DECIMAL
    .NOC_FABRIC("VNOC"),              // STRING
    .SIDEBAND_PINS("false")           // STRING
)
xpm_nmu_mm_sv_inst (
    .s_axi_aclk(s_axi_aclk),                      // 1-bit input: Slave Interface Clock: All signals on slave interface are sampled on the rising
                                                  // edge of this clock.
    .S_AXI(S_AXI.slave),						                                 
    .nmu_firewall_rd_err(nmu_firewall_rd_err),   // 1-bit output: Indicates that firewall error occurred during read transaction
    .nmu_firewall_wr_err(nmu_firewall_wr_err),   // 1-bit output: Indicates that firewall error occurred during write transaction
    .nmu_usr_interrupt_in(nmu_usr_interrupt_in)  // 4-bit input: User interrupt signal
);

// End of xpm_nmu_mm_sv_inst instantiation