20.06.2013 Views

Using FPGAs to Design Gigabit Serial Backplanes - Xilinx

Using FPGAs to Design Gigabit Serial Backplanes - Xilinx

Using FPGAs to Design Gigabit Serial Backplanes - Xilinx

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Using</strong> <strong>FPGAs</strong> <strong>to</strong><br />

<strong>Design</strong> <strong>Gigabit</strong><br />

<strong>Serial</strong> <strong>Backplanes</strong><br />

April 17, 2002


Outline<br />

•System <strong>Design</strong> Trends<br />

•<strong>Serial</strong> <strong>Backplanes</strong> Architectures<br />

•Building <strong>Serial</strong> <strong>Backplanes</strong> with <strong>FPGAs</strong><br />

A1 - 2


Key System <strong>Design</strong> Trends<br />

•Need for ….<br />

–Easy Scalability of Performance<br />

–Extremely High Availability<br />

–Flexible Architecture<br />

–Use of Standards<br />

• Rapid Time <strong>to</strong> Market<br />

• Reduces Costs<br />

A1 - 3


Merging Communications & Computers<br />

• Communications Systems have serial backplanes<br />

• Computers moving <strong>to</strong> serial backplanes<br />

Database servers<br />

Application servers<br />

1U Web servers<br />

Ethernet Switches<br />

Internet<br />

“Bladed Server”, PICMG 2.16<br />

A1 - 4


<strong>Serial</strong> Standards<br />

• <strong>Serial</strong> Standards<br />

– Fiber Channel 1 Gbps<br />

– Ethernet 1 Gbps<br />

– InfiniBand 2.5 Gbps<br />

• Parallel Standards Going <strong>Serial</strong><br />

– PCI => 3GIO<br />

– RapidIO => <strong>Serial</strong> RapidIO<br />

– ATA => <strong>Serial</strong> ATA<br />

• Channel Bonded <strong>Serial</strong> Standards<br />

– XAUI 10 <strong>Gigabit</strong> Ethernet (4 x 3.125 Gbps)<br />

3GIO<br />

A1 - 5


<strong>Serial</strong> Connectivity = Higher<br />

Bandwidth & Fewer Pins<br />

1 2 3 4 5<br />

50<br />

Example - PCI: 32-bit x 33MHz = 1 Gbps, Shared among 5 clients 250 <strong>to</strong>tal pins<br />

1 2 3 4 5<br />

4<br />

Virtex-II Pro System: 2.5 Gbps x 4 x 5 = 50 Gbps 80 <strong>to</strong>tal pins<br />

Each Client has 2.5 Gbps guaranteed <strong>to</strong> every other Client<br />

50x higher bandwidth with less than 1/3 of the pins<br />

RJG<br />

A1 - 6


Link Rates (bits per sec.)<br />

40G<br />

10G<br />

3.125G<br />

1.25G<br />

622M<br />

155M<br />

•OC-3<br />

1998<br />

<strong>Serial</strong> Link Rates<br />

•OC-12<br />

•FC<br />

•OC-48<br />

•GigE<br />

•OC-192<br />

•FC-2x<br />

•10GE<br />

•FC-10x<br />

•SxI-5<br />

•3GIO<br />

•Infiniband<br />

•Rapid IO<br />

•OC-768<br />

2000 2002 2004<br />

Mainstream Deployment<br />

2006<br />

A1 - 7


<strong>Serial</strong> Topologies<br />

Switched<br />

PICMG 2.16<br />

Full Mesh<br />

PICMG 2.2<br />

PICMG 3.x<br />

A1 - 8


Building <strong>Serial</strong> <strong>Backplanes</strong><br />

Virtex-II<br />

<strong>Gigabit</strong> Ethernet<br />

MAC x2<br />

with <strong>FPGAs</strong><br />

<strong>Gigabit</strong> Ethernet<br />

Phy x2<br />

Switched<br />

PICMG 2.16<br />

A1 - 9


Virtex-II Pro<br />

Platform FPGA<br />

A1 - 10


Virtex-II Pro Rocket I/O<br />

32 / 16 / 8 bits<br />

TXDATA<br />

32 / 16 / 8 bits<br />

RXDATA<br />

Technology<br />

Physical Coding Sublayer Physical Media Attachment<br />

C<br />

R<br />

C<br />

40 – 156.3 MHz<br />

REFCLK<br />

CRC<br />

Elastic<br />

Buffer<br />

(PCS) (PMA)<br />

8B / 10B<br />

Encode<br />

F<br />

I<br />

F<br />

O<br />

Channel Bonding<br />

and<br />

Clock Correction<br />

8B / 10B<br />

Decode<br />

<strong>Serial</strong>izer<br />

TX Clock Genera<strong>to</strong>r<br />

RX Clock Recovery<br />

Deserializer<br />

Comma Det.<br />

Transmitter<br />

Transmit<br />

Buffer<br />

20X Multiplier<br />

