Visible to Intel only — GUID: sba1697656049315
Ixiasoft
1. Answers to Top FAQs
2. About This Application Note
3. Component Bandwidth Projections and Limitations
4. Resource Planning for Intel Agilex® 7 M-Series FPGAs
5. Factors Affecting NoC Performance
6. Debugging the NoC
7. Document Revision History of AN 1003: Multi Memory IP System Resource Planning for Intel Agilex® 7 M-Series FPGAs
4.1. Hard Memory NoC Resource Planning Overview
4.2. I/O Bank Blockage
4.3. Planning Avalon® Streaming Utilization
4.4. Planning for Initiator Blockage Impact from GPIO, LVDS SERDES, and PHY Lite Bypass Mode
4.5. Planning NoC PLL and I/O PLL
4.6. Pin Planning for HPS EMIF
4.7. Planning for an External Memory Interface
4.8. Planning for HBM2E
4.9. Planning for the Fabric NoC
4.10. Planning for AXI4-Lite
4.11. Planning NoC and Memory Solution Clocks
5.1. Recommended Performance Tuning Procedure
5.2. NoC Initiator and Target Clock Rate
5.3. Recommended NoC Design Topologies
5.4. Traffic Access Pattern and Memory Controller Efficiency
5.5. Traffic Access Pattern Due To Multiple Traffic Flows
5.6. Transaction Size
5.7. Congestion Interaction
5.8. Bandwidth Sharing At Each Switch
5.9. Exceeding NoC Bandwidth Limits
5.10. Maximum Number of Outstanding Transactions
5.11. QoS Priority
5.12. AxID
5.13. Example: 2x2 HBM Crossbars
5.14. Example: 16x16 Crossbar
Visible to Intel only — GUID: sba1697656049315
Ixiasoft
6.3.3. Performance Debug Steps
To debug a performance issue, determine whether the issue is caused by controller efficiency or congestion in the NoC. Apply the appropriate improvement methods according to the steps below.
- Use design simulation to indicate whether memory controller efficiency is an issue. The NoC simulation model does not consider NoC congestion, but does include approximately accurate interleaving of traffic reaching the target. If the performance problem persists in simulation, this is indicative of a controller efficiency issue, or insufficiently high clock rate for the initiators or target.
- If possible in your system, disable traffic to all other connections, except for the NoC target of interest and all of its connected initiators. If the problem resolves, this indicates that the source of the problem is congestion from connections on the NoC. If the problem does not resolve, the likely cause is the load of other connections to that same target, or memory controller efficiency.
- If you suspect the performance issue is related to memory controller efficiency, review the access pattern for each initiator, and the effective access pattern when multiple initiators send transactions to one target. Consider using the following techniques to improve efficiency and performance:
- Increase the transaction size if your application permits. Refer to Transaction Size.
- Implement address re-ordering to suit your access pattern. The HBM2E Intel FPGA IP supports address re-ordering, which changes the mapping between your logical address and the memory physical address (row, column, bank, bank group).
- If your application can take advantage of it, enable auto-precharge control if using the HBM2E Intel FPGA IP.
- If you suspect the performance issue is related to congestion, move NoC initiators and targets to reduce overlap between critical connections and other traffic, if possible. Refer to Congestion Interaction.
- To reduce throughput on less critical connections that overlap more critical, congested connections, modify the transaction issue rate in your design. In general, making critical connections as short as possible is also beneficial.
- To raise the priority of critical connections and decrease the priority of less critical connections, apply the QoS priority feature. Refer to QoS Priority.
Congestion can be caused by memory controller efficiency, as Congestion Interaction describes. A connection with a high number of outstanding transactions that is limited by the target throughput that includes controller efficiency, causes congestion of overlapping traffic. This congestion occurs because slow moving traffic queues in the NoC. For such connections, implement the following changes:
- Move the connection to a dedicated path on the NoC that does not overlap with other traffic. A direct connection through a switch is optimal.
- Limit the transaction issue rate in your application to reduce the number of outstanding transactions that queue in the NoC.