Home    Company News    Why FPGA IBERT Test Fails with Optical Modules

Why FPGA IBERT Test Fails with Optical Modules

Created on:2026-05-31 13:37

 

Why Your FPGA IBERT Test Fails with Optical Modules

First, it's necessary to explain some optical module-related terminology. Make sure you understand the following terms before use

What is IBERT

IBERT (Integrated Bit Error Ratio Tester) is an integrated bit error rate testing tool provided by Xilinx/AMD inside FPGAs. It uses the GTH/GTY and other high-speed transceivers of FPGAs to generate and transmit PRBS pseudo-random sequences, while receiving and verifying data to count the Bit Error Rate (BER).

Functions of IBERT:

  • Verify if the FPGA high-speed SerDes hardware link is normal (PCB traces, connectors, cables, optical modules)
  • Adjust TX pre-emphasis/de-emphasis and RX equalizer parameters
  • Measure Eye Diagram and Bit Error Rate (BER)
  • No need to write any RTL code, can be used directly by generating IP in Vivado

PRBS Pseudo-Random Sequence Patterns

The test patterns used by IBERT are PRBS (Pseudo-Random Binary Sequence), generated by Linear Feedback Shift Registers (LFSR). The characteristics of PRBS sequences with different orders are as follows:

Pattern Sequence Length Max Consecutive Identical Digits (CID) Spectral Characteristics Test Strictness
PRBS-7 2⁷−1 = 127 bits 7 bits More low-frequency components, high transition density ★☆☆ Least Strict
PRBS-9 2⁹−1 = 511 bits 9 bits Medium ★★☆ Medium
PRBS-15 2¹⁵−1 = 32767 bits 15 bits Wide ★★★ Relatively Strict
PRBS-23 2²³−1 ≈ 8M bits 23 bits Wider ★★★★ Strict
PRBS-31 2³¹−1 ≈ 2G bits 31 bits Closest to real random data ★★★★★ Most Strict

Key Difference Explanation

  • Max Consecutive Identical Digits (CID): The maximum consecutive 0s or 1s of PRBS-N is N bits. Longer CID puts more pressure on the receiver's CDR (Clock Data Recovery), as long periods without transitions can cause CDR loss of lock.
  • Longer sequence: The spectrum is closer to white noise, providing more comprehensive channel testing (covering more frequency components).
  • PRBS-7: Short sequence, high transition density, friendly to CDR, easy to lock, suitable for initial debugging.
  • PRBS-31: Extremely long sequence, maximum 31-bit consecutive identical digits pose the greatest challenge to CDR, making it the strictest pattern for channel quality assessment.

Which Pattern Should Be Used for Evaluation?

Scenario Recommended Pattern Reason
Initial debugging, confirming basic link connectivity PRBS-7 CDR locks easily, quickly determine if the link is connected
Routine product verification, optical module testing PRBS-23 Common industry standard, recommended by IEEE 802.3 Ethernet specifications
Final product certification, strict BER evaluation PRBS-31 Most stringent conditions, can expose all potential issues
25G/100G Ethernet optical module compliance testing PRBS-31 Required by SFF-8636 / IEEE specifications

Practical advice: First use PRBS-7 to confirm basic link connectivity and CDR lock, then gradually upgrade to PRBS-31 for final evaluation. If PRBS-7 cannot lock, it indicates serious link issues (hardware failure or incorrect control signal configuration).

AOC DAC MPO SFP+ QSFP+ QSFP28 QSFP-DD

Term Full Name Speed Explanation
AOC Active Optical Cable - Active optical cable with integrated photoelectric conversion chips at both ends and optical fiber in the middle, suitable for long-distance (1m~100m) interconnection
DAC Direct Attach Cable - Direct attach copper cable (passive), high-speed copper cable, suitable for short-distance (≤5m) interconnection, low cost and low power consumption
MPO Multi-fiber Push On - Multi-fiber connector standard, commonly found at the tail of QSFP optical modules, supporting 8/12/24 fibers
SFP+ Small Form-factor Pluggable Plus 1×10G = 10G Small form-factor pluggable optical module, single channel
QSFP+ Quad Small Form-factor Pluggable Plus 4×10G = 40G Quad small form-factor pluggable optical module, 10G per channel
QSFP28 Quad Small Form-factor Pluggable 28 4×25G = 100G Quad small form-factor pluggable optical module, 25G per channel
QSFP-DD Quad SFP Double Density 8×25G/50G = 200G/400G Dual-density 8-channel optical module, backward compatible with QSFP28

What Are the Differences in Usage Between AOC and DAC?

In terms of cables and PIN definitions:

Comparison Item DAC (Direct Attach Copper) AOC (Active Optical Cable)
Transmission Medium High-speed copper cable (Twinax) Optical fiber
Active/Passive Passive (Passive DAC ≤5m) or Active (Active DAC ≤15m) Active, with photoelectric conversion chips at both ends
Transmission Distance Short distance ≤5m (passive), ≤15m (active) Medium to long distance 1m~100m+
Power Consumption Extremely low (passive DAC ~0W) Relatively high (~1W per chip at both ends)
Cost Low Medium
Bending Radius Copper cable is thick with large bending radius Optical fiber is thin and flexible with small bending radius
EMI Copper cable may have electromagnetic interference Optical fiber has no EMI issues
PIN Definition Differences TX/RX differential pairs directly carry high-speed electrical signals TX/RX differential pairs connect to laser driver / TIA chips inside the cable ends
Connector Compatibility Compatible with QSFP28 cage, plug-and-play Compatible with QSFP28 cage, plug-and-play

In actual use, the high-speed SerDes differential pair electrical interfaces on the FPGA side are completely identical for DAC and AOC, with differences only in the cables themselves. Selection is mainly determined by transmission distance and wiring environment.

