PCIe Hardware Design Guide


This page contains information useful to hardware designers using a PCIe bus as part of their PCB design.

The PCIe physical layer can be split into two sub-layers, the electrical and logical layers.

Electrical Sub-Layer

The pinout for a x1 PCIe connector are as follows:

Pin Number Side B Pin Name Side B Description Side A Pin Name Side A Description
1 +12V +12V power (from host) PRSNT#1 Hot plug presence detect
2 +12V +12V power (from host) +12V +12V power (from host)
3 +12V +12V power (from host). Note: This used to be RSVD, but was changed to +12V in PCIe revision 1.1). +12V +12V power (from host)
4 GND Ground GND Ground
5 SMCLK SMBus clock JTAG2-TCK  JTAG clock
6 SMDAT SMBus data JTAG3-TDI  JTAG data in 
7  GND Ground  JTAG4-TDO  JTAG data out
8 +3.3V +3.3V power  JTAG5-TMS   
9 JTAG1-TRST# JTAG reset  +3.3V +3.3V power 
10 +3.3V-AUX Auxilary +3.3V power. +3.3V +3.3V power
11 WAKE# Link re-activation PWRGD (PERST#) Power good. May also be called PERST# (which stands for NOT power reset).
12 RSVD Reserved  GND  Ground 
13 GND  Ground REFCLK+  Reference clock positive (output w.r.t host)
14 PETp0 Transmitter lane 0, positive REFCLK- Reference clock negative (output w.r.t host)
15 PETn0 Transmitter lane 0, negative GND Ground
16 GND Ground PERp0 Receiver lane 0, positive
17 PRSNT#2 Hotplug detect 2 PERn0 Receiver lane 0, negative
18 GND Ground GND Ground

Pin B3 used to be RSVD, but was changed to +12V in PCIe revision 1.1 (March 2005). For all new designs it is recommended to connect it to +12V.

The card-edge finger for A1 (PRSNT1#, hot-plug detect 1) and B17 (PRSNT#2, hot-plug detect 2) is shorter than all of the others, hence they should be the last two pins to make contact.

Differential-Pair Routing

Individual traces for a given differential pair must be matched in length to a tolerance of 0.127mm (5mils).

The spacing between traces of different pairs must be at least 0.508mm (20mils) (edge-to-edge) to reduce cross-talk effects.

Trace length matching between pairs is not required because the PCIe specifications allow for up to 8ns of skew between differential pairs (e.g. between REFCLK and PET0).

Vias in the differential pairs should be avoided as much as possible. If they cannot be avoided, then the via pad size should be less than 0.635mm (25mils) and the hole size less than 0.356mm (14mils).

Regular FR4 PCB material can be used with PCIe traces.

Differential-Pair Decoupling Caps

The PCIe standard states that AC coupling capacitors must connected in series on the transmitting side of all differential data pairs. The capacitance must be between 75 and 200nF. 100nF 0402-sized capacitors are recommended. The capacitors must be placed as close to the transmitting side as possible to reduce discontinuity effects.

Thus, for daughter-board with a slave PCIe port, decoupling caps need to be placed on the PER differential signals.

Terminating Resistors

Most PCIe-compatible IC’s automatically embed the 50Ω terminating resistors inside themselves, meaning no external termination is required.


Bootup Timing

The PERST# net is deasserted by the master 100ms after a daughter board is first powered up (again, power comes from the master, in the form of +3.3 and +12V). The daughter board must be ready to link train (i.e. communicate other the PCIe port), no more than 20ms after PERST# is deasserted. Thus the daughter board has to be ready for PCIe communications 120ms after it is first powered up.

With PCIe ports implemented on large FPGA-based designs, this can be a challenging design constraint. An FPGA which loads its bitstream (configuration data) from external flash over a SPI bus using standard data rates can easily take more than 120ms. Fortunately there a few ways to speed up the FPGA configuration:

  1. Use x2 or x4 SPI memory.
  2. Use a faster SPI clock speed (e.g 100MHz rather than 50MHz). Note that at these times sometimes the routing needs to be treated as a transmission line.
  3. Use compression to reduce the size of the bitstream.
  4. The loading/configuring of a PCIe-related bitstream, which quickly makes the PCIe port functional, followed by the loading/configuring of the rest of the FPGA system. Xilinx calls this Tandem PCI Express or Tandem PROM.

Example PCIe x1 Card-Edge Schematic Design

The following image shows an example PCIe x1 card-edge connector schematic symbol and associated components:

A PCIe card-edge connector schematic symbol and associated components.
A PCIe card-edge connector schematic symbol and associated components.


Logical Sub-Layer