Multi-Gigabit Transceivers Getting Started with Xilinx s Rocket I/Os

Similar documents
Pretty Good Protocol - Design Specification

NETWORK INTRUSION DETECTION SYSTEMS ON FPGAS WITH ON-CHIP NETWORK INTERFACES

A (Very Hand-Wavy) Introduction to. PCI-Express. Jonathan Heathcote

Virtex-5 GTP Aurora v2.8

Scaling the NetFPGA switch using Aurora over SATA

Minimizing Receiver Elastic Buffer Delay in the Virtex-II Pro RocketIO Transceiver Author: Jeremy Kowalczyk

Optimal Management of System Clock Networks

Fibre Channel Arbitrated Loop v2.3

Clock Correction Module

fleximac A MICROSEQUENCER FOR FLEXIBLE PROTOCOL PROCESSING

sfpdp core Specification

January 19, 2010 Product Specification Rev1.0. Core Facts. Documentation Design File Formats. Slices 1 BUFG/

Quad Serial Gigabit Media Independent v3.4

40-Gbps and 100-Gbps Ethernet in Altera Devices

Interlaken IP datasheet

Peripheral Component Interconnect - Express

RocketIO Transceiver Bit-Error Rate Tester Author: Dai Huang and Michael Matera

Upper Level Protocols (ULP) Mapping. Common Services. Signaling Protocol. Transmission Protocol (Physical Coding) Physical Interface (PI)

A 3/4/5/6X Oversampling Circuit for 200 Mb/s to 1000 Mb/s Serial Interfaces Author: Jerry Chuang

Virtex-5 FPGA RocketIO GTX Transceiver

DP83848 Single 10/100 Mb/s Ethernet Transceiver Reduced Media Independent Interface (RMII ) Mode

Programmable Logic Design Grzegorz Budzyń Lecture. 15: Advanced hardware in FPGA structures

LogiCORE IP Serial RapidIO v5.6

A HT3 Platform for Rapid Prototyping and High Performance Reconfigurable Computing

100 Gbps/40 Gbps PCS/PMA + MAC IP Core

Discontinued IP. LogiCORE IP Fibre Channel v3.5. Introduction. Features. DS270 April 19, LogiCORE IP Facts Core Specifics Supported Families 1

Extreme TCP Speed on GbE

6.9. Communicating to the Outside World: Cluster Networking

LogiCORE IP Quad Serial Gigabit Media Independent v2.0

A Real Time Implementation of High Speed Data Transmission using Aurora Protocol on Multi-Gigabit Transceivers in Virtex-5 FPGA

10GBase-R PCS/PMA Controller Core

LogiCORE IP Quad Serial Gigabit Media Independent v1.2

TOE10G-IP Core. Core Facts

LogiCORE IP Quad Serial Gigabit Media Independent v1.1 Product Guide

LatticeSC/M Family flexipcs Data Sheet. DS1005 Version 02.0, June 2011

In-chip and Inter-chip Interconnections and data transportations for Future MPAR Digital Receiving System

LogiCORE IP Quad Serial Gigabit Media Independent v1.3

INT 1011 TCP Offload Engine (Full Offload)

BlazePPS (Blaze Packet Processing System) CSEE W4840 Project Design

INT-1010 TCP Offload Engine

SGMII Interface Implementation Using Soft-CDR Mode of Stratix III Devices

CS 43: Computer Networks Switches and LANs. Kevin Webb Swarthmore College December 5, 2017

2. Arria GX Architecture

Virtex-5 FPGA Embedded Tri-Mode Ethernet MAC Wrapper v1.7

LogiCORE IP Spartan-6 FPGA GTP Transceiver Wizard v1.9

LogiCORE IP RXAUI v2.4

Section I. Arria GX Device Data Sheet

A Unified PMD Interface for 10GigE

Section I. Stratix II GX Device Data Sheet

FPGAs and Networking

INT G bit TCP Offload Engine SOC

Validating ADI Converters inter-operability with Xilinx FPGA and JESD204B IP

TOE10G-IP with CPU reference design

SATA-IP Device reference design manual

SATA PHY Design Manual

Xilinx Answer Virtex-6 Integrated PCIe Block Wrapper Debugging and Packet Analysis Guide

UDP1G-IP reference design manual

International Journal of Scientific & Engineering Research, Volume 4, Issue 12, December ISSN

Ethernet Hub. Campus Network Design. Hubs. Sending and receiving Ethernet frames via a hub

10Gb Ethernet PCS Core

LogiCORE IP AXI Ethernet v6.0

