Intel® Agilex™ Hard Processor System Component Reference Manual

Updated for Intel® Quartus® Prime Design Suite: 21.3

1. Introduction to the Intel® Agilex™ Hard Processor System Component

The hard processor system (HPS) component is a wrapper that interfaces logic in your design to the HPS hard logic, simulation models, bus functional models (BFMs), and software handoff files. It instantiates the HPS hard logic and enables soft components to interface with it, occupying a small footprint in the FPGA fabric for soft-to-hard logic connection.

Platform Designer can be used to ensure interoperability by adapting Avalon® Memory-Mapped (Avalon-MM) interfaces to AXI*, handling data width mismatches, and clock domain transfer crossings. This allows interfacing with Intel®, customer, or third-party FPGA core IP without creating integration logic.

For more information about the HPS system architecture and features, refer to the "Introduction to the Hard Processor" chapter in the Intel Agilex™ Hard Processor System Technical Reference Manual.

1.1. Cortex*-A53 MPCore* Processor

The HPS includes an Arm® Cortex*-A53 MPCore* Processor composed of four Armv8-A architecture central processing units (CPUs).

1.2. CoreSight* Debug Components

The Arm CoreSight* debug components include:

1.3. Interconnect

The HPS system interconnect supports:

1.4. FPGA Bridges

FPGA bridges provide communication channels between the HPS and the FPGA fabric. Some interfaces include:

1.5. Memory Controllers

The HPS includes two memory controller peripherals:

1.6. Support Peripherals

The HPS includes the following support peripherals:

1.6.1. Interface Peripherals

Interface peripherals include:

1.6.2. On-Chip Memories

On-Chip RAM is the only on-chip memory.

1.7. Introduction to the HPS Component Revision History

Document Version Changes
2019.09.30 Initial release

2. Configuring the Intel Agilex Hard Processor System Component

This chapter describes the parameters and interfaces available in the HPS component parameter editor within Platform Designer.

2.1. Parameterizing the HPS Component

To parameterize the HPS component:

  1. Install the Intel Quartus® Prime Pro Edition design software with Intel Agilex device support. Instructions are available at: Intel Download Center.
  2. Open the Intel Quartus Prime software.
  3. Open Platform Designer by selecting Tools > Platform Designer.
  4. Select an existing Intel Quartus Prime project and Platform Designer system, or create new files. Ensure the correct Intel Agilex device is selected in the Device Family and Device Part dropdowns.
  5. In the IP Catalog tab, navigate to Library > Processors and Peripherals > Hard Processor Systems > Hard Processor System Intel Agilex FPGA IP.

2.2. FPGA Interfaces

The FPGA Interfaces tab allows configuration of primary interfaces between the FPGA and the HPS. Key groups include:

2.2.1. General Interfaces

2.2.1.1. Enable MPU Standby and Event Interfaces

Enabling MPU standby and event signals notifies the FPGA fabric when the MPU is in standby. Event signals wake up Cortex-A53 processors from a wait-for-event (WFE) state. This option enables the h2f_mpu_events conduit, comprising signals like:

2.2.1.2. Enable General Purpose Signals

Enabling general purpose signals activates the h2f_gp conduit, a pair of 32-bit uni-directional interfaces between the HPS System Manager and the FPGA fabric. These signals are h2f_gp_in (input to HPS) and h2f_gp_out (output from HPS).

2.2.1.3. Enable Debug APB Interface

The debug Advanced Peripheral Bus (APB)* interface allows FPGA debug components to access HPS debug components. Enabling this option provides interfaces and signals such as:

Interface Name Interface Type Signals
h2f_debug_apb_clock Clock Input h2f_dbg_apb_clk
h2f_debug_apb_reset Reset Output h2f_dbg_apb_rst_n
h2f_debug_apb APB Master h2f_dbg_apb_PADDR[14..0], h2f_dbg_apb_PADDR31, h2f_dbg_apb_PENABLE, h2f_dbg_apb_PRDATA[31..0], h2f_dbg_apb_PREADY, h2f_dbg_apb_PSEL, h2f_dbg_apb_PSLVERR, h2f_dbg_apb_PWDATA[31..0], h2f_dbg_apb_PWRITE, h2f_debug_apb_PCLKEN, h2f_debug_apb_DBG_APB_DISABLE
h2f_debug_apb_sideband Conduit (Signals not listed)
2.2.1.4. Enable System Trace Macrocell (STM) Hardware Events

