Agilex™ 7 M-Series FPGA Network-on-Chip (NoC) User Guide

ID 768844
Date 8/05/2024
Public
Document Table of Contents

3.5.2.3. Step 3: Make Attribute Assignments in the NoC Assignment Editor

This step describes how to create attribute assignments on connections between initiators and targets using the NoC Assignment Editor. If your design uses the Platform Designer connection flow, as NoC Design Flow Options describes, you create address map assignments in Platform Designer. The design .qip file stores those assignments that appear automatically in the NoC Assignment Editor as read-only assignments. You must make any changes to these assignments only in Platform Designer.

If your design uses the Platform Designer connection flow, as NoC Design Flow Options describes, and you have not made group assignments for your NoC elements, the Attributes tab displays an <Ungrouped> subtab. The <Ungrouped> subtab shows attributes such as base addresses that you defined in Platform Designer, but whose elements you have not assigned to a NoC group. Before continuing with attribute assignments, click the Group tab and make group assignments for all NoC elements, as Step 1: Make Group Assignments in the NoC Assignment Editor describes.

  1. Complete the Group and Connection tab assignments before starting the Attribute tab assignments
  2. To create assignments for address mapping and bandwidth requirements for each connection, click the Attributes tab. The Attributes tab includes a subtab for each group that you specify on the Group tab. Each subtab lists each initiator to target connection.
Table 7.  Attributes Tab Options
Option Description
Base Address Enter the hexadecimal base address for each initiator-target connection. The set of targets that connect to an initiator is a memory-mapped space using physical addresses to define how the initiator reaches each target. Defining a connection between an initiator and a target and setting the base address of that connection creates a logical address space that is visible from the initiator's perspective.
Read Bandwidth Specify the steady-state required read bandwidth (in GB/s) for each initiator to target connection. The default setting is 0 GB/s.
Write Bandwidth Specify the steady-state required write bandwidth (in GB/s) for each initiator to target connection. The default setting is 0 GB/s.
Read Transaction Size Specify the average read transaction size (in bytes) for each initiator to target connection. Valid sizes are 32, 64, 128, 256, 512, 1024, 2048, or 4096. The default setting is 64.
Write Transaction Size Specify the average write transaction size (in bytes) for each initiator to target connection. Valid sizes are 32, 64, 128, 256, 512, 1024, 2048, or 4096. The default setting is 64.

Figure 24. NoC Assignment Editor Attributes Tab shows an example Attributes tab in the NoC Assignment Editor with the base addresses assigned for individual initiator-target connections.

Figure 24. NoC Assignment Editor Attributes Tab


Note: Use the right-side scrollbar to view additional initiator-target connects below. Use the bottom scrollbar to view additional columns to the right for assigning read and write bandwidth requirements.

If an initiator connects to multiple targets, select base addresses to avoid address range overlaps. For HBM2e memory, the minimum address span is 1 GB and you must align base addresses to 1 GB boundaries. For external memory interfaces, the minimum address span is 4 GB and you must align base addresses to 4 GB boundaries. For example, if an initiator connects to both HBM2e memory and DDR5 memory, you might select the base address for the HBM2e memory as 0x00000000, and the base address for the DDR5 memory as 0x40000000, assuming a 16GB HBM2e memory space. You can click the Assign Base Addresses button to allow Platform Designer to assign addresses automatically.

Read and write bandwidth is based on the traffic that you anticipate your system places on each initiator-target connection. You must account for the physical limits of the hard memory NoC, including initiator data widths and frequencies, and high-bandwidth memory or external memory interface limitations. Additionally, consider whether you need to limit traffic on certain connections to avoid overloading the horizontal bandwidth limits of the hard memory NoC. Since the hard memory NoC breaks down transactions into 512-bit (64-byte) packets, using a smaller transaction size of 32 bytes can result in inefficient usage of the hard memory NoC.

The NOC Performance Report estimates whether you can meet these performance targets. This report is available during interactive placement in the Interface Planner. In Interface Planner, results are based on estimated clock frequencies. After compilation, the Compilation Report also includes this report but is based on actual clock frequencies. For details, refer to Fitter NoC Reports. Additionally, the Power and Thermal Calculator (PTC) estimates power based on the bandwidth performance targets. Leaving the bandwidth requirements as the default (0 GB/s for both read and write traffic) can result in inaccurate performance reporting and power estimation.

The following shows the equivalent .qsf assignments for specifying the base address, bandwidth requirements, and transaction sizes. Base addresses are in hexadecimal format and do not require a leading 0x. Read and write bandwidth requirements are numeric values in GB/s. Read and write transaction sizes are in bytes.

set_instance_assignment -name NOC_TARGET_BASE_ADDRESS <address> \
   -from <hierarchical initiator path name> \
   -to <hierarchical target path name>
set_instance_assignment -name NOC_READ_BANDWIDTH \
   <read bandwidth requirement> -from <hierarchical initiator path name> \
   -to <hierarchical target path name>
set_instance_assignment -name NOC_WRITE_BANDWIDTH \
   <write bandwidth requirement> -from <hierarchical initiator path name>\
   -to <hierarchical target path name>
set_instance_assignment -name NOC_READ_TRANSACTION_SIZE \
   <read transaction size> -from \
   <hierarchical initiator path name> -to \
   <hierarchical target path name>
set_instance_assignment -name NOC_WRITE_TRANSACTION_SIZE \
   <write transaction size> -from \
   <hierarchical initiator path name> -to \
   <hierarchical target path name>