Section 18.104.22.168 of the PCI Express Base Specification v1.0a states:
"The Ports on the two ends of a Link must transmit data at a rate that is within 600 parts per million (ppm) of each other at all times.
This is specified to allow bit rate clock sources with a +/- 300 ppm tolerance."
Virtex-II Pro MGTs require a clock that is within +/- 100 ppm, and the Virtex-5 and Virtex-4 MGTs allow for tolerances greater than +/- 300 ppm.
Do the Virtex-5, Virtex-4, and Virtex-II Pro work with a PCI Express system?
The Virtex-5, Virtex-4, and Virtex-II Pro work in a PCI Express system, but before using one of these devices, please read the information below.
There are two ways that the PCI Express system can be clocked:
Note: Add-in card designs must use a synchronous clocked system.
Nonsynchronous Clocked Systems
If the Virtex-II Pro is used in an embedded system, the Virtex-II Pro and the device it is communicating with on the other side of the link should both use a clock within +/- 100 ppm tolerance, as shown in Figure 1.
The PCI Express specification requires the clock tolerance to be +/- 300 ppm.
Because the Virtex-5 and Virtex-4 device's allow for a tolerance of greater than 300 ppm when used in an embedded system, the Virtex-5 or Virtex-4 and the device it is communicating with on the other side of the link should both use a clock within +/- 300 ppm tolerance, as shown in Figure 1.
Using the Virtex-II Pro device on an add-in card with non-synchronous clocking poses potential problems.
Motherboard clocks will most likely not be operating at a tolerance of +/- 100 ppm, as this is not required in the base specification.
The clock tolerances are as follows:
F(host) = +/- 300 ppm
F(fgpa) = +/- 100 ppm
Worst-case difference is 400 parts per million; the Virtex-II Pro will not work reliably in this scenario.
Additionally, if the Virtex-5 or Virtex-4 is used on an add-in card with non-synchronous clocking and is plugging into a system using SSC, it will not work even using oscillators that meet the +/- 300 ppm requirement.
Note: All commercial PCI Express Motherboards use SSC by default.
For more information on SSC and PCI Express, refer to (Xilinx Answer 19782).
In both cases, synchronous clocking should be used as described below.
Synchronous Clocked Systems
Note: This solution must be used for add-in card designs.
If the Virtex-5, Virtex-4, or Virtex-II Pro is used on an add-in card, use this method.
The Virtex device should be clocked by the motherboard-provided clock.
Even though this clock has a tolerance of +/-300 ppm, each device on either side of the link will use the same clock so they will be in step with each other and there will be 0 ppm difference, as shown in Figure 2.
The motherboard clock will most likely be provided at 100 MHz.
This frequency must be converted to 250 MHz to clock the Virtex-4 RocketIO, or to 125 MHz to clock the Virtex-II Pro RocketIO.
The Virtex-5 can be clocked directly off of the 100 MHz clock.
For information on performing the conversion, refer to (Xilinx Answer 18329).
IMPORTANT: For Virtex-5, Virtex-4, and Virtex-II Pro Express add-in cards to work in an open system, they must be clocked off of the central motherboard clock resource so that they can take advantage of the SSC down spread and be frequency locked with the motherboard clock (that is, synchronously clocked).
Add-in cards clocked with their own on-board oscillator (that is, asynchronously clocked) do NOT work in open systems.
For more information on this, refer to (Xilinx Answer 18329).