P-Tile Avalon Streaming IP For PCI Express User Guide
P-Tile Avalon Streaming IP For PCI Express User Guide
IP Version: 4.0.0
Contents
1. Introduction................................................................................................................... 5
1.1. Overview..............................................................................................................5
1.2. Features...............................................................................................................5
1.3. Release Information...............................................................................................8
1.4. Device Family Support............................................................................................9
1.5. Performance and Resource Utilization....................................................................... 9
1.6. IP Core and Design Example Support Levels............................................................ 10
2. IP Architecture and Functional Description................................................................... 12
2.1. Architecture........................................................................................................ 12
2.1.1. Clock Domains.........................................................................................13
2.1.2. Refclk.....................................................................................................14
2.1.3. Reset..................................................................................................... 16
2.2. Functional Description.......................................................................................... 17
2.2.1. PMA/PCS................................................................................................ 17
2.2.2. Data Link Layer Overview..........................................................................18
2.2.3. Transaction Layer Overview....................................................................... 20
3. Parameters................................................................................................................... 22
3.1. Top-Level Settings............................................................................................... 22
3.2. Core Parameters.................................................................................................. 24
3.2.1. System Parameters.................................................................................. 27
3.2.2. Avalon Parameters................................................................................... 27
3.2.3. Base Address Registers.............................................................................28
3.2.4. Multi-function and SR-IOV......................................................................... 29
3.2.5. TLP Processing Hints (TPH)/Address Translation Services (ATS) Capabilities..... 35
3.2.6. PCI Express and PCI Capabilities Parameters............................................... 35
3.2.7. Device Identification Registers................................................................... 42
3.2.8. Configuration, Debug and Extension Options................................................43
4. Interfaces..................................................................................................................... 45
4.1. Overview............................................................................................................ 45
4.2. Clocks and Resets................................................................................................ 48
4.2.1. Interface Clock Signals............................................................................. 48
4.2.2. Resets.................................................................................................... 49
4.3. Serial Data Interface............................................................................................ 51
4.4. Avalon-ST Interface ............................................................................................ 51
4.4.1. TLP Header and Data Alignment for the Avalon-ST RX and TX Interfaces......... 52
4.4.2. Avalon-ST RX Interface.............................................................................52
4.4.3. Avalon-ST RX Interface rx_st_ready Behavior...........................................58
4.4.4. RX Flow Control Interface..........................................................................59
4.4.5. Avalon-ST TX Interface ............................................................................ 61
4.4.6. Avalon-ST TX Interface tx_st_ready Behavior...........................................67
4.4.7. TX Flow Control Interface..........................................................................68
4.4.8. Tag Allocation.......................................................................................... 69
4.5. Hard IP Status Interface....................................................................................... 70
4.6. Interrupt Interface............................................................................................... 71
4.6.1. Legacy Interrupts.................................................................................... 72
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
2
Contents
4.6.2. MSI........................................................................................................73
4.6.3. MSI-X.....................................................................................................76
4.7. Error Interface.....................................................................................................79
4.7.1. Completion Timeout Interface....................................................................81
4.8. Hot Plug Interface (RP Only)..................................................................................84
4.9. Power Management Interface................................................................................ 85
4.10. Configuration Output Interface.............................................................................87
4.11. Configuration Intercept Interface (EP Only)........................................................... 91
4.12. Hard IP Reconfiguration Interface......................................................................... 93
4.12.1. Address Map for the User Avalon-MM Interface...........................................95
4.12.2. Configuration Registers Access................................................................. 98
4.13. PHY Reconfiguration Interface............................................................................ 101
4.14. Page Request Service (PRS) Interface (EP Only)................................................... 102
5. Advanced Features......................................................................................................104
5.1. PCIe Port Bifurcation and PHY Channel Mapping..................................................... 104
5.2. Virtualization Support......................................................................................... 104
5.2.1. SR-IOV Support..................................................................................... 104
5.2.2. VirtIO Support....................................................................................... 110
5.3. TLP Bypass Mode............................................................................................... 121
5.3.1. Overview.............................................................................................. 122
5.3.2. Register Settings for the TLP Bypass Mode.................................................122
5.3.3. User Avalon-MM Interface....................................................................... 124
5.3.4. Avalon-ST Interface ...............................................................................125
6. Testbench................................................................................................................... 127
6.1. Endpoint Testbench............................................................................................ 128
6.2. Test Driver Module............................................................................................. 129
6.3. Root Port BFM....................................................................................................130
6.3.1. BFM Memory Map...................................................................................131
6.3.2. Configuration Space Bus and Device Numbering......................................... 132
6.3.3. Configuration of Root Port and Endpoint.................................................... 132
6.3.4. Issuing Read and Write Transactions to the Application Layer....................... 138
6.4. BFM Procedures and Functions ............................................................................ 138
6.4.1. ebfm_barwr Procedure ...........................................................................138
6.4.2. ebfm_barwr_imm Procedure ................................................................... 139
6.4.3. ebfm_barrd_wait Procedure .................................................................... 139
6.4.4. ebfm_barrd_nowt Procedure ...................................................................140
6.4.5. ebfm_cfgwr_imm_wait Procedure ............................................................ 140
6.4.6. ebfm_cfgwr_imm_nowt Procedure ........................................................... 141
6.4.7. ebfm_cfgrd_wait Procedure .................................................................... 141
6.4.8. ebfm_cfgrd_nowt Procedure ................................................................... 142
6.4.9. BFM Configuration Procedures..................................................................142
6.4.10. BFM Shared Memory Access Procedures ................................................. 144
6.4.11. BFM Log and Message Procedures ..........................................................146
6.4.12. Verilog HDL Formatting Functions .......................................................... 149
7. Troubleshooting/Debugging....................................................................................... 153
7.1. Hardware.......................................................................................................... 153
7.1.1. Debugging Link Training Issues................................................................ 154
7.1.2. Debugging Data Transfer and Performance Issues.......................................160
7.2. Debug Toolkit.................................................................................................... 164
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
3
Contents
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
4
UG-20225 | 2021.02.18
Send Feedback
1. Introduction
1.1. Overview
P-Tile is an FPGA companion tile die that supports PCI Express* Gen4 in Endpoint,
Root Port and TLP Bypass modes.
It serves as a companion tile for both Intel® Stratix® 10 DX and Intel Agilex™ devices.
Related Information
Intel FPGA P-Tile Avalon streaming IP for PCI Express Design Example User Guide
1.2. Features
The P-tile Avalon® streaming IP for PCI Express supports the following features:
PCIe* Features:
• Complete protocol stack including the Transaction, Data Link, and Physical Layers
implemented as a Hard IP.
• Configurations supported:
Table 1. Configurations Supported by the P-Tile Avalon streaming IP for PCI Express
Gen3/Gen4 x16 Gen3/Gen4 x8 Gen3/Gen4 x4
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-20225 | 2021.02.18
IP Features:
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
6
1. Introduction
UG-20225 | 2021.02.18
1 x8 256 N/A
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
7
1. Introduction
UG-20225 | 2021.02.18
Note: Throughout this User Guide, the term Avalon-ST may be used as an abbreviation for
the Avalon streaming 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:
• 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
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
8
1. Introduction
UG-20225 | 2021.02.18
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.
Table 5. Intel Stratix 10 DX / Intel Agilex Recommended FPGA Fabric Speed Grades
for All Avalon-ST 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
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
9
1. Introduction
UG-20225 | 2021.02.18
Lane Rate Link Width Application Interface Application Clock Recommended FPGA
Data Width Frequency (MHz) Fabric Speed Grades
The following table shows the typical resource utilization information for selected
configurations.
For details on the application clock frequencies that the IP core can support, refer to
Table 10 on page 14.
Table 7. P-Tile Avalon Streaming (Avalon-ST) 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 x8/x8
SCTH N/A SCTH SCTH N/A N/A
256-bit
Gen4
x4/x4/x4/x4 N/A SCTH SCTH N/A N/A N/A
128-bit
Gen3 x8/x8
SCTH N/A SCTH SCTH N/A N/A
256-bit
Gen3
x4/x4/x4/x4 N/A SCTH SCTH N/A N/A N/A
128-bit
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
10
1. Introduction
UG-20225 | 2021.02.18
The following table shows the support levels of the Avalon-ST IP core and design
example in Intel Agilex devices.
Table 8. P-Tile Avalon Streaming (Avalon-ST) 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 x8/x8
SCTH N/A SCTH SCTH N/A N/A
256-bit
Gen4
x4/x4/x4/x4 N/A SCTH SCTH N/A N/A N/A
128-bit
Gen3 x8/x8
SCTH N/A SCTH SCTH N/A N/A
256-bit
Gen3
x4/x4/x4/x4 N/A SCTH SCTH N/A N/A N/A
128-bit
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
11
UG-20225 | 2021.02.18
Send Feedback
2.1. Architecture
The P-tile Avalon-ST IP for PCI Express consists of the following major sub-blocks:
• PMA/PCS
• Four PCIe cores (one x16 core, one x8 core and two x4 cores)
• Embedded Multi-die Interconnect Bridge (EMIB)
• Soft logic blocks in the FPGA fabric to implement functions such as VirtIO, etc.
Note: Each core in the PCIe Hard IP implements its own Data Link Layer and Transaction
Layer.
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-20225 | 2021.02.18
The four cores in the PCIe Hard IP can be configured to support the following
topologies:
Table 9. Configuration Modes Supported by the P-tile Avalon-ST IP for PCI Express
Endpoint
(EP) / Root
Configuration Mode Native IP Mode Port (RP) / Active Cores
TLP Bypass
(BP)
Gen3x4/Gen3x4/Gen3x4/Gen3x4 or
Configuration Mode 2 RP/BP x16, x8, x4_0, x4_1
Gen4x4/Gen4x4/Gen4x4/Gen4x4
In Configuration Mode 0, only the x16 core is active, and it operates in x16 mode (in
either Gen3 or Gen4).
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.
Note: When you use only one of the x8 bifurcated ports, you must ensure that the other
bifurcated port's lanes are not physically connected.
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.
Each of the cores has its own Avalon-ST interface to the user logic. The number of IP-
to-User Logic interfaces exposed to the FPGA fabric are different based on the
configuration modes. For more details, refer to the Overview section of the Interfaces
chapter.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
13
2. IP Architecture and Functional Description
UG-20225 | 2021.02.18
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.
2.1.2. 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.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
14
2. IP Architecture and Functional Description
UG-20225 | 2021.02.18
Figure 3. 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 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.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
15
2. IP Architecture and Functional Description
UG-20225 | 2021.02.18
Lane 12
Lane 11
Lane 8
Lane 3
Lane 0
Lane 7
Lane 4
(x4) (x4) (x4) (x4)
Refclk1 Refclk0
100MHz 100MHz
2.1.3. 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 such as Hot Reset and the Function-Level
Reset (FLR). 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 (enabled by default), 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.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
16
2. IP Architecture and Functional Description
UG-20225 | 2021.02.18
2.2.1. PMA/PCS
The P-Tile Avalon-ST 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-ST 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:
• Maximum Timing Offset: -0.2UI to +0.2UI.
• Number of timing steps: 9.
• Independent left and right timing margining is supported.
• Independent Error Sampler is not supported (lane margining may produce logical
errors in the data stream and cause the LTSSM to go to the Recovery state).
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
17
2. IP Architecture and Functional Description
UG-20225 | 2021.02.18
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 10 on page 14 for the frequencies at various link speeds.
Related Information
PHY Interface for PCI Express (PIPE) Base Specification
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:
(1) The L0s (Standby) or L1 (Low Power Standby) states are not supported.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
18
2. IP Architecture and Functional Description
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
19
2. IP Architecture and Functional Description
UG-20225 | 2021.02.18
Figure 7. P-Tile Avalon-ST IP for PCI Express Transaction Layer Block Diagram
Avalon-ST RX
Rx
User Avalon-MM
Data Link Layer
CPL Timeout +
CONFIG Logic RAS Physical Layer
CPL Timeout Avalon-MM
Avalon-ST 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-ST IP for PCIe will append the ECRC automatically.
Note that in TLP Bypass mode, the PCIe Hard IP does not generate/check the ECRC
and will not remove it if the received TLP has the ECRC.
The TX block sends out the TLPs that it receives as-is. It also sends the information
about non-posted TLPs to the CPL Timeout Block for CPL timeout detection.
The P-Tile Avalon-ST IP for PCI Express RX block consists of two main blocks:
• 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.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
20
2. IP Architecture and Functional Description
UG-20225 | 2021.02.18
TLP Filtering
P
Received CPL
Avalon-ST Routing NP Processing (*)
Data Logical
Message Link PHY
CPL Processing Layer Layer
MSG
ERR
MSG
User
Config CFG Data TX
Avalon-MM
Note: The Received CPL Processing block includes the CPL tracking mechanism.
Note: The Avalon-ST interface uses a split-bus architecture. In the x16 and x8
configurations, the 512-bit Avalon-ST data bus consists of two segments of 256-bit
data. This is done to improve the bandwidth efficiency of this interface. With this split-
bus architecture, two TLP packets can be transmitted or received in a single clock
cycle (e.g., if a TLP ends in the lower 256-bit segment,the next TLP can start in the
upper 256-bit segment in the same clock cycle). For more details, refer to Avalon-ST
Interface on page 51.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
21
UG-20225 | 2021.02.18
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-ST IP for PCIe.
Root Port
Native Endpoint
These are the available
options when Enable
TLP Bypass is set to
Port Mode False. If TLP Bypass Native Endpoint Specifies the port type.
Note: mode is enabled, refer
to the table Port Mode
Options in TLP Bypass
below for available port
mode options.
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-20225 | 2021.02.18
TLP Bypass On :
Downstream (Default)
1x16 (Gen4x16 or
N/A N/A N/A
Gen3x16)
TLP Bypass On :
Upstream
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
23
3. Parameters
UG-20225 | 2021.02.18
Figure 9. Intel P-Tile Avalon-ST Top-Level IP Parameter Editor for a Gen4 x8 Hard IP in
Endpoint Mode
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
24
3. Parameters
UG-20225 | 2021.02.18
Figure 10. Intel P-tile Avalon-ST Top-Level IP Parameter Editor for a x16 Hard IP Mode
If you choose a x16 mode (either Gen4 or Gen3), only the PCIe0 Settings tab will appear.
Note: You can enable the TLP Bypass mode in the Top-Level Settings tab of the IP
Parameter Editor as shown in the figure below:
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
25
3. Parameters
UG-20225 | 2021.02.18
Figure 12. Intel P-tile Avalon-ST 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.
Figure 13. Intel P-tile Avalon-ST Top-Level IP Parameter Editor for a x4 Hard IP Mode
If you choose a x4 mode (either Gen4 or Gen3), the PCIe0 Settings, PCIe1 Settings, PCIe2 Settings and
PCIe3 Settings tabs will appear.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
26
3. Parameters
UG-20225 | 2021.02.18
Note: If you set the Enable Multiple Physical Functions parameter to True, the
Multifunction and SR-IOV System Settings tab will appear to allow you to set the
number of physical functions and enable SR-IOV support.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
27
3. Parameters
UG-20225 | 2021.02.18
This parameter is
Note: only available in EP
mode.
Disabled
For a definition of prefetchable memory, refer to
BAR1 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
BAR2 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
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
continued...
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
28
3. Parameters
UG-20225 | 2021.02.18
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® Streaming IP for PCI Express* User Guide
29
3. Parameters
UG-20225 | 2021.02.18
To enable VirtIO support, first enable the support for multiple physical functions in the
IP Parameter Editor as shown in the following screenshot:
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
30
3. Parameters
UG-20225 | 2021.02.18
Finally, you can configure the appropriate VirtIO capability parameters in the tabs
shown in the screenshot below:
The following table provides a reference for all the configurable high-level parameters
of the VirtIO block for P-Tile. Parameters below are dedicated to each core.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
31
3. Parameters
UG-20225 | 2021.02.18
The next table summarizes the parameters associated with the five VirtIO device
configuration structures:
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
32
3. Parameters
UG-20225 | 2021.02.18
PFs 0-7 ISR Status Structure Indicates BAR holding the 0-5 0
BAR Indicator ISR Status Structure of PFs
0-7.
PFs 0-7 VFs ISR Status Indicates BAR holding the 0-5 0
Structure BAR Indicator ISR Status Structure of VFs
associated with PFs 0-7.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
33
3. Parameters
UG-20225 | 2021.02.18
Enable PFs 0-7 VirtIO Device Enable PFs 0-7 VirtIO Ture / False False
Specific Capability Device-Specific
Configuration Structure
Capability.
Enable PFs 0-7 VFs VirtIO Enable VirtIO Device- Ture / False False
Device-Specific Capability Specific Configuration
Structure Capability of VFs
associated with PFs 0-7.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
34
3. Parameters
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
35
3. Parameters
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
36
3. Parameters
UG-20225 | 2021.02.18
Set Interrupt Pin for PF0 NO INT NO INT When Legacy Interrupts are
INTA not enabled, the only option
available is NO INT.
INTA/INTB/INTC/INTD
When Legacy Interrupts are
enabled and multifunction is
disabled, the only option
available is INTA.
When Legacy Interrupts are
enabled and multifunction is
enabled, the options
available are INTA, INTB,
INTC and INTD.
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® Streaming IP for PCI Express* User Guide
37
3. Parameters
UG-20225 | 2021.02.18
VF Table size 0x0 - 0x7FF (only values of 0 Sets the number of entries
powers of two minus 1 are in the MSI-X table for VFs.
valid) MSI-X cannot be disabled for
VFs. Set to 1 to save
resources.
Note: This tab is visible in the Parameter Editor only if the Port Mode parameter in the
Top-Level Settings tab is set to Root Port.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
38
3. Parameters
UG-20225 | 2021.02.18
This capability allows the P-Tile Avalon streaming IP, when operating in Endpoint
mode, to report the delay that it can tolerate when requesting service from the Host.
This information can help software optimize performance when the Endpoint needs a
fast response, or optimize system power when a fast response is not necessary.
PCIe0 PF0 Max PASID 0 - 20 0 Set the Max PASID Width for
Width PCIe0 PF0.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
39
3. Parameters
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
40
3. Parameters
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
41
3. Parameters
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
42
3. Parameters
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
43
3. Parameters
UG-20225 | 2021.02.18
Figure 19. Configuration, Debug and Extension Parameters (with Debug Toolkit
enabled)
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
44
UG-20225 | 2021.02.18
Send Feedback
4. Interfaces
This section focuses mainly on the signal interfaces that the P-Tile IP for PCIe uses to
communicate with the Application Layer in the FPGA fabric core. However, it also
briefly covers the Serial Data Interface, which allows the IP to communicate with the
link partner across the PCIe link.
4.1. Overview
You can determine which core each interface in this section belongs to by looking at
the prefixes in the signal names:
• p0 : x16 core
• p1 : x8 core
• p2 : x4_0 core
• p3 : x4_1 core
Figure 20 on page 47 shows the top-level signals of this IP. Note that the signal
names in the figure will get the appropriate prefix pn (where n = 0, 1, 2 or 3)
depending on which of the three supported configurations (1x16, 2x8, or 4x4) the P-
Tile Avalon-ST IP for PCI Express is in.
The only cases where the interface signal names do not get the pn prefixes are the
interfaces that are common for all the cores, like the PHY reconfiguration interface,
clocks and resets. For example, there is only one xcvr_reconfig_clk that is shared
by all the cores.
You can enable the PHY reconfiguration interface from the Top Level Settings in the
GUI.
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-20225 | 2021.02.18
Each of the cores has its own Avalon-ST interface to the user logic. The number of IP-
to-User Logic interfaces exposed to the FPGA fabric are different based on the
configuration modes:
Gen3 x8 x8 EP
2 256-bit 128-bit 32-bit 250 MHz
mode
Gen3 x4 x4 x4 x4
4 128-bit 128-bit 32-bit 250 MHz
RP mode
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
46
4. Interfaces
UG-20225 | 2021.02.18
app_err_valid_i
serr_out_o
Error Interface hip_enter_err_mode_o
app_err_hdr_i[31:0] cii_req_o
app_err_info_i[12:0] cii_hdr_poisoned_o
cii_hdr_first_be_o[3:0]
app_err_func_num_i[2:0]
cii_func_num_o[2:0]
cii_wr_vf_active_o Configuration
cpl_timeout_o
cii_vf_num_o[10:0] Intercept
cpl_timeout_avmm_read_i
cpl_timeout_avmm_readdata_o[7:0] cii_wr_o Interface
Completion cpl_timeout_avmm_readdata_valid_o cii_addr_o[9:0]
Timeout cpl_timeout_avmm_write_i cii_dout_o[31:0]
Interface cpl_timeout_avmm_writedata_i[7:0] cii_override_en_i
cpl_timeout_avmm_clk_i cii_override_din_i[31:0]
cpl_timeout_avmm_waitrequest_o cii_halt_i
cpl_timeout_avmm_addr_i[20:0] app_int_i[7:0]
int_status_o[7:0]
Page Request prs_event_valid_i msi_pnd_func_i[2:0] Interrupt
msi_pnd_addr_i[1:0] Interface
Service(PRS) prs_event_func_i[2:0]
Event Interface prs_event_i[1:0] msi_pnd_byte_i[7:0]
Note: (*) : The Hard IP Status Interface is only available if the Power Management Interface
is enabled in the IP Parameter Editor.
Note: The table below shows the variables that are used to define the bus indices for top-
level signal busses shown in the top-level block diagram above. The values of these
variables change depending on which configuration is active (1x16, 2x8 or 4x4). For
example, for the 4x4 configuration, using w=1 and n=1 will give Avalon-ST RX bus
widths of p0_rx_st_data_o[127:0], p0_rx_st_hdr_o[127:0] and
p0_rx_st_tlp_prfx_o[31:0].
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
47
4. Interfaces
UG-20225 | 2021.02.18
w 4 2 1
n 2 1 1
p 6 3 2
b 16 8 4
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
48
4. Interfaces
UG-20225 | 2021.02.18
4.2.2. Resets
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
49
4. Interfaces
UG-20225 | 2021.02.18
A one-cycle pulse
indicates that an FLR was
received from host
targeting a VF. When port
bifurcation is used, there
p0_flr_rcvd_vf_o O coreclkout_hip EP
is one such signal for
each Avalon-ST interface.
These signals are
differentiated by the
prefixes pn.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
50
4. Interfaces
UG-20225 | 2021.02.18
The Avalon-ST interface has different data bus widths depending on the link width
configuration of the PCIe IP.
x8 256 128 32
x4 128 128 32
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
51
4. Interfaces
UG-20225 | 2021.02.18
Note: • For the x16 configuration, two segments of 256-bit data and two segments of
128-bit header are available.
• x4 configuration is only present in Root Port mode.
4.4.1. TLP Header and Data Alignment for the Avalon-ST RX and TX
Interfaces
The TLP prefix, header and data are sent and received on the TX and RX interfaces.
The ordering of bytes in the header and data portions of packets is different. The first
byte of the header dword is located in the most significant byte of the dword. The first
byte of the data dword is located in the least significant byte of the dword on the data
bus.
Figure 22. TLP Prefix, Header and Data on the RX and TX Interfaces of the P-Tile IP for
PCIe
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
52
4. Interfaces
UG-20225 | 2021.02.18
This interface supports two rx_st_sop_o signals and two rx_st_eop_o signals per
cycle when the P-Tile IP is operating in a x16 configuration. It also does not follow a
fixed latency between rx_st_ready_i and rx_st_valid_o as specified by the
Avalon Interface Specifications.
The x16 core provides two segments with each one having 256 bits of data
(rx_st_data_o[511:256] and rx_st_data_o[255:0]), 128 bits of header
(rx_st_hdr_o[255:128] and rx_st_hdr_o[127:0]), and 32 bits of TLP prefix
(rx_st_tlp_prfx_o[63:32] and rx_st_tlp_prfx_o[31:0]). If this core is
configured in the 1x16 mode, both segments are used, so the data bus becomes a
512-bit bus rx_st_data_o[511:0]. The start of packet can appear in the upper
segment or lower segment, as indicated by the rx_st_sop_o[1:0] signals.
Note: To achieve the expected performance in Gen4 x16 mode, the user application needs to
take advantage of this segmented bus architecture. Otherwise, some performance
reduction may occur.
If this core is configured in the 2x8 mode, only the lower segment is used. In this
case, the data bus is a 256-bit bus rx_st_data_o[255:0].
Finally, if this core is configured in the 4x4 mode, only the lower segment is used and
only the MSB 128 bits of data are valid. In this case, the data bus is a 128-bit bus
rx_st_data_o[127:0].
The x8 core provides one segment with 256 bits of data, 128 bits of header and 32
bits of TLP prefix. If this core is configured in 4x4 mode, only the LSB 128 bits of data
are used.
The x4 core provides one segment with 128 bits of data, 128 bits of header and 32
bits of TLP prefix.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
53
4. Interfaces
UG-20225 | 2021.02.18
The readyLatency is 27
cycles.
If rx_st_ready_i is
deasserted by the
Application Layer on cycle
<n>, the Transaction
Layer in the PCIe Hard IP
continues to send traffic
up to <n>+
readyLatency cycles
after the deassertion of
rx_st_ready_i.
Once rx_st_ready_i
reasserts,
rx_st_valid_o
resumes data transfer
within readyLatency
cycles.
To achieve the best
performance, the
Application Layer must
include a receive buffer
large enough to avoid the
deassertion of
rx_st_ready_i.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
54
4. Interfaces
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
55
4. Interfaces
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
56
4. Interfaces
UG-20225 | 2021.02.18
p0_rx_st_ready_i
p0_rx_st_valid_o[0]
p0_rx_st_sop_o[0]
p0_rx_st_eop_0[0]
p0_rx_st_prfx_o[31:0] PRF0
p0_rx_st_hdr_o[127:0] HDR0
p0_rx_st_valid_o[1]
p0_rx_st_sop_o[1]
p0_rx_st_eop_o[1]
p0_rx_st_prfx_o[63:32] PRF1
p0_rx_st_hdr_o[255:128] HDR1
p0_rx_st_empty_o[5:3]
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
57
4. Interfaces
UG-20225 | 2021.02.18
pn_rx_st_ready_i
pn_rx_st_valid_o
pn_rx_st_sop_o
pn_rx_st_eop_o
pn_rx_st_data_o[255:0] D0_0 D0_1 D0_2 D0_3 D0_4 D1_0 D1_1 D1_2 D1_3
Note: In 2x8 mode, the pn prefix in the signal names is p0 and p1 for the two x8 ports.
pn_rx_st_ready_i
pn_rx_st_valid_0
pn_rx_st_sop_0
pn_rx_st_eop_0
pn_rx_st_data_0[127:0] D0_0 D0_1 D0_2 D0_3 D0_4 D0_5 D0_6 D0_7 D0_8 D0_9 D1_0 D1_1 D1_2 D1_3 D1_4 D1_5 D1_6
Note: In 4x4 mode, the pn prefix in the signal names is p0, p1, p2 and p3 for the four x4
ports.
Note: In the diagrams for the 1x16 or 2x8 modes, D0_0 represents a 256-bit block of data.
However, in the diagram for the 4x4 mode, D0_0 represents a 128-bit block of data.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
58
4. Interfaces
UG-20225 | 2021.02.18
coreclkout_hip
rx_st_data_o[511:0]
rx_st_sop_o
rx_st_eop_o
rx_st_ready_i
rx_st_valid_o
27 clks 27 clks
Related Information
Avalon Interface Specifications
The RX flow control interface is optional and disabled by default in the IP GUI. If
disabled, it indicates that there is no limit in the application RX buffer space.
Coreclkout_hip
rx_buffer_limit_tdm_idx_i[1:0] 0 1 2 0 1 2 0 1 2
Flow control credits are available for the following TLP categories:
• Posted (P) transactions: TLPs that do not require a response.
• Non-posted (NP) transactions: TLPs that require a completion.
• Completions (CPL): TLPs that respond to non-posted transactions.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
59
4. Interfaces
UG-20225 | 2021.02.18
Memory Read
Non-posted
Memory Read Lock
I/O Read
Non-posted
I/O Write
Configuration Read
Non-posted
Configuration Write
Message Posted
Completion
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
60
4. Interfaces
UG-20225 | 2021.02.18
For more details on the usage of the scale factors, refer to Section 3.4.2 of the PCI
Express Base Specification, Rev. 4.0 Version 1.0.
This 512-bit interface supports two locations for the beginning of a TLP, bit[0] and
bit[256]. The interface supports multiple TLPs per cycle only when an end-of-packet
cycle occurs in the lower 256 bits.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
61
4. Interfaces
UG-20225 | 2021.02.18
Note: This interface supports two tx_st_sop_i signals and two tx_st_eop_i signals per
cycle when the P-Tile IP is operating in a x16 configuration. It also does not follow a
fixed latency between the tx_st_ready_o and tx_st_valid_i[1:0] signals as
specified by the Avalon Interface Specifications. Data can be received any time within
the defined readyLatency, which is three coreclkout_hip cycles.
The x16 core provides two segments with each one having 256 bits of data
(tx_st_data_i[511:256] and tx_st_data_i[255:0]), 128 bits of header
(tx_st_hdr_i[255:128] and tx_st_hdr_i[127:0]), and 32 bits of TLP prefix
(tx_st_tlp_prfx_i[63:32] and tx_st_tlp_prfx_i[31:0]). If this core is
configured in the 1x16 mode, both segments are used, so the data bus becomes a
512-bit bus tx_st_data_i[511:0]. The start of packet can appear in the upper
segment or lower segment, as indicated by the tx_st_sop_i[1:0] signals.
Note: To achieve the expected performance in Gen4 x16 mode, the user application needs to
take advantage of this segmented bus architecture. Otherwise, some performance
reduction may occur.
If this core is configured in the 2x8 mode, only the lower segment is used. In this
case, the data bus is a 256-bit bus tx_st_data_i[255:0].
Finally, if this core is configured in the 4x4 mode, only the lower segment is used and
only the LSB 128 bits of data are valid. In this case, the data bus is a 128-bit bus
tx_st_data_i[127:0].
The x8 core provides one segment with 256 bits of data, 128 bits of header and 32
bits of TLP prefix. If this core is configured in 4x4 mode, only the LSB 128 bits of data
are used.
The x4 core provides one segment with 128 bits of data, 128 bits of header and 32
bits of TLP prefix.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
62
4. Interfaces
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
63
4. Interfaces
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
64
4. Interfaces
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
65
4. Interfaces
UG-20225 | 2021.02.18
p0_tx_st_ready_o
p0_tx_st_valid_i[0]
p0_tx_st_sop_i[0]
p0_tx_st_eop_i[0]
p0_tx_st_tlp_prfx_i[31:0] PRF0
p0_tx_st_hdr_i[127:0] HDR0
p0_tx_st_valid_i[1]
p0_tx_st_sop_i[1]
p0_tx_st_eop_i[1]
p0_tx_st_tlp_prfx_i[63:32] PRF1
p0_tx_st_hdr_i[255:128] HDR1
pn_tx_st_ready_0
pn_tx_st_valid_i
pn_tx_st_sop_i
pn_tx_st_eop_i
pn_tx_st_data_i[255:0] D0_0 D0_1 D0_2 D0_3 D0_4 D1_0 D1_1 D1_2 D1_3
Note: In 2x8 mode, the pn prefix in the signal names is p0 and p1 for the two x8 ports.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
66
4. Interfaces
UG-20225 | 2021.02.18
pn_tx_st_ready_o
pn_tx_st_valid_i
pn_tx_st_sop_i
pn_tx_st_eop_i
pn_tx_st_data_i[127:0] D0_0 D0_1 D0_2 D0_3 D0_4 D0_5 D0_6 D0_7 D0_8 D0_9 D1_0 D1_1 D1_2 D1_3 D1_4 D1_5 D1_6
Note: In 4x4 mode, the pn prefix in the signal names is p0, p1, p2 and p3 for the four x4
ports.
Note: In the diagrams for the 1x16 or 2x8 modes, D0_0 represents a 256-bit block of data.
However, in the diagram for the 4x4 mode, D0_0 represents a 128-bit block of data.
Note: This is an additional requirement for the P-Tile IP for PCIe that is not compliant to the
Avalon-ST standard.
tx_st_ready_o
tx_st_valid_i 3 clks
3 clks
tx_st_sop_i
tx_st_eop_i
Related Information
Avalon Interface Specifications
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
67
4. Interfaces
UG-20225 | 2021.02.18
TX credit limit signals are provided in a TDM manner similar to how the RX credit limit
signals are provided.
tx_cdts_limit_tdm_idx_o[2:0] 0 1 2 4 5 6 0 1 2
1DW MWR
1H
MWR0 TX MWR1 MWR0 TX MWR1
16DW
RP Hard IP
MWR
1H
Update Update
Credit RX Credit
Credit for MWRO
PD =0x100
PH = 0x00F
Initialization Values
Credit for MWR1
PD = 0x0FF
PD =0x104
PH = 0x00E
PH = 0x0D0
NPD = 0x00F
NPH = 0x00F
CPLD = 0xFFF
CPLH= 0xFFF
This example shows how this interface is updated when multiple MWr requests are
sent. The tx_cdts_limit_o[15:0] bus value is incremented when a TLP is
acknowledged by the receiver and will roll over when reaching 0xFFFF.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
68
4. Interfaces
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
69
4. Interfaces
UG-20225 | 2021.02.18
The x8 (Port 1) and x4 Controllers (Port 2/3) don’t support the 10-bit tag Requester
capability, although they support the 10-bit Completer capability.
Both x8 and x4 Controllers can allow up to 256 outstanding NPRs with valid tag values
ranging from 0 to 255.
When enabling both 10-bit tags and 8-bit tags, the LSB 8 bits of the 8-bit tags cannot
be shared with the LSB 8 bits of the 10-bit tags. For example, if you want to use 64
tags as 8-bit tags and the rest of the tags as 10-bit tags, you can partition the tag
space as follows:
• 8-bit tags : 0 - 63
• 10-bit tags : 320 - 511, 576 - 767
Note that all PFs and their associated VFs share the same tag space. This means that
different PFs and VFs cannot have outstanding tags having the same tag values.
In the TLP bypass mode, there is no restriction on the tag allocation since the P-Tile
PCIe Hard IP does not do any tag management. Hence, 10-bit tags can be used
without any restriction across all the cores.
P-tile implements Completion (Cpl) buffers for header and data for each PCIe core. In
Endpoint mode, when Completion credits are infinite, user application needs to
manage the number of outstanding requests to prevent overflow and lost
Completions.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
70
4. Interfaces
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
71
4. Interfaces
UG-20225 | 2021.02.18
The user application generates MSI which are single-Dword memory write TLPs to
implement interrupts. This interrupt mechanism conserves pins because it does not
use separate wires for interrupts. In addition, the single Dword provides flexibility for
the data presented in the interrupt message. The MSI Capability structure is stored in
the Configuration Space and is programmed using Configuration Space accesses.
The user application generates MSI-X messages which are single-Dword memory
writes. The MSI-X Capability structure points to an MSI-X table structure and an MSI-X
Pending Bit Array (PBA) structure which are stored in memory. This scheme is
different than the MSI Capability structure, which contains all the control and status
information for the interrupts.
Figure 35. Generating an Assert_INTx Message TLP Using the app_int_i Signal
coreclkout_hip
app_int[0]
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
72
4. Interfaces
UG-20225 | 2021.02.18
4.6.2. MSI
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 85 on page 188.
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.
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.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
73
4. Interfaces
UG-20225 | 2021.02.18
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® Streaming IP for PCI Express* User Guide Send Feedback
74
4. Interfaces
UG-20225 | 2021.02.18
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.
coreclkout_hip
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
coreclkout_hip
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® Streaming IP for PCI Express* User Guide
75
4. Interfaces
UG-20225 | 2021.02.18
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-ST
IRQ Interrupt Request 0 single-dword MWR TLPs
Generation Arbitration &
TLP Generator msi_pnd_*
App Layer
App Layer
Related Information
Handling PCIe Legacy and MSI Interrupts
4.6.3. MSI-X
The P-Tile IP for PCIe 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.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
76
4. Interfaces
UG-20225 | 2021.02.18
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.
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 87 on page 189.
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® Streaming IP for PCI Express* User Guide
77
4. Interfaces
UG-20225 | 2021.02.18
Related Information
Implementing MSI-X for PCI Express in Intel FPGA Devices
Host
MSI-X PBA IRQ Source
1. Host software sets up the MSI-X interrupts in the Application Layer by completing
the following steps:
a. Host software reads the Message Control register at 0x050 register to
determine the MSI-X Table size. The number of table entries is the <value
read> + 1.
The maximum table size is 2048 entries. Each 16-byte entry is divided in 4
fields as shown in the figure below. The MSI-X table can be accessed on any
BAR configured. The base address of the MSI-X table must be aligned to a
4 KB boundary.
b. The host sets up the MSI-X table. It programs MSI-X address, data, and
masks bits for each entry as shown in the figure below.
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 Source sets appropriate bit in the MSI-X PBA table.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
78
4. Interfaces
UG-20225 | 2021.02.18
The PBA can use qword or dword accesses. For qword accesses, the IRQ Source
calculates the address of the <mth> bit using the following formulas:
qword address = <PBA base addr> + 8(floor(<m>/64))
qword bit = <m> mod 64
Pending Bits (( N - 1) div 64) × 64 through N - 1 QWORD (( N - 1) div 64) Base + ((N - 1) div 64) × 8
4. 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.
5. 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
Note: The Intel P-Tile Avalon-ST IP for PCI Express enables the AER capability for Physical
Functions (PFs) by default. There is no AER implementation for Virtual Functions
(VFs). Use the VF Error Flag Interface instead of AER when using VFs.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
79
4. Interfaces
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
80
4. Interfaces
UG-20225 | 2021.02.18
x16/x8:
app_err_func_num_ This bus contains the function
I number for the function that coreclkout_hip EP/RP
i[2:0]
asserts the error valid signal.
x4: NA
When a Completion timeout happens, the user application can use the Avalon-MM
Completion Timeout Interface (for each port) to access the Completion timeout FIFO
in the Hard IP to get more detailed information about the event and update the AER
capability registers if required. After the completion timeout FIFO becomes empty, the
IP core deasserts the cpl_timeout_o signal.
Example:
When cpl_timeout_o is asserted, the user application can issue an Avalon-MM Read
to retrieve information from the Completion FIFO. Then, it can issue an Avalon-MM
Write to write 1 to bit[0] of the CONTROL register to get access to the next data.
Note: User application logic should not use this interface during TLP Bypass mode as the
information on this interface is not valid in that mode.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
81
4. Interfaces
UG-20225 | 2021.02.18
Avalon-MM address
inputs.
[20:3] : Reserved. Tie
them to 0.
cpl_timeout_avmm_ cpl_timeout_avmm_cl
I [2:0] : Address for the EP/RP/BP
addr_i[20:0] k_i
FIFO register. Refer to
the address map table
below for more
details.
Avalon-MM clock.
50 MHz - 125 MHz
cpl_timeout_avmm_
I (Range) EP/RP/BP
clk_i
100 MHz
(Recommended)
Note: The Completion Timeout Interface has a separate address map that is isolated from
other address maps.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
82
4. Interfaces
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
83
4. Interfaces
UG-20225 | 2021.02.18
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.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
84
4. Interfaces
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
85
4. Interfaces
UG-20225 | 2021.02.18
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® Streaming IP for PCI Express* User Guide Send Feedback
86
4. Interfaces
UG-20225 | 2021.02.18
Note: User application logic should not use this interface during TLP Bypass mode as the
information on this interface is not valid in that mode.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
87
4. Interfaces
UG-20225 | 2021.02.18
[13]: perr_en
[12]: serr_en
[6]: extended tag enable
[11]: fatal_err_rpt_en
[5:3]: maximum read request size
[10]: nonfatal_err_rpt_en
[2:0]: maximum payload size
[9]: corr_err_rpt_en
[8]: unsupported_req_rpt_en
[15]: reserved
[7]: ARI forward enable
[14]: AtomicOP Egress Block field
[6]: Atomic request enable
(cfg_atomic_egress_block)
5'h04 [5:3]: TPH ST mode
[13:9]: ATS Smallest Translation Unit
[2:1]: TPH enable
(STU)[4:0]
[0]: VF enable
[8]: ATS cache enable
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
88
4. Interfaces
UG-20225 | 2021.02.18
[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]
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
89
4. Interfaces
UG-20225 | 2021.02.18
5'h1E N/A
5'h1F N/A
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
90
4. Interfaces
UG-20225 | 2021.02.18
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: The P-Tile IP for PCIe provides a data link layer timer update output. Details on this
signal are in the table below. When this signal asserts, you can sample the
tl_cfg_ctl_o bus to see the new link speed, link width or max payload size and
update the Replay/Ack-Nak timers accordingly.
The application logic should detect the CFG request at the rising edge of cii_req.
Due to the latency of the EMIB, the cii_req can be deasserted many cycles after the
deassertion of cii_halt.
This interface also allows you to implement the Intel Vendor Specific Extended
Capability (VSEC) registers. All configuration accesses targeting the Intel VSEC
registers (addresses 0xD00 to 0xFFF) are automatically mapped to this interface and
can be monitored via this interface.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
91
4. Interfaces
UG-20225 | 2021.02.18
cii_req_o
cii_* valid
cii_halt_i
cii_override_en_i valid
cii_override_din_i[31:0] valid
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
92
4. Interfaces
UG-20225 | 2021.02.18
Note: This interface can be used in Endpoint, Root Port and TLP Bypass modes. However, it
must be enabled if Root Port or TLP Bypass 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).
In TLP Bypass mode, the Hard IP forwards the received Type0/1 Configuration request
TLPs to the application logic, which must respond with Completion TLPs with a status
of Successful Completion (SC), Unsupported Request (UR), Configuration Request
Retry Status (CRS), or Completer Abort (CA). If a received Configuration request TLP
needs to update a PCIe configuration space register, the application logic needs to use
the Hard IP reconfiguration interface to access that PCIe configuration space register.
Reconfiguration
clock
50 MHz - 125 MHz
hip_reconfig_clk I EP/RP/BP
(Range)
100 MHz
(Recommended)
Avalon-MM read
data valid. When hip_reconfig_cl
hip_reconfig_readdatavalid_o O EP/RP/BP
asserted, the data k
on
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
93
4. Interfaces
UG-20225 | 2021.02.18
hip_reconfig_re
addata_o[7:0] is
valid.
hip_reconfig_cl
hip_reconfig_address_i[20:0] I Avalon-MM address EP/RP/BP
k
Reading from the Hard IP reconfiguration interface of the P-Tile Avalon-ST 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.
Figure 45. Timing Diagram to Perform Read and Write Operations Using the Hard IP
Reconfiguration Interface
hip_reconfig_clk
hip_reconfig_write_i
hip_reconfig_writedata_i[7:0] 0x01
hip_reconfig_read_i
hip_reconfig_readdatavalid
hip_reconfig_readdata_o[7:0] 0x01
hip_reconfig_waitrequest_o
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
94
4. Interfaces
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
95
4. Interfaces
UG-20225 | 2021.02.18
0x104068 User Avalon-MM Port Configuration Register 0x104068 User Avalon-MM Port Configuration Register
0x008000
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
96
4. Interfaces
UG-20225 | 2021.02.18
Debug (DBI) Register 0x104200 to 0x104204 Refer to Using the Debug Register
Interface Access (Dword Access) on
page 99 for more details.
Note: The x4 configuration only supports the RP mode. Therefore, this configuration does
not support the multi-function feature.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
97
4. Interfaces
UG-20225 | 2021.02.18
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 first specify the VF number of the targeted configuration
register.
The application needs to program the User Avalon-MM Port Configuration Register at
offset 0x104068 accordingly.
For example, to read VF3's MSI-X Capability registers, the user application needs to:
1. Issue a user Avalon-MM Write request with address 0x104068 and data 0xE
( vf_num[28:18] = 3, vf _select[17] = 1, vsec[0]=0).
2. Issue a user Avalon-MM Read request with address 0xB0 to access VF3 registers.
Note: You need to reprogram the Port Configuration and Status Register to access PF
registers.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
98
4. Interfaces
UG-20225 | 2021.02.18
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® Streaming IP for PCI Express* User Guide
99
4. Interfaces
UG-20225 | 2021.02.18
HIP reconfig addr 0x104200 0x104201 0x104202 0x104203 0x104204 0x104205 0x104206 0x104207
HIP reconfig writedata 0x01 0x23 0x45 0x67 ADDR CTRL 0x4
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
100
4. Interfaces
UG-20225 | 2021.02.18
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/BP
100 MHz (Recommended)
xcvr_reconfig_
xcvr_reconfig_write I Avalon-MM write enable EP/RP/BP
clk
Avalon-MM address
[25:21] are used to indicate
the Quad.
xcvr_reconfig_address[25:0 5'b00001 : Quad 0 xcvr_reconfig_
I EP/RP/BP
] clk
5'b00010 : Quad 1
5'b00100 : Quad 2
5'b01000 : Quad 3
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
101
4. Interfaces
UG-20225 | 2021.02.18
xcvr_reconfig_writedata[7: xcvr_reconfig_
I Avalon-MM write data inputs EP/RP/BP
0] clk
Reading from the PHY reconfiguration interface of the P-Tile Avalon-ST IP for PCI
Express retrieves the current value at a specific address.
Figure 52. 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
The PRS interface allows the monitoring of when PRS events happen, what functions
these PRS events belong to, and what types of events they are.
The PRS interface is only available in EP mode, and with TLP Bypass disabled.
Note: The P-Tile Avalon-ST IP for PCIe only provides the PRS capability. To take advantage of
this feature, you need to implement the necessary logic in your application.
Note: In the Intel Quartus Prime 20.3 release, only PF0 supports PRS. Furthermore, in this
release, the PRS interface only has Compilation (C) and Simulation (S) support.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
102
4. Interfaces
UG-20225 | 2021.02.18
There is a single-cycle
pulse for each PRS
event.
The figure below shows the timing diagram for the PRS event interface when the
application layer of function 0 sends an event of PRG response reception, and the
application layer of function 1 sends an event stopping requests for additional pages.
Figure 53. Example Timing Diagram for the PRS Event Interface
coreclkout_hip
prs_event_valid_i
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
103
UG-20225 | 2021.02.18
Send Feedback
5. Advanced Features
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.
For more details on the configuration space registers required for virtualization
support, refer to Configuration Space Registers for Virtualization on page 192.
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.
5. Advanced Features
UG-20225 | 2021.02.18
Feature Support
Extended Tags Supported by all PFs/VFs. The Extended Tags feature allows
the TLP Tag field to be 8-bit, thus allowing the support of
256 tags.
Note that the application is restricted to a max of 256
outstanding tags, at any given time, for all functions
combined.
The application logic is responsible for implementing the tag
generation/tracking functions.
This feature is reflected in the Extended Tag Field
Supported in the Device Capabilities register. By default,
this field is set to 1 in every physical function enabled in the
Intel FPGA P-Tile IP for PCI Express.
AER PFs are always AER capable. No AER implemented for VFs.
Internal Error Reporting Supported by all PFs (because all PFs are AER capable). No
support for VFs (because VFs do not support AER).
TLP Processing Hints 2-bit Processing Hint and 8-bit Steering Tag are supported
by all PFs/VFs. TPH Prefixes are not supported.
You can optionally choose to enable the TPH Requestor
capability. However, the IP is always TPH Completer
capable.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
105
5. Advanced Features
UG-20225 | 2021.02.18
Feature Support
Alternative Routing ID Interpretation (ARI) EP (PFs/VFs) is always ARI capable. This is a device-level
option (all lanes or none will support ARI).
In addition, RP will always be ARI capable (ARI Forwarding
Supported bit is always 1).
Data Link Layer Active Reporting Capability (Link This capability is always supported in RP mode, but not in
Capabilities) EP mode.
5.2.1.2. Implementation
The VF configuration space is implemented in P-Tile logic, and does not require FPGA
fabric resources.
Due to the limited number of pins between P-Tile and the FPGA fabric, the PCIe
configuration space for VFs is not directly available to the user application.
User application can use the following methods to retrieve necessary information (bus
master enable, MSI-X etc…):
• Monitor specific VF registers using the Configuration Intercept Interface (for more
details, refer to section Configuration Intercept Interface (EP Only) on page 91).
• Read/write specific VF registers using the Hard IP Reconfiguration Interface (for
more details, refer to Targeting VF Configuration Space Registers in section Using
Direct User Avalon-MM Interface (Byte Access) on page 98).
VF IDs are calculated within P-Tile. User application has sideband signals
rx_st_vf_num_o and rx_st_vf_active_o with the TLP to identify the associated
VFs within the PFs.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
106
5. Advanced Features
UG-20225 | 2021.02.18
BDF Assignments:
User application needs to provide the VF and PF information in the Header as shown
below:
The VFs, with no AER support, are required to generate Non-Fatal error messages. The
IP does not generate any error message. It is up to the user application logic to
generate appropriate messages when specific error conditions occur.
The P-Tile IP for PCIe makes necessary signals available to the user application logic
to generate these messages. The Completion Timeout Interface (described in section
Completion Timeout Interface on page 81) and the signals listed in the table below
provide the necessary information to generate Non-Fatal error messages.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
107
5. Advanced Features
UG-20225 | 2021.02.18
X8:
vf_err_poisonedwr
req_s0/1_o
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
108
5. Advanced Features
UG-20225 | 2021.02.18
5.2.1.3. VF to PF Mapping
VF to PF mapping always starts from the lowest possible PF number. For instance, if
the IP has 2 PFs, wherein PF0 has 64 VFs and PF1 has 16 VFs, VF1 to VF64 are
mapped to PF0, and VF65 to VF80 are mapped to PF1.
1 8 8
1 16 16
1 32 32
1 64 64
1 128 128
1 256 256
1 512 512
2 16/16 32
2 32/32 64
2 128/128 256
2 256/256 512
2 32/0 32
2 0/32 32
2 64/0 64
2 0/64 64
2 128/0 128
2 0/128 128
2 256/0 256
2 0/256 256
2 512/0 512
2 0/512 512
2 1024/0 1024
2 0/1024 1024
2 2048/0 2048
2 0/2048 2048
4 128/0/0/0 128
4 0/128/0/0 128
4 256/0/0/0 256
4 0/256/0/0 256
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
109
5. Advanced Features
UG-20225 | 2021.02.18
4 1024/0/0/0/0 1024
4 0/1024/0/0 1024
8 256/0/0/0/0/0/0/0 256
8 0/256/0/0/0/0/0/0 256
For example, the row that shows the combination of four PFs, 256 VFs, and the
notation 256/0/0/0 in the Number of VFs per PF column indicates that all 256
VFs are mapped to PF0, while no VF is mapped to PF1, PF2 or PF3.
Use the FLR interface to reset individual SR-IOV functions. The PCIe Hard IP supports
FLR for both PFs and VFs. If the FLR is for a specific VF, the received packets for that
VF are no longer valid. The flr_* interface signals are provided to the application
interface for this purpose. When the flr_rcvd* signal is asserted, it indicates that an
FLR is received for a particular PF/VF. Application logic needs to perform its FLR
routine and send the completion status back on the flr_completed* interface. The
Hard IP will wait for the flr_completed* status to re-enable the VF. Prior to that event,
the Hard IP will respond to all transactions to the function that is reset by the FLR with
completions with an Unsupported Request (UR) status.
The following figure shows the timing diagram for an FLR event targeting a PF (PF2 in
this example):
p0_flr_rcvd_pf_o[7:0] 00 01
p0_flr_completed_pf_i[7:0] 00 01
coreclkout_hip
Note: In the 20.3 release of Intel Quartus Prime, only compilation and simulation are
supported for the VirtIO feature.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
110
5. Advanced Features
UG-20225 | 2021.02.18
5.2.2.2. Overview
The VirtIO PCI configuration access capability creates an alternative access method to
the common configuration, notifications, ISR, and device-specific configuration
structure regions. This interface provides a means for the driver to access the VirtIO
device region of Physical Functions (PFs) or Virtual Functions (VFs).
Below is the block diagram of the Soft IP which implements the VirtIO capability for
PFs and VFs. This Soft IP block is automatically included when the VirtIO feature is
enabled in the IP Parameter Editor.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
111
5. Advanced Features
UG-20225 | 2021.02.18
flr_rcvd*
coreclkout_hip
cfg_monitor User
p0_reset_status_n
Side
...
cii_halt
.
cii_override_en cfg_rd_data
cii_override_din cfg_req_ack
Dataflow w/
Control ARBT PF8_VFs
...
(CII_o SM)
5.2.2.3. Parameters
For a detailed discussion of the VirtIO-related parameters, refer to the section VirtIO
Parameters on page 30 in the Parameters chapter.
To access a VirtIO device region, pci_cfg_data will provide a window of size cap.length
(1, 2 or 4 Bytes) into the given cap.bar (0x0 – 0x5) at offset cap.offset (multiple of
cap.length). Detailed interfaces mapping for the user application logic are shown in
the following table.
As for the VirtIO device, upon detecting a driver write access to pci_cfg_data, the user
application side's VirtIO device must execute a write access at cap.offset at the BAR
selected by cap.bar using the first cap.length bytes from pci_cfg_data. Moreover, upon
detecting a driver read access to pci_cfg_data, the user application side's VirtIO
device must execute a read access of length cap.length at cap.offset at the BAR
selected by cap.bar and store the first cap.length bytes in pci_cfg_data.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
112
5. Advanced Features
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
113
5. Advanced Features
UG-20225 | 2021.02.18
5.2.2.5. Registers
The following VirtIO capability structure registers references apply to each PF and VF.
Addresses shown are register addresses.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
114
5. Advanced Features
UG-20225 | 2021.02.18
012 Common Configuration Capability Capability ID, next capability pointer, capability length
Register
013 BAR Indicator Register Lower 8 bits indicate which BAR holds the structure
014 BAR Offset Register Indicates starting address of the structure within the BAR
016 Notifications Capability Register Capability ID, next capability pointer, capability length
017 BAR Indicator Register Lower 8 bits indicate which BAR holds the structure
018 BAR Offset Register Indicates starting address of the structure within the BAR
02F ISR Status Capability Register Capability ID, next capability pointer, capability length
030 BAR Indicator Register Lower 8 bits indicate which BAR holds the structure
031 BAR Offset Register Indicates starting address of the structure within the BAR
033 Device Specific Capability Register Capability ID, next capability pointer, capability length
034 BAR Indicator Register Lower 8 bits indicate which BAR holds the structure
035 BAR Offset Register Indicates starting address of the structure within the BAR
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
115
5. Advanced Features
UG-20225 | 2021.02.18
037 PCI Configuration Access Capability Capability ID, next capability pointer, capability length
Register
038 BAR Indicator Register Lower 8 bits indicate which BAR holds the structure
039 BAR Offset Register Indicates starting address of the structure within the BAR
The Bar Indicator field holds the values 0x0 to 0x5 specifying a Base Address register
(BAR) belonging to the function located beginning at 10h in PCI Configuration Space.
The BAR is used to map the structure into the memory space. Any other value is
reserved for future use.
This register indicates where the structure begins relative to the base address
associated with the BAR. The alignment requirements of the offset are indicated in
each structure-specific section.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
116
5. Advanced Features
UG-20225 | 2021.02.18
The length register indicates the length of the structure. The length may include
padding, fields unused by the driver, or future extensions.
The Bar Indicator field holds the values 0x0 to 0x5 specifying a Base Address register
(BAR) belonging to the function located beginning at 10h in PCI Configuration Space.
The BAR is used to map the structure into memory space. Any other value is reserved
for future use.
This register indicates where the structure begins relative to the base address
associated with the BAR. The alignment requirements of the offset are indicated in
each structure-specific section.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
117
5. Advanced Features
UG-20225 | 2021.02.18
The length register indicates the length of the structure. The length may include
padding, fields unused by the driver, or future extensions.
The notify off multiplier register indicates the multiplier for queue_notify_off in the
structure.
The Bar Indicator field holds the values 0x0 to 0x5 specifying a Base Address register
(BAR) belonging to the function located beginning at 10h in PCI Configuration Space.
The BAR is used to map the structure into memory space. Any other value is reserved
for future use.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
118
5. Advanced Features
UG-20225 | 2021.02.18
This register indicates where the structure begins relative to the base address
associated with the BAR. The alignment requirements of the offset are indicated in
each structure-specific section.
The length register indicates the length of the structure. The length may include
padding, fields unused by the driver, or future extensions.
The capability register identifies that this is vendor-specific capability. It also identifies
the structure type.
The BAR Indicator field holds the values 0x0 to 0x5 specifying a Base Address register
(BAR) belonging to the function located beginning at 10h in PCI Configuration Space.
The BAR is used to map the structure into memory space. Any other value is reserved
for future use.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
119
5. Advanced Features
UG-20225 | 2021.02.18
This register indicates where the structure begins relative to the base address
associated with the BAR. The alignment requirements of the offset are indicated in
each structure-specific section.
The length register indicates the length of the structure. The length may include
padding, fields unused by the driver, or future extensions.
5.2.2.5.19. VirtIO PCI Configuration Access BAR Indicator Register (Address: 0x038)
The BAR Indicator field holds the values 0x0 to 0x5 specifying a Base Address register
(BAR) belonging to the function located beginning at 10h in PCI Configuration Space.
The BAR is used to map the structure into memory space. Any other value is reserved
for future use.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
120
5. Advanced Features
UG-20225 | 2021.02.18
5.2.2.5.20. VirtIO PCI Configuration Access BAR Offset Register (Address: 0x039)
This register indicates where the structure begins relative to the base address
associated with the BAR. The alignment requirements of the offset are indicated in
each structure-specific section.
5.2.2.5.21. VirtIO PCI Configuration Access Structure Length Register (Address: 0x03A)
The length register indicates the length of the structure. The length may include
padding, fields unused by the driver, or future extensions.
The PCI configuration data register indicates the data for BAR access.
X16 UP
DN
X8 UP/UP
UP/DN
DN/UP
DN/DN
X4 UP/UP/UP/UP
DN/DN/DN/DN
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
121
5. Advanced Features
UG-20225 | 2021.02.18
5.3.1. Overview
When the TLP Bypass feature is enabled, the P-Tile Avalon-ST IP does not process
received TLPs internally but outputs them to the user application. This allows the
application to implement a custom Transaction Layer.
Note that in TLP Bypass mode, the PCIe Hard IP does not generate/check the ECRC
and will not remove it if the received TLP has the ECRC.
The P-tile Avalon-ST IP in TLP Bypass mode still includes some of the PCIe
configuration space registers related to link operation (refer to the Configuration
Space Registers on page 184 chapter for the list of registers).
P-Tile interfaces with the application logic via the Avalon-ST interface (for all TLP
traffic), the User Avalon-MM interface (for Lite TL’s configuration registers access) and
other miscellaneous signals.
Rx
Buffer Lite Transaction Layer
Avalon ST
User Avalon MM
Replay
Buffer
In TLP bypass mode, P-Tile supports the autonomous Hard IP feature. It responds to
configuration accesses before the FPGA fabric enters user mode with Completions with
a CRS code.
However, in TLP bypass mode, CvP init and update are not supported.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
122
5. Advanced Features
UG-20225 | 2021.02.18
This register allows you to enable or disable error reporting. When this feature is
disabled, the TLPBYPASS_ERR_ STATUS bits associated with an error are not set when
the error is detected.
When an error is detected, Intel recommends that you read the PF0 AER register
inside P-Tile to get detailed information about the error. To clear the previous error
status, you need to clear TLPBYPASS_ERR_STATUS and the corresponding correctable
and uncorrectable error status registers in the AER capability structure. After doing
that, you can get the new error update from this register.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
123
5. Advanced Features
UG-20225 | 2021.02.18
The majority of the PCIe standard registers are implemented in the user’s logic
outside of the P-Tile Avalon-ST IP.
The application can only access PCIe controller registers through the User Avalon-MM
interface.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
124
5. Advanced Features
UG-20225 | 2021.02.18
Table 104. Capability Registers to be Updated by the Application Logic via the User
Avalon-MM Interface
Capability Comments
Power Management Capability Need to write back since it is required to trigger a PCI-PM entry.
PCI Express Capability All the PCIe capabilities, control and status registers are for configuring
the device. Write-back is required.
Secondary PCI Express Capability Secondary PCIe Capability is required for configuring the device.
Data Link Feature Extended Capability Data Link Capability is device specific.
Physical Layer 16.0 GT/s Extended Capability Physical Layer 16G Capability is device specific.
Lane Margining at the Receiver Extended Margining Extended Capability is device specific.
Capability
Advanced Error Reporting Capability Write-back to error status registers is required for TLP Bypass.
Note: Refer to Table 119 on page 184 for the address offsets information for the capability
registers listed in the table above.
The P-Tile IP forwards any received Type0/1 Configuration TLP to the Avalon-ST RX
streaming interface. User’s logic has the responsibility to respond with a Completion
TLP with a Completion code of Successful Completion (SC), Unsupported Request
(UR), Configuration Request Retry Status (CRS), or Completer Abort (CA).
If a Configuration TLP needs to update a register in the PCIe configuration space in the
P-Tile PCIe Hard IP, you need to use the User Avalon-MM interface.
The application needs to prevent link programming side effects such as writing into
low-power states before sending the Completion associated with the request. The
application logic can check the TX FIFO empty flag in the tx_cdts_limit_o after the
Completion enters the TX streaming interface to confirm that the TLP has been sent.
For more details on the User Avalon-MM interface, refer to the section Hard IP
Reconfiguration Interface (User Avalon-MM Interface).
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
125
5. Advanced Features
UG-20225 | 2021.02.18
Figure 58. Configuration TLP Received by P-Tile IP for PCIe Targeting the Hard IP
Internal Registers
Hard IP in TLP BYPASS
Rx
Buffer Lite Transaction Layer RX Avalon ST
CFG Type 0
Targeting HIP
Registers
PMA + PCS PHY Layer Data Link Layer Lite PCle
Avalon MM
Configuration
Replay TX Avalon ST
Buffer
CPL Generated
After Avalon
MM Access
ALL TLPs received by the IP are transmitted to the application through the RX
streaming interface (except Malformed TLPs).
Please refer to the Packets Forwarded to the User Application in TLP Bypass Mode on
page 205 Appendix for detailed information.
All PCIe protocol errors leading up to designating a TLP packet as a good packet or not
will be detected by the Hard IP and communicated to user logic to take appropriate
action in terms of error logging and escalation. The IP does not generate any error
message internally, since this is the responsibility of the user logic.
In TLP Bypass mode, a malformed TLP is dropped in the P-Tile IP for PCIe and its
event is logged in the AER capability registers. P-Tile also notifies you of this event by
asserting the serr_out_o signal.
Refer to the PCI Express Base Specification for the definition of a malformed TLP.
5.3.4.5. ECRC
In TLP bypass mode, the ECRC is not generated or stripped by the P-Tile Avalon-ST IP
for PCIe.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
126
UG-20225 | 2021.02.18
Send Feedback
6. Testbench
This chapter introduces the testbench for an Endpoint design example and a test
driver module. You can create this design example using design flows described in
Quick Start Guide chapter of the Intel FPGA P-Tile Avalon streaming IP for PCI Express
Design Example User Guide.
This testbench simulates the scenario of a single Root Port talking to a single
Endpoint.
Note: The Intel testbench and Root Port BFM provide a simple method to do basic testing of
the Application Layer logic that interfaces to the variation. This BFM allows you to
create and run simple task stimuli with configurable parameters to exercise basic
functionality of the Intel example design. The testbench and Root Port BFM are not
intended to be a substitute for a full verification environment. Corner cases and
certain traffic profile stimuli are not covered. Refer to the items listed below for further
details. To ensure the best verification coverage possible, Intel suggests strongly that
you obtain commercially available PCI Express verification IP and tools, in combination
with performing extensive hardware testing.
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. Testbench
UG-20225 | 2021.02.18
Your Application Layer design may need to handle at least the following scenarios that
are not possible to create with the Intel testbench and the Root Port BFM, or are due
to the limitations of the example design:
• It is unable to generate or receive Vendor Defined Messages. Some systems
generate Vendor Defined Messages. The Hard IP block simply passes these
messages on to the Application Layer. Consequently, you should make the
decision, based on your application, whether to design the Application Layer to
process them.
• It can only handle received read requests that are less than or equal to the
currently set Maximum payload size option specified under the Device tab
under the PCI Express/PCI Capabilities GUI using the parameter editor. Many
systems are capable of handling larger read requests that are then returned in
multiple completions.
• It always returns a single completion for every read request. Some systems split
completions on every 64-byte address boundary.
• It always returns completions in the same order the read requests were issued.
Some systems generate the completions out-of-order.
• It is unable to generate zero-length read requests that some systems generate as
flush requests following some write transactions. The Application Layer must be
capable of generating the completions to the zero-length read requests.
• It uses fixed credit allocation.
• It does not support parity.
• It does not support multi-function designs.
• It incorrectly responds to Type 1 vendor-defined messages with CplD packets.
This testbench simulates up to a ×16 PCI Express link using the serial PCI Express
interface. The testbench design does allow more than one PCI Express link to be
simulated at a time. The following figure presents a high level view of the design
example.
Avalon-ST Avalon-MM
Generated PCIe On-Chip
hip_serial data data
Endpoint PIO Application Memory
Variant (dut) (pio0) (MEM0)
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
128
6. Testbench
UG-20225 | 2021.02.18
• pcie_ed_dut.ip: This is the Endpoint design with the parameters that you
specify.
//Directory path
<project_dir>/intel_pcie_ptile_ast_0_example_design/ip/pcie_ed
In addition, the testbench has routines that perform the following tasks:
• Generates the reference clock for the Endpoint at the required frequency.
• Provides a PCI Express reset at start up.
The SR-IOV design example testbench supports up to two Physical Functions (PFs) and
32 Virtual Functions (VFs) per PF.
For more details on the PIO design example testbench and SR-IOV design example
testbench, refer to the Intel FPGA P-Tile Avalon streaming IP for PCI Express Design
Example User Guide.
Related Information
Intel FPGA P-Tile Avalon streaming IP for PCI Express Design Example User Guide
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
129
6. Testbench
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
130
6. Testbench
UG-20225 | 2021.02.18
In the PIO design example, the apps_type_hwtcl parameter is set to 3. The tests
run under this parameter value are defined in ebfm_cfg_rp_ep_rootport,
find_mem_bar and downstream_loop.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
131
6. Testbench
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
132
6. Testbench
UG-20225 | 2021.02.18
BFM procedure calls to generate full PCIe addresses for read and write requests to
particular offsets from a BAR use this data structure. This procedure allows the
testbench code that accesses the Endpoint application logic to use offsets from a BAR
and avoid tracking specific addresses assigned to the BAR. The following table shows
how to use those offsets.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
133
6. Testbench
UG-20225 | 2021.02.18
+28 Reserved
+32 BAR0 read back value after being written with all 1’s (used to compute size)
+36 BAR1 read back value after being written with all 1’s
+40 BAR2 read back value after being written with all 1’s
+44 BAR3 read back value after being written with all 1’s
+48 BAR4 read back value after being written with all 1’s
+52 BAR5 read back value after being written with all 1’s
+56 Expansion ROM BAR read back value after being written with all 1’s
+60 Reserved
The configuration routine does not configure any advanced PCI Express capabilities
such as the AER capability.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
134
6. Testbench
UG-20225 | 2021.02.18
Root Complex
Shared Memory
0x001F FF80
Configuration Scratch
Space Used by
BFM Routines - Not
Writeable by User
0x001F FFC0 Calls or Endpoint
BAR Table
Used by BFM
Routines - Not
Writeable by User
0x0020 0000 Calls or End Point
Endpoint Non-
Prefetchable Memory
Space BARs
Assigned Smallest
to Largest
Unused
Endpoint Memory
Space BARs
Prefetchable 32-bit
and 64-bit
Assigned Smallest
to Largest
0xFFFF FFFF
The following figure shows the resulting memory space map when the
addr_map_4GB_limit is 0.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
135
6. Testbench
UG-20225 | 2021.02.18
Root Complex
Shared Memory
0x001F FF80
Configuration Scratch
Space Used by
Routines - Not
Writeable by User
0x001F FF00 Calls or Endpoint
BAR Table
Used by BFM
Routines - Not
Writeable by User
0x0020 0000 Calls or Endpoint
Endpoint Non-
Prefetchable Memory
Space BARs
Assigned Smallest
BAR-Size Dependent to Largest
Unused
BAR-Size Dependent
Endpoint Memory
Space BARs
Prefetchable 32-bit
Assigned Smallest
0x0000 0001 0000 0000 to Largest
Endpoint Memory
Space BARs
Prefetchable 64-bit
Assigned Smallest
to Largest
BAR-Size Dependent
Unused
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
136
6. Testbench
UG-20225 | 2021.02.18
Root Complex
Shared Memory
0x001F FF80
Configuration Scratch
Space Used by BFM
Routines - Not
Writeable by User
0x001F FFC0 Calls or Endpoint
BAR Table
Used by BFM
Routines - Not
Writeable by User
0x0020 0000 Calls or Endpoint
Endpoint
I/O Space BARs
Assigned Smallest
to Largest
BAR-Size Dependent
Unused
0xFFFF FFFF
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
137
6. Testbench
UG-20225 | 2021.02.18
These routines take as parameters a BAR number to access the memory space and
the BFM shared memory address of the bar_table data structure that was set up by
the ebfm_cfg_rp_ep procedure. (Refer to Configuration of Root Port and Endpoint.)
Using these parameters simplifies the BFM test driver routines that access an offset
from a specific BAR and eliminates calculating the addresses assigned to the specified
BAR.
The Root Port BFM does not support accesses to Endpoint I/O space BARs.
The BFM read and write procedures read and write data to BFM shared memory,
Endpoint BARs, and specified configuration registers. The procedures and functions are
available in the Verilog HDL. These procedures and functions support issuing memory
and configuration transactions on the PCI Express link.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
138
6. Testbench
UG-20225 | 2021.02.18
Location
Arguments bar_table Address of the Endpoint bar_table structure in BFM shared memory.
The bar_table structure stores the address assigned to each BAR so
that the driver code does not need to be aware of the actual assigned
addresses only the application specific offsets from the BAR.
bar_num Number of the BAR used with pcie_offset to determine PCI Express
address.
byte_len Length, in bytes, of the data written. Can be 1 to the minimum of the
bytes remaining in the BAR space or BFM shared memory.
Arguments bar_table Address of the Endpoint bar_table structure in BFM shared memory.
The bar_table structure stores the address assigned to each BAR so
that the driver code does not need to be aware of the actual assigned
addresses only the application specific offsets from the BAR.
bar_num Number of the BAR used with pcie_offset to determine PCI Express
address.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
139
6. Testbench
UG-20225 | 2021.02.18
Location
Arguments bar_table Address of the Endpoint bar_table structure in BFM shared memory.
The bar_table structure stores the address assigned to each BAR so that
the driver code does not need to be aware of the actual assigned
addresses only the application specific offsets from the BAR.
bar_num Number of the BAR used with pcie_offset to determine PCI Express
address.
lcladdr BFM shared memory address where the read data is stored.
Arguments bar_table Address of the Endpoint bar_table structure in BFM shared memory.
bar_num Number of the BAR used with pcie_offset to determine PCI Express
address.
lcladdr BFM shared memory address where the read data is stored.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
140
6. Testbench
UG-20225 | 2021.02.18
Location
regb_ln Length, in bytes, of the data written. Maximum length is four bytes. The
regb_ln and the regb_ad arguments cannot cross a DWORD
boundary.
regb_ln Length, in bytes, of the data written. Maximum length is four bytes, The
regb_ln the regb_ad arguments cannot cross a DWORD boundary.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
141
6. Testbench
UG-20225 | 2021.02.18
Location
regb_ln Length, in bytes, of the data read. Maximum length is four bytes. The
regb_ln and the regb_ad arguments cannot cross a DWORD
boundary.
lcladdr BFM shared memory address of where the read data should be placed.
regb_ln Length, in bytes, of the data written. Maximum length is four bytes. The
regb_ln and regb_ad arguments cannot cross a DWORD boundary.
lcladdr BFM shared memory address where the read data should be placed.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
142
6. Testbench
UG-20225 | 2021.02.18
The ebfm_cfg_rp_ep procedure configures the Root Port and Endpoint Configuration
Space registers for operation.
Location
Arguments bar_table Address of the Endpoint bar_table structure in BFM shared memory.
This routine populates the bar_table structure. The bar_table
structure stores the size of each BAR and the address values assigned to
each BAR. The address of the bar_table structure is passed to all
subsequent read and write procedure calls that access an offset from a
particular BAR.
ep_bus_num PCI Express bus number of the target device. This number can be any
value greater than 0. The Root Port uses this as the secondary bus
number.
ep_dev_num PCI Express device number of the target device. This number can be
any value. The Endpoint is automatically assigned this value when it
receives the first configuration transaction.
rp_max_rd_req_size Maximum read request size in bytes for reads issued by the Root Port.
This parameter must be set to the maximum value supported by the
Endpoint Application Layer. If the Application Layer only supports reads
of the MAXIMUM_PAYLOAD_SIZE, then this can be set to 0 and the read
request size is set to the maximum payload size. Valid values for this
argument are 0, 128, 256, 512, 1,024, 2,048 and 4,096.
display_ep_config When set to 1 many of the Endpoint Configuration Space registers are
displayed after they have been initialized, causing some additional reads
of registers that are not normally accessed during the configuration
process such as the Device ID and Vendor ID.
addr_map_4GB_limit When set to 1 the address map of the simulation system is limited to 4
GB. Any 64-bit BARs are assigned below the 4 GB limit.
The ebfm_cfg_decode_bar procedure analyzes the information in the BAR table for
the specified BAR and returns details about the BAR attributes.
Location
Arguments bar_table Address of the Endpoint bar_table structure in BFM shared memory.
log2_size This argument is set by the procedure to the log base 2 of the size of
the BAR. If the BAR is not enabled, this argument is set to 0.
is_mem The procedure sets this argument to indicate if the BAR is a memory
space BAR (1) or I/O Space BAR (0).
is_pref The procedure sets this argument to indicate if the BAR is a prefetchable
BAR (1) or non-prefetchable BAR (0).
is_64b The procedure sets this argument to indicate if the BAR is a 64-bit BAR
(1) or 32-bit BAR (0). This is set to 1 only for the lower numbered BAR
of the pair.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
143
6. Testbench
UG-20225 | 2021.02.18
SHMEM_FILL_BYTE_INC Specifies a data pattern of incrementing 8-bit bytes (0x00, 0x01, 0x02,
etc.)
Arguments addr BFM shared memory starting address for writing data
Arguments addr BFM shared memory starting address for reading data
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
144
6. Testbench
UG-20225 | 2021.02.18
The shmem_display Verilog HDL function displays a block of data from the BFM
shared memory.
Location
Arguments addr BFM shared memory starting address for displaying data.
word_size Size of the words to display. Groups individual bytes into words. Valid
values are 1, 2, 4, and 8.
flag_addr Adds a <== flag to the end of the display line containing this address.
Useful for marking specific data. Set to a value greater than 2**21 (size
of BFM shared memory) to suppress the flag.
The shmem_fill procedure fills a block of BFM shared memory with a specified data
pattern.
Location
Arguments addr BFM shared memory starting address for filling data.
mode Data pattern used for filling the data. Should be one of the constants
defined in section Shared Memory Constants.
leng Length, in bytes, of data to fill. If the length is not a multiple of the
incrementing data pattern width, then the last data pattern is truncated
to fit.
init Initial data value used for incrementing data pattern modes. This
argument is reg [63:0].
The necessary least significant bits are used for the data patterns that
are smaller than 64 bits.
Arguments addr BFM shared memory starting address for checking data.
mode Data pattern used for checking the data. Should be one of the constants
defined in section “Shared Memory Constants” on page 18–35.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
145
6. Testbench
UG-20225 | 2021.02.18
Location
init This argument is reg [63:0].The necessary least significant bits are
used for the data patterns that are smaller than 64-bits.
display_error When set to 1, this argument displays the data failing comparison on
the simulator standard output.
The following constants define the type of message and their values determine
whether a message is displayed or simulation is stopped after a specific message.
Each displayed message has a specific prefix, based on the message type in the
following table.
You can suppress the display of certain message types. The default values determining
whether a message type is displayed are defined in the following table. To change the
default message display, modify the display default value with a procedure call to
ebfm_log_set_suppressed_msg_mask.
Certain message types also stop simulation after the message is displayed. The
following table shows the default value determining whether a message type stops
simulation. You can specify whether simulation stops for particular messages with the
procedure ebfm_log_set_stop_on_msg_mask.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
146
6. Testbench
UG-20225 | 2021.02.18
A message can be suppressed, simulation can be stopped or both based on the default
settings of the message type and the value of the bit mask when each of the
procedures listed below is called. You can call one or both of these procedures based
on what messages you want displayed and whether or not you want simulation to stop
for specific messages.
• When ebfm_log_set_suppressed_msg_mask is called, the display of the
message might be suppressed based on the value of the bit mask.
• When ebfm_log_set_stop_on_msg_mask is called, the simulation can be
stopped after the message is displayed, based on the value of the bit mask.
Location
Argument msg_type Message type for the message. Should be one of the constants defined
in Table 106 on page 144.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
147
6. Testbench
UG-20225 | 2021.02.18
Location
Argument success When set to a 1, this process stops the simulation with a message
indicating successful completion. The message is prefixed with
SUCCESS.
Otherwise, this process stops the simulation with a message indicating
unsuccessful completion. The message is prefixed with FAILURE.
Return Always 0 This value applies only to the Verilog HDL function.
The ebfm_log_open procedure opens a log file of the specified name. All displayed
messages are called by ebfm_display and are written to this log file as simulator
standard output.
Location
Argument fn This argument is type string and provides the file name of log file to
be opened.
The ebfm_log_close procedure closes the log file opened by a previous call to
ebfm_log_open.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
148
6. Testbench
UG-20225 | 2021.02.18
Location
Syntax ebfm_log_close
Argument NONE
6.4.12.1. himage1
Return range string Returns a 1-digit hexadecimal representation of the input argument.
Return data is type reg with a range of 8:1
6.4.12.2. himage2
Argument range vec Input data type reg with a range of 7:0.
Return range string Returns a 2-digit hexadecimal presentation of the input argument,
padded with leading 0s, if they are needed. Return data is type reg with
a range of 16:1
6.4.12.3. himage4
Argument range vec Input data type reg with a range of 15:0.
Return range Returns a four-digit hexadecimal representation of the input argument, padded with leading 0s, if they
are needed. Return data is type reg with a range of 32:1.
6.4.12.4. himage8
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
149
6. Testbench
UG-20225 | 2021.02.18
Location
Argument range vec Input data type reg with a range of 31:0.
Return range string Returns an 8-digit hexadecimal representation of the input argument,
padded with leading 0s, if they are needed. Return data is type reg with
a range of 64:1.
6.4.12.5. himage16
Argument range vec Input data type reg with a range of 63:0.
Return range string Returns a 16-digit hexadecimal representation of the input argument,
padded with leading 0s, if they are needed. Return data is type reg with
a range of 128:1.
6.4.12.6. dimage1
This function creates a one-digit decimal string representation of the input argument
that can be concatenated into a larger message string and passed to ebfm_display.
Location
Argument range vec Input data type reg with a range of 31:0.
Return range string Returns a 1-digit decimal representation of the input argument that is
padded with leading 0s if necessary. Return data is type reg with a
range of 8:1.
Returns the letter U if the value cannot be represented.
6.4.12.7. dimage2
This function creates a two-digit decimal string representation of the input argument
that can be concatenated into a larger message string and passed to ebfm_display.
Location
Argument range vec Input data type reg with a range of 31:0.
Return range string Returns a 2-digit decimal representation of the input argument that is
padded with leading 0s if necessary. Return data is type reg with a
range of 16:1.
Returns the letter U if the value cannot be represented.
6.4.12.8. dimage3
This function creates a three-digit decimal string representation of the input argument
that can be concatenated into a larger message string and passed to ebfm_display.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
150
6. Testbench
UG-20225 | 2021.02.18
Location
Argument range vec Input data type reg with a range of 31:0.
Return range string Returns a 3-digit decimal representation of the input argument that is
padded with leading 0s if necessary. Return data is type reg with a
range of 24:1.
Returns the letter U if the value cannot be represented.
6.4.12.9. dimage4
This function creates a four-digit decimal string representation of the input argument
that can be concatenated into a larger message string and passed to ebfm_display.
Location
Argument range vec Input data type reg with a range of 31:0.
Return range string Returns a 4-digit decimal representation of the input argument that is
padded with leading 0s if necessary. Return data is type reg with a
range of 32:1.
Returns the letter U if the value cannot be represented.
6.4.12.10. dimage5
This function creates a five-digit decimal string representation of the input argument
that can be concatenated into a larger message string and passed to ebfm_display.
Location
Argument range vec Input data type reg with a range of 31:0.
Return range string Returns a 5-digit decimal representation of the input argument that is
padded with leading 0s if necessary. Return data is type reg with a
range of 40:1.
Returns the letter U if the value cannot be represented.
6.4.12.11. dimage6
This function creates a six-digit decimal string representation of the input argument
that can be concatenated into a larger message string and passed to ebfm_display.
Location
Argument range vec Input data type reg with a range of 31:0.
Return range string Returns a 6-digit decimal representation of the input argument that is
padded with leading 0s if necessary. Return data is type reg with a
range of 48:1.
Returns the letter U if the value cannot be represented.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
151
6. Testbench
UG-20225 | 2021.02.18
6.4.12.12. dimage7
This function creates a seven-digit decimal string representation of the input argument
that can be concatenated into a larger message string and passed to ebfm_display.
Location
Argument range vec Input data type reg with a range of 31:0.
Return range string Returns a 7-digit decimal representation of the input argument that is
padded with leading 0s if necessary. Return data is type reg with a
range of 56:1.
Returns the letter <U> if the value cannot be represented.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
152
UG-20225 | 2021.02.18
Send Feedback
7. 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.
7.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-ST 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.
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Is the link
Go to “7.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-ST IP for PCI Express.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
154
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
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-ST IP for PCI Express.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
155
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
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-ST IP for PCI Express to confirm the failure symptom for any
port type (Root Port, Endpoint or TLP Bypass) and configuration (Gen4/Gen3).
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
156
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Negotiated link speed using the Use the Transaction Layer tl_cfg_add_o[4:0] = 5'h05
Transaction Layer Configuration Output Configuration Output interface (tl_cfg) tl_cfg_ctl_o[15:12] =
interface (tl_cfg): to monitor the auto-negotiated link
speed. • 4’h01 (Gen1)
tl_cfg_add_o[4:0]
• 4’h02 (Gen2)
tl_cfg_ctl_o[15:12]
• 4’h04 (Gen3)
tl_cfg_func_o[2:0] • 4’h08 (Gen4)
tl_cfg_func_o[2:0] (NA for x4) =
• 3’b000: PF0
• 3'b001: PF1, etc.
Negotiated link width using the Use the Transaction Layer tl_cfg_add_o[4:0] = 5'h1C
Transaction Layer Configuration Output Configuration Output interface (tl_cfg) tl_cfg_ctl_o[5:0] =
interface (tl_cfg): to monitor the auto-negotiated link
width. • 6’h01 (x1)
tl_cfg_add_o[4:0]
• 6’h02 (x2)
tl_cfg_ctl_o[15:12]
• 6’h04 (x4)
tl_cfg_func_o[2:0] • 6’h08 (x8)
• 6'h10 (x16)
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
157
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Use the Hard IP reconfiguration interface and PHY reconfiguration interface on the P-
Tile Avalon-ST 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
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 109. 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 109 on page 158 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.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
158
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
• 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 109 on page 158 for the offset mapping.
• hip_reconfig_readdata_o[7:0] = Refer to Table 109 on page 158 for the
bit position mapping.
Refer to the section PHY Reconfiguration Interface for details on how to use this
interface.
Follow the steps below to access registers in Table 110 on page 160 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 110 on page 160 for the address offset and bit
mapping.
• xcvr_reconfig_readdata_o[7:0] = Refer to Table 110 on page 160 for
the address offset and bit mapping.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
159
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Table 110. PHY Reconfiguration Interface Register Map for PHY Status
PHY Offset Bit Position Register
Table 111. 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 configuration output interface,
to a PCS error when a lane is in L0, or or the Hard IP reconfiguration interface
a Control symbol being received in the and the flow chart in Figure 65 on page
wrong lane, or signal Integrity issues 155 to obtain more information about
where the link may transition from L0 the error.
to the Recovery state.
continued...
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
160
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Bad DLLP bit set Data link layer error which may occur Use the configuration output interface
when a CRC verification fails. or the Hard IP reconfiguration interface
to obtain more information about the
error.
Bad TLP bit set Data link layer error which may occur Use the configuration output interface
when an LCRC verification fails or when or the Hard IP reconfiguration interface
a sequence number error occurs. to obtain more information about the
error.
Replay_num_rollover bit set Data link layer error which may be due Use the configuration output interface
to TLPs sent without success (no ACK) or the Hard IP reconfiguration interface
four times in a row. to obtain more information about the
error.
replay timer timeout status bit set Data link layer error which may occur Use the configuration output interface
when no ACK or NAK was received or the Hard IP reconfiguration interface
within the timeout period for the TLPs to obtain more information about the
transmitted. error.
Corrected internal error bits set Transaction layer error which may be Use the error interface, configuration
due to an ECC error in the internal output interface, or the Hard IP
Hard IP RAM. reconfiguration interface and DBI
registers to obtain more information
about the error.
Data link protocol error Data link layer error which may be due Use the configuration output interface,
to transmitter receiving an ACK/NAK Hard IP reconfiguration interface to
whose Seq ID does not correspond to obtain more information about the
an unacknowledged TLP or ACK error.
sequence number.
Surprise down error Data link layer error which may be due Use the error interface, configuration
to link_up_o getting deasserted output interface, Hard IP
during L0, indicating the physical layer reconfiguration interface and DBI
link is going down unexpectedly. registers to obtain more information
about the error.
Flow control protocol error Transaction layer error which can be Use the TX/RX flow control interface,
due to the receiver reporting more configuration output interface, Hard IP
than the allowed credit limit. reconfiguration interface to obtain
This error occurs when a component more information about the error.
does not receive updated flow control
credits with the 200 μs limit.
Poisoned TLP received Transaction layer error which can be Use the error interface, configuration
due to a received TLP with the EP bit output interface, configuration
set. intercept interface, Hard IP
reconfiguration interface to obtain
more information on the error and
determine the appropriate action.
Completion timeout Transaction layer error which can be Use the error interface, completion
due to a completion not received within timeout interface, configuration output
the required amount of time after a interface, Hard IP reconfiguration
non-posted request was sent. interface to obtain more information on
the error.
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
161
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Completer abort Transaction layer error which can be Use the configuration output interface,
due to a completer being unable to error interface, Hard IP reconfiguration
fulfill a request due to a problem with interface to obtain more information on
the requester or a failure of the the error.
completer.
Unexpected completion Transaction layer error which can be Use the configuration output interface,
due to a requester receiving a error interface, Hard IP reconfiguration
completion that doesn’t match any interface to obtain more information on
request awaiting a completion. the error.
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 error interface, configuration output
than the available receive buffer space. interface, Hard IP reconfiguration
The TLP is deleted by the Hard IP and interface to obtain more information on
not presented to the Application Layer. the error.
Malformed TLP Transaction layer error which can be Use the error interface, configuration
due to errors in the received TLP output interface, Hard IP
header. reconfiguration interface to obtain
The TLP is deleted by the Hard IP and more information on the error.
not presented to the Application Layer.
ECRC error Transaction layer error which can be Use the configuration output interface,
due to an ECRC check failure at the Hard IP reconfiguration interface to
receiver despite the fact that the TLP is obtain more information on 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.
Unsupported request Transaction layer error which can be Use the configuration output interface,
due to the completer being unable to error interface, Hard IP reconfiguration
fulfill the request. interface to obtain more information on
The TLP is deleted in the Hard IP block the error.
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 configuration output interface,
due to access control error in the error interface, Hard IP reconfiguration
received posted or non-posted request. interface to obtain more information on
the error.
Uncorrectable internal error Transaction layer error which can be Use the error interface, configuration
due to an internal error that cannot be output interface, Hard IP
corrected by the hardware. reconfiguration interface and DBI
registers to obtain more information on
the error.
continued...
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
162
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Poisoned TLP egress blocked EP or RP only Use the error interface, configuration
output interface, configuration
intercept interface, Hard IP
reconfiguration interface to obtain
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-ST IP for PCI
Express.
Related Information
PCI Express Base Specification Revision 4.0 version 1.0
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-ST 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 IP, the Physical Functions (PFs) are always capable of AER (enabled by default).
There is no AER implementation for Virtual Functions (VFs).
Use the AER capability of the 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® Streaming IP for PCI Express* User Guide
163
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
7.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 Layer.
The following figure provides an overview of the P-Tile Debug Toolkit in the P-Tile
Avalon-ST IP for PCI Express.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
164
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
intel_pcie_ptile_ast
When you enable the P-Tile Debug Toolkit, the intel_pcie_ptile_ast 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.
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 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:
• set_location_assignment PIN_A31 -to p0_hip_reconfig_clk_clk
• set_location_assignment PIN_C23 -to xcvr_reconfig_clk_clk
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
165
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
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.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
166
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
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.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
167
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
c. A new window Main view will open with a view of all the channels in that
instance.
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® Streaming IP for PCI Express* User Guide Send Feedback
168
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
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.
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
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
169
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Link status Link up, link down Indicates if the link (DL) is up or not.
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® Streaming IP for PCI Express* User Guide Send Feedback
170
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
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
enabled in the PHY.
TX Status TX Lane enable Enable, Disable
Enable: TX lane is enabled in
the PHY.
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
171
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
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® Streaming IP for PCI Express* User Guide Send Feedback
172
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
173
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
C.2. 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
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
RX Status corresponding lane is
disabled.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
174
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
175
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
D. 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.
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.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
176
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
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.
5. Once the eye plot is complete, the eye height, eye width and eye diagram are
displayed.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
177
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
178
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
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.
Note: If you open System Console in a directory that is not writable, the text file will not be
generated. To avoid this issue, open System Console from the Command Prompt
window (on a Windows system) or change the directory's permission settings to
writable.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
179
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
180
7. Troubleshooting/Debugging
UG-20225 | 2021.02.18
Each LTSSM monitor has a FIFO storing the time values and captured LTSSM states.
When you choose to dump out the LTSSM states, reads are dependent on the FIFO
elements and will empty out the FIFO.
The Link Inspector only writes to its FIFO if there is a state transition. In cases where
the link is stable in L0, there will be no write and hence no text file will be dumped.
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.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
181
UG-20225 | 2021.02.18
Send Feedback
8.1. Document Revision History for the Intel FPGA P-Tile Avalon
Streaming IP for PCI Express User Guide
Intel Quartus IP
Document Version Changes
Prime Version Version
Added descriptions for the Device Serial Number tab, the ACS
tab to the Parameters chapter.
2020.10.05 20.3 3.1.0
Updated the description of the p0_flr_rcvd_pf_o[7:0] signal
bus in the Function-Level Reset (FLR) Interface section.
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.
8. Document Revision History
UG-20225 | 2021.02.18
Intel Quartus IP
Document Version Changes
Prime Version Version
Added information about the availability of the CvP Init and CvP
Update features in Intel Stratix 10 DX and Intel Agilex devices to
the Features section.
2020.01.16 19.4 1.1.0 Added the rx_st_tlp_abort_o[1:0] signals to the Avalon-ST
RX Interface section.
Removed the app_ready_entr_l23_i signal from the Power
Management Interface section.
2019.07.19 19.2 1.0.0 Added features such as SR-IOV support and VirtIO support.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
183
UG-20225 | 2021.02.18
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-20225 | 2021.02.18
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...
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
185
A. Configuration Space Registers
UG-20225 | 2021.02.18
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
Note: Sticky bits are not initialized or modified by hot reset or function-level reset.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
186
A. Configuration Space Registers
UG-20225 | 2021.02.18
Figure 82. 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 83. 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
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
187
A. Configuration Space Registers
UG-20225 | 2021.02.18
Figure 84. 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 86. 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
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
188
A. Configuration Space Registers
UG-20225 | 2021.02.18
Related Information
PCI Express Base Specification 4.0
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
189
A. Configuration Space Registers
UG-20225 | 2021.02.18
29:27 Reserved RO 0
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
190
A. Configuration Space Registers
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
191
A. Configuration Space Registers
UG-20225 | 2021.02.18
31 24 23 20 19 16 15 0
0x230 SR-IOV Extended Capability Header Register
0x234 SR-IOV Capabilities
0x238 SR-IOV Status SR-IOV Control
0x23C TotalVFs (RO) InitialVFs (RO)
Function
0x240 RsvdP Dependency NumVFs (RW)
Link (RO)
0x244 VF Stride (RO) First VF Offset (RO)
0x248 VF Device ID (RO) RsvdP
0x24C Supported Pages Sizes (RO)
0x250 System Page Size (RW)
0x254 VF BAR0 (RW)
0x258 VF BAR1 (RW)
0x25C VF BAR2 (RW)
0x260 VF BAR3 (RW)
0x264 VF BAR4 (RW)
0x268 VF BAR5 (RW)
0x26C VF Migration State Array (RO)
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
192
A. Configuration Space Registers
UG-20225 | 2021.02.18
The lower 16 bits of this location contain the ARI Capability Register and the upper 16
bits contain the ARI Control Register. All the fields in these registers are hardwired to
0 for all VFs.
This is a read-only register that specifies the capabilities associated with the
implementation of TPH in the device.
Note: Steering Tag (ST) table must be implemented in the user logic if present. The
capability will not hold the ST table.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
193
A. Configuration Space Registers
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
194
A. Configuration Space Registers
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
195
A. Configuration Space Registers
UG-20225 | 2021.02.18
A.2.2.3.2. ATS Capability Register and ATS Control Register (Offset 0x4)
The lower 16 bits of this location make up the ATS Capability Register, and the upper
16 bits make up the ATS Control Register.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
196
A. Configuration Space Registers
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
197
A. Configuration Space Registers
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
198
A. Configuration Space Registers
UG-20225 | 2021.02.18
These registers are only good for Port 0 (PCIe Gen4 x16). They are blocked for the
other Ports.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
199
A. Configuration Space Registers
UG-20225 | 2021.02.18
This register is only available for Port 0 (PCIe Gen4 x16). It is blocked for the other
Ports.
(1) Because the Silicon ID is a unique value, it does not have a global default value.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
200
A. Configuration Space Registers
UG-20225 | 2021.02.18
Note: This register is for debug only. Only use this register to observe behavior, not to drive
logic custom logic.
Note: The access code RW1CS represents Read Write 1 to Clear Sticky.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
201
A. Configuration Space Registers
UG-20225 | 2021.02.18
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® Streaming IP for PCI Express* User Guide Send Feedback
202
A. Configuration Space Registers
UG-20225 | 2021.02.18
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
203
UG-20225 | 2021.02.18
Send Feedback
Refer to the Address Translation Services Revision 1.1 specification, section 4.1 Page
Request Message for more details.
The Endpoint will receive the translated address in the associated Completion with the
ATS field's S/N/G/P/E/U/W/R values.
B.2. Sending a Page Request Message from the Endpoint (EP) to the
Root Complex (RC)
The user application issues a Page Request Message while using the Avalon-ST
interface to send the contents of the ATS message.
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-20225 | 2021.02.18
Send Feedback
None No
ASSERT/DEASSERT
Local Upstream Ecrc_err No
INTx
Malformed No
No (VENDOR0)
None
Yes (VENDOR1)
No (VENDOR0)
VENDOR_MESSAGE_0 Poisoned
Route_to_RC Upstream Yes (VENDOR1)
/1
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
VENDOR_MESSAGE_0
Route_by_ID Both Poisoned Yes
/1
Ecrc_err Yes
Malformed No
None Yes
Poisoned Yes
VENDOR_MESSAGE_0
Broadcast Downstream
/1
Ecrc_err Yes
Malformed No
None Yes
Poisoned Yes
VENDOR_MESSAGE_0
Local Both
/1
Ecrc_err Yes
Malformed No
PM_ACTIVE_STATE_N
Local Downstream None Yes
AK
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.
C. Packets Forwarded to the User Application in TLP Bypass Mode
UG-20225 | 2021.02.18
Forwarded to
TLP Type Routing Direction TLP Corruption
Avalon-ST Interface
Ecrc_err Yes
Malformed No
None No
Malformed No
None Yes
Malformed No
None No
Malformed No
None No
Malformed No
None No
Malformed No
None No
Malformed No
None Yes
Malformed No
None Yes
Poisoned Yes
SET_SLOT_POWER_LI
Local Downstream
MIT
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
Ecrc_err Yes
Malformed No
None Yes
Ecrc_err Yes
continued...
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
206
C. Packets Forwarded to the User Application in TLP Bypass Mode
UG-20225 | 2021.02.18
Forwarded to
TLP Type Routing Direction TLP Corruption
Avalon-ST Interface
Malformed No
None Yes
Malformed No
None Yes
Malformed No
None Yes
Poisoned Yes
HIERARCHY_ID_MSG Broadcast Downstream
Ecrc_err Yes
Malformed No
None Yes
IGNORED_MSG_ATT_
Local Downstream Ecrc_err Yes
ON
Malformed No
None Yes
IGNORED_MSG_ATT_
Local Downstream Ecrc_err Yes
BLINK
Malformed No
None Yes
IGNORED_MSG_ATT_
Local Downstream Ecrc_err Yes
OFF
Malformed No
None Yes
IGNORED_MSG_IND_
Local Downstream Ecrc_err Yes
ON
Malformed No
None Yes
IGNORED_MSG_IND_
Local Downstream Ecrc_err Yes
BLINK
Malformed No
None Yes
IGNORED_MSG_IND_
Local Downstream Ecrc_err Yes
OFF
Malformed No
None Yes
IGNORED_MSG_ATT_
Local Upstream Ecrc_err Yes
BT_PRESS
Malformed No
None No
Ecrc_err Yes
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
207
C. Packets Forwarded to the User Application in TLP Bypass Mode
UG-20225 | 2021.02.18
Forwarded to
TLP Type Routing Direction TLP Corruption
Avalon-ST Interface
Malformed No
None No
Poisoned No
OBFF_MESSAGE Local Downstream
Ecrc_err Yes
Malformed No
None No
Malformed No
None No
Poisoned No
PTM_RESPONSE Local Downstream
Ecrc_err Yes
Malformed No
None No
Poisoned No
PTM_RESPONSE_D Local Downstream
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
INVALIDATE_REQUES
Route_by_ID Both Poisoned Yes
T
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
INVALIDATE_COMPLE
Route_by_ID Both Poisoned Yes
TION
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
CFG_WR_1 Route_by_ID Downstream
Poisoned Yes
Ecrc_err Yes
continued...
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
208
C. Packets Forwarded to the User Application in TLP Bypass Mode
UG-20225 | 2021.02.18
Forwarded to
TLP Type Routing Direction TLP Corruption
Avalon-ST Interface
Malformed No
None Yes
ID_mismatch Yes
CFG_RD_0 Route_by_ID Downstream
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
CFG_RD_1 Route_by_ID Downstream
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
IO_RD Address Downstream
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
MEM_RD_32/64 Address Both
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
MEM_RD_LK_32/64 Address Both
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
ATOMIC_FETCH_ADD_
Address Both
32/64
Poisoned Yes
Ecrc_err Yes
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
209
C. Packets Forwarded to the User Application in TLP Bypass Mode
UG-20225 | 2021.02.18
Forwarded to
TLP Type Routing Direction TLP Corruption
Avalon-ST Interface
Malformed No
None Yes
Addr_mismatch Yes
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
32/64: No
Malformed
128: No stimulus
None Yes
ID_mismatch Yes
LUT_mismatch Yes
Ecrc_err Yes
CPL Route_by_ID Both
Malformed No
CA_status Yes
UR_status Yes
CRS_status Yes
None Yes
ID_mismatch Yes
LUT_mismatch Yes
CPLD Route_by_ID Both
Poisoned Yes
Ecrc_err Yes
Malformed No
None Yes
ASSERT/DEASSERT
Local Upstream Ecrc_err Yes
INTx
Malformed No
None Yes
VENDOR_MESSAGE_0
Route_to_RC Upstream
/1
Poisoned Yes
continued...
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
210
C. Packets Forwarded to the User Application in TLP Bypass Mode
UG-20225 | 2021.02.18
Forwarded to
TLP Type Routing Direction TLP Corruption
Avalon-ST Interface
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
VENDOR_MESSAGE_0
Route_by_ID Both Poisoned Yes
/1
Ecrc_err Yes
Malformed No
None Yes
Poisoned Yes
VENDOR_MESSAGE_0
Broadcast Downstream
/1
Ecrc_err Yes
Malformed No
None Yes
Poisoned Yes
VENDOR_MESSAGE_0
Local Both
/1
Ecrc_err Yes
Malformed No
None Yes
PM_ACTIVE_STATE_N
Local Downstream Ecrc_err Yes
AK
Malformed No
None Yes
Malformed No
None Yes
Malformed No
None Yes
Malformed No
None Yes
Malformed No
None Yes
Malformed No
None Yes
ERR_FATAL Route_to_RC Upstream
Ecrc_err Yes
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
211
C. Packets Forwarded to the User Application in TLP Bypass Mode
UG-20225 | 2021.02.18
Forwarded to
TLP Type Routing Direction TLP Corruption
Avalon-ST Interface
Malformed No
None Yes
Malformed No
None Yes
Poisoned Yes
SET_SLOT_POWER_LI
Local Downstream
MIT
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
Ecrc_err Yes
Malformed No
None Yes
Poisoned Yes
LN_MESSAGE Broadcast Downstream
Ecrc_err Yes
Malformed No
None Yes
Malformed No
None Yes
Malformed No
None Yes
Poisoned Yes
HIERARCHY_ID_MSG Broadcast Downstream
Ecrc_err Yes
Malformed No
None Yes
IGNORED_MSG_ATT_
Local Downstream Ecrc_err Yes
ON
Malformed No
None Yes
IGNORED_MSG_ATT_
Local Downstream Ecrc_err Yes
BLINK
Malformed No
None Yes
IGNORED_MSG_ATT_
Local Downstream
OFF
Ecrc_err Yes
continued...
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
212
C. Packets Forwarded to the User Application in TLP Bypass Mode
UG-20225 | 2021.02.18
Forwarded to
TLP Type Routing Direction TLP Corruption
Avalon-ST Interface
Malformed No
None Yes
IGNORED_MSG_IND_
Local Downstream Ecrc_err Yes
ON
Malformed No
None Yes
IGNORED_MSG_IND_
Local Downstream Ecrc_err Yes
BLINK
Malformed No
None Yes
IGNORED_MSG_IND_
Local Downstream Ecrc_err Yes
OFF
Malformed No
None Yes
IGNORED_MSG_ATT_
Local Upstream Ecrc_err Yes
BT_PRESS
Malformed No
None Yes
Malformed No
None Yes
Malformed No
None Yes
Malformed No
None Yes
Malformed No
None Yes
Poisoned Yes
PTM_RESPONSE_D Local Downstream
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
INVALIDATE_REQUES
Route_by_ID Both Poisoned Yes
T
Ecrc_err Yes
Malformed No
INVALIDATE_COMPLE
Route_by_ID Both None Yes
TION
continued...
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
213
C. Packets Forwarded to the User Application in TLP Bypass Mode
UG-20225 | 2021.02.18
Forwarded to
TLP Type Routing Direction TLP Corruption
Avalon-ST Interface
ID_mismatch Yes
Poisoned Yes
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
CFG_RD_0 Route_by_ID Downstream
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
CFG_RD_1 Route_by_ID Downstream
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
IO_RD Address Downstream
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
MEM_WR_32/64 Address Both
Poisoned Yes
Ecrc_err Yes
continued...
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
214
C. Packets Forwarded to the User Application in TLP Bypass Mode
UG-20225 | 2021.02.18
Forwarded to
TLP Type Routing Direction TLP Corruption
Avalon-ST Interface
Malformed No
None Yes
Addr_mismatch Yes
MEM_RD_32/64 Address Both
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
ATOMIC_FETCH_ADD_
Address Both Poisoned Yes
32/64
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
Ecrc_err Yes
Malformed No
None Yes
Addr_mismatch Yes
ATOMIC_CAS_32/64/1
Address Both Poisoned Yes
28
Ecrc_err Yes
Malformed No
None Yes
ID_mismatch Yes
LUT_mismatch Yes
Ecrc_err Yes
CPL Route_by_ID Both
Malformed No
CA_status Yes
UR_status Yes
CRS_status Yes
None Yes
ID_mismatch Yes
LUT_mismatch Yes
CPLD Route_by_ID Both
Poisoned Yes
Ecrc_err Yes
Malformed No
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
215
UG-20225 | 2021.02.18
Send Feedback
D. Using the Avery BFM for Intel P-Tile PCI Express Gen4
x16 Simulations
D.1. Overview
This appendix describes how to set up an Intel P-Tile PCIe Gen4 x16 Endpoint
simulation using Avery BFMs for the Synopsys VCS simulator.
The Avery BFM simulation example described here is based on the PCIe Programmed
I/O (PIO) example design generated from the Intel Quartus Prime PCIe IP GUI.
Although the simulation flow and testbench setup leverage the Intel Quartus Prime
example design testbench files, a similar flow and setup can be used for other PCIe
system simulations with the P-Tile PCIe IP core.
Software Requirements
• Intel Quartus Prime version 20.3
• Intel P-Tile Avalon-MM/Avalon-ST PCIe IP version 3.1.0
• Avery BFM version 2.2b
• Synopsys VCS Simulator version O-2018.09-SP2-2
The following table describes the files required for running simulations and the
locations where they need to be. Contact your local Field Applications Engineer (FAE)
to get a sample copy of these files.
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.
D. Using the Avery BFM for Intel P-Tile PCI Express Gen4 x16 Simulations
UG-20225 | 2021.02.18
You can use these files as-is for Gen4 x16 PIO simulations based on the P-Tile PCIe
PIO example design.
apci_top_rc.sv Avery BFMs (Gen4 x16) and memory <example design folder>/pcie_ed_tb/
write & read traffic generation pcie_ed_tb/sim
For details on the example design generation, refer to the Quick Start Guide chapter of
the Intel FPGA P-Tile Avalon-ST IP for PCI Express User Guide.
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
217
D. Using the Avery BFM for Intel P-Tile PCI Express Gen4 x16 Simulations
UG-20225 | 2021.02.18
Figure 93. Integrating the Avery BFM (Root Complex) and the PCIe Example Design
To include the Avery BFM, use the pcie_ed_tb.sv provided in the .zip file that you
download or modify the example design top-level testbench as follows:
1. Open the example design top-level testbench file <example design folder>/
pcie_ed_tb/pcie_ed_tb/sim/pcie_ed_tb.v.
2. Import Avery BFM packages by adding the following lines below the `timescale
statement:
• import avery_pkg::*;
• import apci_pkg::*;
• import apci_pkg_test::*;
• `include "apci_defines.svh"
3. Include the Avery BFM by adding the following line above the example design Root
Port BFM (dut_pcie_tb).
• `include "./../../apci_top_rc.sv"
4. Comment out the example design Root Port BFM (dut_pcie_tb).
5. Save the file and rename it to pcie_ed_tb.sv.
6. Open <example design folder>/pcie_ed_tb/pcie_ed_tb/sim/common/
vcs_files.tcl. Find and replace pcie_ed_tb.v with pcie_ed_tb.sv.
D.4. Configure the Avery BFM and Update the Simulation Script
Configure the Avery BFM
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
218
D. Using the Avery BFM for Intel P-Tile PCI Express Gen4 x16 Simulations
UG-20225 | 2021.02.18
In this example, the Avery BFM in the apci_top_rc.v file is configured to support
Gen4 x16 simulations as shown below:
Dumping waveforms into the VPD file is also enabled in apci_top_rc.v (see
$vcdpluson() task). If you want to disable it, comment out +define+APCI_DUMP_VPD
in the avery_files_vcs.f file.
Before you compile/simulate the design, update the <example design folder>/
pcie_ed_tb/pcie_ed_tb/sim/synopsys/vcs/vcs_setup.sh script file to
include the Avery file and debug options (shown in bold) for the VCS command:
• vcs -lca -f avery_files_vcs.f -debug_pp -timescale=1ps/1ps …
Note: Interactive mode is not available in the 20.3 release of Intel Quartus Prime, but may
be available in a future release.
Batch Mode
In batch mode, the VCS script compiles the design and runs the simulation until
$finish(). Run the following command under the <example design folder>/
pcie_ed_tb/pcie_ed_tb/sim/synopsys/vcs folder.
% sh ./vcs_setup.sh USER_DEFINED_SIM_OPTIONS=””
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
219
D. Using the Avery BFM for Intel P-Tile PCI Express Gen4 x16 Simulations
UG-20225 | 2021.02.18
In the simulation results above, is_write = 1 denotes a memory write, and is_write =
0 denotes a memory read.
When you want to view the VPD waveforms, invoke the DVE GUI:
% dve
In the DVE GUI, click File -> Open Database, and select apci_top.vpd.
To add waveforms, select a component (e.g. dut) in the Hierarchy pane, select signals
in the Variable pane, and then add them to the Wave pane.
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
220
D. Using the Avery BFM for Intel P-Tile PCI Express Gen4 x16 Simulations
UG-20225 | 2021.02.18
In addition, the Avery BFM enables dumping traffic into three text files to facilitate the
debugging of the transaction layer, data link layer, and physical layer functions:
In apci_top_rc.sv:
initial begin
end
The three tracker files that the Avery BFM generates are:
• tracker_tl_rc.txt (transaction layer TLP dump)
• tracker_dll_rc.txt (data link layer DLLP dump)
• tracker_phy_rc.txt (physical layer Ordered Set dump)
Send Feedback Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide
221
D. Using the Avery BFM for Intel P-Tile PCI Express Gen4 x16 Simulations
UG-20225 | 2021.02.18
Intel® FPGA P-Tile Avalon® Streaming IP for PCI Express* User Guide Send Feedback
222