Stratix II GX-based Bit-Error Rate Tester for Versatile

advertisement
Stratix II GX-based Bit-Error Rate Tester for Versatile Link Project
Annie Xiang, Andy Liu, Datao Gong and Jingbo Ye
Physics, Southern Methodist University, Dallas, TX , USA
{cxiang, liu, dtgong, yejb}@smu.edu, http://www.physics.smu.edu/web/
Summary
Using FPGA-based Bit Error Rate Tester (BERT), we can measure the performance of a wide range of
digital communication systems. In particular, we can use it to evaluate versatile link at component,
subsystem and network level. Compared with traditional standalone BERT equipment, FPGA-based
BERT is much cheaper. It is also more feasible to set up for different DUTs in irradiation tests. Expedient
customization is another major advantage of FPGA implementation. We propose here a knowledge
sharing database that consists of several IP components. This note outlines potential features to be
accommodated in the knowledge-base and discusses a reference test case.
Introduction
Many of the versatile link working group members have hands-on experience with Altera’s Stratix II GX
EP2SGX90 signal integrity development board. This kit includes the hardware and software sufficient to
develop a BERT capable of verifying and characterizing high-speed serial interfaces. Although the
architecture and functionality discussed are general to all FPGA-based BERT, the following design and
reference are based on this specific device. There are, however, alternative platforms with worthy
advantages, such as Xilinx ‘s Virtix IV and beyond, that are worth future exploration.
The FPGA BERT generates and verifies serial data passed through a point-to-point data link. Its
embedded transceiver contains supporting logic and full-duplex channels to drive various interfaces. PC
user interface through USB enables feature settings and data analysis settings. A block diagram of a
typical serial link BER test is shown in figure. For various purposes, the component such as LD, PD, the
subsystem, such as SFP+ module and ASIC blocks, such as serializer/deserializer, encoder/decoder etc.
can be verified.
Figure 1. Block diagram of an FPGA-based BER test setup
A BER test can simply investigate data bit stream to verify the physical layer robustness. It can also
incorporate coding schemes, link controls and other advanced functions to extend the study of SEE
mitigation.
We conceive three levels of BERT implementations based on this embedded FPGA
architecture. At the basic level, only simple PRBS BER is tested on non-coded data transmission. At the
second level, 8B/10B encoded data with link status monitoring is implemented. Functions such as
comma insertion and detection are also required. At the third level, 64B/66B encoding for higher
throughput, forward error detection and correction schemes are implemented and their effects on the
link signal transmission integrity are to be examined.
Stratix II GX Transceiver and Development Kit
The Stratix II GX FPGA dedicates the right side banks to embedded transceiver circuitry to transmit and
receive high-speed serial data streams. Each transceiver provides both PCS (physical coding sublayer)
and PMA (physical media attachment sublayer) implementations in support of a number of protocols
and operation modes with build-in blocks and featured IPs. The PCS portion of the transceiver consists
of word aligner, byte ordering, 8b/10b encoder et. al. blocks. The PMA portion of the transceiver
consists of the serializer/deserializer, clock/data recovering blocks as well as the high-speed differential
buffer with pre-emphasis, equalization and other programmable features. Figure 2. shows the function
blocks of a Stratix II GX transceiver.
Figure 2. Function blocks of a Stratix II GX transceiver
The Stratix II GX device family supports up to 5 transceiver blocks and each transceiver block contains 4
transceiver channels. The transceiver channels can be configured to operate in basic mode from
600Mbps to 3.125Gbps in signle-width mode and from 1Gbps to 6.375Gbps in double width mode.
There are a number of supported protocols, such as PCIe, Gigabit Ethernet, XAUI and Serial RapidIO, etc..
Each transceiver block consists of two transmitter PLLs shared among the four transmitters. Therefore
there are two reference input clock selectable. Each of the four receivers has its own individual PLL and
clock recovery unit (CRU). The CRU can be set to lock-to-reference mode, lock-to-data mode or
automatic mode, where the CRU switches from reference to data when the prescribed threshold is
reached.
Transmitter and receiver phase compensation FIFO buffer are used at the transceiver and FPGA
boundary and cannot be bypassed. They compensate for skews between transceiver clock domain and
FPGA clock domain.
If the FPGA interface cannot match up with the throughput of the transceiver with sufficient timing
margin, the byte serializer is used in the transmitter. It takes wider words from FPGA and converts them
into smaller words for use in the transceiver. Deserializer is used on the receiver correspondently. And
each receiver has an optional byte ordering block available for some functional mode to restore the
expected word ordering after the byte deserializer.
Many protocols use 8b/10b encoding, which ensures sufficient data transitions and DC-balanced stream.
8b/10b encoder and decoder are part of the transceiver PCS blocks and can be by-passed. They conform
to the IEEE 802.3 standard.
Word aligner offers the functions of pattern detection, link control and status signaling, as well as run
length violation, disparity check and bit-slip etc in some modes. It detects word patterns, aligns word
boundaries, and signals synchronization according to protocol specific or custom defined state machine.
The Stratix II GX employs high-speed IO buffers at rates up to 6.375Gbps. These buffers are of 1.2V and
1.5V PCML standard and contain pre-emphasis, programmable on-chip termination, programmable
voltage output differential and equalization.
There are separate reset ports provided to control the PCS portion and PMA portion of the transmitter
and receiver. Combined with FPGA logic, we can implement customized reset sequence
The ALT2GXB megafunction provides a step-by-step menu selection to configure the transceiver
statically.
A simplified controller module ALT2GXB_RECONFIG is also offered to configure the
transceiver dynamically. The supported configurable include data rates, protocols and analog settings of
the buffers.
The current Stratix II GX EP2SGX90 signal integrity development board employs one EP2SGX90E device,
which contains 3 transceiver blocks and supports up to 12 transceiver channels. On the evaluation board
6 full duplex channels are setup and connected to SMAs.
Channel 0 transmits through GXB_TX1 differential output and GXB_RX1 differential output, which are
located in bank 13, wired in micro strip to optimize signal integrity; channel 1 to channel 4 are
connected to GXB_TRX4 to GXB_TRX7 in bank 14; channel 5 is connected to GXB_TRX8 in bank 15, also
wired in micro strip but with 40’ FR4 add-on.
Transceivers in bank 13 and 15, i.e. channel 0 and channel 5, take input reference clocks from on board
156.25MHz crystal or SMA input. Transceivers in bank 14, i.e. channel 0 and channel 5, take input
reference clocks from on board 156.25MHz crystal or a set of PCIe clocks of 25MHz, 100MHz, 125MHz
and 200MHz.
Pattern Generator and Error Checker
While we instantiate the transceivers through provided megafunctions, we should create custom data
generator and checker for the BER test. The BIST (build-in self test) block is good for verification but not
suitable for BER test.
Usually, pseudo-random binary sequence (PRBS) is implemented in polynomial shifter fashion as a basic
test pattern. For example, a Fibonacci LFSR instantiation of X7+x6+1 for 2^7-1 PRBS or x23+x18+1 for
2^23-1 PRBS or x31+x28+1 for 2^31-1 PRBS generation and verification should be adequate to comply
with link stress as specified by Ethernet or Fiber channel standards. When the link is first up, the error
checker uses the incoming data as seed to generated expected output pattern, until pattern match is
declared. The checker then switches to internal seed. Therefore, when the link is stable, incoming
erroneous bit cannot disturb the output generation of error checker. Link up is declared when errorfree incoming data for seven consecutive clock. It is deserted when it sees bit error for seven
consecutive clocks.
Error injection to simulate single bit error should also be provided. When error injection control is
asserted, bit 0 on the output is flipped to inflict a single bit error. Error counts and time stamp, and/or
error bits are to be logged in asynchronous FIFO for user access. Error statistics can be performed on the
PC side.
On the second level of BERT implementation, when the link transmits 8B/10B encoded data, transmitter
and receiver state machines should be created. For example, the error checker works with Idle detect
and word alignment block to delimit the incoming data stream and when consecutive valid or invalid
codes are received, declares link up or link down. Error injection block that invokes single bit error,
multi-error but within valid link up status, frame errors that cause link down flag to be raised are created.
On the third level of BERT implementation, pattern generator, error checker work in similar fashion with
added PCS blocks.
User Interface
The Altera development kit supports communication with a PC through USB port via FTDI interface, in
FIFO mode, whose Labview drivers are readily accessible. We only need to develop a handshake
protocol to transfer settings, controls and data. An example GUI panel is shown in Figure 3.
The evaluation board also provides non-GUI type of user access, there are 8 LEDs, two 7-segment
displays, two DIP switches, one of which is used for clock setting, and 6 push buttons at the users service.
Figure 3. Labview application front panel
Reference Design
SMU modified the Altera example design to implement a basic BERT. The VHDL /verilog program is
extended and a Labview VI coded to accommodate USB interface with the PC.
Channel 0 is used and the other channels are powered down. The input clock is the 156.25MHz on
board OSC (which requires S8-6 in open, S8-1 to 5 in close and S9 in the OSC position.), and the serial
data rate is 5Gbps. Data patterns supported are PRBS23, PRBS7 and high frequency pattern (1010). Data
interface is 40 bits wide in FPGA fabric.
Currently the Labview only functions displaying the Error statistics. Dynamic setting are not configurable
during run-time through Labview. But on board manual interface operation are still valid. Please refer to
the development kit user guide A-2 to A-6 for instruction.
Future Work
Level 2 and level 3 BERT
64/66b encoder and scrambler
Bath tub scan
Currently Xilinx provide build-in 64/66 and sample point shift which are worth exploring.
Reference
1. http://www.altera.com/literature/hb/stx2gx/stxiigx_sii5v2_01.pdf
2. http://www.xilinx.com/support/documentation/application_notes/xapp713.pdf
3. http://www2.tek.com/cmsreplive/tirep/3262/2007.11.14.09.39.22_3262_EN.pdf
4. http://www.home.agilent.com/agilent/faqDetail.jspx?cc=US&lc=eng&ckey=1481106&nid=536902258.0.00&id=1481106
5. http://www.ansoft.com/si/pdf/SERDES_FPGA_system_simulation_using_the_Xilinx_design_kit_
FINAL.pdf
6. http://www.bertscope.com/Literature/White_Papers/Pre_Emph_Altera.pdf
7. http://www-ppd.fnal.gov/EEDOffice-W/Projects/ckm/comadc/FPGATDC_abs09.pdf
8. IEEE standard 802-3ae-2005
9. INCITS T11 FC-PI-4
Download