AN 802: Intel® Stratix® 10 SoC Device Design Guidelines
ID
683117
Date
8/05/2021
Public
1. Introduction to the Intel® Stratix® 10 SoC Device Design Guidelines
2. Board Design Guidelines for Stratix 10 SoC FPGAs
3. Interfacing to the FPGA for Stratix 10 SoC FPGAs
4. System Considerations for Stratix 10 SoC FPGAs
5. Embedded Software Design Guidelines for Intel® Stratix® 10 SoC FPGAs
6. Recommended Resources for Stratix 10 SoC FPGAs
2.1. Pin Connection Considerations for Board Design
2.2. HPS Clocking and Reset Design Considerations
2.3. Design Considerations for Connecting Device I/O to HPS Peripherals and Memory
2.4. Design Guidelines for HPS Interfaces
2.5. HPS EMIF Design Considerations
2.6. HPS Memory Debug
2.7. Boundary Scan for HPS
2.8. Embedded Software Debugging and Trace
2.9. Board Design Guidelines for Intel® Stratix® 10 SoC FPGAs Revision History
2.5.1. Considerations for Connecting HPS to SDRAM
2.5.2. HPS SDRAM I/O Locations
GUIDELINE: Intel® recommends that you use these automated default pin location assignments as a starting point.
GUIDELINE: Verify the HPS memory controller I/O locations in the Intel® Quartus® Prime project pinout file in the “output_files” sub-folder before finalizing board layout.
GUIDELINE: Make sure all I/O associated with the HPS memory interface are located within the active HPS EMIF I/O banks.
Pin Assignments
DQ/DQS Group Placement
Unused HPS EMIF I/O Availability as FPGA GPIO
3.1. Overview of HPS Memory-Mapped Interfaces
3.2. Recommended System Topologies
3.3. Recommended Starting Point for HPS-to-FPGA Interface Designs
3.4. Timing Closure for FPGA Accelerators
3.5. Information on How to Configure and Use the Bridges
3.6. Interfacing to the FPGA for Intel® Stratix® 10 SoC FPGAs Revision History
5.1. Overview
5.2. Assembling the Components of Your Software Development Platform
5.3. Golden Hardware Reference Design (GHRD)
5.4. Selecting an Operating System for Your Application
5.5. Assembling Your Software Development Platform for Linux*
5.6. Assembling your Software Development Platform for a Bare-Metal Application
5.7. Assembling your Software Development Platform for Partner OS or RTOS
5.8. Choosing the Bootloader Software
5.9. Selecting Software Tools for Development, Debug and Trace
5.10. Boot And Configuration Considerations
5.11. System Reset Considerations
5.12. Flash Considerations
5.13. Embedded Software Debugging and Trace
5.14. Embedded Software Design Guidelines for Intel® Stratix® 10 SoC FPGAs Revision History
2.5.2. HPS SDRAM I/O Locations
The Intel® Agilex™ EMIF for HPS IP includes default pin location assignments for all the external memory interface signals in constraint files created at IP generation time and read by Intel® Quartus® Prime Pro Edition software during design compilation.
GUIDELINE: Intel® recommends that you use these automated default pin location assignments as a starting point.
You may need to modify the default pinout to meet the restrictions shown in this section.
GUIDELINE: Verify the HPS memory controller I/O locations in the Intel® Quartus® Prime project pinout file in the “output_files” sub-folder before finalizing board layout.
By default, Intel® Quartus® Prime generates output reports, log files and programming files in the “output_files” subfolder of the project folder. See the .pin text file after compilation for the pinout for your design, including the pin locations for the HPS EMIF.
GUIDELINE: Make sure all I/O associated with the HPS memory interface are located within the active HPS EMIF I/O banks.
It is critical that you ensure all I/O necessary for a functioning HPS memory interface are located within the active banks for your HPS memory width as shown in the table below:
EMIF Width | Bank 2N Lanes | Bank 2M Lanes | Bank 2L Lanes | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | 2 | 1 | 0 | 3 | 2 | 1 | 0 | 3 | 2 | 1 | 0 | |
16-bit | GPIO | 16-bit Data | NC4 | Address/Command/RZQ/RefClk | GPIO | |||||||
16-bit + ECC | GPIO | 16-bit Data + ECC | Address/Command/RZQ/RefClk | GPIO | ||||||||
32-bit | 32-bit Data | NC | Address/Command/RZQ/RefClk | GPIO | ||||||||
32-bit + ECC | 32-bit Data + ECC | Address/Command/RZQ/RefClk | GPIO | |||||||||
64-bit | 64-bit Data | NC | Address/Command/RZQ/RefClk | 64-bit Data | ||||||||
64-bit + ECC | 64-bit Data + ECC | Address/Command/RZQ/RefClk | 64-bit Data + ECC |
Pin Assignments
Within a single data lane (which implements a single x8 DQS group):
- DQ pins must use pins at indices: 1, 2, 3, 6, 7, 8, 9, 10. You may swap the locations between the DQ bits (that is, you may swap location of DQ[0] and DQ[3]) so long as the resulting pin-out uses pins at these indices only.
- DM/DBI pin must use pin at index 11. There is no flexibility.
- DQS must use pin at index 4, and DQS# must use pin at index 5. There is no flexibility.
- Place ALERT# pin in I/O bank 2N, Lane 0, pin index 0 or I/O bank 2N, Lane 1, pin index 0. Otherwise, pin index 0 must have "no connect"; unless it is used for HPS REFCLK_P, Address/Command/RZQ/RefClk, or general-purpose I/O, where allowed.
- Assignment of data lanes must be as illustrated in the above table. You can swap the locations of entire byte lanes (that is, you may swap locations of byte 0 and byte 1) so long as the resulting pin-out uses only the lanes permitted by your HPS EMIF configuration, as shown in the above table.
- I/O bank 2M Lane 0, 1, and 2 must only be used for Address/Command/RZQ/RefClk, otherwise “no connect”.
- You must not change placement of the address and command pins from the default.
- If not using ECC, IO bank 2M Lane 3 must be “no connect”. If using ECC, the ECC DQS group can be in any single data lane that is not otherwise restricted, that is, there is no requirement for the ECC DQS group to be placed in 2M.
- HPS REFCLK_P must use IO bank 2M Lane 2 pin index 0. HPS REFCLK_N must use IO bank 2M Lane 2 pin index 1.
- RZQ must use IO bank 2M Lane 2 pin index 2.
DQ/DQS Group Placement
Configuration | DQS Group Placement |
---|---|
16 bit | Must be placed in I/O lanes 0 and 1 of 2N. |
16 bit + ECC | Must be placed in I/O lanes 0 and 1 of 2N and I/O lane 3 of 2M. |
32 bit | Must be placed in 2N. |
32 bit + ECC | Must be placed in 2N and I/O lane 3 of 2M. |
64 bit | Must be placed in 2N and 2L. |
64 bit + ECC | Must be placed in 2N, 2L, and I/O lane 3 of 2M. |
Note: In all cases, the DQ/DQS groups can be swapped around in the I/O banks shown. There is no requirement for the ECC DQS group to be placed in 2M.
Unused HPS EMIF I/O Availability as FPGA GPIO
- Bank 2N (Data[31:0])—Unused lanes for 16-bit interfaces are available for FPGA GPIO.
- Band 2M (Addr/Cmd/ECC)
- Lanes 0, 1, 2 are NOT AVAILABLE as FPGA GPIO
- Lane 3 is NOT AVAILABLE as FPGA GPIO when not using ECC
- Bank 2L (Data[63:32])—Unused lanes for 32-bit or less interfaces are available as FPGA GPIO
4 NC indicates "no connect".