Professional Documents
Culture Documents
P-Tile Avalon Memory-Mapped IP For PCI Express User Guide
P-Tile Avalon Memory-Mapped IP For PCI Express User Guide
P-Tile Avalon Memory-Mapped IP For PCI Express User Guide
IP Version: 4.0.0
Contents
1. Introduction................................................................................................................... 4
1.1. Overview..............................................................................................................4
1.2. Features...............................................................................................................5
1.3. Release Information...............................................................................................6
1.4. Device Family Support............................................................................................7
1.5. Performance and Resource Utilization....................................................................... 7
1.6. IP Core and Design Example Support Levels..............................................................8
2. IP Architecture and Functional Description................................................................... 10
2.1. Top-Level Architecture.......................................................................................... 10
2.1.1. Avalon-MM Bridge Architecture.................................................................. 11
2.1.2. Clock Domains.........................................................................................13
2.1.3. Refclk.....................................................................................................15
2.1.4. Reset..................................................................................................... 17
2.2. Functional Description.......................................................................................... 18
2.2.1. PMA/PCS................................................................................................ 18
2.2.2. Data Link Layer Overview..........................................................................19
2.2.3. Transaction Layer Overview....................................................................... 21
2.2.4. Avalon-MM Bridge.................................................................................... 22
3. Parameters................................................................................................................... 26
3.1. Top-Level Settings............................................................................................... 26
3.2. Core Parameters.................................................................................................. 28
3.2.1. Base Address Registers.............................................................................28
3.2.2. PCI Express and PCI Capabilities Parameters............................................... 29
3.2.3. Device Identification Registers................................................................... 33
3.2.4. Configuration, Debug and Extension Options................................................34
3.3. Avalon-MM Settings..............................................................................................35
4. Interfaces..................................................................................................................... 37
4.1. Overview............................................................................................................ 37
4.2. Clocks and Resets................................................................................................ 38
4.2.1. Interface Clock Signals............................................................................. 38
4.2.2. Interface Reset Signals............................................................................. 39
4.3. Avalon-MM Interface ........................................................................................... 40
4.3.1. Endpoint Mode Interface (512-bit Avalon-MM Interface)................................ 42
4.3.2. Root Port Mode Interface (256-bit Avalon-MM Interface)............................... 58
4.4. Serial Data Interface............................................................................................ 61
4.5. Hard IP Status Interface....................................................................................... 61
4.6. Interrupt Interface............................................................................................... 62
4.6.1. Legacy Interrupts.................................................................................... 63
4.6.2. MSI........................................................................................................63
4.6.3. MSI-X.....................................................................................................66
4.7. Hot Plug Interface (RP Only)..................................................................................69
4.8. Power Management Interface................................................................................ 70
4.9. Configuration Output Interface.............................................................................. 71
4.10. Hard IP Reconfiguration Interface......................................................................... 75
4.10.1. Address Map for the User Avalon-MM Interface...........................................77
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
2
Contents
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
3
UG-20237 | 2021.02.04
Send Feedback
1. Introduction
1.1. Overview
The P-Tile Avalon® memory mapped IP for PCIe combines the functionality of previous
Avalon memory-mapped (Avalon-MM) and Avalon memory-mapped with direct
memory access (DMA) interfaces. The IP core using the Avalon-MM interface removes
many of the complexities associated with the PCIe protocol. It handles all of the
Transaction Layer Packet (TLP) encoding and decoding, simplifying the design task. It
also includes optional Read and Write Data Mover modules facilitating the creation of
high-performance DMA designs. Both the Avalon-MM interface and the Read and Write
Data Mover modules are implemented in soft logic. This IP Core natively supports
Endpoint and Root Port configurations with Gen3/Gen4 data rates and x4/x8/x16 link
widths. Gen1/Gen2 data rates and x1/x2 link widths are supported via link down-
training.
This IP provides support for an Avalon memory mapped interface with DMA and is
designed to optimize the performance of large-size data transfers. If you want to
achieve maximum performance with small-size transfers, Intel recommends the use of
the P-Tile Avalon streaming IP for PCIe.
Note: The P-Tile Avalon memory mapped IP for PCIe does not include an internal descriptor
controller for DMA operations. This descriptor controller should be implemented in the
user application logic. The design example provided for this IP includes an example of
a descriptor controller.
Related Information
Intel FPGA P-Tile Avalon memory mapped IP for PCI Express Design Example User
Guide
Intel Corporation. All rights reserved. Agilex, Altera, Arria, Cyclone, Enpirion, Intel, the Intel logo, MAX, Nios,
Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or
other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in ISO
accordance with Intel's standard warranty, but reserves the right to make changes to any products and services 9001:2015
at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any Registered
information, product, or service described herein except as expressly agreed to in 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.
1. Introduction
UG-20237 | 2021.02.04
1.2. Features
The P-Tile Avalon memory mapped IP for PCI Express supports the following features:
• Configurations supported:
Table 1. Configurations Supported by the P-Tile Avalon memory mapped IP for PCI
Express
Gen3/Gen4 x16 Gen3/Gen4 x8 Gen3/Gen4 x4
1 x8 64
2 and 3 x4 64
(1) These configurations may be available in a future release of Intel® Quartus® Prime.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
5
1. Introduction
UG-20237 | 2021.02.04
• Bursts of up to 8 cycles (512 bytes) for the Bursting Avalon memory mapped
Master, Bursting Avalon memory mapped Slave and the data movers.
• Support for Max Payload Size values of 128, 256 and 512 bytes.
• Support for Max Read Request Size values of 128, 256 and 512 bytes.
• Available as a Platform Designer component with standard Avalon interfaces.
• MSI and MSI-X.
• Separate Refclk with Independent Spread Spectrum Clocking (SRIS).
• You cannot change the pin allocations for the P-Tile Avalon memory mapped IP for
PCI Express* in the Intel Quartus Prime project. However, this IP does support
lane reversal and polarity inversion on the PCB.
• Supports Autonomous Hard IP mode.
— This mode allows the PCIe Hard IP to communicate with the Host before the
FPGA configuration and entry into User mode are complete.
Note: Unless Readiness Notifications mechanisms are used, the Root Complex
and/or system software must allow at least 1.0 s after a Conventional
Reset of a device before it may determine that a device that fails to
return a Successful Completion status for a valid Configuration Request
is a broken device. This period is independent of how quickly Link
training completes.
• Modular implementation allowing users to enable the required features for a
specific application. For example:
— Simultaneous support for DMA modules and high-throughput Avalon memory
mapped Slaves and Masters.
— Avalon memory mapped Slave for easy access to the whole PCIe address
space.
• VCS is the only simulator supported in the 20.2 release of Intel Quartus Prime.
Other simulators may be supported in a future release.
Note: Throughout this User Guide, the term Avalon-MM may be used as an abbreviation for
the Avalon memory mapped interface or IP.
IP Version 4.0.0
IP versions are the same as the Intel Quartus Prime Design Suite software versions up
to v19.1. From Intel Quartus Prime Design Suite software version 19.2 or later, IPs
have a new IP versioning scheme.
The IP version (X.Y.Z) number may change from one Intel Quartus Prime software
version to another. A change in:
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
6
1. Introduction
UG-20237 | 2021.02.04
• 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.
Intel verifies that the current version of the Intel Quartus Prime Pro Edition software
compiles the previous version of each IP core, if this IP core was included in the
previous release. Intel reports any exceptions to this verification in the Intel IP
Release Notes or clarifies them in the Intel Quartus Prime Pro Edition IP Update tool.
Intel does not verify compilation with IP core versions older than the previous release.
Related Information
P-Tile IP for PCI Express IP Core Release Notes
This document provides information about the new features and updates for each
IP release.
No support
Other device families Refer to the Intel PCI Express Solutions web page on the Intel website for support information on
other device families.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
7
1. Introduction
UG-20237 | 2021.02.04
Table 5. Intel Stratix 10 DX / Intel Agilex Recommended FPGA Fabric Speed Grades
for All Avalon-MM Widths and Frequencies
The recommended FPGA fabric speed grades are for production parts.
Lane Rate Link Width Application Interface Application Clock Recommended FPGA
Data Width Frequency (MHz) Fabric Speed Grades
The Avalon-MM variants include an Avalon-MM DMA bridge implemented in soft logic.
It operates as a front end to the hardened protocol stack. The resource utilization
table below shows results for the Simple DMA dynamically generated design example.
The results are for the current version of the Intel Quartus Prime Pro Edition software.
Intel Stratix 10
DMA Gen3 x16, EP 15956 120 42345
DX
Intel Stratix 10
DMA Gen4 x16, EP 15967 120 42641
DX
Intel Stratix 10
DMA Gen4 x8, EP 14533 97 42610
DX
(2) These results only include resources in the Avalon-MM IP partition in the design example as
the Table title indicates. They do not include resources for external blocks such as the on-chip
memory, DMA controller, and other interconnect logic.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
8
1. Introduction
UG-20237 | 2021.02.04
Table 7. P-Tile Avalon Memory Mapped (Avalon-MM) IP for PCIe Support Matrix for
Intel Stratix 10 DX Devices
Support level keys: S = simulation, C = compilation, T = timing, H = hardware, N/A = configuration not
supported
Gen4 x4/x4/x4/x4
N/A SCTH N/A (††)
256-bit
Gen3 x4/x4/x4/x4
N/A SCTH N/A (††)
256-bit
Note: (†) The design example available in the 20.4 release supports the DMA mode with
Data Movers. A design example supporting the Bursting Slave mode may be available
in a future release.
Note: (††) This support may be available in a future release of Intel Quartus Prime.
The following table shows the support levels of the Avalon-MM IP core and design
example in Intel Agilex devices.
Table 8. P-Tile Avalon Memory Mapped (Avalon-MM) IP for PCIe Support Matrix for
Intel Agilex Devices
Support level keys: S = simulation, C = compilation, T = timing, H = hardware, N/A = configuration not
supported
Gen4 x4/x4/x4/x4
N/A SCTH N/A (††)
256-bit
Gen3 x4/x4/x4/x4
N/A SCTH N/A (††)
256-bit
Note: (†) The design example available in the 20.4 release supports the DMA mode with
Data Movers. A design example supporting the Bursting Slave mode may be available
in a future release.
Note: (††) This support may be available in a future release of Intel Quartus Prime.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
9
UG-20237 | 2021.02.04
Send Feedback
Note: Each core in the IP implements its own Data Link Layer and Transaction Layer.
The four cores in the IP can be configured to support the following topologies:
Table 9. Configuration Modes Supported by the P-tile Avalon-MM IP for PCI Express
Endpoint
Configuration Mode Native Hard IP Mode (EP) / Root Active Cores
Port (RP)
Gen3x4/Gen3x4/Gen3x4/Gen3x4 or
Configuration Mode 2 RP x16, x8, x4_0, x4_1
Gen4x4/Gen4x4/Gen4x4/Gen4x4
Intel Corporation. All rights reserved. Agilex, Altera, Arria, Cyclone, Enpirion, Intel, the Intel logo, MAX, Nios,
Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or
other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in ISO
accordance with Intel's standard warranty, but reserves the right to make changes to any products and services 9001:2015
at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any Registered
information, product, or service described herein except as expressly agreed to in 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. IP Architecture and Functional Description
UG-20237 | 2021.02.04
In Configuration Mode 0, only the x16 core is active, and it operates in Gen3 x16
mode or Gen4 x16 mode.
In Configuration Mode 1, the x16 core and x8 core are active, and they operate as two
Gen3 x8 cores or two Gen4 x8 cores.
In Configuration Mode 2, all four cores (x16, x8, x4_0, x4_1) are active, and they
operate as four Gen3 x4 cores or four Gen4 x4 cores.
In the first two modes, the P-Tile Avalon-MM IP functions as an Endpoint (EP). In Root
Port mode, it functions as a Root Port (RP).
The Avalon-MM Bridge consists of five main modules: Read Data Mover (RDDM), Write
Data Mover (WRDM), Bursting Avalon-MM Master (BAM), Bursting Avalon-MM Slave
(BAS) and Control Register Access (CRA). These modules are shown in Figure 2 on
page 12 and described below. Depending on the mode of operation, different
modules in the IP core are enabled.
Modules
Endpoint
mode with
Yes Yes Yes No No No No
Data Movers
(EP)
Endpoint
No No Yes No No Yes No
mode (EP)
Root Port
No No No Yes Yes No Yes
mode (RP)
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
11
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
Here is a block diagram of the P-Tile Avalon-MM Bridge showing the main modules:
P-Tile Avalon-MM IP for PCIe M Avalon-MM Master I Avalon-ST Sink C Avalon Conduit
S Avalon-MM Slave O Avalon-ST Source
250 MHz
Avalon-MM Bridge
500 MHz
Control Register O
S Access
I
I
I
Write
O Data Mover O
M
512 512
I Read
Embedded/Separated
I O
Hard IP Interface
Data Mover
Header Adaptor
O
Bursting O
512 512
M Master
I
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
12
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
• Bursting Master (BAM): This module converts memory read and write TLPs
initiated by the remote link partner and received over the PCIe link into Avalon-
MM burst read and write transactions, and sends back CplD TLPs for read requests
it receives. It can also function in a non-bursting mode.
• Bursting Slave (BAS): This module converts Avalon-MM read and write
transactions initiated by the application logic into PCIe memory read and write
TLPs to be transmitted over the PCIe link. This module also processes the CplD
TLPs received for the read requests it sent. It can also function in a non-bursting
mode.
• Read Data Mover (RDDM): This module uses PCIe memory read TLPs and Avalon-
MM write transactions to move large amounts of data from the system memory in
the PCIe space to the FPGA memory in the Avalon-MM space. It fetches
descriptors from the system memory through one of its two Avalon-ST sink
interfaces. These descriptors define the data transfers to be executed. The RDDM
also reports the status of these data transfers via its Avalon-ST source interface.
• Write Data Mover (WRDM): This module uses PCIe memory write TLPs and
Avalon-MM read transactions to move large amounts of data from your application
logic in the Avalon-MM space to the system memory in the PCIe space. The WRDM
also supports immediate writes, which are enabled by a bit in the descriptors that
the WRDM receives via one of its Avalon-ST descriptor sink interfaces. For more
details on immediate writes, refer to Write Data Mover Avalon-ST Descriptor Sinks
on page 52. Similar to the RDDM, the WRDM also has its own Avalon-ST source
interface to report the status of its data transfers.
• Control Register Access (CRA) Avalon-MM Slave (Root Port only): This module is
used in Root Port mode only to issue accesses to the Endpoint's configuration
space registers. It supports a single transaction at a time. It converts single-cycle,
32-bit Avalon-MM read and write transactions into PCIe configuration read and
write TLPs (CfgRd0, CfgRd1, CfgWr0 and CfgWr1) to be sent over the PCIe link.
This module also processes the completion TLPs (Cpl and CplD) it receives in
return.
The Response Reordering module assembles and reorders completion TLPs received
over the PCIe link for the Bursting Slave and the Read Data Mover. It routes the
completions based on their tags.
No re-ordering is necessary for the completions sent to the CRA module as it only
issues one request TLP at a time.
Endpoint applications typically need the Bursting Master to enable the host to provide
information for the other modules.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
13
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
• PHY clock domain (i.e. core_clk domain): this clock is synchronous to the
SerDes parallel clock.
• EMIB/FPGA fabric interface clock domain (i.e. pld_clk domain): this clock is
derived from the same reference clock (refclk0) as the one used by the SerDes.
However, this clock is generated from a stand-alone core PLL.
• Application clock domain (p<n>_app_clk): this clock is an output from the P-Tile
IP. The frequency of this clock depends on the configuration that the IP is in. Refer
to Table 11 on page 15 below for more details. This is a per-port signal (i.e, n =
0,1,2,3).
The PHY clock domain (i.e. core_clk domain) is a dynamic frequency domain. The
PHY clock frequency is dependent on the current link speed.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
14
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
Gen1 is supported only via link down-training and not natively. Hence,
Gen1 125 MHz the application clock frequency depends on the configuration you
choose in the IP Parameter Editor.
Gen2 is supported only via link down-training and not natively. Hence,
Gen2 250 MHz the application clock frequency depends on the configuration you
choose in the IP Parameter Editor.
p<n>_app_clk Frequency
(MHz)
Configurati Data Width
EP/RP
on (bits) Intel
Stratix 10 Intel Agilex
DX
Gen3 500 MHz
Gen3 x4 RP 256 125 125
p<n>_app_clk Frequency
(MHz)
Configurati Data Width
EP/RP
on (bits) Intel
Stratix 10 Intel Agilex
DX
Gen4 1000 MHz
Gen4 x4 RP 256 200 250
Note: Refer to the P-Tile IP for PCI Express IP Core Release Notes for the matrix of
configurations supported by the P-Tile Avalon memory mapped IP for PCI Express.
2.1.3. Refclk
P-Tile has two reference clock inputs at the package level, refclk0 and refclk1.
You must connect a 100 MHz reference clock source to these two inputs. Depending
on the port mode, you can drive the two refclk inputs using either a single clock
source or two independent clock sources.
In 1x16 and 4x4 modes, drive the refclk inputs with a single clock source (through
a fanout buffer) as shown in the figure below.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
15
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
Figure 4. Using a Single 100 MHz Clock Source in 1x16 and 4x4 Modes
Lane 12
Lane 11
Lane 8
Lane 3
Lane 0
Lane 7
Lane 4
(x4) (x4) (x4) (x4)
Refclk1 Refclk0
Fanout Buffer
100MHz
In 2x8 mode, you can drive the refclk inputs with either a single 100 MHz clock
source as shown above, or two independent 100 MHz sources (see the figure below)
depending on your system architecture. For example, if your system has each x8 port
connected to a separate CPU/Root Complex, it may be required to drive these refclk
inputs using independent clock sources. In that case, it is strongly recommended that
the refclk0 input for Port 0 (lanes 0 - 7) be always running because it feeds the
reference clock for the P-Tile core PLL that controls the data transfers between the P-
Tile and FPGA fabric via the EMIB. If this clock goes down, Port 0 link will go down and
Port 1 will not be able to communicate with the FPGA fabric. Following are the
guidelines for implementing two independent refclks in 2x8 mode:
• If the link can handle two separate reference clocks, drive the refclk0 of P-Tile
with the on-board free-running oscillator.
• If the link needs to use a common reference clock, then PERST# needs to indicate
the stability of this reference clock. If this reference clock goes down, the entire P-
Tile must be reset.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
16
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
Lane 12
Lane 11
Lane 8
Lane 3
Lane 0
Lane 7
Lane 4
(x4) (x4) (x4) (x4)
Refclk1 Refclk0
100MHz 100MHz
2.1.4. Reset
There is only one PERST# (pin_perst_n) pin on P-Tile. Therefore, toggling
pin_perst_n will affect the entire P-Tile. If the P-Tile x16 port is bifurcated into two
x8 Endpoints, toggling pin_perst_n will affect both x8 Endpoints.
To reset each port individually, use the in-band mechanism like Hot Reset.
Following are the guidelines for implementing the P-Tile pin_perst_n reset signal:
• pin_perst_n is a "power good" indicator from the associated power domain (to
which P-Tile is connected). Also, it shall qualify that both the P-Tile refclk0 and
refclk1 are stable. If one of the reference clocks becomes stable later, deassert
pin_perst_n after this reference clock becomes stable.
• pin_perst_n assertion is required for proper Autonomous P-Tile functionality. In
Autonomous mode, P-Tile can successfully link up upon the release of
pin_perst_n regardless of the FPGA fabric configuration and will send out CRS
(Configuration Retry Status) until the FPGA fabric is configured and ready.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
17
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
2.2.1. PMA/PCS
The P-Tile Avalon-MM IP for PCI Express contains Physical Medium Attachment (PMA)
and PCI Express Physical Coding Sublayer (PCIe PCS) blocks for handling the Physical
layer (PHY) packets. The PMA receives and transmits high-speed serial data on the
serial lanes. The PCS acts as an interface between the PMA and the PCIe controller,
and performs functions like data encoding and decoding, scrambling and
descrambling, block synchronization etc. The PCIe PCS in the P-Tile Avalon-MM IP for
PCI Express is based on the PHY Interface for PCI Express (PIPE) Base Specification
4.4.1.
In this IP, the PMA consists of up to four quads. Each quad contains a pair of transmit
PLLs and four SerDes lanes capable of running up to 16 GT/s to perform the various
TX and RX functions.
PLLA generates the required transmit clocks for Gen1/Gen2 speeds, while PLLB
generates the required clocks for Gen3/Gen4 speeds. For the x8 and x16 lane widths,
one of the quads acts as the master PLL source to drive the clock inputs for each of
the lanes in the other quads.
The transmitter consists of a 3-tap equalizer with one tap of pre-cursor, one tap of
main cursor and one tap of post-cursor.
The receiver consists of attenuation (ATT), CTLE, Voltage gain amplifier (VGA) and a
5-tap DFE blocks that are adaptive for Gen3/Gen4 speeds. RX Lane Margining is
supported by the PHY. The Lane Margining supports timing margining only. The
optional voltage margining is not supported. Timing margining capabilities/parameters
are as follows:
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
18
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
The PHY layer uses a fixed 16-bit PCS-PMA interface width to output the PHY clock
(core_clk). The frequency of this clock is dependent on the current link speed. Refer
to Table 11 on page 15 for the frequencies at various link speeds.
Related Information
PHY Interface for PCI Express (PIPE) Base Specification
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
19
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
Ack/Nack
Packets
Data Link Control Control
Power and Management & Status
Configuration Space
Management State Machine
Tx Flow Control Credit Information Function
Transaction Layer
Packet Checker Rx Packets
Rx Transation Layer
Packet Description & Data
Note:
The DLL has
(1) The L0s the
(Standby) or L1following sub-blocks:
(Low Power Standby) states are not supported.
• Data Link Control and Management State Machine—This state machine connects to
both the Physical Layer’s LTSSM state machine and the Transaction Layer. It
initializes the link and flow control credits and reports status to the Transaction
Layer.
• Power Management—This function handles the handshake to enter low power
mode. Such a transition is based on register values in the Configuration Space and
received Power Management (PM) DLLPs. For more details on the power states
supported by the P-Tile Avalon-MM IP for PCIe, refer to section Power Management
Interface on page 70.
• Data Link Layer Packet Generator and Checker—This block is associated with the
DLLP’s 16-bit CRC and maintains the integrity of transmitted packets.
• Transaction Layer Packet Generator—This block generates transmit packets,
including a sequence number and a 32-bit Link CRC (LCRC). The packets are also
sent to the retry buffer for internal storage. In retry mode, the TLP generator
receives the packets from the retry buffer and generates the CRC for the transmit
packet.
• Retry Buffer—The retry buffer stores TLPs and retransmits all unacknowledged
packets in the case of NAK DLLP reception. In case of ACK DLLP reception, the
retry buffer discards all acknowledged packets.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
20
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
• ACK/NAK Packets—The ACK/NAK block handles ACK/NAK DLLPs and generates the
sequence number of transmitted packets.
• Transaction Layer Packet Checker—This block checks the integrity of the received
TLP and generates a request for transmission of an ACK/NAK DLLP.
• TX Arbitration—This block arbitrates transactions, prioritizing in the following
order:
— Initialize FC Data Link Layer packet
— ACK/NAK DLLP (high priority)
— Update FC DLLP (high priority)
— PM DLLP
— Retry buffer TLP
— TLP
— Update FC DLLP (low priority)
— ACK/NAK FC DLLP (low priority)
Figure 8. P-Tile Avalon-MM IP for PCI Express Transaction Layer Block Diagram
Avalon-MM Avalon-ST
RX RX
RX
User Avalon-MM
RAS
Data Link Layer
Avalon-MM Bridge
+
CONFIG CPL Timeout
Logic RAS Physical Layer
Avalon-MM Avalon-ST
TX TX
TX
The RAS (Reliability, Availability, and Serviceability) block includes a set of features to
maintain the integrity of the link.
For example: Transaction Layer inserts an optional ECRC in the transmit logic and
checks it in the receive logic to provide End-to-End data protection.
When the application logic sets the TLP Digest (TD) bit in the Header of the TLP, the P-
Tile Avalon-MM IP for PCIe will append the ECRC automatically.
The TX block sends out the TLPs that it receives as-is. It also sends the information
about non-posted TLPs to the Completion (CPL) Timeout Block for CPL timeout
detection.
The P-Tile Avalon-MM IP for PCI Express RX block consists of two main blocks:
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
21
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
• Filtering block: This module checks if the TLP is good or bad and generates the
associated error message and completion. It also tracks received completions and
updates the completion timeout (CPL timeout) block.
• RX Buffer Queue: The P-Tile IP for PCIe has separate queues for posted/non-
posted transactions and completions. This avoids head-of-queue blocking on the
received TLPs and provides flexibility to extract TLPs according to the PCIe
ordering rules.
TLP Filtering
P
MSG
ERR
MSG
Note: The Received CPL Processing block includes the CPL tracking mechanism.
When the Avalon-MM Bridge is used in this mode, the following modules are enabled:
• Read Data Mover (RDDM)
• Write Data Mover (WRDM)
• Bursting Master (BAM) in Non-Bursting Mode
The following figure shows how the DMA example design that you can generate using
the Intel Quartus Prime software interfaces with the P-Tile Avalon-MM IP to perform
DMA operations. If you are not using the provided DMA example design, you need to
implement your custom DMA Controller and BAR Interpreter in your application logic.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
22
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
Figure 10. P-Tile Avalon-MM IP in Endpoint Mode with Data Movers Enabled
DMA Example Design S P-Tile Avalon-MM IP ASTI Avalon-ST Sink M Avalon-MM Master
Memory S
ASTO Avalon-ST Source S Avalon-MM Slave
C Avalon Conduit
Qsys Interconnect ASTI
WASTO
ASTI
Write
WASTO data mover ASTO
WASTI ASTO
DMA M (512 bits) 512
S TX
Controller
ASTI Read
RASTO ASTO
ASTI
RASTO
ASTO
data mover P-Tile
RASTI ASTI
M (512 bits) Avalon-ST PCIe
Completion Interface Hard IP
Re-ordering
RX 512
C Bursting Master
BAR C M (non-bursting ASTO
M S mode) ASTI
Interpreter (512 bits)
In this DMA example design, the BAM is used in non-bursting mode by the host to
program the Control and Status registers of the DMA controller in the user Avalon-MM
space. The DMA controller, after being programmed, sends descriptor-fetching
instructions to the host via the RDDM. After the fetched descriptors are processed by
the WRDM and RDDM, status and/or MSI-X messages are sent to the host via the
WRDM in “Immediate” mode. In this mode, the data payload is embedded in bits
[31:0] or [63:0] of the fetched descriptors that the WRDM receives (depending on
whether a one- or two-dword immediate transfer is needed respectively). For more
details on immediate transfers, refer to Write Data Mover Avalon-ST Descriptor Sinks
on page 52.
The RDDM uses PCIe memory read TLPs and Avalon-MM write transactions (which can
be bursting transactions) to move large amounts of data from the host memory in
PCIe space to the local FPGA memory in Avalon-MM space. On the other hand, the
WRDM uses PCIe memory write TLPs and Avalon-MM read transactions to move large
amounts of data from the FPGA memory in Avalon-MM space to the host memory in
PCIe space. The Data Movers' transfers are controlled by descriptors that are provided
to the Data Movers through one of their Avalon-ST sink interfaces. The Data Movers
report the transfers’ status through their Avalon-ST source interfaces.
In this mode, the external master (in user logic) sends memory reads and writes
upstream via the Bursting Slave. The following modules are enabled:
• Bursting Slave (in bursting mode)
• Bursting Master (in non-bursting mode)
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
23
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
S Memory
512
TX
M Custom Bursting ASTO
DMA M S Slave P-Tile
S
Controller (512 bits) Avalon-ST
ASTI Completion Interface PCIe
Re-ordering Hard IP
RX 512
Bursting Master
M DMA CS C
M (non-bursting ASTO
Control/ mode) ASTI
BAR AccessLogic (512 bits)
The external Avalon-MM master can be a custom DMA controller that uses the
Bursting Slave in the IP core to send memory reads and writes upstream. These
memory reads and writes can be up to 512-bytes long. The reordering buffer in the IP
core reorders the Completion TLPs received over the PCIe link and sends them to the
Bursting Slave.
The Bursting Master provides the host with access to the registers and memory in the
Avalon-MM address space of the FPGA. It converts PCIe memory reads and writes to
Avalon-MM reads and writes.
Registers in the custom DMA controller can be programmed by software via the
Bursting Master port.
In this mode, the IP core needs to be able to process memory read and write TLPs
coming from the DMA controller that resides on the Endpoint side. The following
modules are enabled:
• Bursting Master (in bursting and non-bursting modes)
• Bursting Slave (in non-bursting mode)
• Control Register Access
Custom DMA Application Logic P-Tile Avalon-MM IP ASTO Avalon-ST Source M Avalon-MM Master
ASTI Avalon-ST Sink S Avalon-MM Slave
Qsys Interconnect
C Avalon Conduit
Control Register
ASTO
S Access 512
Memory (512 bits) ASTI
SS TX
P-Tile
M Bursting Slave Avalon-ST PCIe
S Local (non-bursting ASTO Completion Interface Hard IP
S Processor M S
mode) ASTI Re-ordering
(512 bits)
512
RX
C C Bursting ASTO
M Bursting S M Master
Slave (512 bits) ASTI
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
24
2. IP Architecture and Functional Description
UG-20237 | 2021.02.04
The IP core must be able to generate and process configuration reads and writes to
the Endpoint and to the Hard IP configuration registers. This is done via the
Configuration Slave. Since the DMA controller resides on the Endpoint side, its control
registers need to be programmed by the FPGA local processor. Using the Bursting
Slave (in non-bursting mode), the local processor can program the Endpoint control
registers for DMA operations. The Endpoint can also send updates of its DMA status to
the local processor via the Bursting Master.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
25
UG-20237 | 2021.02.04
Send Feedback
3. Parameters
This chapter provides a reference for all the parameters that are configurable in the
Intel Quartus Prime IP Parameter Editor for the P-Tile Avalon-MM IP for PCIe.
Root Port
Port Mode Native Endpoint Specifies the port type.
Native Endpoint
Intel Corporation. All rights reserved. Agilex, Altera, Arria, Cyclone, Enpirion, Intel, the Intel logo, MAX, Nios,
Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or
other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in ISO
accordance with Intel's standard warranty, but reserves the right to make changes to any products and services 9001:2015
at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any Registered
information, product, or service described herein except as expressly agreed to in 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. Parameters
UG-20237 | 2021.02.04
Figure 13. Intel P-Tile Avalon-MM Top-Level IP Parameter Editor for a Gen3x4 Hard IP
in Root Port Mode
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
27
3. Parameters
UG-20237 | 2021.02.04
Figure 14. Intel P-Tile Avalon-MM Top-Level IP Parameter Editor for a x8 Hard IP Mode
If you choose a x8 mode (either Gen4 or Gen3), the PCIe0 Settings and PCIe1 Settings tabs will appear.
Disabled
For a definition of prefetchable memory, refer to
BAR1 Type 32-bit non-prefetchable memory
the BAR0 Type description.
32-bit prefetchable memory
continued...
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
28
3. Parameters
UG-20237 | 2021.02.04
Disabled
For a definition of prefetchable memory, refer to
BAR3 Type 32-bit non-prefetchable memory
the BAR0 Type description.
32-bit prefetchable memory
Disabled
64-bit prefetchable memory For a definition of prefetchable memory and a
description of what happens when you select the
BAR4 Type 64-bit non-prefetchable memory
64-bit prefetchable memory option, refer to the
32-bit non-prefetchable memory BAR0 Type description.
32-bit prefetchable memory
Disabled
For a definition of prefetchable memory, refer to
BAR5 Type 32-bit non-prefetchable memory
the BAR0 Type description.
32-bit prefetchable memory
Disabled
4 KBytes - 12 bits
8 KBytes - 13 bits
16 KBytes - 14 bits
32 KBytes - 15 bits
64 KBytes - 16 bits
128 KBytes - 17 bits Specifies the size of the expansion ROM from 4
Expansion ROM
256 KBytes - 18 bits KBytes to 16 MBytes when enabled.
512 KBytes - 19 bits
1 MByte - 20 bits
2 MBytes - 21 bits
4 MBytes - 22 bits
8 MBytes - 23 bits
16 MBytes - 24 bits
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
29
3. Parameters
UG-20237 | 2021.02.04
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
30
3. Parameters
UG-20237 | 2021.02.04
Set Interrupt Pin for PF0 NO INT NO INT When Legacy Interrupts are
INTA not enabled, the only option
available is NO INT.
When Legacy Interrupts are
enabled, the only option
available is INTA.
1
Sets the number of
2 messages that the
PF0 Number of MSI 4 application can request in
1 the multiple message
messages requested 8
16 capable field of the Message
Control register.
32
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
31
3. Parameters
UG-20237 | 2021.02.04
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
32
3. Parameters
UG-20237 | 2021.02.04
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
33
3. Parameters
UG-20237 | 2021.02.04
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
34
3. Parameters
UG-20237 | 2021.02.04
Figure 16. Configuration, Debug and Extension Parameters (with Debug Toolkit
Enabled)
Endpoint Settings
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
35
3. Parameters
UG-20237 | 2021.02.04
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
36
UG-20237 | 2021.02.04
Send Feedback
4. Interfaces
4.1. Overview
The P-Tile Avalon-MM IP for PCIe includes many interface types to implement different
functions.These include:
• High-performance bursting master (BAM) and slave (BAS) Avalon-MM interfaces to
translate between PCIe TLPs and Avalon-MM memory-mapped reads and writes
• Read and Write Data Movers to transfer large blocks of data
• Standard PCIe serial interface to transfer data over the PCIe link
• System interfaces for interrupts, clocking, reset
• Optional reconfiguration interface to dynamically change the value of
Configuration Space registers at run-time
• Optional status interface for debug
Unless otherwise noted, all interfaces to the Application Layer are synchronous to the
rising edge of app_clk. You enable the interfaces using the component IP Parameter
Editor.
Read Data Mover (RDDM) interface: This interface transfers DMA data from the PCIe
system memory to the memory in Avalon-MM address space.
Write Data Mover (WRDM) interface: This interface transfers DMA data from the
memory in Avalon-MM address space to the PCIe system memory.
Bursting Master (BAM) interface: This interface provides host access to the registers
and memory in Avalon-MM address space. The Busting Master module converts PCIe
Memory Reads and Writes to Avalon-MM Reads and Writes.
Bursting Slave (BAS) interface: This interface allows the user application in the FPGA
to access the PCIe system memory. The Bursting Slave module converts Avalon-MM
Reads and Writes to PCIe Memory Reads and Writes.
Control Register Access (CRA) interface: This optional, 32-bit Avalon-MM Slave
interface provides access to the Control and Status registers. You must enable this
interface when you enable address mapping for any of the Avalon-MM slaves or if
interrupts are implemented. The address bus width of this interface is fixed at 15 bits.
The prefix for this interface is cra*.
The modular design of the P-Tile Avalon-MM IP for PCIe lets you enable just the
interfaces required for your application.
Intel Corporation. All rights reserved. Agilex, Altera, Arria, Cyclone, Enpirion, Intel, the Intel logo, MAX, Nios,
Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or
other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in ISO
accordance with Intel's standard warranty, but reserves the right to make changes to any products and services 9001:2015
at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any Registered
information, product, or service described herein except as expressly agreed to in 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. Interfaces
UG-20237 | 2021.02.04
Bursting Mode: 8
cycles Bursting Mode: 64
Bursting Slave 512 bits dword/byte
Non-Bursting Mode: 1 Non-Bursting Mode: 1
cycle
Bursting Mode: 8
cycles Bursting Mode: 32
Bursting Master 512 bits dword/byte
Non-Bursting Mode: 1 Non-Bursting Mode: 1
cycle
Control Register
32 bits 1 cycle byte 1
Access
Note: The number of read requests issued by the Write Data Mover's Avalon-MM Read
Master is controlled by the assertion of waitrequest by the connected slave(s). The
Read Master can handle 128 outstanding cycles of data. You cannot set this parameter
in Platform Designer. The slave needs to correctly back-pressure the master once it
cannot handle the incoming requests.
Note: The 512-bit Bursting Slave interface does not support transactions where all byte
enables are set to 0.
Note: All transfers of four bytes or more are done in multiples of dwords.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
38
4. Interfaces
UG-20237 | 2021.02.04
pin_perst_n Input Asynchrono EP/RP This is an active-low input to the PCIe Hard IP, and
us implements the PERST# function defined by the PCIe
specification.
p<n>_reset_status_n Output Synchronou EP/RP This active-low signal is held low until pin_perst_n has
s been deasserted and the PCIe Hard IP has come out of
reset. This signal is synchronous to p<n>_app_clk.
When port bifurcation is used, there is one such signal for
each interface. The signals are differentiated by the
prefixes p<n>.
p<n>_link_req_rst_n Output Synchronou EP/RP This active-low signal is asserted by the PCIe Hard IP
s when it is about to go into reset.
The Avalon-MM Bridge IP will reset all its PCIe-related
registers and queues including anything related to tags.
It will also stop sending packets to the PCIe Hard IP until
the Bus Master Enable bit is set again. The Bridge will
also ignore any packet received from the PCIe Hard IP.
p<n>_pld_warm_rst_r Input Synchronou EP/RP This active-high signal is asserted by the user logic in
dy s response to p<n>_link_req_rst_n when it has
completed its pre-reset tasks.
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
39
4. Interfaces
UG-20237 | 2021.02.04
ninit_done Input Asynchrono EP/RP A "1" on this active-low signal indicates that the FPGA
us device is not yet fully configured. A "0" indicates the
device has been configured and is in normal operating
mode.
Intel recommends using the output of the Reset Release
Intel Fpga IP to drive this ninit_done input. For more
details on this IP, refer to the Application Note AN891 at
https://www.intel.com/content/dam/www/
programmable/us/en/pdfs/literature/an/an891.pdf
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
40
4. Interfaces
UG-20237 | 2021.02.04
Figure 17. P-Tile Avalon-MM IP for PCIe in Endpoint Mode with Data Movers Top-Level
Block Diagram
tx_p_out[15:0]
p0_wrdm_read_o tx_n_out[15:0]
p0_wrdm_response_i[1:0] Serial Data
p0_wrdm_byteenable_o[63:0] rx_p_in[15:0]
p0_wrdm_address_o[63:0] rx_n_in[15:0]
Write Data Mover Interface: p0_wrdm_readdata_i[511:0]
Writes Data from FPGA p0_wrdm_burst_count_o[3:0] xcvr_reconfig_clk
Memory to Host Memory p0_wrdm_wait_request_i
p0_wrdm_readdatavalid_i xcvr_reconfig_address[25:0]
p0_wrdm_pfnum_o[1:0] xcvr_reconfig_read
xcvr_reconfig_readdata[7:0] PHY
p0_wrdm_tx_valid_o Reconfiguration
p0_wrdm_tx_data_o[31:0] xcvr_reconfig_readdatavalid (Optional)
xcvr_reconfig_write
Write Data Mover p0_wrdm_prio_ready_o
xcvr_reconfig_writedata[7:0]
Priority Descriptor p0_wrdm_prio_valid_i xcvr_reconfig_waitrequest
Queue p0_wrdm_prio_data_i[173:0]
p0_bus_master_enable_o[1:0]
p0_tl_cfg_func_o[2:0]
p0_bam_bar_o[2:0] Configuration Output
p0_tl_cfg_add_o[4:0] Interface
p0_bam_pfnum_o[1:0]
p0_tl_cfg_ctl_o[15:0]
p0_bam_waitrequest_i
p0_bam_response_i[1:0]
Bursting Avalon-MM p0_bam_address_o[BAM_ADDR_WIDTH-1:0]
Master Interface p0_bam_byteenable_o[63:0]
p0_bam_read_o
p0_bam_readdata_i[511:0]
p0_bam_readdatavalid_i
p0_bam_write_o
p0_bam_writedata_o[511:0]
p0_bam_burstcount_o[3:0]
p0_pld_link_req_rst_o
p0_pld_warm_rst_rdy_i
p0_reset_status_n
Reset pin_perst_n
ninit_done
dummy_user_avmm_rst
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
41
4. Interfaces
UG-20237 | 2021.02.04
Figure 18. P-Tile Avalon-MM IP for PCIe in Endpoint Mode Top-Level Block Diagram
p0_tl_cfg_func_o[2:0]
Configuration Output p0_tl_cfg_add_o[4:0]
Interface
p0_tl_cfg_ctl_o[15:0]
p0_hip_reconfig_clk
p0_hip_reconfig_address[20:0]
p0_hip_reconfig_read Hard IP
p0_hip_reconfig_readdata[7:0] Reconfiguration
p0_hip_reconfig_readdatavalid (Optional)
p0_hip_reconfig_write
p0_hip_reconfig_writedata[7:0]
p0_hip_reconfig_waitrequest
tx_p_out[15:0]
p0_bas_waitrequest_o tx_n_out[15:0]
p0_bas_pfnum_i[1:0] Serial Data
p0_bas_byteenable_i[63:0] rx_p_in[15:0]
p0_bas_address_i[63:0] rx_n_in[15:0]
Bursting Avalon-MM p0_bas_readdata_o[511:0]
Slave Interface p0_bas_read_i xcvr_reconfig_clk
p0_bas_readdatavalid_o
p0_bas_write_i xcvr_reconfig_address[25:0]
xcvr_reconfig_read
p0_bas_writedata_i[511:0] PHY
p0_bas_burstcount_i[3:0] xcvr_reconfig_readdata[7:0]
Reconfiguration
p0_bas_response_o[1:0] xcvr_reconfig_readdatavalid (Optional)
xcvr_reconfig_write
xcvr_reconfig_writedata[7:0]
xcvr_reconfig_waitrequest
p0_bus_master_enable_o[1:0]
p0_bam_bar_o[2:0]
p0_bam_pfnum_o[1:0]
p0_bam_waitrequest_i
p0_bam_response_i[1:0]
Bursting Avalon-MM p0_bam_address_o[BAM_ADDR_WIDTH-1:0]
Master Interface p0_bam_byteenable_o[63:0]
p0_bam_read_o
p0_bam_readdata_i[511:0]
p0_bam_readdatavalid_i
p0_bam_write_o
p0_bam_writedata_o[511:0]
p0_bam_burstcount_o[3:0]
p0_pld_link_req_rst_o
p0_pld_warm_rst_rdy_i
p0_reset_status_n
Reset pin_perst_n
ninit_done
dummy_user_avmm_rst
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
42
4. Interfaces
UG-20237 | 2021.02.04
Avalon-MM Type Data Bus Width Max Burst Size Byte Enable Max Outstanding
Granularity Read Request
These interfaces are standard Avalon interfaces. For timing diagrams, refer to the
Avalon Interface Specifications.
Note: The number of read requests issued by the Write Data Mover's Avalon-MM Read
Master is controlled by the assertion of waitrequest by the connected slave(s). The
Read Master can handle 128 outstanding cycles of data. You cannot set this parameter
in Platform Designer. The slave needs to correctly back-pressure the master once it
cannot handle the incoming requests.
Note: The 512-bit Bursting Slave interface does not support transactions where byte enables
are set to 0.
Related Information
Avalon Interface Specifications
The Bursting Avalon-MM Master module has one user-visible Avalon-MM Master
interface.
You enable this interface by turning On the Enable Bursting Avalon-MM Master
interface option in the Avalon-MM Settings tab of the IP Parameter Editor.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
43
4. Interfaces
UG-20237 | 2021.02.04
waitrequestAllowance = 8
The master can still issue 8 transfers after
bam_waitrequest_i is asserted.
In non-bursting mode, the Bursting Avalon-MM Master module has the same interface
as in bursting mode, except for some limitations in the size of transactions as
described below:
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
44
4. Interfaces
UG-20237 | 2021.02.04
The Bursting Avalon-MM Slave module has one user-visible Avalon-MM slave interface.
You enable this interface by turning On the Enable Bursting Avalon-MM Slave
interface option in the IP Parameter Editor.
For more details on these interface signals, refer to the Avalon Interface
Specifications.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
45
4. Interfaces
UG-20237 | 2021.02.04
maximumPendingReadTrans
actions: 64
bas_readdatavalid_o O The maximum number of
pending reads that the
Avalon-MM slave can queue
up is 64.
The Bursting Avalon-MM Slave module supports bursting mode while operating in Root
Port mode.
This module can also operate in non-bursting mode. In this mode, the module
interface is the same as in bursting mode except that it has limitations in the size of
transactions as described below:
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
46
4. Interfaces
UG-20237 | 2021.02.04
This interface provides the Read data from the Host memory to the user application.
The rddm_address_o value is set within the descriptor destination address.
Table 29. Read Data Mover Avalon-MM Write Master and Conduit
Signal Name Direction Description Platform Designer
Interface Name
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
47
4. Interfaces
UG-20237 | 2021.02.04
The Read Data Mover has two Avalon-ST sink interfaces to receive the descriptors that
define the data transfers to be executed. One of the interfaces receives descriptors for
normal data transfers, while the other receives descriptors for high-priority data
transfers.
The descriptor format for the Read Data Mover is described in the section Descriptor
Format for Data Movers.
Note: The user application is responsible for performing the scheduling between priority and
normal queues. No arbitration is performed inside the Read Data Mover.
Table 30. Read Data Mover Avalon-ST Normal Descriptor Sink Interface
Signal Name Direction Description Platform Designer
Interface Name
(3) When the single destination bit is set, the same destination address is used for all the
transfers. If the bit is not set, the address increments for each transfer.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
48
4. Interfaces
UG-20237 | 2021.02.04
[147] : reserved
[146] : reserved
[145:128]: number of
dwords to transfer up to 1
MB
[127:64]: destination
Avalon-MM address
[63:0]: source PCIe address
Table 31. Read Data Mover Avalon-ST Priority Descriptor Sink Interface
Signal Name Direction Description Platform Designer
Interface Name
The Read Data Mover internally supports two queues of descriptors. The priority queue
has absolute priority over the normal queue. Use it carefully to avoid starving the
normal queue.
If the Read Data Mover receives a descriptor on the priority interface while processing
a descriptor from the normal queue, it switches to processing descriptors from the
priority queue as soon as it has completed the current descriptor. The Read Data
Mover resumes processing the descriptors from the normal queue once the priority
queue is empty. Do not use the same descriptor ID simultaneously in the two queues
as there would be no way to distinguish them on the Status Avalon-ST source
interface.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
49
4. Interfaces
UG-20237 | 2021.02.04
The Read Data Mover handles one descriptor at a time. When a descriptor has been
processed (the memory command has been issued to the PCIe link), the Read Data
Mover will read the next descriptor from the priority or normal descriptor interface.
Note: There is no buffer to store descriptors inside the Read Data Mover. In Intel's DMA
design example, the buffer is located in the external DMA controller and supports up
to 128 descriptors.
Software should only send new descriptors when the Read Data Mover has processed
all previously sent descriptors. The P-Tile Avalon-MM IP indicates the completion of the
Read Data Mover's data processing by performing an immediate write to the system
memory using its Write Data Mover. For more details, refer to the Read DMA Example
section in the P-tile Avalon Memory Mapped (Avalon-MM) IP for PCI Express Design
Example User Guide (see the link in the Related Information below).
Related Information
Read DMA Example
This interface does not have a ready input. The application logic must always be ready
to receive status information for any descriptor that it has sent to the Read Data
Mover.
The Read Data Mover copies over the application specific bits in the rddm_tx_data_o
bus from the corresponding descriptor. A set priority bit indicates that the descriptor is
from the priority descriptor sink.
A status word is output on this interface when the processing of a descriptor has
completed, including the reception of all completions for all memory read requests.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
50
4. Interfaces
UG-20237 | 2021.02.04
This interface reads data from the Avalon-MM Read Master interface and writes it to
the Host memory.
Table 33. Write Data Mover Avalon-MM Read Master and Conduit
Signal Name Direction Description Platform Designer
Interface Name
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
51
4. Interfaces
UG-20237 | 2021.02.04
The Write Data Mover has two Avalon-ST sink interfaces to receive the descriptors that
define the data transfers to be executed. One of the interfaces receives descriptors for
normal data transfers, while the other receives descriptors for high-priority data
transfers.
The descriptor format for the Write Data Mover is described in the section Descriptor
Formats for Data Movers.
Note: The user application is responsible for performing the scheduling between priority and
normal queues. No arbitration is performed inside the Write Data Mover.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
52
4. Interfaces
UG-20237 | 2021.02.04
Table 34. Write Data Mover Avalon-ST Normal Descriptor Sink Interface
Signal Name Direction Description Platform Designer
Interface Name
Table 35. Write Data Mover Avalon-ST Priority Descriptor Sink Interface
Signal Name Direction Description Platform Designer
Interface Name
(4) When the single source bit is set, the same source address is used for all the transfers. If the
bit is not set, the address increments for each transfer. Note that in single source mode, the
PCIe address and Avalon-MM address must be 64-byte aligned.
(5) When set, the immediate bit indicates immediate writes. Immediate writes of one or two
dwords are supported. For immediate transfers, bits [31:0] or [63:0] contain the payload for
one- or two-dword transfers respectively. The two-dword immediate writes cannot cross a 4k
boundary.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
53
4. Interfaces
UG-20237 | 2021.02.04
The Write Data Mover internally supports two queues of descriptors. The priority
queue has absolute priority over the normal queue, so it should be used carefully to
avoid starving the normal queue.
If the Write Data Mover receives a descriptor on the priority interface while processing
a descriptor from the normal queue, it switches to processing descriptors from the
priority queue after it has completed processing the current descriptor. The Write Data
Mover resumes processing descriptors from the normal queue once the priority queue
is empty. Do not use the same descriptor ID simultaneously in the two queues as
there would be no way to distinguish them on the Status Avalon-ST source interface.
The Write Data Mover handles one descriptor at a time. When a descriptor has been
processed, the Write Data Mover will read the next descriptor from the priority or
normal descriptor interface.
Note: There is no buffer to store descriptors inside the Write Data Mover. In Intel's DMA
design example, the buffer is located in the external DMA controller and supports up
to 128 descriptors.
Software should only send new descriptors when the Write Data Mover has processed
all previously sent descriptors. The Write Data Mover indicates the completion of the
its data processing by performing an immediate write to the system memory using the
last descriptor in the descriptor table. For more details, refer to the Write DMA
Example section in the P-tile Avalon Memory Mapped (Avalon-MM) IP for PCI Express
Design Example User Guide (see the link in the Related Information below).
Related Information
Write DMA Example
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
54
4. Interfaces
UG-20237 | 2021.02.04
This interface does not have a ready input. The application logic must always be ready
to receive status information for any descriptor that it has sent to the Write Data
Mover.
The ready latency does not matter because there is no ready input.
The Write Data Mover copies over the application specific bits in the wrdm_tx_data_o
bus from the corresponding descriptor. A set priority bit indicates that the descriptor
was from the priority descriptor sink.
The Read and Write Data Movers uses descriptors to transfer data. The descriptor
format is fixed and specified below:
[148]: single destination When the single destination bit is set, N/A
the same destination address is used
for all the transfers. If the bit is not
set, the address increments for each
transfer.
[147]: single source N/A When the single source bit is set, the
same source address is used for all the
transfers. If the bit is not set, the
address increments for each transfer.
Note that in single source mode, the
PCIe address and Avalon-MM address
must be 64-byte aligned.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
55
4. Interfaces
UG-20237 | 2021.02.04
[145:128]: transfer size Number of dwords to transfer (up to 1 Number of dwords to transfer (up to 1
MB). MB).
Application-Specific Bits
Three application-specific bits (bits [151:149] ) from the Write Data Mover and Read
Data Mover Status Avalon-ST Source interfaces control when interrupts are generated.
0 1 1 Interrupt always
0 1 0 Interrupt if error
0 0 1 No interrupt
The External DMA Controller makes the decision whether to drop the status word and
whether to generate an interrupt as soon as it receives the status word from the Data
Mover. When the generation of an interrupt is requested, and the corresponding RI or
WI register does enable interrupts, the DMA Controller generates the interrupt. It does
so by queuing an immediate write to the Write Data Mover's descriptor queue
(specified in the corresponding interrupt control register) using the MSI address and
message data provided in that register.
Avalon-MM DMA operations are used to transfer large blocks of data. The P-Tile
Avalon-MM IP for PCIe can support DMA operations with an external descriptor
controller implemented in the user application.
To interface to the DMA logic included in the P-Tile Avalon-MM IP for PCIe, the custom
DMA descriptor controller must implement the following functions:
• It must provide the descriptors to the Read Data Mover and Write Data Mover in
the P-Tile IP.
• It must process the status that the DMA Avalon-MM Read and Write masters
provide.
The following figure shows the Avalon-MM DMA Bridge when a custom external
descriptor controller drives the Read and Write Data Movers.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
56
4. Interfaces
UG-20237 | 2021.02.04
Figure 19. Avalon-MM DMA Bridge Block Diagram with Externally Instantiated
Descriptor Controller
Intel FPGA
Avalon-MM DMA with
external Descriptor P-Tile Avalon-MM IP for PCI Express IP Core
Controller
Avalon-MM DMA Bridge (Soft Logic)
Hard IP Interface
Avalon-ST (wrdm_tx) Write Data Mover Write MWr
32 Bits Status Source Data Mover
PCIe
RX X16
This configuration includes the PCIe Read DMA and Write DMA Data Movers. The
custom DMA descriptor controller must connect to the following Data Mover interfaces:
• PCIe Read Descriptor Sinks: These are two 174-bit, Avalon-ST sink interfaces (for
normal and priority descriptors). The custom DMA descriptor controller drives read
descriptor table entries on this bus. For more details on this interface, refer to
Read Data Mover Avalon-ST Descriptor Sinks on page 48.
• PCIe Write Descriptor Sinks: These are two 174-bit, Avalon-ST sink interfaces (for
normal and priority descriptors). The custom DMA descriptor controller drives
write descriptor table entries on this bus. For more details on this interface, refer
to Write Data Mover Avalon-ST Descriptor Sinks on page 52.
• PCIe Read Data Mover Status Source: The Read Data Mover reports status to the
custom DMA descriptor controller on this interface. For more details on this
interface, refer to Read Data Mover Status Avalon-ST Source on page 50.
• PCIe Write Data Mover Status Source: The Write Data Mover reports status to the
custom DMA descriptor controller on this interface. For more details on this
interface, refer to Write Data Mover Status Avalon-ST Source on page 55.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
57
4. Interfaces
UG-20237 | 2021.02.04
The High Performance Avalon-MM Slave has a 256-bit-wide data bus. It supports up to
16-cycle bursts with dword granularity byte enable on the first and last cycles of a
write burst and for single-cycle read bursts. It also supports optional address mapping
when the address bus is less than 64-bit wide.
This interface is optional. You enable it by turning On the Enable Bursting Slave
option in the GUI.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
58
4. Interfaces
UG-20237 | 2021.02.04
The bursting Avalon-MM master is always enabled in Root Port mode and is not
associated with any BAR. Packets targeting addresses outside of the range of the base
and limit registers are forwarded to the host via the HPRXM master. The bursting
Avalon-MM master has a 256-bit-wide data bus and supports up to 16-cycle bursts
with dword granularity byte enable on the first and last cycles of a write burst and on
single-cycle read bursts. Byte granularity access is supported for single-cycle one-
dword or smaller transactions.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
59
4. Interfaces
UG-20237 | 2021.02.04
4.3.2.3. 32-Bit Control Register Access (CRA) Slave (Root Port only)
The CRA interface provides access to the control and status registers of the Avalon-MM
bridge. This interface has the following properties:
• 32-bit data bus
• Supports a single transaction at a time
• Supports single-cycle transactions (no bursting)
Note: When the Avalon-MM Hard IP for PCIe IP Core is in Root Port mode, and the
application logic issues a CfgWr or CfgRd via the CRA interface, it needs to fill the Tag
field in the TLP Header with the value 0x10 to ensure that the corresponding
Completion gets routed to the CRA interface correctly. If the application logic sets the
Tag field to some other value, the Avalon-MM Hard IP for PCIe IP Core does not
overwrite that value with the correct value.
cra_address_i[14:0] I
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
60
4. Interfaces
UG-20237 | 2021.02.04
Note: The value of the variable b depends on which configuration is active (1x16, 2x8 or
4x4).
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
61
4. Interfaces
UG-20237 | 2021.02.04
• 6'h11: S_L0
• 6'h12: S_L0S
• 6'h13: S_L123_SEND_EIDLE
• 6'h14: S_L1_IDLE
• 6'h15: S_L2_IDLE
• 6'h16: S_L2_WAKE
• 6'h17: S_DISABLED_ENTRY
• 6'h18: S_DISABLED_IDLE
• 6'h19: S_DISABLED
• 6'h1A: S_LPBK_ENTRY
• 6'h1B: S_LPBK_ACTIVE
• 6'h1C: S_LPBK_EXIT
• 6'h1D: S_LPBK_EXIT_TIMEOUT
• 6'h1E: S_HOT_RESET_ENTRY
• 6'h1F: S_HOT_RESET
• 6'h20: S_RCVRY_EQ0
• 6'h21: S_RCVRY_EQ1
• 6'h22: S_RCVRY_EQ2
• 6'h23: S_RCVRY_EQ3
Legacy interrupts, MSI, and MSI-X interrupts are all controlled and generated
externally to the Avalon-MM IP to ensure total flexibility of allocating interrupt
resources based on the user’s application needs.
To support domain-isolation, legacy interrupt messages, MSI, and MSI-X TLPs need to
be sent with the appropriate source IDs.
The following figure shows an example integrating an external interrupt controller with
the P-Tile Avalon-MM IP. The interrupt controller takes interrupt requests from the
external DMA controller as well as those from the user application.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
62
4. Interfaces
UG-20237 | 2021.02.04
Avalon-MM master
for MSI/MSI-X M S Bursting
generation Slave
PF & VF Numbers
Interrupt to VFm, n
Mapping
tl_cfg_ctl_o[15:0]
Interrupt to MSI/MSI-X tl_cfg_add_o[4:0]
Mapping
tl_cfg_func_o[2:0]
4.6.2. MSI
If MSI or MSI-X are enabled at IP configuration time, the external interrupt controller
can generate MSI/MSI-X transactions by issuing memory writes to the Bursting Slave
or using the immediate write feature of the Write Data Mover, especially if signaling
the completion of a DMA transfer by the Write Data Mover. The interrupt controller
gets the address and data information to generate the MSI/MSI-X messages from the
MSI or MSI-X capability registers in the Transaction Layer in the P-Tile IP.
MSI interrupts are signaled on the PCI Express link using a single dword Memory Write
TLP. The user application issues an MSI request (MWr) through the Avalon-ST interface
and updates the configuration space register using the MSI interface.
For more details on the MSI Capability Structure, refer to Figure 55 on page 119.
The Mask Bits register and Pending Bits register are 32 bits in length each, with each
potential interrupt message having its own mask bit and pending bit. If bit[0] of the
Mask Bits register is set, interrupt message 0 is masked. When an interrupt message
is masked, the MSI for that vector cannot be sent. If software clears the mask bit and
the corresponding pending bit is set, the function must send the MSI request at that
time.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
63
4. Interfaces
UG-20237 | 2021.02.04
You should obtain the necessary MSI information (such as the message address and
data) from the configuration output interface (tl_cfg_*) to create the MWr TLP in
the format shown below to be sent via the Avalon-ST interface.
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Fmt Type R T T E Attr AT 0 0 0 0Length
Byte 0 0 1 1 0 0 0 0 0 R TC R At tr H D P 00 0 0 0 0 0 1
Byte 4 Requester ID Tag Last DW First DW
0000 1111 Header
Byte 8 MSI Message Address [63:32]
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
64
4. Interfaces
UG-20237 | 2021.02.04
The following figure shows the timings of msi_pnd_* signals in three scenarios. The
first scenario shows the case when the MSI pending bits register is not used. The
second scenario shows the case when only physical function 0 is enabled and the MSI
pending bits register is used. The last scenario shows the case when four physical
functions are enabled and the MSI pending bits register is used.
p<n>_app_clk
msi_pnd_func_i[2:0] 0x0
msi_pnd_addr_i[1:0] 0x0 0x1 0x2 0x3 0x0 0x1 0x2 0x3 0x0 0x1 0x2 0x3 0x0 0x1 0x2 0x3
msi_pnd_byte_i[7:0] B0 B1 B2 B3 B0 B1 B2 B3 B0 B1 B2 B3 B0 B1 B2 B3
p<n>_app_clk
msi_pnd_func_i[2:0] 0x0 0x1 0x0 0x1
msi_pnd_addr_i[1:0] 0x0 0x1 0x2 0x3 0x0 0x1 0x2 0x3 0x0 0x1 0x2 0x3 0x0 0x1 0x2 0x3
msi_pnd_byte_i[7:0] B0 B1 B2 B3 B0 B1 B2 B3 B0 B1 B2 B3 B0 B1 B2 B3
Root Complex
8 Requested
2 Allocated Interrupt
Block
Interrupt Register
The following table describes three example implementations. The first example
allocates all 32 MSI messages. The second and third examples only allocate 4
interrupts.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
65
4. Interfaces
UG-20237 | 2021.02.04
32 4 4
System Error 31 3 3
MSI interrupts generated for Hot Plug, Power Management Events, and System Errors
always use Traffic Class 0. MSI interrupts generated by the Application Layer can use
any Traffic Class. For example, a DMA that generates an MSI at the end of a
transmission can use the same traffic control as was used to transfer data.
Avalon-MM
IRQ Interrupt Request 0 single-dword MWR TLPs
Generation Arbitration &
TLP Generator msi_pnd_*
App Layer
App Layer
4.6.3. MSI-X
The P-Tile Avalon-MM IP provides a Configuration Intercept Interface. User soft logic
can monitor this interface to get MSI-X Enable and MSI-X function mask related
information. User application logic needs to implement the MSI-X tables for all PFs and
VFs at the memory space pointed to by the BARs as a part of your Application Layer.
For more details on the MSI-X related information that you can obtain from the
Configuration Intercept Interface, refer to the MSI-X Registers section in the Registers
chapter.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
66
4. Interfaces
UG-20237 | 2021.02.04
MSI-X is an optional feature that allows the user application to support large amount
of vectors with independent message data and address for each vector.
When MSI-X is supported, you need to specify the size and the location (BARs and
offsets) of the MSI-X table and PBA. MSI-X can support up to 2048 vectors per
function versus 32 vectors per function for MSI.
A function is allowed to send MSI-X messages when MSI-X is enabled and the function
is not masked. The application uses the Configuration Output Interface (address 0x0C
bit[5:4]) or Configuration Intercept Interface to access this information.
When the application needs to generate an MSI-X, it will use the contents of the MSI-X
Table (Address and Data) and generate a Memory Write through the Avalon-ST
interface.
You can enable MSI-X interrupts by turning on the Enable MSI-X option under the
PCI Express/PCI Capabilities tab in the parameter editor. If you turn on the
Enable MSI-X option, you should implement the MSI-X table structures at the
memory space pointed to by the BARs as a part of your Application Layer.
The MSI-X Capability Structure contains information about the MSI-X Table and PBA
Structure. For example, it contains pointers to the bases of the MSI-X Table and PBA
Structure, expressed as offsets from the addresses in the function's BARs. The
Message Control register within the MSI-X Capability Structure also contains the MSI-X
Enable bit, the Function Mask bit, and the size of the MSI-X Table. For a picture of the
MSI-X Capability Structure, refer to Figure 57 on page 120.
MSI-X interrupts are standard Memory Writes, therefore Memory Write ordering rules
apply.
Example:
Offset 0 0x0
If the application needs to generate an MSI-X interrupt (vector 1), it will read the MSI-
X Table information, generate a MWR TLP through the Avalon-ST interface and assert
the corresponding PBA bits (bit[1]) in a similar fashion as for MSI generation.
The generated TLP will be sent to address 0x00000001_BBBB0000 and the data will
be 0x00000002. When the MSI-X has been sent, the application can clear the
associated PBA bits.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
67
4. Interfaces
UG-20237 | 2021.02.04
Vector Control Message Data Message Upper Address Message Address Entry (N - 1) Base + (N - 1) × 16
c. The host calculates the address of the <nth> entry using the following
formula:
2. When Application Layer has an interrupt, it drives an interrupt request to the IRQ
Source module.
3. The IRQ Processor reads the entry in the MSI-X table.
a. If the interrupt is masked by the Vector_Control field of the MSI-X table,
the interrupt remains in the pending state.
b. If the interrupt is not masked, IRQ Processor sends Memory Write Request to
the TX slave interface. It uses the address and data from the MSI-X table. If
Message Upper Address = 0, the IRQ Processor creates a three-dword
header. If the Message Upper Address > 0, it creates a 4-dword header.
4. The host interrupt service routine detects the TLP as an interrupt and services it.
Related Information
• Floor and ceiling functions
• PCI Local Bus Specification, Rev. 3.0
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
68
4. Interfaces
UG-20237 | 2021.02.04
Hot Plug support means that the device can be added to or removed from a system
during runtime. The Hot Plug Interface in the P-Tile Avalon-MM IP for PCIe allows an
Intel FPGA with this IP to safely provide this capability.
This section describes the signals reported by the on-board hot plug components in
the Downstream Port. This interface is available only if the Slot Status Register
of the PCI Express Capability Structure is enabled.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
69
4. Interfaces
UG-20237 | 2021.02.04
Software programs the device into a D-state by writing to the Power Management
Control and Status register in the PCI Power Management Capability
Structure. The power management output signals indicate the current power state.
The IP core supports the two mandatory power states: D0 (full power) and D3
(preparation for a loss of power). It does not support the optional D1 and D2 low-
power states.
The correspondence between the device power states (D states) and link power states
(L states) is as follows:
D0 L0
D1 (not supported) L1
D2 (not supported) L1
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
70
4. Interfaces
UG-20237 | 2021.02.04
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
71
4. Interfaces
UG-20237 | 2021.02.04
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
72
4. Interfaces
UG-20237 | 2021.02.04
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
73
4. Interfaces
UG-20237 | 2021.02.04
[15]: reserved
[14]: 10-bit tag requester enable
(cfg_10b_tag_req_en)
[13]: VF 10-bit tag requester enable
(cfg_vf_10b_tag_req_en)
[12]: PRS_RESP_FAILURE [7:3]: reserved
5'h15 (cfg_prs_response_failure) [2:0]: ARI function group
(cfg_ari_func_grp)
[11]: PRS_UPRGI (cfg_prs_uprgi)
[10]: PRS_STOPPED
(cfg_prs_stopped)
[9]: PRS_RESET (cfg_prs_reset)
[8]: PRS_ENABLE (cfg_prs_enable)
PRS_OUTSTANDING_ALLOCATION
5'h16 (cfg_prs_outstanding_allocatio
n) [15:0]
PRS_OUTSTANDING_ALLOCATION
5'h17 (cfg_prs_outstanding_allocatio
n) [31:16]
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
74
4. Interfaces
UG-20237 | 2021.02.04
5'h1E N/A
5'h1F N/A
tl_cfg_ctl_0[15:0] PF0 DATA0 PF0 DATA1 PF0 DATA2 PF0 DATA3 PF1 DATA0 PF1 DATA1 PF1 DATA2
tl_cfg_func_0[2:0] 0 1
Note: This interface can be used in Endpoint and Root Port modes. It must be enabled if
Root Port mode is selected.
In Root Port mode, the application logic uses the Hard IP reconfiguration interface to
access its PCIe configuration space to perform link control functions (such as Hot
Reset, link disable, or link retrain).
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
75
4. Interfaces
UG-20237 | 2021.02.04
Reconfiguration
clock
50 MHz - 125 MHz
hip_reconfig_clk I EP/RP
(Range)
100 MHz
(Recommended)
Avalon-MM read
data valid. When
asserted, the data
on
hip_reconfig_cl
hip_reconfig_readdatavalid_o O EP/RP
hip_reconfig_re k
addata_o[7:0] is
valid.
hip_reconfig_cl
hip_reconfig_address_i[20:0] I Avalon-MM address EP/RP
k
Reading from the Hard IP reconfiguration interface of the P-Tile Avalon-MM IP for PCI
Express retrieves the current value at a specific address. Writing to the reconfiguration
interface changes the data value at a specific address. Intel recommends that you
perform read-modify-writes when writing to a register, because two or more features
may share the same reconfiguration address.
Modifying the PCIe configuration registers directly affects the behavior of the PCIe
device.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
76
4. Interfaces
UG-20237 | 2021.02.04
Figure 27. Timing Diagram to Perform Read and Write Operations Using the Hard IP
Reconfiguration Interface
The following diagram and table show the address offsets for physical function 0
(PF0), User Avalon-MM Port Configuration Register and Debug (DBI) Register.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
77
4. Interfaces
UG-20237 | 2021.02.04
0x104200 Debug_DBI_Data/Debug_DBI_Addr
0x001000
PF0 PCie Configuration Registers
0x000000
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
78
4. Interfaces
UG-20237 | 2021.02.04
Debug (DBI) Register 0x104200 to 0x104204 Refer to Using the Debug Register
Interface Access on page 79 for more
details.
For example, if the application wants to read the MSI Capability Register of PF0, it will
issue a Read with address 0x0050 to target the MSI Capability Structure of PF0.
User application needs to program the VSEC field (0x104068 bit[0]) first. Then all
accesses from the user Avalon-MM interface starting at offset 0xD00 will be translated
to VSEC configuration space registers.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
79
4. Interfaces
UG-20237 | 2021.02.04
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
80
4. Interfaces
UG-20237 | 2021.02.04
HIP reconfig addr 0x104200 0x104201 0x104202 0x104203 0x104204 0x104205 0x104206 0x104207
HIP reconfig writedata 0x01 0x23 0x45 0x67 ADDR CTRL 0x4
HIP reconfig addr 0x104204 0x104205 0x104206 0x104207 0x104207 0x104200 0x104201 0x104202 0x104203
These signals are present when you turn on Enable PHY reconfiguration on the
Top-Level Settings tab using the parameter editor.
Please note that the PHY reconfiguration interface is shared among all the PMA quads.
Reconfiguration clock
xcvr_reconfig_clk I 50 MHz - 125 MHz (Range) EP/RP
100 MHz (Recommended)
xcvr_reconfig_
xcvr_reconfig_write I Avalon-MM write enable EP/RP
clk
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
81
4. Interfaces
UG-20237 | 2021.02.04
Avalon-MM address
[25:21] are used to indicate
the Quad.
5'b00001 : Quad 0
xcvr_reconfig_address[25:0 xcvr_reconfig_
I 5'b00010 : Quad 1 EP/RP
] clk
5'b00100 : Quad 2
5'b01000 : Quad 3
[20:0] are used to indicate
the offset address.
xcvr_reconfig_writedata[7: xcvr_reconfig_
I Avalon-MM write data inputs EP/RP
0] clk
Reading from the PHY reconfiguration interface of the P-Tile Avalon-MM IP for PCI
Express retrieves the current value at a specific address.
Figure 33. Timing Diagram to Perform Read Operations Using the PHY Reconfiguration
Interface
xcvr_reconfig_clk
xcvr_reconfig_address 0x000006
xcvr_reconfig_read
xcvr_reconfig_readdatavalid
xcvr_reconfig_readdata 0x01
xcvr_reconfig_waitrequest
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
82
UG-20237 | 2021.02.04
Send Feedback
5. Advanced Features
The PCIe controller IP contains a set of port bifurcation muxes to remap the four
controller PIPE lane interfaces to the shared 16 PCIe PHY lanes. The table below shows
the relationship between PHY lanes and the port mapping.
1 x16 0 - 15 NA NA NA
2 x8 0-7 8 - 15 NA NA
4 x4 4-7 8 - 11 0-3 12 - 15
Note: For more details on the bifurcation modes, refer to the Architecture section in chapter
2.
Intel Corporation. All rights reserved. Agilex, Altera, Arria, Cyclone, Enpirion, Intel, the Intel logo, MAX, Nios,
Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or
other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in ISO
accordance with Intel's standard warranty, but reserves the right to make changes to any products and services 9001:2015
at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any Registered
information, product, or service described herein except as expressly agreed to in 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.
UG-20237 | 2021.02.04
Send Feedback
6. Troubleshooting/Debugging
As you bring up your PCI Express system, you may face issues related to FPGA
configuration, link training, BIOS enumeration, data transfer, and so on. This chapter
suggests some strategies to resolve the common issues that occur during bring-up.
You can additionally use the P-Tile Debug Toolkit to identify the issues.
6.1. Hardware
Typically, PCI Express link-up involves the following steps:
1. Link training
2. BIOS enumeration and data transfer
The following sections describe the flow to debug link issues during the hardware
bring-up. Intel recommends a systematic approach to diagnosing issues as illustrated
in the following figure.
Additionally, you can use the P-Tile Debug Toolkit for debugging the PCIe links when
using the P-Tile Avalon-MM IP for PCI Express. The P-Tile Debug Toolkit includes the
following features:
• Protocol and link status information.
• Basic and advanced debugging capabilities including PMA register access and Eye
viewing capability.
Intel Corporation. All rights reserved. Agilex, Altera, Arria, Cyclone, Enpirion, Intel, the Intel logo, MAX, Nios,
Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or
other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in ISO
accordance with Intel's standard warranty, but reserves the right to make changes to any products and services 9001:2015
at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any Registered
information, product, or service described herein except as expressly agreed to in 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. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Is the link
Go to “6.1.1 Debugging
Start training Link training issues”
successful? No
System Reset
Yes
Yes
End
Use the flow chart below to identify the potential cause of the issue seen during link
training when using the P-Tile Avalon-MM IP for PCI Express.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
85
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
No
OR
B.Observation: Timeout during EQ Phases on few
lanes when monitoring ltssm_state_o signal
Is the link Yes Is there
receiver detected Issue: Signal Integrity issues/Sub optimal EQ settings
out of
at the far end? on few lanes
reset?
Resolution: Redo the Equalization (*)
Yes
No No
Observation: ltssm_state_o signal Observation: ltssm_state_o signal toggles Observation: ltssm_state_o signal
stuck at Detect.Quiet state between Detect.Quiet and Detect.Active. Check the transitions from Detect.Quiet –>
Receiver detection status from the registers for Detect.Active –> Polling.Active –>
Issue: IP is in reset state
successful receiver detection Polling.Compliance states.
Resolution: Check if the pin_perst_n
Issue: Far end receiver not detected by the FPGA TX Issue: Far end device failing receiver detection
reset signal is in reset
Resolution: Check coupling capacitance, Resolution: Check far end coupling capacitance,
far end termination resistance and TX OCT values are near end termination resistance and TX OCT values
in accordance to the spec are in accordance to the spec
Note: (*) Redo the equalization using the Link Equalization Request 8.0 GT/s bit
of the Link Status 2 register for 8.0 GT/s or Link Equalization Request 16.0 GT/s
bit of the 16.0 GT/s Status Register.
Use the following debug tools for debugging link training issues observed on the PCI
Express link when using the P-tile Avalon-MM IP for PCI Express.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
86
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
You can use utilities like lspci, setpci to obtain general information of the device like
link speed, link width etc.
Example: To read the negotiated link speed for the P-Tile device in a system, you can
use the following commands:
-s refers to “slot” and is used with the bus/device/function number (bdf) information.
Use this command if you know the bdf of the device in the system topology.
-d refers to device and is used with the device ID (vid:did). Use this command to
search using the device ID.
The LnkCap under Capabilities indicates the advertised link speed and width
capabilities of the device. The LnkSta under Capabilities indicates the negotiated
link speed and width of the device.
Using the SignalTapII Logic Analyzer, you can monitor the following top-level signals
from the P-Tile Avalon-MM IP for PCI Express to confirm the failure symptom for any
port type (Root port, Endpoint or TLP Bypass) and configuration (Gen4/Gen3).
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
87
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Use the Hard IP reconfiguration interface and PHY reconfiguration interface on the P-
Tile Avalon-MM IP for PCI Express to access additional registers (for example, receiver
detection, lane reversal etc.).
PHY
PCIe Controllers
Port N
PLLA PMA x16
PCIe PCIe MAC DLL TL Hard IP Reconfig
PLLB Quad N
x16 Lanes PCS Interface
PHY Registers
Registers
PHY Reconfig
Interface
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
88
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Refer to the section Hard IP Reconfiguration Interface for details on this interface and
the associated address map.
The following table lists the address offsets and bit settings for the PHY status
registers. Use the Hard IP Reconfiguration Interface to access these read-only
registers.
Table 61. Hard IP Reconfiguration Interface Register Map for PHY Status
Offset Bit Position Register
[1] RX detection
[2] RX Valid
Follow the steps below to access registers in Table 61 on page 89 using the Hard IP
reconfiguration interface:
1. Enable the Hard IP reconfiguration interface (User Avalon-MM interface) using the
IP Parameter Editor.
2. Set the lane number for which you want to read the status by performing a read-
modify-write to the address hip_reconfig_addr_i[20:0] with write data of
lane number on hip_reconfig_writedata_i[7:0] using the Hard IP
reconfiguration interface signals.
• hip_reconfig_write_i = 1’b1
• hip_reconfig_addr_i[20:0] = 0x0003E8
• hip_reconfig_writedata_i[3:0] = <Lane number>, where Lane number
= 4’h0 for lane 0, 4’h1 for lane 1, 4’h2 for lane 2, …
3. Read the status of the register you want by performing a read operation from the
address hip_reconfig_addr_i[20:0] using the Hard IP reconfiguration
interface signals.
• hip_reconfig_read_i = 1’b1
• hip_reconfig_addr_i[20:0] = <offset>
Offset = Refer to Table 61 on page 89 for the offset mapping.
• hip_reconfig_readdata_o[7:0] = Refer to Table 61 on page 89 for the
bit position mapping.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
89
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
• hip_reconfig_write_i = 1’b1
• hip_reconfig_addr_i[20:0] = 0x0003E8
• hip_reconfig_writedata_i[3:0] = 4'h0
3. Read the status of the RX detection register by performing a read operation from
the address 0x0003E9[1] using the Hard IP reconfiguration interface signals.
• hip_reconfig_read_i = 1’b1
• hip_reconfig_addr_i[20:0] = 0x0003E9
• hip_reconfig_readdata_o[1] = 1'b1 (Far end receiver detected)
Refer to the section PHY Reconfiguration Interface for details on how to use this
interface.
Follow the steps below to access registers in Table 62 on page 90 using the PHY
reconfiguration interface.
1. Enable the PHY reconfiguration interface using the IP Parameter Editor.
2. Set the Quad and address offset from which you want to read the status by
performing a read operation from the address xcvr_reconfig_addr_i[25:0]
using the PHY reconfiguration interface signals.
• xcvr_reconfig_read_i = 1’b1
• xcvr_reconfig_addr_i[25:0] = {5-bit Quad mapping, 21-bit address
offset}. Refer to Table 62 on page 90 for the address offset and bit mapping.
• xcvr_reconfig_readdata_o[7:0] = Refer to Table 62 on page 90 for the
address offset and bit mapping.
Table 62. PHY Reconfiguration Interface Register Map for PHY Status
PHY Offset Bit Position Register
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
90
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Table 63. Error Types Defined by the PCI Express Base Specification
Type Responsible Agent Description
Receiver error bit set Physical layer error which may be due Use the Hard IP reconfiguration
to a PCS error when a lane is in L0, or interface and the flow chart in Figure
a Control symbol being received in the 35 on page 86 to obtain more
wrong lane, or signal Integrity issues information about the error.
where the link may transition from L0
to the Recovery state.
Bad DLLP bit set Data link layer error which may occur Use the Hard IP reconfiguration
when a CRC verification fails. interface to obtain more information
about the error.
Bad TLP bit set Data link layer error which may occur Use the Hard IP reconfiguration
when an LCRC verification fails or when interface to obtain more information
a sequence number error occurs. about the error.
Replay_num_rollover bit set Data link layer error which may be due Use the Hard IP reconfiguration
to TLPs sent without success (no ACK) interface to obtain more information
four times in a row. about the error.
replay timer timeout status bit set Data link layer error which may occur Use the Hard IP reconfiguration
when no ACK or NAK was received interface to obtain more information
within the timeout period for the TLPs about the error.
transmitted.
Corrected internal error bits set Transaction layer error which may be Use the Hard IP reconfiguration
due to an ECC error in the internal interface and DBI registers to obtain
Hard IP RAM. more information about the error.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
91
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Data link protocol error Data link layer error which may be due Use the Hard IP reconfiguration
to transmitter receiving an ACK/NAK interface to obtain more information
whose Seq ID does not correspond to about the error.
an unacknowledged TLP or ACK
sequence number.
Surprise down error Data link layer error which may be due Use the Hard IP reconfiguration
to link_up_o getting deasserted interface and DBI registers to obtain
during L0, indicating the physical layer more information about the error.
link is going down unexpectedly.
Flow control protocol error Transaction layer error which can be Use the TX/RX flow control interface,
due to the receiver reporting more Hard IP reconfiguration interface to
than the allowed credit limit. obtain more information about the
This error occurs when a component error.
does not receive updated flow control
credits with the 200 μs limit.
Poisoned TLP received Transaction layer error which can be Use the Hard IP reconfiguration
due to a received TLP with the EP bit interface to obtain more information on
set. the error and determine the
appropriate action.
Completion timeout Transaction layer error which can be Use the Hard IP reconfiguration
due to a completion not received within interface to obtain more information on
the required amount of time after a the error.
non-posted request was sent.
Completer abort Transaction layer error which can be Use the Hard IP reconfiguration
due to a completer being unable to interface to obtain more information on
fulfill a request due to a problem with the error.
the requester or a failure of the
completer.
Unexpected completion Transaction layer error which can be Use the Hard IP reconfiguration
due to a requester receiving a interface to obtain more information on
completion that doesn’t match any the error.
request awaiting a completion.
The TLP is deleted by the Hard IP and
not presented to the Application Layer.
Receiver overflow Transaction layer error which can be Use the TX/RX flow control interface
due to a receiver receiving more TLPs and Hard IP reconfiguration interface
than the available receive buffer space. to obtain more information on the
The TLP is deleted by the Hard IP and error.
not presented to the Application Layer.
Malformed TLP Transaction layer error which can be Use the Hard IP reconfiguration
due to errors in the received TLP interface to obtain more information on
header. the error.
The TLP is deleted by the Hard IP and
not presented to the Application Layer.
ECRC error Transaction layer error which can be Use the Hard IP reconfiguration
due to an ECRC check failure at the interface to obtain more information on
receiver despite the fact that the TLP is the error.
not malformed and the LCRC check is
valid.
The Hard IP block handles this TLP
automatically. If the TLP is a non-
posted request, the Hard IP block
generates a completion with a
completer abort status. The TLP is
deleted by the Hard IP and not
presented to the Application Layer.
continued...
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
92
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Unsupported request Transaction layer error which can be Use the Hard IP reconfiguration
due to the completer being unable to interface to obtain more information on
fulfill the request. the error.
The TLP is deleted in the Hard IP block
and not presented to the Application
Layer. If the TLP is a non-posted
request, the Hard IP block generates a
completion with Unsupported Request
status.
ACS violation Transaction layer error which can be Use the Hard IP reconfiguration
due to access control error in the interface to obtain more information on
received posted or non-posted request. the error.
Uncorrectable internal error Transaction layer error which can be Use the Hard IP reconfiguration
due to an internal error that cannot be interface and DBI registers to obtain
corrected by the hardware. more information on the error.
Use the debug tools mentioned in the next two sections for debugging link training
issues observed on the PCI Express link when using the P-Tile Avalon-MM IP for PCI
Express.
Each PCI Express compliant device must implement a basic level of error management
and can optionally implement advanced error management. The PCI Express
Advanced Error Reporting Capability is an optional Extended Capability that may be
implemented by PCI Express device functions supporting advanced error control and
reporting.
The P-Tile Avalon-MM IP for PCI Express implements both basic and advanced error
reporting. Error handling for a Root Port is more complex than that of an Endpoint. In
this P-Tile Avalon-MM IP for PCI Express, the AER capability is enabled by default.
Use the AER capability of the PCIe Hard IP to identify the type of error and the
protocol stack layer in which the error may have occurred. Refer to the PCI Express
Capability Structures section of the Configuration Space Registers appendix for the
AER Extended Capability Structure and the associated registers.
Use the following debug tools for second-level debug of any issue observed on the PCI
Express link when using P-Tile:
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
93
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
6.2.1. Overview
The P-Tile Debug Toolkit is a System Console-based tool for P-Tile that provides real-
time control, monitoring and debugging of the PCIe links at the Physical, Data Link
and Transaction layers.
The following figure provides an overview of the P-Tile Debug Toolkit in the P-Tile
Avalon-MM IP for PCI Express.
intel_pcie_ptile_avmm
When you enable the P-Tile Debug Toolkit, the intel_pcie_ptile_avmm module of
the generated IP includes the Debug Toolkit modules and related logic as shown in the
figure above.
Drive the Debug Toolkit from a System Console. The System Console connects to the
Debug Toolkit via an Native PHY Debug Master Endpoint (NPDME). Make this
connection via an Intel FPGA Download Cable.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
94
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Provide a clock source (50 MHz - 125 MHz, 100 MHz recommended clock frequency) to
drive the xcvr_reconfig_clk clock. Use the output of the Reset Release Intel FPGA
IP to drive the ninit_done, which provides the reset signal to the NPDME module.
Note: When using the port bifurcation feature, always connect the xcvr_reconfig_clk of
Port0 to a clock source. This signal is used to provide the clock to the Debug Toolkit.
Note: When you enable the P-Tile Debug Toolkit, the Hard IP reconfiguration interface is
enabled by default.
When you run a dynamically-generated design example on the Intel Development Kit,
make sure that clock and reset signals are connected to their respective sources and
appropriate pin assignments are made. Here are some sample .qsf assignments for
the Debug Toolkit for Intel Stratix 10 DX devices:
• set_location_assignment PIN_A31 -to p0_hip_reconfig_clk_clk
• set_location_assignment PIN_C23 -to xcvr_reconfig_clk_clk
When using bifurcated ports, you can enable the Debug Toolkit for each bifurcated
port by enabling the option Enable Debug Toolkit on each of the bifurcated ports.
Note: When you enable the P-Tile Debug Toolkit in the IP, the Hard IP reconfiguration
interface and the PHY reconfiguration interface will be used by the Debug Toolkit.
Hence, you will not be able to drive logic on these interfaces from the FPGA fabric.
To use the P-Tile Debug Toolkit, download the .sof to the Intel Development Kit. Then,
open the System Console and load the design to the System Console as well. Loading
the .sof to the System Console allows the System Console to communicate with the
design using NPDME. NPDME is a JTAG-based Avalon-MM master. It drives Avalon-MM
slave interfaces in the PCIe design. When using NPDME, the Intel Quartus Prime
software inserts the debug interconnect fabric to connect with JTAG.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
95
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
1. Use the Intel Quartus Prime Programmer to download the .sof to the Intel FPGA
Development Kit.
Note: To ensure correct operation, use the same version of the Intel Quartus
Prime Programmer and Intel Quartus Prime Pro Edition software that you
used to generate the .sof.
2. To load the design into System Console:
a. Launch the Intel Quartus Prime Pro Edition software.
b. Start System Console by choosing Tools, then System Debugging Tools,
then System Console.
c. On the System Console File menu, select Load design and browse to the .sof
file.
d. Select the .sof and click OK. The .sof loads to the System Console.
3. The System Console Toolkit Explorer window will list all the DUTs in the design
that have the P-Tile Debug Toolkit enabled.
a. Select the DUT with the P-Tile Debug Toolkit you want to view. This will open
the Debug Toolkit instance of that DUT in the Details window.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
96
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
c. A new window Main view will open with a view of all the channels in that
instance.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
97
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
A. Main View
The main view tab lists a summary of the transmitter and receiver settings per
channel for the given instance of the PCIe IP.
The following table shows the channel mapping when using bifurcated ports.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
98
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
B. Toolkit Parameters
This lists a summary of the P-Tile PCIe IP parameter settings in the PCIe IP Parameter
Editor when the IP was generated, as read by the P-Tile Debug Toolkit when initialized.
When using bifurcated ports, you will see all the P-Tile information for each port for
which the Debug Toolkit has been enabled.
HIP Type Root Port, End Point Indicates the Hard IP Port type.
intel_pcie_ptile_ast,
Intel IP Type Indicates the IP type used.
intel_pcie_ptile_avmm
Link status Link up, link down Indicates if the link (DL) is up or not.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
99
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
This lists a summary of the P-Tile PCIe configuration settings of the PCIe configuration
space registers, as read by the P-Tile Debug Toolkit when initialized.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
100
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
C. Channel Parameters
The channel parameters window allows you to monitor and control the transmitter and
receiver settings for a given channel. It has the following 2 sub-windows.
C.1. TX Path
This tab allows you to monitor and control the transmitter settings for the channel
selected. Use the TX Refresh button to read the settings, TX Apply Ch to apply the
settings to the selected channel, and TX apply all to apply the settings to all
channels.
Indicates if TX lane is
TX Status TX Lane enable Enable, Disable
enabled in the PHY.
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
101
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Indicates if TX driver is
enabled and serial data is
transmitted.
Enable: TX driver for the
TX Data enable Enable, Disable corresponding lane is
enabled.
Disable: TX driver for the
corresponding lane is
disabled.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
102
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
103
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
C.1. RX Path
This tab allows you to monitor and control the receiver settings for the channel
selected. Use the RX Refresh button to read the settings, RX Apply Ch to apply the
settings to the selected channel, and RX apply all to apply the settings to all
channels.
Indicates if RX lane is
enabled in the PHY.
Enable: RX lane is enabled
RX Lane enable Enable, Disable
in the PHY.
Disable: RX lane is disabled
in the PHY.
Indicates if RX driver is
RX Status
enabled and serial data is
transmitted.
Enable: RX driver for the
RX Data enable Enable, Disable corresponding lane is
enabled.
Disable: RX driver for the
corresponding lane is
disabled.
continued...
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
104
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
105
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
106
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Eye Viewer
The P-Tile Debug Toolkit supports running eye tests for Intel devices with P-Tile. The
Eye Viewer tool allows you to set up and run eye tests, monitoring bit errors.
1. In the System Console Tools menu option, click on Eye View Tool.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
107
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
2. This will open a new tab Eye View Tool next to the Main View tab. Choose the
instance and channel for which you want to run the eye view tests.
3. Choose the eye vertical step setting from the drop-down menu. The eye view tool
allows you to choose between vertical step sizes of 1, 2, 4, 8.
Note: The time taken for the eye view tool to draw the eye varies with different
vertical step sizes (8 results in a faster eye plot when compared to 1).
4. The messages window displays information messages to indicate the eye view
tool's progress.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
108
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
5. Once the eye plot is complete, the eye height, eye width and eye diagram are
displayed.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
109
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
When the Dump LTSSM Sequence to Text File button is initially clicked, a text file
(ltssm_sequence_dump_p*.txt) with the LTSSM information is created in the
location from where the System Console window is opened. Depending on the PCIe
topology, there can be up to four text files. Subsequent LTSSM sequence dumps will
append to the respective files.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
110
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
111
6. Troubleshooting/Debugging
UG-20237 | 2021.02.04
Each LTSSM monitor has a FIFO storing the time values and captured LTSSM states.
The FIFO is written when there is a state transition. When you want to dump the
LTSSM sequence, a single read of the FIFO status of the respective core is performed.
Depending on the empty status and how many entries are in the FIFO, successive
reads are executed.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
112
UG-20237 | 2021.02.04
Send Feedback
7.1. Document Revision History for the Intel FPGA P-Tile Avalon
Memory-mapped IP for PCI Express User Guide
Intel Quartus
Document Version IP Version Changes
Prime Version
Intel Corporation. All rights reserved. Agilex, Altera, Arria, Cyclone, Enpirion, Intel, the Intel logo, MAX, Nios,
Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or
other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in ISO
accordance with Intel's standard warranty, but reserves the right to make changes to any products and services 9001:2015
at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any Registered
information, product, or service described herein except as expressly agreed to in 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. Document Revision History
UG-20237 | 2021.02.04
Intel Quartus
Document Version IP Version Changes
Prime Version
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
114
UG-20237 | 2021.02.04
Send Feedback
For signal timings on the User Avalon-MM interface, refer to the Avalon Interface
Specifications document.
The table PCIe Configuration Space Registers describes the registers for each PF. To
calculate the address for a particular register in a particular PF, add the offset for that
PF from the table Configuration Space Offsets to the byte address for that register as
given in the table PCIe Configuration Space Registers.
x16 (Port 0) = 0x000 : 0x03C PCI Header Type 0/1 Configuration Type 0/1 Configuration Space Header
x8 (Port 1) = 0x000 : 0x03C Registers
x4 (Ports 2,3) = 0x000 : 0x03C
x16 (Port 0) = 0x040 : 0x044 Power Management PCI Power Management Capability
x8 (Port 1) = 0x040 : 0x044 Structure
x4 (Ports 2,3) = 0x040 : 0x044
continued...
Intel Corporation. All rights reserved. Agilex, Altera, Arria, Cyclone, Enpirion, Intel, the Intel logo, MAX, Nios,
Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or
other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in ISO
accordance with Intel's standard warranty, but reserves the right to make changes to any products and services 9001:2015
at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any Registered
information, product, or service described herein except as expressly agreed to in 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.
A. Configuration Space Registers
UG-20237 | 2021.02.04
x16 (Port 0) = 0x050 : 0x064 MSI Capability MSI Capability Structure, see also PCI
x8 (Port 1) = 0x050 : 0x064 Local Bus Specification
x4 (Ports 2,3) = 0x050 : 0x064
x16 (Port 0) = 0x070 : 0x0A8 PCI Express Capability PCI Express Capability Structure
x8 (Port 1) = 0x070 : 0x0A8
x4 (Ports 2,3) = 0x070 : 0x0A8
x16 (Port 0) = 0x0B0 : 0x0B9 MSI-X Capability MSI-X Capability Structure, see also
x8 (Port 1) = 0x0B0 : 0x0B9 PCI Local Bus Specification
x4 (Ports 2,3) = 0x0B0 : 0x0B9
x16 (Port 0) = 0x100 : 0x144 Advanced Error Reporting (AER) Advanced Error Reporting Capability
x8 (Port 1) = 0x100 : 0x144 Structure
x4 (Ports 2,3) = 0x100 : 0x144
x16 (Port 0) = 0x148 : 0x164 Virtual Channel Capability Virtual Channel Capability Structure
x8 (Port 1) = 0x148 : 0x164
x4 (Ports 2,3) = 0x148 : 0x164
x16 (Port 0) = 0x178 : 0x17C Alternative Routing-ID Implementation ARI Capability Structure
x8 (Port 1) = 0x178 : 0x17C (ARI)
x4 (Ports 2,3) = N/A
x16 (Port 0) = 0x188 : 0x1B4 Secondary PCI Express Extended PCI Express Extended Capability
x8 (Port 1) = 0x188 : 0x1A4 Capability Header
x4 (Ports 2,3) = 0x188 : 0x1A4
x16 (Port 0) = 0x1B8 : 0x1E4 Physical Layer 16.0 GT/s Extended Physical Layer 16.0 GT/s Extended
x8 (Port 1) = 0x1A8 : 0x1CC Capability Capability Structure
x4 (Ports 2,3) = 0x1A8 : 0x1C8
x16 (Port 0) = 0x1E8 : 0x22C Margining Extended Capability Margining Extended Capability
x8 (Port 1) = 0x1D0 : 0x1F4 Structure
x4 (Ports 2,3) = 0x1CC : 0x1E0
x16 (Port 0) = 0x270 : 0x2F8 TLP Processing Hints (TPH) Capability TLP Processing Hints (TPH) Capability
x8 (Port 1) = 0x238 : 0x2C0 Structure
x4 (Ports 2,3) = 0x1E4 : 0x26C
x16 (Port 0) = 0x2FC : 0x300 Address Translation Services (ATS) Address Translation Services Extended
x8 (Port 1) = 0x2C4 : 0x2C8 Capability Capability (ATS) in Single Root I/O
Virtualization and Sharing Specification
x4 (Ports 2,3) = N/A
x16 (Port 0) = 0x30C : 0x314 Access Control Services (ACS) Access Control Services (ACS)
x8 (Port 1) = 0x2D4 : 0x2DC Capability Capability
x4 (Ports 2,3) = 0x280 : 0x288
x16 (Port 0) = 0x318 : 0x324 Page Request Services (PRS) Capability Page Request Services (PRS) Capability
x8 (Port 1) = 0x2E0 : 0x2EC
x4 (Ports 2,3) = N/A
continued...
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
116
A. Configuration Space Registers
UG-20237 | 2021.02.04
x16 (Port 0) = 0x328 : 0x32C Latency Tolerance Reporting (LTR) Latency Tolerance Reporting (LTR)
x8 (Port 1) = 0x2F0 : 0x2F4 Capability Capability
x4 (Ports 2,3) = N/A
x16 (Port 0) = 0x330 : 0x334 Process Address Space (PASID) Process Address Space (PASID)
x8 (Port 1) = 0x2F8 : 0x2FC Capability Capability Structure
x4 (Ports 2,3) = N/A
RO Read only
WO Write only
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
117
A. Configuration Space Registers
UG-20237 | 2021.02.04
Figure 52. PCIe Type 0 Configuration Space Registers - Byte Address Offsets and Layout
31 24 23 16 15 87 0
0x000 Device ID Vendor ID
0x004 Status Command
0x008 Class Code Revision ID
0x00C 0x00 Header Type 0x00 Cache Line Size
0x010 BAR Registers
0x014 BAR Registers
0x018 BAR Registers
0x01C BAR Registers
0x020 BAR Registers
0x024 BAR Registers
0x028 Reserved
0x02C Subsystem Device ID Subsystem Vendor ID
0x030 Reserved
0x034 Reserved Capabilities Pointer
0x038 Reserved
0x03C 0x00 Interrupt Pin Interrupt Line
Figure 53. PCIe Type 1 Configuration Space Registers - Byte Address Offsets and Layout
31 24 23 16 15 87 0
0x0000 Device ID Vendor ID
0x004 Status Command
0x008 Class Code Revision ID
0x00C BIST Header Type Primary Latency Timer Cache Line Size
0x010 BAR Registers
0x014 BAR Registers
0x018 Secondary Latency Timer Subordinate Bus Number Secondary Bus Number Primary Bus Number
0x01C Secondary Status I/O Limit I/O Base
0x020 Memory Limit Memory Base
0x024 Prefetchable Memory Limit Prefetchable Memory Base
0x028 Prefetchable Base Upper 32 Bits
0x02C Prefetchable Limit Upper 32 Bits
0x030 I/O Limit Upper 16 Bits I/O Base Upper 16 Bits
0x034 Reserved Capabilities Pointer
0x038 Expansion ROM Base Address
0x03C Bridge Control Interrupt Pin Interrupt Line
Related Information
PCI Express Base Specification 4.0
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
118
A. Configuration Space Registers
UG-20237 | 2021.02.04
Figure 54. Power Management Capability Structure - Byte Address Offsets and Layout
31 24 23 16 15 87 0
0x040 Capabilities Register Next Cap Ptr Capability ID
PM Control/Status
0x04C Data Power Management Status and Control
Bridge Extensions
31 24 23 16 15 87 0
Message Control
0x050 Configuration MSI Control Status Next Cap Ptr Capability ID
Register Field Descriptions
0x054 Message Address
0x058 Message Upper Address
0x05C Reserved Message Data
Figure 56. PCI Express Capability Structure - Byte Address Offsets and Layout
In the following table showing the PCI Express Capability Structure, registers that are not applicable to a
device are reserved.
31 24 23 16 15 87 0
PCI Express
0x070 PCI Express Capabilities Register Next Cap Pointer
Capabilities ID
0x074 Device Capabilities
0x078 Device Status Device Control
0x07C Link Capabilities
0x080 Link Status Link Control
0x084 Slot Capabilities
0x088 Slot Status Slot Control
0x08C Root Capabilities Root Control
0x090 Root Status
0x094 Device Compatibilities 2
0x098 Device Status 2 Device Control 2
0x09C Link Capabilities 2
0x0A0 Link Status 2 Link Control 2
0x0A4 Slot Capabilities 2
0x0A8 Slot Status 2 Slot Control 2
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
119
A. Configuration Space Registers
UG-20237 | 2021.02.04
Related Information
PCI Express Base Specification 4.0
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
120
A. Configuration Space Registers
UG-20237 | 2021.02.04
29:27 Reserved RO 0
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
121
A. Configuration Space Registers
UG-20237 | 2021.02.04
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
122
A. Configuration Space Registers
UG-20237 | 2021.02.04
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
123
A. Configuration Space Registers
UG-20237 | 2021.02.04
These registers are only good for Port 0 (PCIe Gen4 x16). They are blocked for the
other Ports.
This register is only available for Port 0 (PCIe Gen4 x16). It is blocked for the other
Ports.
(6) Because the Silicon ID is a unique value, it does not have a global default value.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
124
A. Configuration Space Registers
UG-20237 | 2021.02.04
Note: This register is for debug only. Only use this register to observe behavior, not to drive
logic custom logic.
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
125
A. Configuration Space Registers
UG-20237 | 2021.02.04
Note: The access code RW1CS represents Read Write 1 to Clear Sticky.
Note: The access code RWS stands for Read Write Sticky, meaning that the value is retained
after a soft reset of the IP core.
Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide Send Feedback
126
A. Configuration Space Registers
UG-20237 | 2021.02.04
Send Feedback Intel® FPGA P-Tile Avalon® Memory-mapped IP for PCI Express* User Guide
127