This interface allows FPGA logic to insert messages into the trace stream. Enabling it activates the h2f_cs and f2h_stm_hw_events conduits.

2.2.1.5. Enable FPGA Cross Trigger Interface

The cross trigger interface (CTI) connects trigger sources and sinks in FPGA logic with the embedded cross trigger (ECT). Enabling this option activates the h2f_cti conduit, comprising signals like:

2.2.1.6. Enable DDR Arm Trace Bus (ATB)

Enabling the DDR Arm Trace Bus provides the ddr_atb_clock clock input and ddr_atb_reset reset input interfaces.

2.2.2. HPS-FPGA AXI Bridges

These bridges facilitate communication between the HPS and FPGA fabric using AXI protocols.

2.2.2.1. FPGA-to-HPS Slave Interface

This interface allows FPGA masters to issue transactions to the HPS. Configuration options include:

Selection Description
CCU Routes transaction to CCU directly; supports coherent and non-coherent accesses.
SDRAM Direct Routes transaction to SDRAM directly; supports non-coherent accesses.
Inband Exposes AxUSER in the AXI or ACE-Lite interface for control.

When this bridge is enabled, f2h_axi_slave, f2h_axi_clock, and f2h_axi_reset are available. The hps_emif conduit is enabled when AXI or ACE-Lite bridge is selected.

2.2.2.2. HPS to FPGA AXI-4 Master Interface

This interface allows HPS masters to issue transactions to the FPGA fabric. Configuration includes:

This bridge accepts FPGA fabric clocks and performs clock domain crossing. Soft logic adapters can support other interface standards like Avalon-MM.

2.2.2.3. Lightweight HPS to FPGA Master Interface

This low-bandwidth control interface allows HPS masters to issue transactions to the FPGA fabric. It features a fixed 32-bit data width and configurable bridge address width (21 or 20 bits). Interfaces h2f_lw_axi_master, h2f_lw_axi_clock, and h2f_lw_axi_reset are available when enabled.

2.2.3. HPS Boot Source

The HPS SSBL Location dropdown selects the boot source for the HPS Second Stage Bootloader:

Note: The HPS Boot Source tab is removed in Intel Quartus Prime Pro Edition version 19.3. Refer to the BuildingBootloader web page on RocketBoards for boot source information.

2.2.4. DMA Controller Interface

This interface allows soft IP in the FPGA to communicate with the HPS DMA controller. Up to eight interface channels can be configured. Each DMA peripheral request interface conduit (f2h_dma<n>) contains:

Note: FPGA DMA interfaces 6 and 7 are multiplexed with the EMAC2 I2C DMA interface.

2.2.5. Interrupts

The Interrupts section is divided into FPGA-to-HPS and HPS-to-FPGA subsections.

2.2.5.1. FPGA-to-HPS

Enabling FPGA-to-HPS interrupts configures the HPS component to provide 64 general purpose interrupts to the MPU's generic interrupt controller (GIC). These are implemented via 32-bit interfaces:

These interrupts are asynchronous on the FPGA interface and synchronized internally to the MPU's peripheral clock.

2.2.5.2. HPS-to-FPGA

The following table lists available HPS-to-FPGA interrupt interfaces:

