Lesson 20 of 25 · 15 MIN · 80% complete

High-Speed Transceivers

GTX/GTH/GTY transceivers are dedicated serial I/O blocks that enable PCIe, 10GbE, Aurora, JESD204B, and other multi-gigabit protocols — completely separate from general IO banks, with their own PLLs, CDR, equalization, and encoding engines.

What are GTX/GTH/GTY Transceivers?

Transceivers are dedicated high-speed serial I/O blocks that exist completely outside the general IO bank structure. They handle protocols at line rates from 600 Mbps to 58 Gbps per lane — far beyond what regular LVDS IO can achieve. Each transceiver is self-contained with its own PLL, serializer, deserializer, CDR, encoding, and equalization:

Transceiver Family Comparison

Type Max Line Rate Typical Use Device Family
GTP 6.25 Gbps USB 3.0, PCIe Gen2, SATA Artix-7 (some SKUs)
GTX 12.5 Gbps PCIe Gen3, 10GbE, Aurora Kintex-7, Virtex-7
GTH 16.375 Gbps 40GbE, OTN, backplane Virtex-7, Zynq UltraScale+
GTY 32.75 Gbps 100GbE, CFP UltraScale+
GTM 58 Gbps 400GbE, PAM-4 Versal

Serial Link Architecture

Each transceiver channel is full-duplex with completely independent TX and RX paths. The TX serializes parallel data from the FPGA fabric and drives a differential output; the RX receives the incoming differential signal and recovers both clock and data before deserializing back to parallel:

flowchart LR subgraph TX["TX Path"] direction LR TXDATA([Parallel\nData]) --> ENC8B["8b/10b or\n64b/66b\nEncoder"] ENC8B --> SER["Serializer\nGEARBOX"] SER --> PREEMPH["Pre-emphasis\nDriver"] PREEMPH --> TXPAD(["TX+/TX−\n(pad)"]) end subgraph RX["RX Path"] direction LR RXPAD(["RX+/RX−\n(pad)"]) --> EQ["Equalizer\nLPM / DFE"] EQ --> CDR["CDR\nPLL lock\nto data"] CDR --> DESER["Deserializer\nGEARBOX"] DESER --> DEC8B["Decoder\n8b/10b or\n64b/66b"] DEC8B --> RXDATA([Parallel\nData]) end style ENC8B fill:#1e3a5f,stroke:#3b82f6,color:#93c5fd style CDR fill:#1e3a5f,stroke:#3b82f6,color:#93c5fd style SER fill:#1e293b,stroke:#475569,color:#94a3b8 style DESER fill:#1e293b,stroke:#475569,color:#94a3b8

Clock Recovery — CDR (Clock and Data Recovery)

The receiver has no separate clock input from the transmitter. Instead, it uses a CDR (Clock and Data Recovery) circuit to extract the transmitter's clock from the transitions in the received data stream:

PLLs in Transceivers: QPLL and CPLL

Each GTX quad contains two types of PLL for generating the high-rate serial clocks:

QPLL sharing constraint Each GTX quad has 4 channels and 1 QPLL. The QPLL is shared — all 4 channels must run at the same or harmonically related line rates. For designs mixing PCIe and SATA in the same quad, use CPLL per channel or assign different protocols to different quads.

Equalization and Pre-emphasis

Long PCB traces, connectors, and cables attenuate high-frequency content, causing inter-symbol interference (ISI) that closes the received eye diagram. Transceivers compensate using:

Equalization Mode Best For Power
LPM (Linear) Short channels, FR4 PCB traces <15cm Low
DFE (Adaptive) Long channels, backplanes, cables Higher

8b/10b and 64b/66b Encoding

Serial links require sufficient signal transitions for CDR lock and DC balance. Xilinx transceivers support two encoding schemes natively in hardware:

Encoding Data bits → Line bits Bandwidth overhead Used in
8b/10b 8 → 10 20% overhead PCIe Gen1/2, SATA, Aurora, JESD204B
64b/66b 64 → 66 3.1% overhead PCIe Gen3, 10GbE, 40GbE, 100GbE

8b/10b replaces each 8-bit data byte with a 10-bit code word chosen to guarantee at least 3 transitions per 10 bits and DC balance (equal 1s and 0s). The 20% bandwidth penalty is the price of this guarantee.

Protocol Reference

Protocol Line Rate Encoding Typical GTX Config
PCIe Gen1 2.5 Gbps/lane 8b/10b CPLL or QPLL, x1/x4/x8 lanes
PCIe Gen2 5.0 Gbps/lane 8b/10b QPLL preferred
PCIe Gen3 8.0 Gbps/lane 64b/66b QPLL required
10GbE (XFI) 10.3125 Gbps 64b/66b GTX QPLL, 1 lane
Aurora 8b/10b 3.125 Gbps/lane 8b/10b CPLL, 1–4 lanes
JESD204B 3.072–12.5 Gbps 8b/10b QPLL for >6.6G

Xilinx Transceiver Wizard IP

