Intel HBM Controller Spec
Intel HBM Controller Spec
IP Version: 19.6.1
Contents
1. About the High Bandwidth Memory (HBM2) Interface Intel® FPGA IP............................ 4
1.1. Release Information...............................................................................................4
2. Introduction to High Bandwidth Memory........................................................................ 5
2.1. HBM2 in Intel Stratix 10 Devices..............................................................................5
2.2. HBM2 DRAM Structure............................................................................................6
2.3. Intel Stratix 10 HBM2 Features................................................................................6
2.4. Intel Stratix 10 HBM2 Controller Features................................................................. 7
3. Intel Stratix 10 HBM2 Architecture................................................................................. 8
3.1. Intel Stratix 10 HBM2 Introduction...........................................................................8
3.2. Intel Stratix 10 UIB Architecture.............................................................................. 8
3.3. Intel Stratix 10 HBM2 Controller Architecture...........................................................12
3.3.1. Intel Stratix 10 HBM2 Controller Details...................................................... 12
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel
FPGA IP................................................................................................................... 16
4.1. Creating an Intel Quartus Prime Pro Edition Project for High Bandwidth Memory
(HBM2) Interface FPGA IP.................................................................................. 16
4.2. Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP................18
4.2.1. General Parameters for High Bandwidth Memory (HBM2) Interface Intel
FPGA IP.................................................................................................. 18
4.2.2. FPGA I/O Parameters for High Bandwidth Memory (HBM2) Interface Intel
FPGA IP.................................................................................................. 23
4.2.3. Controller Parameters for High Bandwidth Memory (HBM2) Interface Intel
FPGA IP.................................................................................................. 24
4.2.4. Diagnostic Parameters for High Bandwidth Memory (HBM2) Interface Intel
FPGA IP.................................................................................................. 27
4.2.5. Example Designs Parameters for High Bandwidth Memory (HBM2)
Interface Intel FPGA IP............................................................................. 30
4.2.6. Register Map IP-XACT Support for HBM2 IP................................................. 31
4.3. Pin Planning for the High Bandwidth Memory (HBM2) Interface Intel FPGA IP .............. 31
5. Simulating the High Bandwidth Memory (HBM2) Interface Intel FPGA IP.....................33
5.1. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Example Design....................33
5.2. Simulating High Bandwidth Memory (HBM2) Interface Intel FPGA IP with
ModelSim* and Questa*.....................................................................................34
5.3. Simulating High Bandwidth Memory (HBM2) Interface Intel FPGA IP with Synopsys
VCS*...............................................................................................................35
5.4. Simulating High Bandwidth Memory (HBM2) Interface Intel FPGA IP with Riviera-
PRO*...............................................................................................................35
5.5. Simulating High Bandwidth Memory (HBM2) Interface Intel FPGA IP with Cadence
Xcelium* Parallel Simulator................................................................................ 35
5.6. Simulating High Bandwidth Memory (HBM2) Interface Intel FPGA IP for High
Efficiency......................................................................................................... 36
5.7. Simulating High Bandwidth Memory (HBM2) Interface IP Instantiated in Your Project.... 37
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface............................. 38
6.1. High Bandwidth Memory (HBM2) Interface Intel FPGA IP High Level Block Diagram...... 38
6.2. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Controller Interface Signals.... 38
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
2
Contents
9. Document Revision History for High Bandwidth Memory (HBM2) Interface Intel
FPGA IP User Guide................................................................................................. 88
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
3
683189 | 2023.01.20
Send Feedback
The IP versioning scheme (X.Y.Z) number changes from one software version to
another. A change in:
• X indicates a major revision of the IP. If you update your Intel Quartus Prime
software, you must regenerate the IP.
• Y indicates the IP includes new features. Regenerate your IP to include these new
features.
• Z indicates the IP includes minor changes. Regenerate your IP to include these
changes.
Table 1. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Core Current
Release Information
Item Description
IP Version 19.6.1
Intel Corporation. All rights reserved. Intel, the Intel logo, and other Intel marks are trademarks of Intel
Corporation or its subsidiaries. Intel warrants performance of its FPGA and semiconductor products to current
specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any ISO
products and services at any time without notice. Intel assumes no responsibility or liability arising out of the 9001:2015
application or use of any information, product, or service described herein except as expressly agreed to in Registered
writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
*Other names and brands may be claimed as the property of others.
683189 | 2023.01.20
Send Feedback
The High Bandwidth Memory DRAM is tightly coupled to the host die with a distributed
interface. The interface is divided into independent channels, each completely
independent of one another. Each channel interface maintains a 128-bit data bus,
operating at DDR data rates.
As illustrated below, each Intel Stratix 10 device contains a single universal interface
bus per HBM2 interface, supporting 8 independent channels.
The user interface to the HBM2 controller is maintained through the AXI4 protocol.
Sixteen AXI interfaces are available in the user interface from each HBM2 controller,
with one AXI interface available per HBM2 Pseudo Channel. HBM2 DRAM density of
4GB and 8GB are supported.
Figure 1. Intel Stratix 10 Device with UIB, EMIB, and HBM2 DRAM
Intel Corporation. All rights reserved. Intel, the Intel logo, and other Intel marks are trademarks of Intel
Corporation or its subsidiaries. Intel warrants performance of its FPGA and semiconductor products to current
specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any ISO
products and services at any time without notice. Intel assumes no responsibility or liability arising out of the 9001:2015
application or use of any information, product, or service described herein except as expressly agreed to in Registered
writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
*Other names and brands may be claimed as the property of others.
2. Introduction to High Bandwidth Memory
683189 | 2023.01.20
The following figure shows an example stack containing four DRAM dies, each die
supporting two channels. Each die contributes additional capacity and additional
channels to the stack, up to a maximum of eight channels per stack. Each channel
provides access to an independent set of DRAM banks. Requests from one channel
may not access data attached to a different channel.
Channel 0 Channel 1
• Supports one to eight HBM2 channels per HBM2 interface in the Pseudo Channel
mode.
• Each HBM2 channel supports a 128-bit DDR data bus, with optional ECC support.
• Pseudo Channel mode divides each channel into two individual 64-bit I/O pseudo-
channels. The two pseudo-channels operate semi-independently; they share the
channel’s row and column command bus as well as CK and CKE inputs, but they
decode and execute commands individually. Address BA4 directs commands to
either pseudo-channel 0 (BA4 = 0) or pseudo-channel 1 (BA4 = 1), offering
unique address space to each pseudo-channel. Pseudo Channel mode requires
that the burst length for DRAM transactions is set to 4.
• Data referenced to strobes RDQS_t / RDQS_c and WDQS_t / WDQS_c, one strobe
pair per 32 DQs.
• Differential clock inputs (CK_t / CK_c). Unterminated data/address/cmd/clk
interfaces.
• DDR commands entered on each positive CK_t and CK_c edge. Row Activate
commands require two memory cycles; all other command are single-cycle
commands.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
6
2. Introduction to High Bandwidth Memory
683189 | 2023.01.20
• User applications communicate with the HBMC using the AXI4 Protocol.
• There is one AXI4 interface per HBM2 Pseudo Channel. Each HBM2 interface
supports a maximum of sixteen AXI4 interfaces to the sixteen Pseudo Channels.
An optional Avalon® interface is supported to each Pseudo Channel from the Intel
Quartus Prime software.
• The user interface can operate at a frequency lower than the HBM2 interface
frequency. The maximum supported HBM2 interface frequency depends on the
FPGA device speed grade. The minimum frequency of the core clock is one quarter
of the HBM2 interface frequency.
• Each AXI interface supports a 256-bit Write Data interface and a 256-bit Read
Data interface.
• The controller offers 32B and 64B access granularity supporting burst length 4 (BL
4) and pseudo-BL 8 (two back to back BL4).
• The controller offers out-of-order command scheduling and read data reordering.
• The controller supports user-initiated Refresh commands, and access to the HBM2
channel status registers, through the side band Advanced Peripheral Bus (APB)
interface.
• The controller supports data mask or error correction code (ECC). When you do
not use data mask or ECC, you may use those bits as additional data bits.
Related Information
Clock Signals on page 39
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
7
683189 | 2023.01.20
Send Feedback
This system-in-package solution helps to achieve maximum bandwidth and low power
consumption in a small footprint.
Each UIB subsystem includes the HBM2 hardened controller and the universal
interface bus, consisting of the hardened physical interface and I/O logic needed to
interface to each HBM2 DRAM device. The AMBA AXI4 protocol interfaces the core
logic with the universal interface bus subsystem. An optional soft logic adapter
implemented in the FPGA fabric helps to efficiently interface user logic to the hardened
HBM2 controller. Commencing with the Intel Quartus Prime software version 20.2, an
optional Avalon memory-mapped interface is supported to each Pseudo Channel.
The following figure shows a high-level block diagram of the Intel Stratix 10 HBM2
universal interface bus subsystem. The UIB subsystem includes the following
hardened logic:
• Rate-matching FIFOs that transfer logic from the user core clock to the HBM2
clock domain.
• HBM2 memory controller (HBMC).
• UIB PHY, including the UIB physical layer and I/O.
Intel Corporation. All rights reserved. Intel, the Intel logo, and other Intel marks are trademarks of Intel
Corporation or its subsidiaries. Intel warrants performance of its FPGA and semiconductor products to current
specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any ISO
products and services at any time without notice. Intel assumes no responsibility or liability arising out of the 9001:2015
application or use of any information, product, or service described herein except as expressly agreed to in Registered
writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
*Other names and brands may be claimed as the property of others.
3. Intel Stratix 10 HBM2 Architecture
683189 | 2023.01.20
The user core clock drives the logic highlighted in green, while the UIB clocks the logic
highlighted in blue. The UIB clock also drives the HBM2 interface clock. User logic can
run up to one-to-four times slower than the HBM2 interface.
The HBM2 IP also includes a soft logic adaptor implemented in FPGA core logic. The
soft logic adaptor gates the user valid signals (write address valid, write data
valid, and read address valid) with the corresponding pipelined ready signals
from the HBM2 controller. The soft logic adapter also temporarily stores output from
the HBM2 controller (AXI write response and AXI read data channels) when the AXI
ready signal is absent. You can disable the temporary storage logic if user logic is
always ready to accept output from the HBM2 controller through the parameter editor
when generating the HBM2 IP.
HBM2 DRAM
The following table lists the HBM2 signals that interface to the UIB. The UIB drives the
HBM2 signals and decodes the received data from the HBM2. These signals cannot be
accessed through the AXI4 User Interface.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
9
3. Intel Stratix 10 HBM2 Architecture
683189 | 2023.01.20
The following table lists the HBM2 signals that are common to all Pseudo Channels in
each HBM2 interface. The HBM2 controller interfaces with the following signals; these
signals are not available at the AXI4 user interface.
The Intel Stratix 10 HBM2 IP supports only the Pseudo Channel mode of the HBM2
specification. Pseudo Channel mode includes the following features:
• Pseudo Channel mode divides a single HBM2 channel into two individual
subchannels of 64 bit I/O.
• Both Pseudo Channels share the channel’s row and column command bus, CK, and
CKE inputs, but decode and execute commands individually.
• Pseudo Channel mode requires a burst length of 4.
• Address BA4 directs commands to either Pseudo Channel 0 (BA4 = 0) or Pseudo
Channel 1 (BA4 = 1). The HBM2 controller handles the addressing requirements of
the Pseudo Channels.
• Power-down and self-refresh are common to both Pseudo Channels, due to a
shared CKE pin. Both Pseudo Channels also share the channel’s mode registers.
Each Intel Stratix 10 HBM2 interface supports a maximum of eight HBM2 channels.
Each HBM2 channel has two AXI4 interfaces, one per Pseudo Channel. Each AXI4
interface includes a 256-bit wide Write and Read Data interface per Pseudo Channel.
The following figure shows the flow of data from user logic to the HBM2 DRAM through
the UIBSS, while selecting HBM2 channels 0 and 7.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
10
3. Intel Stratix 10 HBM2 Architecture
683189 | 2023.01.20
Figure 4. Intel Stratix 10 HBM2 Interface Using HBM2 Channels 0 and 7 through the
UIBSS
There is one AXI interface per Pseudo Channel. Each AXI interface supports a 256-bit
wide Write Data interface and a 256-bit wide Read Data interface, to and from the
HBM2 controller. The AXI4 protocol can handle concurrent writes and reads to the
HBM2 controller. There is also a sideband user port per user channel pair, compliant to
the Advanced Peripheral Bus (APB). The sideband provides access to user-controlled
features such as refresh requests, ECC status, Power Down status, HBM2 temperature
readout, Avalon memory-mapped user interface, calibration status, and User
Interrupt. AXI burst lengths are limited to 2 (arlen=1) when the HBM2 controller is
configured in pseudo-BL8 mode. AXI burst lengths are limited to 1 (arlen=0) in HBM2
controller BL4 mode, unless the optional soft-logic burst length adapter is enabled in
the controller channel configuration.
Starting with the Intel Quartus Prime software version 20.2, a 256-bit Avalon
memory-mapped interface is supported per Pseudo Channel. The Avalon memory-
mapped burst length must be exactly 1 when the HBM2 controller is configured in BL4
mode, and exactly 2 when the HBM2 controller is configured in pseudo-BL8 mode.
Beginning with the Intel Quartus Prime software version 20.1, the HBM2 IP supports a
soft 4x4 AXI switch that provides each AXI master the ability to access the memory
space of its corresponding two HBM2 Channels or four HBM2 Pseudo Channels (one
HBM2 Channel = two HBM2 Pseudo Channels) in the HBM2 DRAM. The switch feature
is not supported in the Avalon memory-mapped interface flow. For more details on the
AXI switch, refer to Soft AXI Switch.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
11
3. Intel Stratix 10 HBM2 Architecture
683189 | 2023.01.20
For information on the AXI protocol features supported by the Intel Stratix 10 HBM2
controller, refer to High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface.
Related Information
• Intel Stratix 10 HBM2 Controller Details on page 12
• High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface on page 38
Each controller consists of a write and read data path and the control logic that helps
to translate user commands to the HBM2 memory. The HBM2 controller logic accounts
for the HBM2 memory specification timing and schedules commands in an efficient
manner. The following figure shows a block diagram of the HBM2 controller,
corresponding to channel 0. The HBM2 controller's user-logic interface follows the AXI
interface as well as the Avalon memory-mapped interface (commencing in the Intel
Quartus Prime software version 20.2. You can find more information about the
interface timing details in the User AXI Interface Timing section.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
12
3. Intel Stratix 10 HBM2 Architecture
683189 | 2023.01.20
The HBM2 controller supports only the Pseudo Channel mode of accessing the HBM2
device; consequently, it can only support BL4 transactions to the DRAM. For improving
efficiency, it supports the pseudo-BL8 mode, which helps to provide two back-to-back
BL4 data using a given start address, similar to a BL8 transaction.
Each BL4 transaction corresponds to 4*64 bits or 32 bytes and a BL8 transaction
corresponds to 64 bytes per Pseudo Channel. You can select the burst transaction
mode (32 B vs 64B) through the parameter editor.
The user interface runs at a frequency lower than the HBM2 interface; the maximum
interface frequency depends on the chosen device speed grade and the FPGA core
logic frequency. The rate-matching FIFOs within the UIB subsystem handle the data
transfer between the two clock domains.
Command Priority
You can set command priority for a write or read command request through the AXI
interface, through the qos signal in the AXI write address channel, or in the AXI read
address channel. The HBM2 controller supports normal and high priority levels. The
system executes commands with the same priority level in a round-robin scheme.
Starvation limit
The controller tracks how long each command waits and leaves no command
unserviced in the command queue for a long period of time. The controller ensures
that it serves every command efficiently.
Command scheduling
Data re-ordering
The controller can reorder read data to match the order of the read requests.
Address ordering
The HBM2 controller supports different address ordering schemes that you can select
for best efficiency given your use case. The chosen addressing scheme determines the
order of address configurations in the AXI write and read address buses, including row
address, column address, bank address, and stack ID (applicable only to the 8H
devices). The HBM2 controller remaps the logical address of the command to physical
memory address.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
13
3. Intel Stratix 10 HBM2 Architecture
683189 | 2023.01.20
Thermal Control
The HBM2 controller uses the TEMP and CATTRIP outputs from the HBM2 device to
manage temperature variations in the HBM2 interface.
• Temperature compensated refresh (TEMP): The HBM2 DRAM provides temperature
compensated refresh information to the controller through the TEMP[2:0] pins,
which defines the proper refresh rate that the DRAM expects to maintain data
integrity. Absolute temperature values for each encoding are vendor-specific. The
encoding on the TEMP[2:0] pins reflects the required refresh rate for the hottest
device in the stack. The TEMP data updates when the temperature exceeds
vendor-specified threshold levels appropriate for each refresh rate.
• Catastrophic temperature sensor (CATTRIP): The CATTRIP sensor detects whether
the junction temperature of any die in the stack exceeds the catastrophic trip
threshold value CATTEMP. The device vendor programs the CATTEMP to a value
less than the temperature at which permanent damage to the HBM stack would
occur. The CATTEMP value is also the Absolute Max Junction temperature value as
specified in the Intel Stratix 10 data sheet for the family of devices that include
the HBM2 DRAM. You can find the Intel Stratix 10 data sheet at the following
location: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/
literature/hb/stratix-10/s10_datasheet.pdf.
If a junction temperature anywhere in the stack exceeds the CATTEMP value, the
HBM stack drives the external CATTRIP pin to 1, indicating that catastrophic
damage may occur. When the CATTRIP pin is at 1, the controller stops all traffic to
HBM and stalls indefinitely. To resolve the overheating situation and return the
CATTRIP value to 0, remove power from the device and allow sufficient time for
the device to cool before again applying power.
• Thermal throttling: Thermal throttling is a controller safety feature that helps
control thermal runaway if the HBM2 die overheats, preventing a catastrophic
failure. You can specify the HBM2 device junction temperature at which the
controller begins to throttle input commands, and the throttle ratio that
determines the throttle frequency. The controller deasserts the AXI ready signals
(awready, wready and arready) when it is actively throttling the input
commands and data.
Refresh requests
The HBM2 controller handles HBM2 memory refresh requirements and issues refresh
requests at the optimal time, as specified by the JEDEC specification of the HBM2
DRAM. The controller automatically controls refresh rates based on the temperature
setting of the memory through the TEMP vector that the memory provides. You can
select the HBM2 controller refresh policy, based on the frequency of refresh requests.
You can choose to issue refresh commands directly, through the sideband APB
interface.
Precharge policy
The HBM2 controller issues precharge commands to the HBM2 memory based on the
write/read transaction address. In addition, you can issue an auto-precharge
command together with a write and read command, through the AXI write address
port and AXI read address port.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
14
3. Intel Stratix 10 HBM2 Architecture
683189 | 2023.01.20
To conserve power, the HBM2 controller can enter power-down mode when the bus is
idle for a long time. You can select this option if required.
ECC
The HBM2 controller supports ECC. The ECC scheme implemented is single-bit error
correction with double-bit error detection, with 64-bits of data and 8-bits of ECC code
(also known as the syndrome).
Related Information
• Clock Signals on page 39
• Intel Stratix 10 UIB Architecture on page 8
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
15
683189 | 2023.01.20
Send Feedback
4.1. Creating an Intel Quartus Prime Pro Edition Project for High
Bandwidth Memory (HBM2) Interface FPGA IP
You can parameterize and generate the High Bandwidth Memory (HBM2) Interface
Intel FPGA IP using the Intel Quartus Prime Pro Edition software.
1. Before generating the HBM2 IP, you must create a new project:
a. Launch the Intel Quartus Prime Pro Edition software.
b. Launch the New Project Wizard by clicking File ➤ New Project Wizard.
c. Type a name for your project in the Directory, Name, Top-Level Entity
field.
d. In the Project Type section, select Empty Project.
e. In the Add Files section, click Next.
f. In the Family, Device, and Board Settings section, select Stratix 10 as the
device family.
g. Under Available Devices, select any device and your desired speed grade.
h. Click Next and follow the Wizard's prompts to finish creating the project.
2. In the IP Catalog, open Library ➤ Memory Interfaces and Controllers.
3. Launch the parameter editor by selecting High Bandwidth Memory (HBM2)
Interface Intel FPGA IP.
Intel Corporation. All rights reserved. Intel, the Intel logo, and other Intel marks are trademarks of Intel
Corporation or its subsidiaries. Intel warrants performance of its FPGA and semiconductor products to current
specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any ISO
products and services at any time without notice. Intel assumes no responsibility or liability arising out of the 9001:2015
application or use of any information, product, or service described herein except as expressly agreed to in Registered
writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
*Other names and brands may be claimed as the property of others.
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Figure 6. Selecting High Bandwidth Memory (HBM2) Interface Intel FPGA IP in the IP
Catalog
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
17
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
The parameter editor comprises the following tabs, on which you set the parameters
for your IP:
• General
• FPGA I/O
• Controller
• Diagnostics
• Example Designs
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
18
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
19
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
HBM2 Location Determines the location of the HBM2 interface in the Intel
Stratix 10 FPGA. The FPGA offers HBM2 interfaces on the
top and bottom of the FPGA core.
HBM2 Device Type The HBM device type. 4GB/4H refers to HBM2 device with a
total device density of 4GB in a 4-high Stack, and 8GB8H
refers to a total HBM2 device density of 8GB in an 8-high
Stack.
Interface Protocol The Interface protocol can be selected per channel pair (0
and 1, 2 and 3, 4 and 5, 6 and 7).
The following protocols are supported:
• AXI – provides an AXI user interface per Pseudo
Channel.
• AVMM – provides an Avalon memory-mapped user
interface per Pseudo Channel.
Enable AXI Switch for channel 0 and 1 Adds soft AXI switch logic that enables each AXI master to
access the entire memory space of Channels 0 and 1 in
HBM2 DRAM. The soft AXI switch is available only when you
select the AXI Interface Protocol. Refer to Soft AXI Switch
for information on using the AXI switch.
Note: You must enable two HBM2 channels to access the
corresponding 4x4 AXI switch.
Transaction Count Provide the total transaction count that the master intends
to issue when provided access. Each transaction count
refers to a single BL4 or pseudo-BL8 transaction. The total
transaction count includes transaction counts to all the
Pseudo Channels that the master intends to issue when
provided access. The default value is 0. The HBM2 IP can
support a maximum of 65535 transactions. Be aware that
continued...
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
20
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Honor Select the master that requires higher priority over other
masters. You can choose only one master; if you do not
choose a master, all masters receive the same priority and
round robin arbitration is followed.
Allow backpressure of AXI read data and write response Instantiates FIFOs in soft logic to buffer read data and write
channels response on the AXI interfaces. This is required if the
RREADY/BREADY signals are ever deasserted. You can
disable this option to reduce latency but only if RREADY/
BREADY are never used to backpressure the interface. The
backpressure feature is available only in the AXI under-
interface flow; it is not available in the Avalon memory-
mapped interface flow.
Automatically instantiate backpressure registers within the This option is available beginning in the Intel Quartus Prime
HBM2 IP software version 20.3. This option allows you to let the
HBM2 IP place the back pressure registers within the IP or
place the registers manually as needed. The design example
places the backpressure registers inside the HBM2 IP. Refer
to Improving User Logic to HBM2 Controller AXI Interface
Timing for information on using this feature.
Note: From Intel Quartus Prime software version 19.4
through 20.2, the backpressure registers were
internally generated within the HBM2 IP; in releases
earlier than 19.4, you were required to implement
these registers as needed, manually.
Threshold temperature for AXI throttling This parameter defines the temperature of the HBM2 stack,
in degrees Celsius, above which the HBM2 controller
throttles AXI interface transactions. The temperature setting
applies to all the AXI4 interfaces; however, you must enable
this feature on the corresponding controller tab of each
HBM2 controller. When you enable throttling, the HBM2
controller reduces the amount of traffic on the DRAM
channel.
Debounce period Set the debounce period in ms. The minimum period is 20
ms.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
21
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Memory clock frequency The frequency of the memory clock in MHz. Specifies the
clock frequency for the HBM2 interface. The maximum
supported HBM2 clock frequency depends on the FPGA
device speed grade:
• -1 Speed grade : 1 GHz
• -2 Speed grade : 800 MHz
• -3 Speed grade : 600 MHz
Use recommended PLL reference clock frequency When checked the PLL reference clock frequency is
automatically calculated for best performance. Uncheck the
check box if you want to specify your own PLL reference
clock frequency. Automatically calculates the PLL reference
clock frequency for best performance. You should disable
this parameter if you want to select a different PLL
reference clock frequency
PLL reference clock frequency PLL reference clock frequency. This is a universal interface
bus (UIB) PLL reference clock. You must feed a clock of this
frequency to the PLL reference clock input of the memory
interface. Enable this parameter only if you disable Use
recommended PLL reference clock frequency, and
want to specify a PLL reference clock frequency. You should
use the fastest possible PLL reference clock frequency to
achieve best jitter performance.
Core clock frequency The frequency of the user AXI4 interface in MHz. This clock
must be provided from an I/O PLL (not instantiated by the
HBM2 IP). The reference clock driving the core I/O PLL must
be provided from the same oscillator that supplies the UIB
PLL reference clock on the board for a given HBM2
interface, to achieve maximum performance.
The maximum supported core frequency depends on the
device speed grade and timing closure of the core interface
clock within the FPGA. The minimum frequency of the core
clock is one-fourth the HBM2 interface frequency.
Intel does not guarantee timing closure of the HBM2 IP core
logic above the recommended core clock frequencies shown
in Table 9 on page 23, when the maximum supported
HBM2 interface frequency is selected. You may still run your
design above the recommended values and within the
maximum allowable range, but core timing closure may be
difficult—Intel does not provide support for such timing
closure failure. Techniques such as using logic lock regions
and/or design partitions may help with timing closure.
Use recommended example design core clock PLL reference Automatically calculates the PLL reference clock frequency
clock frequency for best performance. Uncheck the check box if you want to
specify your own PLL reference clock frequency.
Automatically calculates the example design core clock PLL
reference clock frequency for best performance. Disable this
parameter if you want to select a different reference clock
frequency.
Reference clock frequency for example design core clock The PLL reference clock frequency in MHz for the PLL
PLL supplying the core clock. This parameter is used only in the
example design PLL. Specify the externally provided
reference clock frequency for the core clock PLL.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
22
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Table 9. Recommended Core Clock Frequencies when the Maximum Supported HBM2
Interface Frequency is Selected
Speed Grade Maximum HBM2 Minimum Allowable Maximum Allowable Recommended
Interface Frequency Core Clock Core Clock Maximum Core Clock
(Hardware Limit) (Hardware Limit) Frequency
Related Information
• Clock Signals on page 39
• Intel Quartus Prime Pro Edition User Guide: Block-Based Design
• Intel Quartus Prime Pro Edition User Guide: Timing Analyzer
Memory PLL Reference Specifies the I/O standard for the PLL reference clock of the memory interface. The termination
clock I/O standard options available are LVDS with on-chip termination and LVDS without on-chip termination. This
parameter is available beginning with Intel Quartus Prime software version 20.3. For designs
migrating from previous releases, LVDS without on-chip termination is selected.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
23
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Note: When you enable the AXI Switch option, the controller configurations for the corresponding
two HBM2 channels should use the same AXI Data Configuration and Enable Re-order buffer
options.
Enable Auto Precharge Control Select this parameter to enable the auto-precharge control
on the controller top level. If you assert the auto-precharge
control signal while requesting a read or write burst, you
can specify whether the controller should close (auto-
precharge) the currently open page at the end of the read
continued...
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
24
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Enable Command Priority Control Select this parameter to enable user-requested command
priority control on the controller top level. This parameter
instructs the controller to treat a read or write request as
high-priority. The controller attempts to fill high priority
requests sooner, to reduce latency. Connect this interface to
the conduit of your logic block that determines when the
external memory interface IP treats the read or write
request as a high priority command. Applicable to Avalon-
MM channel only.
Enable Re-order buffer Specifies that read data be reordered to match the order in
which transactions are issued. If you disable this feature,
the Read Data provided at the AXI Interface is not expected
to follow the same order in which the Read Requests were
issued. You can then reorder the data, based on the AXI
read ID of the transaction.
This parameter applies to cases with multiple AXI
transaction IDs. By using different AXI read/write IDs, you
allow the HBM2 controller to reorder transactions for better
efficiency. If you use the same AXI ID for all transactions,
the controller issues the commands to memory in the order
in which they arrive; in this instance, you need not enable
the reorder buffer.
Enable AXI interface throttling based on temperature Enables temperature-based throttling for this channel. You
can specify the threshold temperature and throttling ratio
on the General tab. Enables AXI thermal throttling for the
specific HBM2 controller. The parameter that sets the trigger
temperature for thermal throttling resides on the General
tab. When the temperature of the HBM2 stack reaches the
threshold temperature for HBM2 throttling as set on the
General tab, the HBM2 controller begins to throttle user
requests.
SID-BG-BANK-ROW-COL[5:1]
SID-ROW-BANK-COL[5:1]-BG
ROW-SID-BANK-COL[5:1]-BG
COL[0]=0
SID-BG-BANK-ROW-COL[5:1]
SID-ROW-BANK-COL[5:2]-BG-COL[1]
ROW-SID-BANK-COL[5:2]-BG-COL[1]
COL[1:0] = {00})
User Read Auto-Precharge Policy Describes the policy for determining whether to issue auto-
precharge. FORCED indicates that the controller follows the
user auto-precharge request exactly. HINT indicates that
the controller may override the auto-precharge request by
continued...
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
25
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
User Write Auto-Precharge Policy Describes the policy for determining whether to issue auto-
precharge. FORCED indicates that the controller follows the
user auto-precharge request exactly. HINT indicates that
the controller may override the auto-precharge request by
disabling it when a page hit is detected (that is, if it receives
two commands, one with auto-precharge and one without
auto-precharge to the same page, the controller changes
auto-precharge for the first to 0 so that the second can
access the page without reopening it). You can issue a
precharge request together with the write command,
through the axi_x_y_awuser input, where x denotes the
HBM2 channel number (0-7) and y denotes the HBM2
Pseudo Channel number (0/1).
You can choose between two values for this parameter:
• WRAP_FORCED mode, in which the HBM2 controller
implements a user-requested auto-precharge command.
• WRAP_HINT mode, in which the controller determines
when to issue an auto-precharge command, based on
user-issued auto-precharge input and the address
specified. (Applicable to the AXI user interface mode
only.)
Power Down Enable Causes the controller to power down when idle.
Enable AXI Burst length of more than 2 When this option is enabled, the HBM2 IP supports
sequential burst transactions at the AXI Interface. This
feature is applicable to AXI channel without switch enabled
only. This option enables you to use the AWLEN/ARLEN
inputs of the AXI interface and issue sequential burst traffic.
continued...
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
26
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
AXI Maximum burst length Maximum of 256 is supported when the enable more than 2
Burst length option is enabled. If the option is disabled, a
default value of 1 is set. The maximum burst length value
determines the width of the awid/arid. Refer to the AXI
Interface Signals section for more details.
Enable Pseudo BL8 for performance If enabled, data access granularity is 64B (64 bits per
Pseudo-Channel at BL8) which can achieve greater
efficiency. Otherwise data access granularity is 32B (64 bits
per Pseudo-Channel at BL4).
The controller sets the memory transactions burst length
based on this setting and ignores the input provided on the
user-driven axi_awsize and axi_arsize signals on the
AXI interface.
Data width per Pseudo-Channel Data width per Pseudo Channel. The available data widths
are:
256 bits - This refers to 256-bit data transfers at the AXI
interface. ECC or write data mask option is available in this
data width mode only.
288 bits - This refers to 288-bit data transfers at the AXI
interface. ECC or write data mask option is not available in
this mode. You must implement your own ECC logic when
choosing this data width option.
Memory channel ECC generation and checking/correction Memory Channel ECC generation and checking / correction.
The HBM2 controller supports single-bit error correction and
double-bit error detection. This feature is available only
when you select the 256-bit data width mode.
The controller does not support write data mask in ECC
generation mode.
Write data mask enable Enables the write data mask (DM) input to the HBM2 DRAM.
When you use the DM pins, you cannot use ECC. This
feature is available only when you select the 256-bit AXI
data width mode.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
27
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Run the default traffic pattern Runs the default traffic pattern after reset. The default
traffic pattern consists of multiple stages testing single/
block reads and writes using sequential and random
addressing. This parameter applies to the AXI user interface
only; the Avalon memory-mapped interface uses the default
traffic pattern.
Enable mixed traffic Configures the traffic generator to send out a variety of
traffic patterns, including single and block reads/writes,
using a mix of sequential and random addressing. If you do
not enable this parameter, the traffic generator sends block
reads/writes with sequential addressing. This parameter can
help you understand the HBM2 interface performance over
different traffic patterns. This parameter applies to the AXI
user interface only; the Avalon memory-mapped interface
uses the default traffic pattern.
Force traffic generator to issue traffic with different read/ Forces the traffic generator to issue traffic with different
write IDs read/write IDs regardless of whether the reorder buffer is
on. Using different read/write IDs allows the controller to
reorder transactions for higher efficiency, but results in data
mismatches if you have disabled the reorder buffer and the
user logic does not handle read data returning out-of-order.
When you do enable the reorder buffer, the traffic generator
automatically generates transactions with different IDs.
If you do not enable this parameter, the traffic generator
does not issue AXI transactions with different read/write
IDs, unless you have enabled the reorder buffer. This
parameter applies to the AXI user interface only; the Avalon
memory-mapped interface uses the default traffic pattern.
Enable Traffic Generator Configuration Module Enables instantiation of the traffic generator configuration
module, which is necessary only if you are creating custom
traffic patterns. This parameter applies to the AXI user
interface only; the Avalon memory-mapped interface uses
the default traffic pattern.
continued...
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
28
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Run the user-configured traffic stage Runs the user-configured traffic pattern after reset. (You
can still reconfigure the traffic generator later.) The traffic
generator does not assert a pass or fail status until the
Avalon configuration interface configures it and signals it to
start. You can perform configuration by connecting to the
traffic generator via the EMIF Debug Toolkit or by using
custom logic connected to the Avalon-MM configuration
slave port on the traffic generator. You can also simulate
configuration with the example testbench provided in the
altera_hbm_tg_axi_tb.sv file. This parameter applies
to the AXI user interface only; the Avalon memory-mapped
interface uses the default traffic pattern.
Export Traffic Generator Configuration Interface Exports an Avalon-MM slave port for configuring the traffic
generator. This is necessary only if you are configuring the
traffic generator with user-configured traffic. This parameter
applies to the AXI user interface only; the Avalon memory-
mapped interface uses the default traffic pattern.
Disable HBM model transaction messages in simulation If enabled, HBM model transaction messages are not
displayed in simulation.
Enable AXI R/W data transaction messages in simulation Displays AXI data transaction messages in simulation.
Enable Efficiency Monitor Adds an Efficiency Monitor component to the AXI interface
of the memory controller. The Efficiency Monitor gathers and
reports statistics on the efficiency of the interface during
simulation. The Efficiency Monitor is available only in the
AXI user interface flow.
Read count Defines the read count for the traffic generator. The read
and write count should be equal, for the validity check to
pass. This parameter applies to the AXI user interface only.
Write count Defines the write count for the traffic generator. The read
and write count should be equal, for the validity check to
pass. This parameter applies to the AXI user interface only.
Sequence Defines the write and read sequence for the traffic
generator, with the selection of Random or Sequential. (For
best HBM2 efficiency, select Sequential for this parameter.)
This parameter applies to the AXI user interface only.
Enable data check for efficiency measurement Enables a data check for soft traffic generator efficiency
measurement. This parameter applies to the AXI user
interface only.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
29
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Simulation Specifies that the system generate all necessary file sets for
simulation when you click Generate Example Design.
Expect an additional 1-2 minute delay when generating the
simulation fileset.
If you do not enable this parameter, the system does not
generate simulation file sets. Instead, the output directory
contains the ed_sim.qsys file which contains details of the
simulation example design for Platform Designer, and a
make_sim_design.tcl file with other corresponding tcl
files.
You can run the make_sim_design.tcl file from a
command line to generate a simulation example design. The
generated example designs for various simulators reside in
the /sim subdirectory.
Synthesis Specifies that the system generate all necessary file sets for
synthesis when you click Generate Example Design.
Expect an additional 1-2 minute delay when generating the
synthesis file set.
If you do not enable this parameter, the system does not
generate synthesis file sets. Instead, the output directory
contains the ed_synth.qsys file which contains details of
the synthesis example design for Platform Designer, and a
make_qii_design.tcl file with other corresponding tcl
files.
You can run the make_qii_design.tcl file from a
command line to generate a synthesis example design. The
generated example design resides in the /qii subdirectory.
Tip: The example design supports generation, simulation, and Intel Quartus Prime
compilation flows for any selected device. To use the example design for simulation,
enable the Simulation parameter. To use the example design for compilation and
hardware, enable the Synthesis parameter.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
30
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Simulation HDL format Format of HDL files generated for simulating the design
example.
Related Information
High Bandwidth Memory (HBM2) Interface Intel FPGA IP Design Example User Guide
The register block that you can access is the User MMR to HBM controller block, within
the HBM2 IP. You access this register block through the Advanced Peripheral Bus (APB)
interface. (One APB interface is associated with every two HBM channels. For example,
interface apb_0 is associated with channels CH0-1, interface apb_1 is associated with
channels CH2-3, and so forth.)
For information on the registers available for you to access through the APB interface,
refer to User-controlled Accesses to the HBM2 Controller, in the High Bandwidth
Memory (HBM2) Interface Intel FPGA IP Interface chapter.
4.3. Pin Planning for the High Bandwidth Memory (HBM2) Interface
Intel FPGA IP
The High Bandwidth Memory (HBM2) Interface Intel FPGA IP requires the following
clock inputs:
• UIB PLL reference clock – Reference clock input for the UIB PLL. There is one UIB
PLL reference clock per HBM2 interface.
• Core clock input – Fabric core clock, generated through an I/O PLL.
When the core clock frequency is one-half of the HBM2 clock frequency, the reference
clock that drives the core I/O PLL should come from the same oscillator as that
supplying the UIB PLL reference clock on the board for a given HBM2 interface.
pll_ref_clk The HBM2 IP parameter editor allows Place this reference clock input on the
the selection of the following I/O UIB_PLL_REF_CLK_00 pins while using
standards: the HBM2 device on the bottom of the
• LVDS with on-chip termination FPGA, or the UIB_PLL_REF_CLK_01
pins while using the HBM2 on the top
• LVDS without on-chip termination
of the FPGA.
Refer to the Intel Stratix 10 General
Purpose I/O User Guide and Intel
Stratix 10 Pin Connection Guidelines
continued...
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
31
4. Creating and Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
ext_core_clk LVDS differential input clock for Place the reference clock input on CLK_
generating the fabric core clock. pins to access the I/O PLL. You should
Instantiate the I/O PLL that generates select pins that are close to the
the core clock for the HBM2 IP. UIB_PLL_REF_CLK input. You must
instantiate the I/O PLL in the design
flow. The output of the I/O PLL serves
as the EXT_CORE_CLK.
Both the reference clock inputs should meet and not exceed the following time interval
error (TIE) jitter requirements:
• 20ps peak-to-peak
• 1.42ps RMS at 1e-12 BER
• 1.22ps at 1e-16 BER
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
32
683189 | 2023.01.20
Send Feedback
Simulation Assumptions
The parameter settings that you make on the Controller tab affect efficiency during
simulation. In the default configuration, with the default parameter settings, the traffic
generator issues sequential transactions.
Supported Simulators
Figure 12. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Generated for
Simulation
Intel Corporation. All rights reserved. Intel, the Intel logo, and other Intel marks are trademarks of Intel
Corporation or its subsidiaries. Intel warrants performance of its FPGA and semiconductor products to current
specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any ISO
products and services at any time without notice. Intel assumes no responsibility or liability arising out of the 9001:2015
application or use of any information, product, or service described herein except as expressly agreed to in Registered
writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
*Other names and brands may be claimed as the property of others.
5. Simulating the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
The Traffic Generator emulates a real-world application that writes to, and reads back
from memory and validates the read data. You can modify the traffic generator logic to
fit your traffic pattern or drive the transactions to the HBM2 memory with your own
logic.
Simulation incorporates an abstract model of the hardened HBM2 controller and the
universal interface block (UIB). The HBM2 controller performs data reordering and
enhancement functions, and allows communication between the AXI4 user interface
and the UIB PHY. The universal interface block PHY (UIB PHY) is the physical-layer
interface that carries low-level signaling.
The HBM2 Model is an abstract generic model representative of the HBM2 DRAM for
simulation. This is not a vendor-specific model.
Related Information
• Clock Signals on page 39
• Reset Signals on page 41
• AXI User-interface Signals on page 44
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
34
5. Simulating the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Whenever you make changes to the design or to the wave.do, you must repeat
step 7 of this procedure. Alternatively, you can combine the instructions into a
script and run that script instead. The following example illustrates a run.do
script containing the necessary commands:
if {[file exists msim_setup.tcl]} {
source msim_setup.tcl
ld_debug
do wave.do
run -all } else { error "The msim_setup.tcl script does not
exist.
Please generate the example design RTL and simulation scripts. See ../../
README.txt
for help." }
Save the run.do script in the same directory as the msim_setup.tcl file. Type
do run.do to run this script from the Transcript window.
8. Upon completion of the simulation, the Transcript window displays efficiency data
and other useful information.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
35
5. Simulating the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
The following sections explain the General, Controller, and Diagnostic tab
parameters required to perform high efficiency HBM2 simulation. The following figures
illustrate parameter settings for a high-efficiency simulation for a single-channel HBM2
controller.
For more information about improving controller efficiency, refer to High Bandwidth
Memory (HBM2) Interface Intel FPGA IP Controller Performance.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
36
5. Simulating the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
683189 | 2023.01.20
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
37
683189 | 2023.01.20
Send Feedback
Related Information
Intel Stratix 10 UIB Architecture on page 8
Intel Corporation. All rights reserved. Intel, the Intel logo, and other Intel marks are trademarks of Intel
Corporation or its subsidiaries. Intel warrants performance of its FPGA and semiconductor products to current
specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any ISO
products and services at any time without notice. Intel assumes no responsibility or liability arising out of the 9001:2015
application or use of any information, product, or service described herein except as expressly agreed to in Registered
writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
*Other names and brands may be claimed as the property of others.
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
wmc_clk_7
wmc_clk_6
wmcrst_n_7
wmcrst_n_6
wmcrst_n_0
wmcrst_n_1
wmc_clk_0
wmc_clk_1
ext_core_clk
CH2
CH3
CH4
CH5
CH0
CH1
CH6
CH7
hbm_only_reset_in**
Core Fabric
wmcrst_n_in
Ref_clk for Bottom Core clk AXI I/F AXI I/F AXI I/F AXI I/F
core clk IOPLL*** IOPLL* CH0 CH1 CH6 CH7
ext_core_clk
hbm_only_reset_in**
wmcrst_n_0
wmcrst_n_1
wmcrst_n_6
wmcrst_n_7
wmc_clk_0
wmc_clk_1
wmc_clk_6
wmc_clk_7
CH0
CH1
CH2
CH3
CH4
CH5
CH6
CH7
Soft Logic Adaptor to UIB
NOTE: *_not instantiated by the HBM2 IP; ** _ supported in 19.4; not supported in earlier releases
***_ Recommended to use the same clock source on board to provide the REFCLKs for the core and UIB PLL for a given HBM2 interface (Top or Bottom) for max performance
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
39
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Observe the following clock guidelines for reliable calibration of the HBM2 interface:
• The UIB PLL reference clocks (one per HBM2 interface) must be provided through
an external clock source and must be stable and free running prior to
configuration and stable thereafter.
• The I/O PLL driving the core clock (ext_core_clk) should achieve a LOCKED
condition within one millisecond of device configuration. This I/O PLL cannot be
reset once the interface is calibrated.
• For a given HBM2 interface, Intel recommends that the same clock source provide
the reference clocks for both the I/O PLL and the UIB PLL.
Related Information
• Intel Stratix 10 HBM2 Controller Features on page 7
• Intel Stratix 10 HBM2 Controller Details on page 12
• General Parameters for High Bandwidth Memory (HBM2) Interface Intel FPGA IP
on page 18
• High Bandwidth Memory (HBM2) Interface Intel FPGA IP Example Design on page
33
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
40
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
hbm_only_reset_in Timing
The hbm_only_reset_in signal requests the reset of the soft AXI logic as well as the
hardened UIBSS, and the HBM2 DRAM, without initiating a recalibration. This signal is
supported only in the Intel Quartus Prime software version 19.4 and later.
The following waveform illustrates the timing associated with this signal.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
41
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Observe the following reset signal guidelines for reliable calibration of the HBM2
interface:
• Ensure that the Reset Release Intel FPGA IP is instantiated in your design. This IP
helps to hold the FPGA in reset until all registers and core logic are in user mode.
Intel recommends that you use the ninit_done output of the Reset Release Intel
FPGA IP as one of the initial inputs to your reset circuit. You can find this IP in the
IP Catalog under Basic Functions ➤ Configuration and Programming ➤
Reset Release Intel FPGA IP. You can find more information on using this IP, in
AN 891: Using the Reset Release Intel FPGA IP, available here: https://
www.intel.com/content/www/us/en/programmable/documentation/
prh1555609801770.html#iuj1556119879221.
Use the ninit_done signal output of this IP to gate the core input reset
(wmcrst_n_in). The ninit_done output is active low; that is, ninit_done = 0
after FPGA enters user mode.
• Ensure that wmcrst_n_in (active low soft logic reset input) and hbm_only_reset_in
(active high reset signal for soft logic as hard logic of the HBM subsystem) are not
asserted until after completion of calibration.
• Commencing with the Intel Quartus Prime software version 19.4, Intel
recommends using hbm_only_reset_in whenever you need to reset the HBM
subsystem, both during active traffic to the DRAM or when the interface is idle.
• The I/O PLL that generates ext_core_clk, the core AXI interface input clock,
cannot be reset once the I/O PLL has achieved a locked condition.
• The wmcrst_n_x_reset_n signal that is driven as an output from the UIBSS per
HBM2 channel (represented by x) is to be used by the user AXI interface along
with the wmc_clk_x_clk provided per channel as shown in Figure 16 on page 39.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
42
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
The following waveform illustrates the timing associated with these reset
recommendations. Where, ninit_done initially transitions from high to low, indicating
that the FPGA has entered user mode. Then, following this calibration should start,
and while its ongoing wmcrst_n_in must be high and hbm_only_reset_in must be low.
Related Information
High Bandwidth Memory (HBM2) Interface Intel FPGA IP Example Design on page 33
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
43
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Wrst_n Output 1
Wrck Output 1
Shiftwr Output 1
Capturewr Output 1
Selectwir Output 1
Wsi Output 1
Ck_t Output 1 HBM2 signals per HBM2 channel. You do not need
to drive these signals and can leave them
Ck_c Output 1 unconnected.
These signals are grouped under a conduit named
Cke Output 1
mem_x in the Platform Designer. You should leave
C Output 8 this conduit unconnected and ignore any warning
message about mem_x being unconnected.
R Output 6
Dq Inout 128
Dm Inout 16
Dbi Inout 16
Par Inout 4
Derr Inout 4
Rdqs_t Input 4
Rdqs_c Input 4
Wdqs_t Output 4
Wdqs_c Output 4
Rd Inout 8
Rr Output 1
Rc Output 1
Aerr Input 1
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
44
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
AXI ID Definition
• The AXI burst transactions greater than 2 are available beginning in the Intel
Quartus Prime software version 20.3. When the burst transactions are enabled
through the HBM2 IP GUI, the width of arid/awid is set to [9 –
ceil(log2(maximum burst length))], where up to 256 can be set as the
maximum burst length.
• Burst transactions greater than 2 cannot be used with the soft AXI switch.
• When the soft AXI switch is not enabled, the AXI ID is 9-bits wide. A total of 29
AXI IDs are supported.
• When the soft AXI switch is enabled, the AXI ID is 7-bits wide. A total of 27 AXI
IDs are supported.
The AXI Address Definition figure illustrates the mapping of the AXI Address bus (28-
bit wide for 4GB configurations and 29-bit wide for 8GB configurations) for the various
address ordering schemes to address the HBM2 DRAM, when the soft AXI switch is not
used. The Address Definition with AXI Switch Enabled figure shows the AXI address
definition when you have enabled the soft AXI switch. Refer to the AXI Interface
Signals and Soft AXI Switch sections, for information for when the soft AXI switch is
enabled.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
45
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
The Slave ID - SID[1:0] refers to the PC being accessed. The slave ID is available only
when you have enabled the soft switch. For example, for a switch enabled in CH0 and
CH1:
AXI burst transactions greater than 2 are available beginning in the Intel Quartus
Prime software version 20.3. Burst transactions greater than burst length 2 are
supported on the AWLEN/ARLEN inputs of the AXI interface in the BL4 Mode (that is,
when the pseudo-BL8 mode is disabled through the HBM2 IP GUI). This feature is
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
46
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
available when the AXI Switch is disabled and you have not selected the AVMM
Interface mode. Support for this feature is added in the soft logic adapter for the Hard
HBM Controller (HBMC).
Figure 21. Parameters to Enable BL>2 and Set Maximum Burst Length
• The sequential address ordering required for the burst transactions is managed by
the soft logic adaptor. You provide the starting AXI address of the transaction and
the length of transaction (AWLEN/ARLEN).
• AWREADY/ARREADY is asserted once (along with AWVALID/ARVALID) to capture
the start address and the current burst size. When AXI burst transactions are
enabled, the HBM2 IP does not accept any new commands until the previous burst
transaction is served. Consequently, AWREADY/ARREADY is de-asserted after the
start address and the burst size are captured, until all addresses within the burst
are issued internally.
• Transaction ID (AWID/ARID) widths are reduced to accommodate having internal
IDs with the sliced bursts. When using this feature, the ID width is reduced to [9
bits – ceil(log2(maximum burst length))].
• You should take care to provide the correct address range, so that you do not
accidentally write into unintended address space.
• You should also ensure the burst does not exceed 4KB of data as specified by the
AXI4 spec. (Each AXI transaction in BL4 configuration provides 32B of data).
• You must handle buffering of data if the Controller READY is not asserted HIGH.
• WLAST signal should be asserted HIGH on the last burst data.
• Response ID width follows the ARID/AWID width.
• The read response follows the write transactions and has the RLAST pulse HIGH at
the last transaction.
• Write response is provided for each Write command.
• ARSIZE/AWSIZE are not used and are not monitored by the controller.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
47
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
The following HBM2 IP features are not available when using burst length values
greater than 2:
• High efficiency pattern and mixed traffic in the Example design traffic generator.
• Efficiency monitor (under Diagnostics -> Enable efficiency monitor)
• AXI 4x4 soft switch.
• AVMM interface.
The syntax for referencing AXI port signal names is axi_x_y_portname where x is the
channel number and y is the Pseudo Channel number. For example, axi_0_1_awid
refers to the write address ID of the AXI port corresponding to channel 0 and Pseudo
Channel 1. This applies to the bottom HBM2 interface.
For each channel in the top HBM2 interface, the AXI port for Pseudo Channel 0 is
actually connected to the HBM2 memory for Pseudo Channel 1, and vice versa. This
does not affect the HBM2 memory operation, but note that the Advanced Peripheral
Bus (APB) register addresses for Pseudo Channel 0 are referring to Pseudo Channel 1,
and vice versa.
Note: The user logic should ignore all AXI interface signals while calibration is in progress, to
ensure reliable operation. You can use the local_cal_success signal to determine when
it is safe to start using the AXI interface signals.
The signals in the following tables refer to the signal names corresponding to a single
AXI port: Channel 0, Pseudo Channel 0.
Table 22. User Port 0’s AXI4 Write Address (Command) Channel
Port Name Width Direction Description
axi_0_0_awid 7 (AXI switch Input Write address ID. This signal is the ID tag for the
enabled) write address group of signals. This signal is 7-
9 (AXI switch not bits wide when the soft 4×4 AXI switch is
enabled) enabled and 9-bits wide when the soft AXI
switch is not enabled.
[9 –
ceil(log2(max When you enable the soft AXI Switch, this signal
is 7-bits wide. When the soft 4×4 AXI switch is
imum burst
not enabled, the signal width is affected by the
length))] (AXI AXI burst transaction feature and the maximum
Burst transactions burst length set through the HBM2 IP GU. When
enabled through you enable AXI burst transactions, the width is
HBM2 IP GUI)
reduced to [9 bits – ceil(log2(maximum
burst length))]. When the AXI Burst
transactions are not enabled, the width is 9 bits.
axi_0_0_awaddr 28/29 (AXI switch Input Write address. The write address gives the
not enabled) address of the first transfer in a write burst
30/31 (AXI switch transaction. This address bus is 28 bits wide for
enabled) a 4 GB device and 29 bits for an 8 GB HBM2
device.
When you enable the soft AXI switch, the higher-
order 2-bits provide the slave address.
axi_0_0_awlen 8 Input Burst Length. The burst length gives the exact
number of transfers in a burst. This information
determines the number of data transfers
associated with the address.
continued...
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
48
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
axi_0_0_awsize 3 Input Burst Size. This signal indicates the size of each
transfer in the burst.
0b101 32
2’b01 INCR
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
49
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
axi_0_0_wvalid 1 Input Write Valid. Indicates that valid write data and
strobes are valid.
axi_0_0_bid 7 (AXI switch Output Response ID Tag. The ID tag of the write
enabled) response.
continued...
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
50
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Table 25. User Port 0’s AXI4 Read Address (Command) Channel
Port Name Width Direction Description
axi_0_0_arid 7 (AXI switch Input Read address ID. The ID tag for the read
enabled) address group of signals. This signal is 7-bits
9 (AXI switch not wide when the soft 4x4 AXI Switch is enabled
enabled) and 9-bits wide when the soft AXI Switch is not
enabled.s.
[9 –
ceil(log2(maxim When you enable the soft AXI Switch, this
signal is 7-bits wide. When the soft 4×4 AXI
um burst
switch is not enabled, the signal width is
length))] (AXI affected by the AXI burst transaction feature
Burst transactions and the maximum burst length set through the
enabled through HBM2 IP parameter editor. When the AXI burst
HBM2 IP GUI). transactions are enabled, the width is reduced
to [9 bits – ceil(log2(maximum burst
length))]. When AXI Burst transactions are
not enabled, the width is 9 bits.
axi_0_0_araddr 28/29 (AXI switch Input Read address. The address of the first transfer
not enabled) in a read burst transaction. This address bus is
30/31 (AXI switch 28-bits wide for a 4 GB device and 29-bits wide
enabled) for an 8 GB device.
When you enable the soft AXI switch, the
higher order 2-bits provide the slave address.
axi_0_0_arlen 8 Input Burst Length. The burst length gives the exact
number of transfers in a burst. This information
determines the number of data transfers
associated with the address.
Beginning in the Intel Quartus Prime software
version 20.3, for the Burst Length 4 mode,
more than 2 burst transactions up to a
maximum value of 256 at the AXI Interface is
supported. To use this feature, you must select
Enable AXI Burst length of more than 2 and
select a maximum burst length value in the
HBM2 IP parameter editor. If this feature is not
selected, then the following values are
supported.
continued...
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
51
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
axi_0_0_arsize 3 Input Burst Size. This signal indicates the size of each
transfer in the burst.
0b101 32
2’b01 INCR
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
52
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
axi_0_0_rid ARID_WIDTH Output Read ID tag. The ID tag for the read data
group of signals generated by the slave.
Related Information
High Bandwidth Memory (HBM2) Interface Intel FPGA IP Example Design on page 33
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
53
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
ctrl_amm_0_0_address Input 28/29 Write or read address, 28-bits wide for 4G device, 29-bits
wide for 8-G device.
ctrl_amm_0_0_burstcount Input 7 AVMM burst count, set to 7’h1 for BL4, 7’h2 for burst length
8.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
54
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
ctrl_ecc_readdataerror_0_0 Output 1 Asserts high by the controller ECC logic to indicate that the
read data has an uncorrectable error.
ctrl_auto_precharge_0_0 Input 1 Available when the Enable Auto Precharge Control option is
selected in Controller Configuration. When asserted high along
with a read or write request to the memory controller,
indicates that auto-precharge is enabled.
ctrl_user_priority_0_0 Input 1 Available when the Enable Command Priority Control option is
selected in Controller Configuration. When asserted high along
with a read or write request to the memory controller,
indicates that the request is high priority and should be
fulfilled before other low priority requests.
Related Information
Avalon Interface Specifications
All transactions in the five channels use a handshake mechanism for the master and
slave to communicate and transfer information.
Handshake Protocol
All five transaction channels use the same VALID/READY handshake process to
transfer address, data, and control information. Both the master and slave can control
the rate at which information moves between master and slave. The source generates
the VALID signal to indicate availability of the address, data, or control information.
The destination generates the READY signal to indicate that it can accept the
information. Transfer occurs only when both the VALID and READY signals are HIGH.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
55
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
In the figure above, the source presents the address, data or control information after
T1 and asserts the VALID signal. The destination asserts the READY signal after T2,
and the source must keep its information stable until the transfer occurs at T3, when
this assertion occurs. In this example, the source asserts the VALID signal prior to the
destination asserting the READY signal. Once the source asserts the VALID signal, it
must remain asserted until the handshake occurs, at a rising clock edge at which
VALID and READY are both high. Once the destination asserts READY, it can deassert
READY before the source asserts VALID. The destination can assert READY whenever it
is ready to accept data, or in response to a VALID assertion from the source.
AXI IDs
In an AXI system with multiple masters, the AXI IDs used for the ordering model
include the infrastructure IDs that identify each master uniquely. The ordering model
applies independently to each master in the system.
The AXI ordering model also requires that all transactions with the same ID in the
same direction must provide their responses in the order in which they are issued.
Because the read and write address channels are independent, if an ordering
relationship is required between two transactions with the same ID that are in
different directions, then a master must wait to receive a response to the first
transaction before issuing the second transaction. If a master issues a transaction in
one direction before it has received a response to an earlier transaction in the opposite
direction, there is no ordering guarantee between the two transactions.
AXI Ordering
The AXI system imposes no ordering restrictions between read and write transactions.
Read and write can complete in any order, even if the read address AXI ID (ARID) of a
read transaction is the same as the write address AXI ID (AWID) of a write
transaction. If a master requires a given relationship between a read transaction and a
write transaction, it must ensure that the earlier transaction is completed before it
issues a subsequent transaction. A master can consider the earlier transaction
complete only when one of the following is true:
• For a read transaction, it receives the last of the read data.
• For a write transaction, it receives the write response.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
56
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
You can initiate an AXI write transaction by issuing a valid Write Address signal on the
AXI Write Address Bus, AWADDR. The user logic should provide a valid write address in
the AWADDR bus and assert the AWVALID to indicate that the address is valid. The
master can assert the AWVALID signal only when it drives valid address and control
information.
When the HBM2 controller is ready to accept a Write command transaction, it asserts
the AWREADY signal. Address transfer happens when both AWVALID and AWREADY are
asserted.
AWUSER, the user signal for auto precharge, also follows the same timing as AWADDR ;
that is, AWUSER must be presented with the same timing of AWADDR.
During a write burst, the master asserts the WVALID signal only when it drives valid
write data. Once asserted, WVALID must remain asserted until the rising clock edge
after the slave asserts WREADY. The master must assert the WLAST signal while it is
driving the final write transfer in the burst. User logic must issue the write data in the
same order in which the write addresses are issued. Write data transfer happens when
both WVALID and WREADY are HIGH.
The following diagram illustrates a BL8 Write transaction. The master asserts the Write
address (WA0) in T1 using transaction ID AWID0, the HBM2 controller asserts the
AWREADY when it is ready to accept write requests. The master asserts the Write data
in clock cycle T3. Because the controller WREADY is already asserted, the write data is
accepted starting cycle T3. The last piece of the burst 8 transaction is asserted in clock
cycle T4.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
57
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Figure 23. AXI Write Transaction – Using Pseudo-BL8 Memory Write Transaction
The HBM2 controller uses the Write Response channel to respond on successful Write
transactions. The slave can assert the BVALID signal only when it drives a valid write
response. When asserted, BVALID must remain asserted until the rising clock edge
after the master asserts BREADY. The default state of BREADY can be high, but only if
the master can always accept a write response in a single cycle.
Read Address
The user logic asserts the ARVALID signal only when it drives valid Read address,
ARADDR, information. Once asserted, ARVALID must remain asserted until the rising
clock edge after the HBM2 controller asserts the ARREADY signal. If ARREADY is high,
the HBM2 controller accepts a valid address that is presented to it. Once calibration is
completed and the HBM2 Controller is ready to accept commands, the ARREADY is
asserted high. ARUSER, the user signal for auto precharge, also follows the same
timing as ARADDR, that is, ARUSER must be presented with the same timing of
ARADDR.
The HBM2 controller asserts the RVALID signal when it drives valid read data to the
user logic. The master interface uses the RREADY signal to indicate that it accepts the
data. The state of RREADY can be always held high, if the master is always able to
accept read data from the HBM2 Controller. The soft logic first in, first out (FIFO)
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
58
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
buffers can be instantiated through the HBM2 parameter editor if the HBM2 controller
expects to ever deassert the RREADY signal. The HBM2 controller asserts the RLAST
signal when it is driving the final read transfer in the burst.
Figure below describes a BL8 Read transaction. The user logic asserts the Read
address (RA0) in T1 using transaction ID ARID0, the HBM2 controller ARREADY is
already asserted, the READ command is accepted. The controller provides the Read
Data back to the user interface after issuing the READ command to the HBM2 DRAM.
The HBM2 controller asserts the Read data in clock cycle TB. The Read transaction ID
(RID) provided by the HBM2 controller corresponds to the Read Address ID (ARID).
The last piece of the burst 8 transaction (RLAST) is asserted in clock cycle Ta+1.
Figure 24. AXI Read Transaction – Using Pseudo-BL8 Memory Read Transaction
The Controller Backpressure Latency feature allows the user interface to interface to
the controller READY signals (address write, address read and write channels) with
flexibility. When you enable this feature, the READY signals provided by the HBM2
controller are issued early, according to a value that you specify.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
59
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
When this feature is enabled, set to N cycles (supported clock cycle values for N are 1,
2 when the feature is enabled and 0 when disabled), the READY signals provided by
the HBM2 Controller (that is, AXI Write Address Ready (AXI_X_Y_AWREADY), AXI
Read Address Ready (AXI_X_Y_ARREADY) and AXI Write Data Ready
(AXI_X_Y_WREADY)) are issued N clock cycles early. Controller Backpressure Latency
is enabled across all the AXI interfaces for the selected HBM2 interface.
When you choose a non-zero backpressure register value, you can choose to add the
register stages in either of the following ways:
• You can allow the HBM2 IP to add the registers in the soft logic adaptor on the AXI
interface; this is the default behavior.
• You can handle the AXI interface timing (early READY deassertion) manually, by
disabling the Automatically instantiate back pressure registers within
HBM2 IP option.
The following timing diagram illustrates backpressure latency of two clock cycles. This
value enables the deassertion of the READY signals to happen two core clock cycles
earlier than otherwise. Backpressure latency of 2 clock cycles provides the user
interface two additional clock cycles to respond to the READY deassertion by
continuing to provide valid Write Address/Write Data and Read Address for two clock
cycles after the READY deassertion.
As illustrated in the diagram below, with backpressure latency of two clock cycles,
READY deasserts in clock cycle T4; however, the HBM2 controller continues to accept
input in clock cycles T4 and T5 (input D and E) provided that the corresponding VALID
signal is active.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
60
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
When you specify a non-zero AXI backpressure latency of N, you can also add a total
of N pipeline registers in the AXI interface outputs and the READY inputs from the
HBM2 controller. By ensuring the total pipeline registers added in both Input and
Output directions is N, you can ease timing closure. You can enable the HBM2 IP to
generate these registers from the HBM2 IP parameter editor.
Beginning in the Intel Quartus Prime software version 19.4, the HBM2 IP adds the
following registers based on the Backpressure latency setting; it is no longer
necessary to manually insert the registers.
• When Backpressure latency is set to 1, the controller deasserts the READY
signal one clock cycle early. A single register stage is added in signals in the AXI
Interface Valid path from the core to the HBM2 controller.
• When Backpressure latency is set to 2, the controller deasserts the READY
signal two clock cycles early. The HBM2 IP adds the following registers:
— One register stage is added on the AXI Interface Valid and all related AXI
interface signals from the user logic.
— One register stage is added on READY signals (AWREADY, WREADY, ARREADY)
from the controller to the core.
The following figure illustrates the backpressure register placement in the data path
between the user core logic and the AXI soft logic adaptor to facilitate timing closure.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
61
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
When you enable the read and write response backpressure feature, Write response
and Read data interface timing must still be treated at zero cycle latency. The user-
interface-issued BREADY and RREADY must be driven HIGH to ensure the controller
can provide the outputs when applicable.
When you disable the read and write response backpressure feature, you can add
pipeline registers to read and write response outputs, because BREADY and RREADY
are always HIGH, indicating that the user interface is ready to accept response at any
time.
Unlike the AXI4 interface which provides for high-bandwidth, main band operations
and where each HBM pseudo-channel maps to its own dedicated AXI4 port, the APB
interface provides for relatively low-bandwidth sideband operations. (For example, to
provide an alternative means of controlling refreshes without colliding with the main
traffic stream, and for issuing custom commands useful for debugging.) Another
difference is that the APB bus interface commands can target one or both Pseudo
Channels at the same time, as there is one APB interface per HBM2 channel or two
HBM2 Pseudo Channels.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
62
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Referring to the following diagram, write transactions to the APB interface follow these
steps:
1. At T1, a write transfer starts with address ADDR1, write data DATA1, write signal
PWRITE and select signal PSEL registered at the rising edge of the core clock. This
is the setup phase of the write transfer.
2. At T2, PENABLE is registered at the rising edge of the core clock and held HIGH
until the HBM2 controller asserts PREADY HIGH. The values of PADDR, PSEL,
PENABLE, PWDATA, PSTRB and PWRITE must remain unchanged while PREADY
remains LOW.
3. At Tx, when PREADY goes HIGH, the write transaction completes at the next rising
edge of the core clock. This indicates the end of the Write Access Phase. PREADY
stays HIGH only for one clock cycle.
4. PENABLE is deasserted at the end of the transfer. The select signal PSEL, is also
deasserted unless the transfer is to be followed immediately by another transfer.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
63
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Read Access
Referring to the following diagram, read transactions to the APB interface follow these
steps:
1. At T1, a read transfer starts with address ADDR1, PWRITE asserted LOW and
select signal PSEL registered at the rising edge of the core clock. This is the setup
phase of the write transfer.
2. At T2, PENABLE is registered at the rising edge of the core clock and held HIGH
until the HBM2 controller asserts PREADY HIGH. The values of PADDR, PSEL,
PENABLE and PWRITE must remain unchanged while PREADY remains LOW.
3. At Tx, when PREADY goes HIGH, Read Data is available on the PRDATA bus.
PREADY stays HIGH only for one clock cycle.
4. PENABLE is deasserted at the end of the transfer. The select signal PSEL, is also
deasserted unless the transfer is to be followed immediately by another transfer.
For information on using the APB interface signals, refer to User APB Interface Timing.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
64
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Each physical HBM2 channel is mapped to its own sideband register space. The APB
address accesses are byte-address based. If a write is issued to an unaligned address,
it is ignored (that is, read returns 0 and write has no effect.) The sideband register
map is shared between the two HBM2 Pseudo Channels and the allocation of
addresses is organized as follows:
• Registers common to both Pseudo-Channels:
— Address map – 16’h0000-16’h00FF.
— Includes Refresh (per-bank, all banks), Self-Refresh, Temperature Readout
and Power down status.
Note: The register bit descriptions of Pseudo Channel 0 (PC0) and Pseudo Channel
1 (PC1) in the registers common to both Pseudo Channels apply to the
bottom HBM2 interface. For the top HBM2 interface, the PC0 and PC1
register bit definitions are swapped.
• Register Map for individual Pseudo Channels:
— Address map – Pseudo Channel 0 (16’h0100- 16’h01FF) and Pseudo Channel 1
(0x200-0x2FF).
— This map is used to access ECC and Interrupt Status Registers for each Pseudo
Channel.
Note: The register address maps for individual Pseudo Channel 0 (PC0) and
Pseudo Channel 1 (PC1) as shown above apply to the bottom HBM2
interface. For the top HBM2 interface, the PC0 and PC1 register address
maps are swapped.
If you want to allow user logic to issue Refresh requests, you must specify so in the
Controller Settings of the parameter editor, as follows:
Change the Controller Settings ➤ REFRESH MODE value from Controller Refresh
All to User Refresh All or User Refresh Per-bank.
Each APB interface corresponds to one HBM2 channel, therefore requests must be
addressed to either of the two Pseudo Channels, one Pseudo Channel at a time.
The timing of the refresh interval is specific to the HBM2 DRAM timing. The required
refresh rate is provided by the HBM2 DRAM through the TEMP[2:0] vector, which can
be read through the APB interface.
000 4x tREFI
001 2x tREFI
011 1x tREFI
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
65
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
111 TBD
101 TBD
100 TBD
All the user refresh requests follow the APB interface protocol. User logic issues the
Refresh request and waits for the acknowledgement signal from the HBM2 controller
before issuing another Refresh request.
User refresh requests per-bank consist of the following commands issued to the APB
Interface
Table 30. APB Write Data Definition for User Refresh Request Per Bank
Write Data Definition for Refresh Request Description
[6] Select Per bank or all bank refresh. Set to 1’b0 for per bank
refresh.
[8] User initiated refresh request. Set this bit to 1’b1 to initiate
refresh command.
[15:13] Increment value for per bank refresh bursting feature; rolls
over once it reached the max bank value. Increment =
value[2:0] + 1, where value refers to the current bank
address when the write command is issued. This becomes
the starting bank address.
Note: The ratio of maximum increment value to total
number of banks per Pseudo Channel divided by 4.
(For example, a 4H device has a maximum value of
16/4=4.)
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
66
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Individual requests to different Pseudo Channels must be issued serially. You must
wait for the HBM2 controller to issue the Acknowledge signal before issuing another
Refresh request.
Table 31. APB Write Data Definition for User Refresh Request to All Banks
Write Data Bit Definition for Refresh Request Description
[5:1] Bank number for per-bank refresh. Ignored for All bank
refresh.
[6] Select Per bank or all bank refresh. Set to 1’b1 - all banks
refresh.
[8] User initiated refresh request. Set this bit to 1’b1 to initiate
refresh command.
[15:9] Ignored.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
67
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Table 32. APB Read Data Definition for User Refresh Request
Read Data Bit Definition for Refresh Request Description
[8:0] Reserved.
[15:10] Reserved.
Self Refresh
To enter a Self Refresh state, issue these commands to the APB interface:
1. Write to address 16’h004 with Write Data(PWDATA) of 16’h0001.
2. Read from address 16’h004. Wait until Read Data (PRDATA [1]) returns a value of
1’b1 to indicate that the HBM2 controller is in a Self Refresh state.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
68
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
To exit a Self Refresh state, issue this command to the APB interface:
• Write to address 16’h0004 with Write Data(PWDATA) of 16’h0000 to exit Self-
Refresh. Wait for the Self Refresh Acknowledge to be 1’b0 prior to issuing another
Self Refresh request.
The write data bus is used to request entry or exit from self refresh. The Read data
bus is used to read the self-refresh status of the HBM2 channel. The following tables
provide the Write and Read data definitions for accessing self refresh.
Table 33. APB Write Data Bit Definition for Self Refresh
Write Data Bit Definition Description
[15:1] Reserved.
Table 34. APB Read Data Bit Definition for Self Refresh
Read Data Bit Definition Description
[0] Reserved.
[15:2] Reserved.
Table 35. APB Read Data Temperature and Calibration Status Information
Read Data Bit Definition Description
[7] Reserved.
[15:10] Reserved.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
69
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Related Information
High Bandwidth Memory (HBM2) Interface Intel FPGA IP DRAM Temperature Readout
on page 86
[7:6] Reserved.
[15:12] Reserved.
To read the Power Down Enable status, issue a Read command to APB Address
16’h0008. APB Read data provides HBM2 Power Down status information as shown in
the following table.
[15:1] Reserved.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
70
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
ECC registers provide the following information – and corresponding APB addresses –
for Pseudo Channel 0 and Pseudo Channel 1:
• Single-bit error (SBE) counter
• Double-bit error (DBE) counter
• Logical address (AXI address) of the first single-bit error
• Logical address (AXI address) of the first double-bit error
• Read transaction ID (AXI) of the first single-bit error
• Read transaction ID (AXI) of the first double-bit error
• Read Data Parity error counter
The values of the ECC registers are read when the PRREADY output from the HBM2
controller is asserted. When the HBM2 controller is RESET, these register values are
reset to zero.
[15:8] Reserved.
[15:8] Reserved.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
71
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
[15:9] Reserved.
[15:9] Reserved.
[15:8] Reserved.
The various status signals on which you can generate the interrupt include the
following:
• Single-bit error (SBE) or double-bit error (DBE) of AXI Read Data or internal RAM
used for Write and Read data storage
• Read Data parity error (RDPE) or Write Data parity error (WDPE) of AXI Read Data
• Address Command parity error
• CATTRIP
• Calibration
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
72
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
The following table describes the 16-bit Write Data (PWDATA) for setting the Interrupt
Enable, and the conditions of the interrupt.
[0] Interrupt Enable: Enables interrupt to the HBM2 controller when the
conditions set in PWDATA[11:1] are TRUE.
1 – Enable Interrupt
0 – Disable Interrupt
[15:12] Reserved.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
73
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
• Single-bit error
• Double-bit error
• Read Data parity error
• Write Data parity error
• Address Command parity error
• CATTRIP assertion
• Calibration status failure
[15:1] Reserved.
The above addresses provide the actual status signal for the following error
conditions:
• Single bit/Double bit error value from the HBM2 memory
• Read data/Write Data parity error value from the HBM2 memory.
• Address/Command parity value.
• CATTRIP signal.
• Calibration error signal.
• Single-bit error and double-bit error from internal RAM used for Write and Read
data storage.
To clear the individual Error Valid Signals, write 1’b1 to clear the Valid signal and the
corresponding Error Counter.
[0] DRAM Single-Bit-Error Valid. Asserted when single-bit error occurs and stays
high until cleared. Write 1’b1 to clear.
You can retrieve the number of single-bit errors from the single-bit error
counter. Clearing the counter does not clear this valid bit or vice-versa. You
must issue a separate write command to valid and counter to clear both
registers.
[1] DRAM Double-Bit-Error Valid. Asserted when double-bit error occurs and
stays high until cleared. Write 1’b1 to clear.
You can retrieve the number of double-bit errors from the double-bit error
counter. Clearing the counter does not clear this valid bit or vice-versa. You
must issue a separate write command to valid and counter to clear both
registers.
[2] Read Data Parity Error Valid. Asserted when a Read Data parity error occurs
and stays high until cleared. Write 1’b1 to clear.
You can retrieve the number of Read Data parity errors from the Read Data
parity error counter. Clearing the counter does not clear this valid bit or vice-
versa. You must issue a separate write command to valid and counter to clear
both registers.
[3] Write Data Parity Error Valid. Asserted when a Write Data parity error occurs
and stays high until cleared. Write 1’b1 to clear.
continued...
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
74
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
[4] Address Command Parity Error Valid. Asserted when an Address Command
parity error occurs and stays high until cleared. Write 1’b1 to clear.
[5] Cat Trip Error Valid. Asserted when a Cat Trip error occurs and stays high until
cleared. Write 1’b1 to clear.
[6] Calibration Error Valid. Asserted when a calibration error occurs and stays
high until cleared. Write 1’b1 to clear.
[7] Write SRAM Single-Bit Error Valid. Asserted when a Write SRAM Single-Bit
error occurs and stays high until cleared. Write 1’b1 to clear.
[8] Write SRAM Double-Bit Error Valid. Asserted when a Write SRAM Double-Bit
error occurs and stays high until cleared. Write 1’b1 to clear.
[9] Read SRAM Single-Bit Error Valid. Asserted when a Read SRAM Single-Bit
error occurs and stays high until cleared. Write 1’b1 to clear.
[10] Read SRAM Double-Bit Error Valid. Asserted when a Read SRAM Double-Bit
error occurs and stays high until cleared. Write 1’b1 to clear.
[15:11] Reserved.
The ECC encoder and decoder blocks reside inside the UIB subsystem and help to
efficiently perform the ECC logic without additional latency. The ECC logic performs
the following operations:
• When a single-bit error is detected, the error is corrected and passed to the AXI
Interface.
• When a double-bit error is detected, a signal is asserted to indicate the error and
is passed through the axi_ruser_err_dbe signal in the AXI Read Data Channel
Interface.
• Error information is available through the APB interface.
You can use the HBM2 controller's Read-Modify-Write feature to correct a single or
double-bit error detected in the HBM2 DRAM. A single-bit error or a double-bit error
corresponds to an error detected on every 64-bit HBM2 DQ bus; consequently,
multiple errors could be detected:
• Multiple single-bit errors are treated as a single single-bit error, and the single-bit
error count increases by 1.
• Multiple double-bit errors are treated as a single double-bit error, and the double-
bit error count increases by 1.
• A single-bit error and a double-bit error are treated as a double-bit error, because
the double-bit error has higher priority. The double-bit error count increases by 1
and the single-bit error count does not change.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
75
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Read-Modify-Write
The Read-Modify-Write feature reads from the HBM2 DRAM, modifies the data, and
writes back to the HBM2 memory. The HBM2 controller supports the following
functions as part of the Read-Modify-Write process:
• Dummy Writes – Corrects HBM2 DRAM data detected to have a single-bit error.
• Partial Writes – Issues partial writes to HBM2 DRAM where not all bytes are
enabled.
Dummy Writes
When the ECC decoder logic detects and corrects a single-bit error on the Read data,
user logic may correct the corresponding bit in the HBM2 DRAM, using the Dummy
Write process. A Dummy Write issues a Read from the memory location and writes the
corrected Read data back to the corresponding memory location.
To request a Dummy Write, issue a regular AXI Write transaction with all byte enables
deasserted, to the corresponding address.
The HBM2 controller handles the Read-Modify-Write operation internally and corrects
the DRAM data without additional user intervention. The Read-Modify-Write operation
follows this process:
• The AXI Adaptor within the UIB subsystem decodes all the byte enables
deasserted and identifies the Read-Modify-Write request.
• The HBM2 controller then issues a Read to the corresponding address in the HBM2
DRAM.
• The ECC Decoded Read data is used as Write Data – this is the corrected Read
data if a single-bit error was detected.
• The HBM2 Controller issues an HBM2 Write transaction and later writes the
decoded Read data into the memory.
Partial Writes
The HBM2 controller's Partial Write capability allows the user logic to issue a partial
write to the HBM2 DRAM, when not all the byte enables are asserted and only selected
DRAM bytes are written to. Partial writes are also supported for Pseudo Channel data
widths of 256 and 288 bits when the controller tab parameters Write Data Mask
Enable and Memory Channel ECC Generation and Checking/Correction are not
selected. The Partial Write feature first issues a Read from the memory location, and
then merges correct Read data with the correct Write data, to be written back to the
memory location. (This process is necessary because Data Mask signals are not
available to user logic when ECC is enabled.) The HBM2 controller intelligently
supports Partial Writes using the AXI4 interface.
To request a Partial Write, you issue a regular AXI Write transaction, with not all byte
enables asserted (that is, not a full Write), and with corresponding Write data to be
written to the HBM2 DRAM.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
76
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
The HBM2 controller handles the issuance of the corresponding memory transactions
necessary to complete the Partial Write:
• The AXI Adaptor within the UIB Subsystem decodes the byte enables and
identifies the Partial Write request.
• The HBM2 controller then issues a Read to the corresponding address in the HBM2
DRAM.
• The ECC Decoded Read data is merged with the requested Write data based on
the byte enables.
• The HBM2 controller issues an HBM2 Write transaction and later writes the merged
data into the memory with the updated ECC code.
The following figure shows the switch implementation when enabled for HBM2
Channels 0 and 1, through the HBM2 IP GUI. Four AXI Switches can be implemented
per HBM2 interface.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
77
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
The parameters to enable the AXI switches are editable only when both channels of a
channel pair are enabled, as shown in the figure below. When you enable the AXI
switch, all four of the corresponding controllers should use the same AXI Data Width
and Enable Reorder Buffer options.
If you enable multiple HBM channels, you can choose to enable the AXI switch for
certain channel pairs, and leave the rest as direct AXI connection to AXI master (user
logic side). For example, you can enable the AXI switch module for CH0 and CH1, then
have direct AXI connection to CH2 and CH3, with that AXI switch disabled.
When you enable the AXI switch, you can edit the master’s arbitration scheme
parameter table. By default, the switch uses round-robin arbitration (no honor
selected, and transaction count 0).
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
78
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
79
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Table 42. AXI Address Higher-Order Bits and Corresponding Slave Addresses
AXI Address (Higher-Order 2 bits) Slave Address
Note: The AXI switch does not have the option to restrict access to a specific
slave. It is the responsibility of the master to mask access to a specific
slave, if needed, and also to ensure the correct slave is accessed by
providing the correct Slave Address
The option to assign an AXI module or modules to Logic Lock regions is
available as reference in the HBM2 design example. You can use this in your
actual design to improve timing. Final timing closure is based on several
factors, including Intel Quartus Prime timing closure, core logic utilization and
core clock frequency.
• Controller configurations for HBM2 Channels in the switch:
— When you enable the AXI Switch, the controller configurations for the
corresponding two HBM2 channels should use the same AXI Data
configurations (AXI burst configuration, Data width etc) and Enable Reorder
buffer options.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
80
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Note: • All configuration for command arbitration occurs at IP generation, not at run time.
• It is advisable to run RTL simulations of representative traffic patterns for your
application, to enable the arbitration scheme to be optimized.
The area utilization due to four instances of the 4×4 AXI switch is ~7.1% (~50k out of
total ~700k ALM) for 1 memory stack at four instances of 4×4 AXI switch. The design
example provides an example of Logic Lock constraints for better timing closure.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
81
6. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Interface
683189 | 2023.01.20
Latency
A maximum of twenty AXI clock cycles of round-trip latency across AXI ports when the
transactions are point to point. (This refers to the physical latency from the time the
command is received to the time read data is available at the user interface, not
including command scheduling or wait times in the command queue.) Additional
latency when using the switch is based on the command arbitration logic. The AXI
master must wait for all the slave responses to return before switching to another
slave.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
82
683189 | 2023.01.20
Send Feedback
Intel Corporation. All rights reserved. Intel, the Intel logo, and other Intel marks are trademarks of Intel
Corporation or its subsidiaries. Intel warrants performance of its FPGA and semiconductor products to current
specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any ISO
products and services at any time without notice. Intel assumes no responsibility or liability arising out of the 9001:2015
application or use of any information, product, or service described herein except as expressly agreed to in Registered
writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
*Other names and brands may be claimed as the property of others.
7. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Controller Performance
683189 | 2023.01.20
• Write transactions – Refers to user write data transactions that the HBM2
controller accepts (user-asserted AXI WVALID and corresponding controller-
asserted AXI WREADY).
• Read transactions – Refers to user read data transactions that the HBM2 controller
has processed (controller-asserted AXI RVALID and corresponding user-asserted
AXI RREADY).
• Total valid transaction count – Total transaction time after first valid transaction
has been issued.
• Core frequency (MHz) – The frequency at which user logic operates. The core
operates at a lower frequency than the HBM2 interface.
• HBM2 interface frequency (MHz) - The frequency at which the HBM2 interface
operates.
The HBM2 controller provides high efficiency for any given address pattern from the
user interface. The controller efficiently schedules incoming commands, avoiding
frequent precharge and activate commands as well as frequent bus turn-around when
possible.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
84
7. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Controller Performance
683189 | 2023.01.20
Several factors can affect controller efficiency. For best efficiency, you should consider
these factors in your design:
• User-interface frequency vs HBM2 interface frequency - The frequency of user
logic in the FPGA fabric plays an important role in determining HBM2 memory
efficiency, as shown in the example above.
• Controller Settings
— Disable the Reorder Buffer in the Controller Settings to achieve improved
efficiency. (However, if the application requires that read data be provided in
the same order as the read requests, then it is preferable to enable the
Reorder Buffer.)
— Burst length - The pseudo-BL8 mode helps to ensure shorter memory access
timing between successive BL4 transactions, to improve controller efficiency.
• Traffic Patterns - Traffic patterns play an important role in determining controller
efficiency.
— Sequential vs random DRAM addresses: Sequential addresses enable the
controller to issue consecutive write requests to an open page and help to
achieve high controller efficiency. Random addresses require constant
PRECHARGE/ACTIVATE commands and can reduce controller efficiency.
— Set the User Auto Precharge Policy to FORCED and set the awuser/aruser
signal on the AXI interface to HIGH to enable Auto Precharge for random
transactions. For sequential transactions, set the Auto Precharge Policy to
HINT.
— Sequential Read only or Write Only transactions: Sequential read-only or
write-only transactions see higher efficiency as they avoid bus turnaround
times of the DRAM bi-directional data bus.
• AXI Transaction IDs – Use of different AXI transaction IDs helps the HBM2
controller schedule the transactions for high efficiency. Use of the same AXI
transaction ID preserves command order and may result in lower efficiency.
• Temperature – There are two main temperature effects that reduce the bandwidth
available for data transfers in the Intel Stratix 10 HBM2 interface:
— The HBM2 is exceeding a temperature threshold set in the General ➤
Threshold temperature for AXI throttling parameter, along with a value
for the AXI throttling ratio.
— Above 85°C, HBM2 refreshes occur more frequently, so there is less bandwidth
available for data transfers. At 85°C, the refresh rate is 2×, and at 95°C, 4×
more frequent than the standard refresh time interval of 7.8 microseconds.
The HBM2 TEMP register value can be read back via the AXI APB bus to help with
the correlation of memory refreshes, temperature, and data bandwidth.
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
85
7. High Bandwidth Memory (HBM2) Interface Intel FPGA IP Controller Performance
683189 | 2023.01.20
Read latency includes the controller command path latency to issue the read
command to the HBM2 memory, memory read latency, and the delay in the read data
path through the HBMC memory controller. Simulation reports the minimum latency in
AXI core clock cycles seen during the simulation time.
For the best HBM2 efficiency, ensure that your user logic follows best design practices.
Take care to avoid combinatorial paths between the AXI master and slave input and
output signals. Add pipeline registers as necessary and reduce logic levels in timing-
critical paths to successfully meet core timing requirements. The Backpressure
Latency feature allows you to add up to two register stages between the user interface
and the HBM2 IP. Refer to Improving User Logic to HBM2 Controller AXI Interface
Timing for details on Backpressure Latency.
The following documents provide detailed information on the Intel Stratix 10 device
architecture and design techniques that you can adopt to achieve the best core
performance:
• The Intel Stratix 10 High Performance Design Handbook.
• The Timing Closure and Optimizations chapter of the Design Optimization User
Guide: Intel Quartus Prime Pro Edition.
Related Information
• Intel Stratix 10 High-Performance Design Handbook
• Design Optimization User Guide: Intel Quartus Prime Pro Edition
You can also read the temperature using the Intel Stratix 10 Analog to Digital
Converter. Refer to the Intel Stratix 10 Analog to Digital Converter User Guide for
more information.
Related Information
• Temperature and Calibration Status Readout on page 69
• Intel Stratix 10 Analog to Digital Converter User Guide
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
86
683189 | 2023.01.20
Send Feedback
For the latest and previous versions of this user guide, refer to https://www.intel.com/
content/www/us/en/docs/programmable/683189/. If an IP or software version is not
listed, the user guide for the previous IP or software version applies.
Intel Corporation. All rights reserved. Intel, the Intel logo, and other Intel marks are trademarks of Intel
Corporation or its subsidiaries. Intel warrants performance of its FPGA and semiconductor products to current
specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any ISO
products and services at any time without notice. Intel assumes no responsibility or liability arising out of the 9001:2015
application or use of any information, product, or service described herein except as expressly agreed to in Registered
writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
*Other names and brands may be claimed as the property of others.
683189 | 2023.01.20
Send Feedback
2023.01.20 21.3 19.6.1 • In the Architecture chapter: Added content to the AXI User
Interface and Avalon Memory-Mapped Interface sections of
the Intel Stratix 10 UIB Architecture topic.
• In the Archives chapter: Revised the High Bandwidth Memory
(HBM2) Intel Agilex™ FPGA IP User Guide Archives topic.
2021.09.27 21.3 19.6.1 • In the Creating and Parameterizing the High Bandwidth
Memory (HBM2) Interface Intel FPGA IP chapter:
— Updated the FPGA I/O Tab figure in the FPGA I/O
Parameters for High Bandwidth Memory (HBM2) Interface
Intel FPGA IP topic. Also removed the note from beneath
the FPGA I/O Tab figure.
— Added a note to the Address reordering description in the
Group: Controller/ Controller 0 Configuration table, in the
Controller Parameters for High Bandwidth Memory
(HBM2) Interface Intel FPGA IP topic.
• In the High Bandwidth Memory (HBM2) Interface Intel FPGA
IP Interface chapter:
— Modified the figure in the Clock Signals topic.
— In the Reset Signals topic, modified text in the
hbm_only_reset_in Timing section, and added a waveform
to the Reset Recommendations for Reliable Calibration of
the HBM2 Interface section.
— In the AXI User-interface Signals topic, added a note to
the AXI Subchannels Descriptions section, and added a
note to the axi_0_0_wready description in the User Port
0’s AXI4 Write Data Channel table.
• In the Simulating the High Bandwidth Memory (HBM2)
Interface Intel FPGA IP chapter:
— Removed ModelSim*- Intel FPGA Edition reference.
continued...
Intel Corporation. All rights reserved. Intel, the Intel logo, and other Intel marks are trademarks of Intel
Corporation or its subsidiaries. Intel warrants performance of its FPGA and semiconductor products to current
specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any ISO
products and services at any time without notice. Intel assumes no responsibility or liability arising out of the 9001:2015
application or use of any information, product, or service described herein except as expressly agreed to in Registered
writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
*Other names and brands may be claimed as the property of others.
9. Document Revision History for High Bandwidth Memory (HBM2) Interface Intel FPGA IP User
Guide
683189 | 2023.01.20
2021.03.29 21.1 19.6.1 • In the Creating and Parameterizing the High Bandwidth
Memory chapter, added a sentence to the Core clock
frequency description, in the Group: General / Clocks table.
• In the Simulating the High Bandwidth Memory chapter,
removed the Simulating High Bandwidth Memory (HBM2)
Interface Intel FPGA IP with Cadence NCSim* topic.
• In the High Bandwidth Memory (HBM2) Interface Intel FPGA
IP Interface chapter:
— Added one row to the Temperature and Calibration Status
Readout topic.
— Added the Controller Idle State Status topic.
— Added a sentence to the first paragraph of the Partial
Writes section in the ECC Error Correction and Detection
topic.
2020.12.14 20.4 19.6.1 • Added the Register Map IP-XACT Support for HBM2 IP topic
to the Creating and Parameterizing the High Bandwidth
Memory (HBM2) Interface Intel FPGA IP chapter.
• Modified the descriptions of axi_0_0_awlen in Table 22, and
axi_0_0_arlen in Table 25.
2020.10.05 20.3 19.6.0 • In the General Parameters for High Bandwidth Memory
(HBM2) Interface Intel FPGA IP topic in chapter 4:
— Modified the figure.
— Modified the Automatically instantiate backpressure
registers within the HBM2 IP entry in Table 6.
• Added the FPGA I/O Parameters for High Bandwidth Memory
(HBM2) Interface Intel FPGA IP topic in chapter 4.
• In the Controller Parameters for High Bandwidth Memory
(HBM2) Interface Intel FPGA IP topic in chapter 4:
— Modified the Controller Tab figure.
— In table 10, modified the Enable AXI Burst length of more
than 2 and AXI Maximum burst length descriptions.
continued...
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
89
9. Document Revision History for High Bandwidth Memory (HBM2) Interface Intel FPGA IP User
Guide
683189 | 2023.01.20
2020.06.22 20.2 19.5.0 • In the Introduction chapter, added a new Avalon interface to
the Intel Stratix 10 MX HBM2 Controller Features topic.
• In the Architecture chapter:
— Added a new Avalon interface to the Intel Stratix 10 MX
UIB Architecture topic.
— Replaced figure 5 and added a new Avalon interface to the
Intel Stratix 10 HBM2 Controller Architecture topic.
• In the Creating and Parameterizing chapter:
— In the General Parameters topic, modified the description
of the Interface Protocol and Enable AXI Switch for
channel 0 and 1 parameters in Table 5, and the
description of the Allow backpressure of AXI read data
and write response channels parameter in Table 6.
— In the Controller Parameters topic, replaced Figure 8 and
modified the following parameter descriptions in Table 9:
• Interface Protocol
• Enable Auto Precharge Control
• Enable Command Priority Control
• User Read Auto-Precharge Policy
• User Write Auto-Precharge Policy
• Data Width per Pseudo-Channel
— In the Diagnostic Parameters topic, added the new Avalon
interface to several parameter descriptions in Table 10.
— In the Pin Planning topic, modified the paragraph
immediately preceding Table 15.
• In the IP Interface chapter:
— Modified the ext_core_clk description in Table 16.
— Modified the text of the User-interface Signals topic.
— Added the Avalon Memory-Mapped (AVMM) Interface
Signals topic.
— In the AXI Switch Selection in HBM2 IP Catalog GUI topic:
• Added a bullet point to the soft 4×4 AXI switch feature
list.
• Added text to the second bullet point under Arbitration
scheme 3: Transaction counts.
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
90
9. Document Revision History for High Bandwidth Memory (HBM2) Interface Intel FPGA IP User
Guide
683189 | 2023.01.20
2020.03.02 19.4 19.3.0 In the High Bandwidth Memory (HBM2) Interface Intel
FPGA IP Interface chapter, in the AXI User-Interface
Signals topic:
• Modified the description of the axi_0_0_awsize
port in the User Port 0’s AXI4 Write Address
(Command) Channel table.
• In the User Port 0’s AXI4 Write Data Channel table,
changed the names and descriptions of the
axi_0_0_wuser_data and
axi_0_0_wuser_strb ports. Implemented minor
changes to the descriptions of the axi_0_0_wstrb
and axi_0_0_wvalid ports.
• Modified the descriptions of the axi_0_0_arsize
and axi_0_0_arburst ports in the User Port 0’s
AXI4 Read Address (Command) Channel table.
• Changed the names of the third and fourth entries
in the User Port 0’s Read Data Channel table.
Added a sentence to the description of the
axi_0_0_rvalid port.
continued...
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
91
9. Document Revision History for High Bandwidth Memory (HBM2) Interface Intel FPGA IP User
Guide
683189 | 2023.01.20
2019.07.25 19.2.0 19.2.0 • Added About the High Bandwidth Memory (HBM2)
Interface Intel FPGA IP.
• Revised the Refresh Mode description in the Group:
Controller/ Controller 0 Configuration table in the
Controller Parameters for High Bandwidth Memory
(HBM2) Interface Intel FPGA IP topic.
• Updated Figure 7 in General Parameters for High
Bandwidth Memory (HBM2) Interface Intel FPGA IP.
• Updated Figure 9 in Diagnostic Parameters for High
Bandwidth Memory (HBM2) Interface Intel FPGA IP.
• Added row for Disable HBM model transaction
messages in simulation to Table 9 in Diagnostic
Parameters for High Bandwidth Memory (HBM2)
Interface Intel FPGA IP.
continued...
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
92
9. Document Revision History for High Bandwidth Memory (HBM2) Interface Intel FPGA IP User
Guide
683189 | 2023.01.20
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
93
9. Document Revision History for High Bandwidth Memory (HBM2) Interface Intel FPGA IP User
Guide
683189 | 2023.01.20
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
94
9. Document Revision History for High Bandwidth Memory (HBM2) Interface Intel FPGA IP User
Guide
683189 | 2023.01.20
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
95
9. Document Revision History for High Bandwidth Memory (HBM2) Interface Intel FPGA IP User
Guide
683189 | 2023.01.20
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide Send Feedback
96
9. Document Revision History for High Bandwidth Memory (HBM2) Interface Intel FPGA IP User
Guide
683189 | 2023.01.20
Send Feedback High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
97