Receiver<br />

Receive<br />

Buffer<br />

RX+<br />

RX-<br />

Up <strong>to</strong> sixteen multi-gigabit serial transceivers<br />

Support 622 Mbps <strong>to</strong> 3.125 Gbps full duplex operation<br />

Flexible PCS/PMA feature set<br />

Loop-back<br />

TX+<br />

TX-<br />

A1 - 11


<strong>Xilinx</strong>® Rocket I/O <strong>Serial</strong> Backplane<br />

Interface Technology<br />

•Rocket I/O <strong>Serial</strong> Backplane Interface (RSBI)<br />

Technology<br />

– Simple solution for serial backplane applications<br />

– Consists of two parts<br />

• The RSBI/ “Aurora” link pro<strong>to</strong>col<br />

• An RSBI Reference <strong>Design</strong> (IP core) implementing<br />

that pro<strong>to</strong>col<br />

A1 - 12


RSBI/ “Aurora” Pro<strong>to</strong>col<br />

•An Efficient, Lightweight Pro<strong>to</strong>col <strong>to</strong> Move<br />

Data Point <strong>to</strong> Point across <strong>Serial</strong> Link<br />

•Used <strong>to</strong> transport higher-level pro<strong>to</strong>cols<br />

–Standard pro<strong>to</strong>cols like Ethernet<br />

–Proprietary, cus<strong>to</strong>mer-defined, pro<strong>to</strong>cols<br />

A1 - 13


RSBI Core<br />

• Implements RSBI/ “Aurora” Pro<strong>to</strong>col<br />

• Provides a simple interface for transferring packets<br />

across<br />

– A single gigabit serial link<br />

– Up <strong>to</strong> 16 bonded links<br />

• Minimal Use of Resources (~350 slices)<br />

• Frequency and Technology Independent<br />

• Specifications and Source Code available from<br />

<strong>Xilinx</strong><br />

A1 - 14


RSBI/ “Aurora” Features<br />

• Uses 8B/10B and includes CRC protection<br />

• Transmitter wraps user data in Rocket I/O “Aurora”<br />

pro<strong>to</strong>col<br />

– Handles packet formation<br />

– Sends error notification <strong>to</strong> remote core<br />

• Receiver recovers frames and realigns data<br />

– Strips packet/frame wrappers<br />

– Aligns data on double word boundary<br />

– Moni<strong>to</strong>rs error conditions<br />

A1 - 15


USER<br />

RSBI User Interface<br />

32<br />

SIMPLE<br />

CONTROL<br />

32<br />

RSBI Rocket I/O Block<br />

32<br />

COMPLEX<br />

CONTROL<br />

32<br />

Very<br />

High<br />

Speed<br />

Data<br />

User interface created so no knowledge of Rocket I/O block is necessary<br />

A1 - 16


RSBI Channel Bonding<br />

• All lanes must have passed comma detect before<br />

channel bonding starts<br />

• Uses same technique as 10 <strong>Gigabit</strong> Ethernet and<br />

<strong>Serial</strong> RapidIO<br />

– Sends semi-random IDLE pattern<br />

Channel Bonding Logic<br />

Virtual data<br />

channel<br />

Synchronization of individual channels<br />

in<strong>to</strong> a single large data channel<br />

A1 - 17


• Allows maximum frame size of 8K Unlimited bytes<br />

• 32-bit internal interface<br />

RSBI/ “Aurora”<br />

Implementation Parameters<br />

• Other frame sizes and internal interface widths<br />

planned in future releases<br />

A1 - 18


Error Detection in Hardware<br />

• Errors can be either in Rocket I/O block or link(s)<br />

• Five sources of link failure detected:<br />

– Link physical error threshold overflow<br />

– Channel misalignment<br />

– FIFO overflow<br />

• Receiver or transmitter<br />

– Transmitter sending an illegal K character<br />

• Upon detection of link failure, core resets itself and forces<br />

link partner <strong>to</strong> reset<br />

A1 - 19


RSBI Transmission<br />

• All data frames have a SOP/SOF and EOP/EOF <strong>to</strong><br />

indicate the start and end of packet<br />

• User must send at least 2 DWORDs (8 bytes)<br />

• Core will add pad data <strong>to</strong> allow CRC functionality<br />

• User can not transmit data in increments less than input<br />

width<br />

– Data can now be transmitted in any increment<br />

A1 - 20


RSBI Reception<br />

•Strips off SOP/SOF* and EOP/EOF**<br />

from frame<br />

•Strips off pad data if necessary<br />

•Signals any errors detected<br />

• Checks CRC for correctness<br />

*SOP/F = Starting of Packet/Frame<br />

**EOP/F = End of Packet/Frame<br />

A1 - 21


<strong>Serial</strong> Backplane: Full Mesh<br />

X 15<br />

2VP50<br />

RSBI layer<br />

Rocket I/O Transceivers<br />

