User guide
70 www.xilinx.com Virtex-5 FPGA Integrated Endpoint Block
UG197 (v1.5) July 22, 2009
Chapter 4: Integrated Endpoint Block Operation
R
Error Detection
The PCI Express Base Specification identifies a number of errors a PCIe port should check for,
together with a number of additional optional checks.
Most of the required checks (including several of the optional checks) are carried out by the
integrated Endpoint block. Some, however, need to be implemented by the user. The
integrated Endpoint block performs checks on received TLPs only. The user must perform
all checks on transmit TLPs. Details of checks made by the integrated Endpoint block or
the user are shown in Table 4-2. This table is organized broadly in line with the sections of
the PCI Express Base Specification describing how these checks should be made.
Table 4-2: Error Checking Summary
PCI Express
Specification
Section
Check is
Required
or Optional
Where Check is
Implemented
Checks Made Regarding TLPs with Data Payloads
That the data payload of a TLP does not exceed Max_Payload_Size. Any
TLP that violates this rule is a Malformed TLP.
2.2.2 Required Endpoint block
That where a TLP includes data, the actual amount of data matches the
value in the length field. Any TLP that violates this rule is a Malformed
TLP.
2.2.2 Required Endpoint block
Checks Made Regarding TLP Digests
That the presence (or absence) of a digest correctly reflects the setting of
the TD field. Any TLP that violates this rule is a Malformed TLP.
2.2.3 Required Endpoint block
Checks Made Regarding First/Last DW Byte Enable (1DW = 32 bits)
• That if length > 1DW, then the first DW BE is not 0000
• That if length = 1DW, then the last DW BE is 0000
• That if length > 1DW, then the last DW BE is not 0000
• That the BEs are not non-contiguous for packets ≥ 3DW in length or
2DW packets that are not QWORD aligned
Any TLP that violates these rules is a Malformed TLP.
2.2.5 Optional Endpoint block
Checks Made Regarding Memory, I/O, and Configuration Requests
That the tag field is the correct length for the current configuration. The
tag field for received and transmitted memory and I/O requests must be
checked by the user.
2.2.6.2 Optional Endpoint block
That MWr requests do not specify an Address/Length combination that
causes a Memory Space access to cross a 4 kB boundary. Any MWr
request that violates this rule is treated as a Malformed TLP. For MRd
requests, this optional check should be implemented in the fabric, if
desired.
2.2.7 Optional Endpoint block
That I/O requests obey the following restrictions:
• TC[2:0] must be 000b
• Attr[1:0] must be 00b
• Length[9:0] must be 00 0000 0001b
• The last DW BE[3:0] must be 000b
Any I/O request that violates this rule is treated as a Malformed TLP.
2.2.7 Optional Endpoint block