Parameter Name Parameter Description Interface Name
Enable Clock Peripheral Interrupts Enables HPS clock manager and MPU wake-up interrupt signals to the FPGA. h2f_clkmgr_interrupt
Enable DMA Interrupts Enables HPS DMA channels interrupt and DMA abort interrupt to the FPGA. h2f_dma_interrupt0...h2f_dma_interrupt7, h2f_dma_abort_interrupt
Enable EMAC Interrupts Enables HPS Ethernet MAC controller interrupt to the FPGA (EMAC must be enabled in Pin Mux Tab). h2f_emac0_interrupt...h2f_emac2_interrupt
Enable GPIO Interrupts Enables HPS general purpose IO (GPIO) interrupt to the FPGA. h2f_gpio0_interrupt...h2f_gpio2_interrupt
Enable I2C-EMAC Interrupts Enables HPS peripheral interrupt for I2CEMAC to be driven into the FPGA fabric. h2f_i2c_emac0_interrupt...h2f_i2c_emac2_interrupt
Enable I2C Peripherals Interrupts Enables HPS peripheral interrupt for I2C0 to the FPGA fabric (I2C must be enabled in Pin Mux Tab). h2f_i2c0_interrupt, h2f_i2c1_interrupt
Enable L4 Timer Interrupts Enables HPS peripheral interrupt for L4TIMER to the FPGA fabric. h2f_timer_l4sp_0_interrupt, h2f_timer_l4sp_1_interrupt
Enable NAND Interrupts Enables HPS NAND controller interrupt to the FPGA (NAND IP Block must be enabled in Pin Mux Tab). h2f_nand_interrupt
Enable SYS Timer Interrupts Enables HPS peripheral interrupt for SYSTIMER to the FPGA fabric. h2f_timer_sys_0_interrupt, h2f_timer_sys_1_interrupt
Enable SD/MMC Interrupts Enables HPS SD/MMC controller interrupt to the FPGA (SD/MMC IP Block must be enabled in Pin Mux Tab). h2f_sdmmc_interrupt
Enable SPI Master Interrupts Enables HPS SPI master controller interrupt to the FPGA (SPI Master IP Block must be enabled in Pin Mux Tab). h2f_spim0_interrupt, h2f_spim1_interrupt
Enable SPI Slave Interrupts Enables HPS SPI slave controller interrupt to the FPGA (SPI IP Block must be enabled in Pin Mux Tab). h2f_spis0_interrupt, h2f_spis1_interrupt
Enable ECC/Parity_L1 Interrupts Enables HPS peripheral interrupt for ECC single/double bit error and L1 parity error to the FPGA fabric. h2f_ecc_serr_interrupt, h2f_ecc_derr_interrupt, h2f_parity_l1_interrupt
Enable UART Interrupts Enables HPS UART controller interrupt to the FPGA (UART IP Block must be enabled in Pin Mux Tab). h2f_uart0_interrupt, h2f_uart1_interrupt
Enable USB Interrupts Enables HPS USB controller interrupt to the FPGA (USB IP Block must be enabled in Pin Mux Tab). h2f_usb0_interrupt, h2f_usb1_interrupt
Enable Watchdog Interrupts Enables HPS watchdog interrupt to the FPGA. h2f_wdog0_interrupt, h2f_wdog1_interrupt

2.3. HPS Clocks and Resets

This section covers Input Clocks, Internal Clocks and Output Clocks, and Resets.

2.3.1. Input Clocks

The Input Clocks tab includes subsections for External Clock Source, FPGA-to-HPS Clocks Source, and Peripheral FPGA Clocks.

2.3.1.1. External Clock Source

The EOSC clock frequency field specifies the input clock frequency to the hps_osc_clk pin, which drives the main HPS PLL.

2.3.1.2. FPGA-to-HPS Clocks Source

Enabling the FPGA-to-HPS free clock option provides an alternative input (f2h_free_clk) to the main HPS PLL, driven from the FPGA fabric.

2.3.1.3. Peripheral FPGA Clocks

This subsection describes parameters for peripheral clock frequencies, such as EMAC, SD/MMC, and SPI.

Parameter Name Parameter Description
EMAC 0 (emac0_md_clk clock frequency) Specifies EMAC 0 MDIO clock frequency if EMAC 0 is routed to FPGA.
EMAC 0 (emac0_gtx_clk clock frequency) Specifies EMAC 0 transmit clock frequency if EMAC 0 is routed to FPGA.
EMAC 1 (emac1_md_clk clock frequency) Specifies EMAC 1 MDIO clock frequency if EMAC 1 is routed to FPGA.
EMAC 1 (emac1_gtx_clk clock frequency) Specifies EMAC 1 transmit clock frequency if EMAC 1 is routed to FPGA.
EMAC 2 (emac2_md_clk clock frequency) Specifies EMAC 2 MDIO clock frequency if EMAC 2 is routed to FPGA.
EMAC 2 (emac2_gtx_clk clock frequency) Specifies EMAC 2 transmit clock frequency if EMAC 2 is routed to FPGA.
SD/MMC (sdmmc_cclk) Specifies SD/MMC clock frequency if the peripheral pin multiplexing routes to FPGA fabric.
SPIM 0 (spim0_sclk_out clock frequency) Specifies SPI master 0 output clock frequency if routed to FPGA.
SPIM 1 (spim1_sclk_out clock frequency) Specifies SPI master 1 output clock frequency if routed to FPGA.
I2C0 (i2c0_clk clock frequency) Specifies I2C 0 output clock frequency if routed to FPGA.
I2C1 (i2c1_clk clock frequency) Specifies I2C 1 output clock frequency if routed to FPGA.
I2CEMACO (i2cemac0_clk) Specifies I2CEMACO clock frequency if routed to FPGA fabric.
I2CEMAC1 (i2cemac1_clk) Specifies I2CEMAC1 clock frequency if routed to FPGA fabric.
I2CEMAC2 (i2cemac2_clk) Specifies I2CEMAC2 clock frequency if routed to FPGA fabric.
2.3.2. Internal Clocks and Output Clocks