However, there are differences in the use of control signals (LPMode, ResetL, etc.):

Control Signal Passive DAC (Passive Copper Cable) Active DAC / AOC (Active)
LPMode Invalid -- No electronic components inside passive DAC, no power management required, can remain Low Must be controlled correctly: Low = High power mode (normal operation), High = Low power mode (laser off)
ResetL Invalid -- No internal logic to reset, can remain High Normal reset timing must be executed, otherwise internal chips will not initialize
ModPrsL Pulled low when module is inserted (normal response) Pulled low when module is inserted (normal response)
ModSelL I2C management invalid (no internal registers), state irrelevant Must be pulled low to access internal registers
IntL Always High (no alarm sources) Valid, pulled low on temperature / RX LOS and other alarms

Key Conclusion: Passive DAC has no internal electronic components, so control signals have no practical effect on it and no special processing is required on the FPGA side; while AOC and Active DAC contain active components such as lasers/TIAs inside, and LPMode and ResetL must be driven correctly, otherwise the module will not work properly.

QSFP28 Optical Module Usage

QSFP 1

QSFP28 Pin Layout

 

 

PIN Definitions are as follows:

PIN Number Signal Name Direction / Explanation
1, 4, 7, 13, 16, 19, 20, 23, 26, 32, 35, 38 GND Ground
29 VCCT Transmitter side power supply (3.3V)
30 VCC1 Core power supply (3.3V)
10 VCCR Receiver side power supply (3.3V)
11 SCL I2C Clock (management interface)
12 SDA I2C Data (management interface)
36, 37 Tx1p, Tx1n Transmit Channel 1 Differential Pair
3, 2 Tx2p, Tx2n Transmit Channel 2 Differential Pair
33, 34 Tx3p, Tx3n Transmit Channel 3 Differential Pair
6, 5 Tx4p, Tx4n Transmit Channel 4 Differential Pair
17, 18 Rx1p, Rx1n Receive Channel 1 Differential Pair
22, 21 Rx2p, Rx2n Receive Channel 2 Differential Pair
14, 15 Rx3p, Rx3n Receive Channel 3 Differential Pair
25, 24 Rx4p, Rx4n Receive Channel 4 Differential Pair
8 ModSelL Module Select (Active Low)
9 ResetL Module Reset (Active Low)
27 ModPrsL Module Present Detect (Active Low, pulled low when module is inserted)
28 IntL Interrupt Output (Active Low, pulled low on module alarm)
31 LPMode Low Power Mode Control (High = Low Power Mode)

If operation at 100G speed is required, the constraints for LPMODE, MODPRSL, RESETL, MODSELL, etc. are as follows:

Control Signal State During Normal 100G Operation Explanation
LPMode Pulled Low Low = High power mode, all 4 module channels enabled and working normally; High puts the module into low power mode (≤1.5W), only I2C management available
ModPrsL Module Output Low This signal is module output, automatically pulled low when inserted; FPGA side should pull up and detect this signal to determine if the module is present
ResetL Pulled High Module is in reset state when Low; after power-on, should keep Low ≥2ms, then release to High, wait for module initialization to complete (tInit ≤2s)
ModSelL Pulled Low Low = Module selected, I2C communication valid; when multiple modules share the I2C bus, select the target module through this signal
IntL Module Output, High during normal operation Pulled low when internal module alarms occur (overtemperature, RX LOS, etc.), FPGA can read specific alarm registers via I2C

Recommended Power-on Sequence:

  1. After power-on, LPMode = High (low power), ResetL = Low (keep reset)
  2. After power stabilization (≥100ms), release ResetL = High
  3. Wait for module initialization to complete (detect IntL or wait 2s)
  4. Read module information and configure parameters via I2C
  5. Pull LPMode low to enter high power mode, 4 channels start normal transmission and reception

Hardware Design Note: As seen from the schematic, ModSelL, ResetL, ModPrsL, IntL, LPMode are all pulled up to QSPF_3V3 through 4.7KΩ resistors, complying with SFF-8636 specification requirements.

Therefore, in FPGA design for AOC or Active DAC, correct timing control of ResetL and LPMode must be noted; incorrect usage will cause the module to fail to work. There are no such constraints for Passive DAC.

Attached is the test on the Hello-FPGA-Z19EG development board, using 1 copper cable and 1 optical cable. The quality of the optical cable is significantly better than that of the copper cable https://imggrab.com/productinfo/257718.html

 

This is the eye diagram of the optical cable

 

Optical Cable Eye Diagram Test Result

 

This is the eye diagram of the copper cable

Copper Cable Eye Diagram Test Result

U

Summary: Why Does Your FPGA Fail to Communicate with Optical Modules?

If your FPGA high-speed link works with DAC but fails with AOC, there is almost only one reason -- control signals are not driven correctly.

Core Check Items:

  1. Is LPMode pulled low?
    Pull-up resistors will keep LPMode high by default (low power mode), at which time the laser does not work and optical power is zero. Must be actively pulled low by FPGA.
  2. Is ResetL released correctly?
    Pull-up resistors will keep ResetL high by default (non-reset), but if the power-on sequence is incorrect, the module may not initialize properly. Should keep Low ≥ 2ms first, then High, wait 2s for initialization.
  3. Why does Passive DAC work?
    Because Passive DAC is just a copper wire inside, without any electronic components -- no power-on, no reset, no power management required -- plug and play. While AOC contains lasers and TIA chips inside, which must be powered on and initialized according to specifications to work normally.

One-sentence summary: DAC working does not mean the link is problem-free, and AOC not working does not mean hardware failure -- check if your FPGA correctly controls LPMode and ResetL.