<strong>Design</strong> Approach Supporting<br />

16 slot, 3.125 Gbps per link<br />

Full Mesh <strong>Serial</strong> Backplane<br />

A1 - 22


Rocket I/O<br />

Transceiver<br />

Implementing RSBI in<br />

Virtex-II Pro Platform FPGA<br />

FPGA Edi<strong>to</strong>r<br />

View of 2VP7<br />

Implementation in Virtex-II Pro FPGA<br />

• Features<br />

– Up <strong>to</strong> 40 Gbps<br />

– 32-bit user interface<br />

– Low overhead<br />

• Utilization<br />

– 350 Slices<br />

RSBI<br />

Link<br />

Rocket I/O<br />

Interface<br />

Au<strong>to</strong><br />

Negotiation &<br />

Synchronization<br />

Au<strong>to</strong><br />

Negotiation &<br />

Synchronization<br />

RSBI Core<br />

Framer<br />

Framer<br />

Framer<br />

Framer<br />

User<br />

Interface<br />

User<br />

App<br />

A1 - 23


<strong>Serial</strong> Backplane:Private Connection<br />

X 15<br />

2VP50<br />

Parallel<br />

Connection<br />

on line card<br />

X 4<br />

2VP2<br />

4 Transceivers<br />

Channel Bonded<br />

for “Private” board<br />

<strong>to</strong> board connection<br />

A1 - 24


Sample <strong>Serial</strong> Backplane<br />

4<br />

XAUI<br />

Switch<br />

2VP20<br />

Approaches<br />

4<br />

XAUI<br />

Switch<br />

XAUI Core<br />

Rocket I/O Transceivers<br />

Backplane<br />

Switched<br />

A1 - 25


TXD, TXC<br />

RXD, RXC<br />

Implementing XAUI in<br />

Virtex-II Pro FPGA<br />

Transmitter<br />

Receiver<br />

Management Ports<br />

XAUI Core<br />

Deskew<br />

State<br />

Machine<br />

Sync<br />

Sync<br />

Sync<br />

Sync<br />

XAUI_TX_L0<br />

XAUI_RX_L0<br />

XAUI_TX_L1<br />

XAUI_RX_L1<br />

XAUI_TX_L2<br />

XAUI_RX_L2<br />

XAUI_TX_L3<br />

XAUI_RX_L3<br />

XAUI Floorplan –<br />

2VP7<br />

Rocket I/O<br />

Transceivers<br />

• Implementation in V-II Pro<br />

• Uses 4 Rocket I/O Transceivers<br />

– Channel bonding<br />

– 8B/10B encoding<br />

• Utilization<br />

– 800 Slices<br />

A1 - 26


Signal Integrity <strong>Design</strong> Resources<br />

http://www.xilinx.com/signalintegrity<br />

A1 - 27


Power Filtering Network<br />

A1 - 28


Power Filtering Network Components<br />

Capaci<strong>to</strong>rs<br />

C = 0.22uF<br />

Package: 0603 SMT<br />

Dielectric: X7R<br />

Tolerance: 10%<br />

WVDC: 10V<br />

Spacing: Within 1cm of pin<br />

Ferrite Beads<br />

Murata BLM11A102S<br />

Voltage Regula<strong>to</strong>r<br />

Linear Technology LT1963<br />

All parts specified in PCB <strong>Design</strong> Requirements<br />

Voltage Regula<strong>to</strong>r must use circuit specified by manufacturer<br />

A1 - 29


Top of board<br />

VTTX, VTRX<br />

Capaci<strong>to</strong>rs<br />

Ferrite Bead<br />

A1 - 30


AVCCAUXTX, AVCCAUXRX<br />

Bot<strong>to</strong>m of board<br />

FPGA Bypass Caps<br />

Ferrite Bead<br />

Capaci<strong>to</strong>r<br />

A1 - 31


Reference Clock<br />

• Must use EPSON EG-2121CA<br />

– 2.5V LVPECL output oscilla<strong>to</strong>r<br />

– Use according <strong>to</strong> manufacture specifications<br />

• Resis<strong>to</strong>r network for clock input:<br />

R1 510 ohm<br />

R2 130 ohm<br />

R3 25 ohm<br />

R4 100 ohm<br />

A1 - 32


Implementation Resources<br />

• Physical (PCB) <strong>Design</strong> Information<br />

– Signal Integrity Central on <strong>Xilinx</strong> Web Site<br />

(http://www.xilinx.com/signalintegrity)<br />

– Rocket I/O User Guide<br />

– Spice Suite<br />

• RSBI <strong>Design</strong> Information (http://www.xilinx.com/rsbi)<br />

– Specification, Implementation notes<br />

– Source code (Verilog)<br />

– Test bench<br />

• XAUI information (http://www.xilinx.com/connectivity)<br />

– In Networking/Datapath Products (10 <strong>Gigabit</strong> Ethernet)<br />

A1 - 33


Thank You

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!