This subsection covers Main PLL Output Clocks, HPS to FPGA User Clocks, HPS Peripheral Clocks, Clock Sources, and PLL Report.

2.3.2.1. Main PLL Output Clocks – Desired Frequencies

This section controls the MPU clock frequency. The Default MPU clock frequency field shows the default maximum frequency based on the device speed grade. The Override default MPU clock frequency box allows manual entry of a slower frequency in the Custom MPU clock frequency field.

2.3.2.2. HPS to FPGA User Clocks

Enabling HPS-to-FPGA User0 or User1 clock options provides available HPS PLL outputs to the FPGA for custom logic. The clock frequency field shows the default maximum frequency, which can be manually overridden.

2.3.2.3. HPS Peripheral Clocks – Desired Frequencies

Clock frequencies provided here are reported in a Synopsys* Design Constraints File (.sdc). Changes can be made by altering the L3 source clock frequency or clock divider.

2.3.2.4. Clock Sources

Dropdowns in this section control multiplexers in the HPS clock manager to select PLL or clock sources. The FPGA to HPS Free clock is available if enabled in the Input Clocks tab.

2.3.2.5. PLL Report

This section provides calculated parameters for HPS PLLs and frequencies for main and peripheral clocks.

2.3.3. Resets

Options include:

2.4. HPS EMIF

The HPS supports one DDR4 interface. Note that EMIF conduit behavior differs between Quartus Prime Pro Edition versions 19.2 and 19.3 regarding enablement and SDRAM tab visibility.

2.5. I/O Delays

The I/O Delays tab allows adding optional delay chains to HPS dedicated I/O pins. Options include:

2.6. Pin MUX and Peripherals

The Pin MUX and Peripherals tab includes sub-windows for Pin Mux GUI, Pin Mux Report, and EMAC ptp interface.

2.6.1. Pin Mux GUI

The Pin MUX GUI section has two tabs: Auto-Place IP and Advanced.

2.6.1.1. Advanced IP Placement

Allows specific pin placement of each peripheral in the HPS dedicated I/O quadrant space. Changes take effect upon clicking Apply Selections.

2.6.1.2. Advanced FPGA Placement

Allows routing of specific peripherals to the FPGA if they were enabled and allocated in the Auto-Place IP tab. Options for bit-width specification are available for SD/MMC, NAND, and TRACE. Interface and PHY Options dropdowns are available for EMACs.

2.6.2. Pin Mux Report

Details the physical pins of the device mapping to each HPS I/O location.

2.6.3. EMAC ptp Interface

Enables the Precision Time Protocol (PTP) FPGA interface for each EMAC. When enabled, signals like emac<n>_ptp_pps_o, emac<n>_ptp_aux_tx_trig_i, emac<n>_ptp_tstmp_data, emac<n>_ptp_tstmp_en, and emac_ptp_ref_clock become available.

2.7. Generating and Compiling the HPS Component

The process is similar to other Platform Designer projects:

  1. Generate the design with Platform Designer. This includes an .sdc file with clock timing constraints.
  2. Add the generated <qsys_system_name>.qip file to the Intel Quartus Prime project. This file contains pin assignments.
  3. Perform analysis and synthesis using Intel Quartus Prime.
  4. Compile the design.
  5. Optionally back-annotate SDRAM pin assignments to eliminate warnings in future compilations.