Manually configuring a GTX requires setting over 100 attributes correctly. Xilinx provides the Transceiver Wizard IP to automate this entirely:

  1. Open Vivado IP Catalog → Transceiver Wizard (7 Series)
  2. Select transceiver type (GTX, GTH, GTP), line rate, reference clock frequency, and protocol
  3. The wizard calculates all QPLL/CPLL M/N divider values and sets all GTX attributes
  4. Output: complete Verilog wrapper, simulation model, XDC constraints with REFCLK pin assignments
  5. Includes an example design with a self-test loopback mode for hardware bring-up
Always use the Transceiver Wizard GTX has 100+ configuration attributes — setting them manually is error-prone and not supported by Xilinx for general use. The Wizard generates validated configurations with simulation models and example designs. Never manually configure GTX attributes from scratch.

Eye Diagram and Signal Quality

An eye diagram is the primary tool for evaluating received signal quality at multi-gigabit rates. It overlays many successive bit periods to show the statistical distribution of voltage and timing:

GTX reference clock pin requirement GTX reference clocks must come from dedicated REFCLK pins (MGTREFCLK0 / MGTREFCLK1 per quad), not from BUFG or general IO. Using a non-dedicated reference clock source will cause the QPLL to fail to lock and Vivado will report a critical warning.
Interview question Q: What is CDR in a transceiver and why is it needed?
A: CDR (Clock and Data Recovery) extracts the transmitter's clock from the received data stream. Since the receiver has no separate clock input from the transmitter, CDR uses a PLL that locks onto data transitions to reconstruct the correct sampling clock. Without CDR, the receiver cannot sample the incoming data reliably.

Knowledge Check

Q1. How many channels are in one GTX quad?

  • A 2
  • B 3
  • C 4
  • D 8
Correct! Each GTX quad contains exactly 4 independent transceiver channels, all sharing one QPLL. This is why PCIe x4 and x8 configurations must stay within one or two quads respectively.

Q2. What does CDR stand for?

  • A Channel Data Rate
  • B Clock and Data Recovery
  • C Calibrated Delay Reference
  • D Continuous Data Routing
Correct! CDR — Clock and Data Recovery — is the circuit that extracts the transmitter's clock from the received serial data stream by locking a PLL to the data transitions.

Q3. Which GTX PLL is shared across all 4 channels in a quad?

  • A CPLL (Channel PLL)
  • B QPLL (Quad PLL)
  • C MMCM
  • D PLL_ADV
Correct! The QPLL (Quad PLL) is shared across all 4 channels in a quad. It is preferred for high line rates (>6.6 Gbps) due to lower jitter. The CPLL is a per-channel PLL used for lower rates or mixed-rate quads.

Q4. PCIe Gen3 uses which encoding scheme?

  • A 8b/10b
  • B 64b/66b
  • C NRZ with no encoding
  • D 128b/132b
Correct! PCIe Gen3 switched from 8b/10b to 64b/66b encoding to reduce the bandwidth overhead from 20% down to 3.1%. This is why Gen3 at 8 Gbps raw line rate delivers ~7.877 Gbps effective throughput per lane.

Q5. What Xilinx debug core measures bit error rate on transceivers at full line rate?

  • A ILA (Integrated Logic Analyzer)
  • B VIO (Virtual IO)
  • C IBERT (Integrated Bit Error Ratio Tester)
  • D ChipScope Pro AURORA
Correct! IBERT is a dedicated Vivado debug IP that inserts alongside the transceiver to sweep TX swing, pre-emphasis, and RX equalization settings while counting bit errors and generating eye diagram / bathtub curve data via JTAG.

Q6. GTX reference clocks must come from which source?

  • A Any BUFG-driven clock in the design
  • B MMCM output divided to the required frequency
  • C Dedicated REFCLK pins (MGTREFCLK0 / MGTREFCLK1)
  • D Any general IO pin with LVDS standard
Correct! GTX reference clocks must use the dedicated MGTREFCLK0 or MGTREFCLK1 pins of each quad. These feed directly into the QPLL/CPLL with the low-jitter path required for multi-gigabit locking. Using general IO or BUFG will cause QPLL lock failure.

Practical Exercise

Use the Vivado Transceiver Wizard (IP Catalog → 7 Series FPGAs Transceivers Wizard) to generate a GTX configuration with the following requirements:

  • Protocol: Aurora 8b/10b
  • Number of lanes: 4 (full quad)
  • Line rate per lane: 3.125 Gbps
  • Reference clock: 156.25 MHz (from MGTREFCLK0)
  • Encoding: 8b/10b (hardware)

After generation, note:

  1. Which PLL was selected — CPLL or QPLL? What are the M and N divider values?
  2. What is the TXOUTCLK frequency delivered to the FPGA fabric?
  3. What are the recommended TXPRECURSOR and TXPOSTCURSOR pre-emphasis values?

Open the generated example design and review the top-level port list. Identify the REFCLK, TXP/TXN, RXP/RXN, and GTXRESET ports. Simulate the example design using the provided simulation model to observe TXOUTCLK and RXRECCLKOUT timing.