UDP1G-IP Introduction (Xilinx( Agenda

UltraScale Architecture Integrated IP Core for Interlaken v1.3

A Protocol for Realtime Switched Communication in FPGA Clusters

TOE40G-IP Introduction (Xilinx( Realize 40GbE limit speed!

Speedster22i 10/40/100 Gigabit Ethernet User Guide UG029 September 6, 2013

LogiCORE IP 7 Series FPGAs Transceivers Wizard v1.3

Building blocks for custom HyperTransport solutions

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

Peter Alfke, Xilinx, Inc. Hot Chips 20, August Virtex-5 FXT A new FPGA Platform, plus a Look into the Future

Virtex-6 FPGA Embedded Tri-Mode Ethernet MAC Wrapper v1.4

UltraScale Architecture Integrated Block for 100G Ethernet v1.4

Design of an Open-Source Sata Core for Virtex-4 FPGAs

Virtex-5 FPGA RocketIO GTX Transceiver Wizard v1.5

RocketIO X BERT Reference Design User Guide

TOE1G-IP Core. Core Facts

Virtex-5 GTP Transceiver Wizard v1.7

TOE1G-IP Core. Core Facts

Enabling Gigabit IP for Intelligent Systems

isplever 1GbE PCS IP Core User s Guide October 2005 ipug28_02.0

WAN-compatible 10 Gigabit Ethernet Tutorial. Opticon Burlingame, CA July 31, 2000

Virtex-5 FPGA Integrated Endpoint Block for PCI Express Designs

10-Gbps Ethernet Hardware Demonstration Reference Design

Data Link Control Protocols

Recommended Protocol Configurations for Stratix IV GX FPGAs

January 25, 2017 Product Specification Rev1.5. Core Facts. ModelSim-Altera

Building Gigabit Interfaces in Altera Transceiver Devices

100GE and 40GE PCS Proposal

EPoC PHY and MAC proposal

Enabling success from the center of technology. Networking with Xilinx Embedded Processors

Universal Serial Bus Host Interface on an FPGA

Virtex-5 FPGA Integrated Endpoint Block for PCI Express Designs

LightSpeed1000 (w/ GigE and USB 2.0) OC-3/STM-1, OC-12/STM-4 Analysis and Emulation Card

Virtex-5 FPGA Embedded Tri-Mode Ethernet MAC User Guide. UG194 (v1.7) October 17, 2008

TOE1G-IP Core. Core Facts

Virtex-5 FPGA RocketIO GTP Transceiver

RiceNIC. Prototyping Network Interfaces. Jeffrey Shafer Scott Rixner

LogiCORE IP Virtex -5 FPGA RocketIO GTX Transceiver Wizard v1.7

LogiCORE IP Ethernet 1000BASE-X PCS/PMA or SGMII v11.3

XAUI v12.1. LogiCORE IP Product Guide. Vivado Design Suite. PG053 November 19, 2014

Transcription:

Multi-Gigabit Transceivers Getting Started with Xilinx s Rocket I/Os Craig Ulmer cdulmer@sandia.gov July 26, 2007 Craig Ulmer SNL/CA Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy s National Nuclear Security Administration under contract DE-AC04-94AL85000.

Easy, Right?

Outline Overview Clocking Data Interface Example Uses Summary

Overview Xilinx Rocket I/O: Multi-Gigabit Transceivers (MGTs) Flexible units for off-chip, high-speed serial links Easy communication with other hardware MGT Specifics Multiple standards: GigE, IB, FC, SATA, Custom Single links up to 3.125 Gb/s Up to 24 MGTs per chip Channel bonding MGTs History Virtex II/Pro: Introduced Virtex II/Pro X: Up to 6.25 Gb/s Virtex 4FX: Built-in GigE MAC core Virtex 5LXT: Built-in PCIe core V2P20

In a Nutshell 8/16/32b CRC 8B/10B Encoder Tx FIFO SERializer Polarity Flipper Tx- Tx+ CLKs Control Status Clock Manager 8/16/32b CRC Check Rx Elastic Buffer 8B/10B Decoder Comma Detect & Realign MGT DESerializer Channel Bonding Polarity Flipper Rx- Rx+

Clocking

Clock for Physical Layer Base Clock drives Physical Layer 50 MHz 156.25 MHz Internal 10x or 20x multiplier (compile time) Serial: 600 Mb/s 3.125 Gb/s Different clock sources 1.5v Fabric RocketIO Physical Coding Sublayer (PCS) 2.5v I/O Ring RocketIO Physical Media Attach. (PMA) REFCLK: Fabric-driven clocks Up to 2.5 Gb/s rates Can be driven by DCM BREFCLK BREFCLK2 10x 20x BREFCLK: Low-Jitter clocks All speeds Driven by LVDS Cannot route through or around chip Specific pins (top and bottom) REFCLK REFCLK2 Rocket I/O CLK DCM REFCLK CLK+ CLK - BREFCLK Low Speed High Speed

Clocks for User Interface Additional clocks for Tx and Rx TXUSRCLK, TXUSRCLK2 RXUSRCLK, RXUSRCLK2 TX/RX Clocking depends on data width Get frequency right for Phy s clock Get phase right between CLK and CLK2 Example: GigE User Data Rate: 1.0 Gb/s = 16b x 62.5 MHz Phy Data Rate: 1.25 Gb/s = 20 x 62.5 MHz TxData TXUSRCLK TXUSRCLK2 REFCLK RXUSRCLK RXUSRCLK2 RxData RocketIO Clock Multiplier Data Width USRCLK USRCLK2 8 CLKDV (1/2) CLK180 10x 16 CLKDV (1/2) CLKDV(1/2) Easy 32 CLKFX180 (1/2) CLKDV (1/4) 8 CLK0 CLK2X180 20x 16 CLK0 CLK0 Easy 32 CLK180 CLKDV (1/2)

Handling Mismatches in Clock Frequency Networks: Always clock mismatch between sender/receiver Slight difference in clock frequency Buffer underflow or overflow Under/Overflow Reset Unit Phy does Clock Recovery on Rx stream Generates RXRECCLK Use to synch receiving hardware Falls back to refclk when not locked!!! Suggestion: Use recovered clock to drive user clocks User FPGA Application Tx FIFO Rx FIFO User Tx Unit User Rx Unit Tx FIFO Rx EBuf P2S S2P External Serial Link CLK Recover App Clock Domain RXRECCLK Clock Domain

Data Interface

Data Coding for the Phy Coding Encode/Decode an n-bit word to/from serial stream Provides transition density, makes clock recovery easier, and allows inclusion of special symbols for controlling channel 8B/10B Encoding: 8-bits encoded as 10-bits D-groups (regular data) and K-groups (control symbols) User only gets 80% of raw physical channel GigE has 1.25Gb/s SERDES speed, 1.00 Gb/s packet speed 1x IB has 2.5Gb/s SERDES speed, 2.00 Gb/s packet speed Disparity: Want to balance number of 1s and 0s sent Each input has a positive and negative 10b value Phy keeps a running count and sends + or symbol to even out Data Example: 001 00100 D4.1 +1101011001, -0010101001

K-Symbols K-Symbols help control the serial channel Some are interpreted by the physical layer Make it impossible for higher levels to affect channel GigE Examples: (K27.7) Start of Frame (SOF) (K29.7, K23.7) End of Frame (EOF) (K28.5, D16.2) Idle Channel (or comma) IDLE IDLE SOF Preamble Ethernet Packet CRC EOF IDLE IDLE

Rocket I/O Interface Good News: MGT does most of the work for you 8B/10B, Disparity, Word separation You provide 8b data and 1b K flag per byte lane MGT can produce CRC for IP (leave a space) Do have to worry about alignment if multiple byte lanes Templates for common standards IB, GigE Suggested approach Tx and Rx data every clock cycle Align Rx stream based on SOF

Example Uses

Raw Link Use the MGTs to link FPGAs together Should make board design easier (fewer traces, internal buffering) Doing traces similar to running network cables Xilinx provides Aurora core for custom link Byte-stream interface (simple API) Maximizes bandwidth Free core User App A M G T M G T A User App

Packet Processing Simple GigE interface that understands IP packets Rx/Tx units stream packets into/out of message queue Example: Network Intrusion Detection System (NIDS) Reset Tx Reset Rx Wait for SOF Consume Header Wait for Packet Send Header SOF Preamble Preamble Msg Start NI NI FPGA NI NI Drop Consume Body Send Body OK Drop Scheduler Send End Malicious Packet Pattern Matching Validate CRC Rx CRC1 CRC2 EOF COMMAs Tx

Reliable Transport Need for end-to-end data transfer Transmission Control Protocol (TCP) Ancient, complex, and nasty Incoming Byte Stream CRC Outgoing Byte Stream TCP Offload Engine (TOE) / GigE Single stream, in-order acks Slow start, nacks, retransmit, but no Nagle Lesson: TCP is painful CRCs are at beginning of packet All packets imply something Multiple crossovers between Rx/Tx Do it in software instead TOE GigE Incoming TCP Message Control Decode Timeout Monitor Ping Reply ARP Reply ARP Cache Outgoing TCP Message Control IP Header MAC Header Unit TOE Slices 2,068 V2P20 22% Align Rx Control Rocket I/O Framer Tx GigE 1,102 12%

Summary RocketIO provides a flexible interface for off-chip communication Can be tricky to setup, but easier when you understand concepts Can use to make a design portable between boards Can use to link multiple boards Advanced Topics Link configuration (duplex, jumbo frames) Channel Bonding: Multiple MGT links Customizing the Phy