When using the FPGA-to-HPS slave interface in AXI-4 mode, selecting Load IP-XACT Register Details includes relevant CSR offset information.

2.8. Using the Address Span Extender Component

The FPGA-to-SoC bridge can expose entire address spaces (1GB and 4GB) to the FPGA fabric. The Address Span Extender component provides a memory-mapped window, allowing FPGA masters with smaller address spans to access the full address space. It can be used between a soft logic master and an FPGA-to-SoC bridge to reduce address bits required for accessing HPS interfaces.

The address span extender can also be used in the HPS-to-FPGA direction for slave interfaces in the FPGA, enabling paging or windowing of memory.

2.9. Configuring the HPS Component Revision History

Document Version Changes
2021.08.05 Changed "HPS Cold reset and trigger a remote Update" to "Trigger Remote Update" in the Resets section.
2021.03.15 Added information about the removal of the HPS Boot Source tab.
2021.02.24 Added a new figure and information about using the FPGA to HPS slave interface in AXI-4 mode in the Generating and Compiling the HPS Component section.
2020.07.30 Added information about BYPASS mode in the HPS EMIF section.
2019.09.30 Added a new table: Interface Destination Selection. Initial release.

PDF preview unavailable. Download the PDF instead.

mnl-1103 Antenna House PDF Output Library 6.6.1359 (Linux64)

Related Documents

Preview Intel® Agilex™ Hard Processor System Technical Reference Manual
A comprehensive technical reference manual for the Intel® Agilex™ Hard Processor System (HPS), detailing its architecture, components, and functionalities. This manual is essential for developers working with Intel Agilex FPGAs.
Preview Intel Stratix 10 Hard Processor System Technical Reference Manual
A comprehensive technical reference manual detailing the Intel Stratix 10 Hard Processor System (HPS), including its architecture, components, and functionality. This manual is updated for the Intel Quartus Prime Design Suite version 21.1.
Preview Intel® Stratix® 10 HPS Remote System Update User Guide
A comprehensive guide detailing the Intel Stratix 10 Hard Processor System (HPS) Remote System Update (RSU) solution, covering features, use cases, flash layout, software support, and practical examples for reliable system updates.
Preview Intel® SoC FPGA Embedded Development Suite (SoC EDS) User Guide
This user guide provides a comprehensive overview of the Intel® SoC FPGA Embedded Development Suite (SoC EDS), a tool suite for embedded software development on Intel FPGA SoC devices. It covers installation, toolchains, development roles, bootloader management, hardware libraries, flash programming, compilers, and device tree generation, updated for Intel Quartus Prime Design Suite 20.1.
Preview Intel Agilex 7 M-Series FPGA Network-on-Chip (NoC) User Guide
User guide detailing the Network-on-Chip (NoC) subsystem for Intel Agilex 7 M-Series FPGAs, covering architecture, design flow, memory interfaces (HBM2e, DDR5), AXI4 protocol, simulation, and power estimation for high-bandwidth applications.
Preview Intel Agilex FPGA EMIF IP User Guide
The Intel Agilex FPGA EMIF IP User Guide provides in-depth technical information for implementing high-speed external memory interfaces on Intel Agilex FPGAs. It details the IP's architecture, support for DDR4 and QDR-IV protocols, design flow, calibration processes, simulation methods, and debugging techniques, serving as a crucial resource for hardware engineers.
Preview Intel Agilex 7 M-Series FPGA EMIF IP User Guide
Comprehensive guide to Intel's Agilex 7 M-Series FPGA External Memory Interface (EMIF) IP, covering DDR4, DDR5, and LPDDR5 protocols, architecture, pin planning, simulation, and board design.
Preview External Memory Interfaces Intel® Arria® 10 FPGA IP User Guide
This comprehensive user guide from Intel provides detailed information on the Arria 10 FPGA External Memory Interface (EMIF) IP. It covers architecture, design flow, parameter descriptions, signal interfaces, and debugging for various memory protocols including DDR3, DDR4, LPDDR3, QDR II/II+/II+ Xtreme, QDR-IV, and RLDRAM 3. Optimized for high-speed memory devices, the guide assists engineers in implementing efficient and low-latency memory solutions.