advertisement
RocketIO™
Transceiver
User Guide
UG024 (v1.5) October 16, 2002
R
R
The Xilinx logo shown above is a registered trademark of Xilinx, Inc.
The shadow X shown above is a trademark of Xilinx, Inc.
"Xilinx" and the Xilinx logo are registered trademarks of Xilinx, Inc. Any rights not expressly granted herein are reserved.
CoolRunner, RocketChips, Rocket IP, Spartan, StateBENCH, StateCAD, Virtex, XACT, XC2064, XC3090, XC4005, XC5210 are registered
Trademarks of Xilinx, Inc.
ACE Controller, ACE Flash, A.K.A. Speed, Alliance Series, AllianceCORE, Bencher, ChipScope, Configurable Logic Cell, CORE Generator,
CoreLINX, Dual Block, EZTag, Fast CLK, Fast CONNECT, Fast FLASH, FastMap, Fast Zero Power, Foundation, Gigabit Speeds...and Beyond!,
HardWire, HDL Bencher, IRL, J Drive, JBits, LCA, LogiBLOX, Logic Cell, LogiCORE, LogicProfessor, MicroBlaze, MicroVia, MultiLINX, Nano-
Blaze, PicoBlaze, PLUSASM, PowerGuide, PowerMaze, QPro, Real-PCI, RocketIO, SelectIO, SelectRAM, SelectRAM+, Silicon Xpresso, Smartguide, Smart-IP, SmartSearch, SMARTswitch, System ACE, Testbench In A Minute, TrueMap, UIM, VectorMaze, VersaBlock, VersaRing, Virtex-
II Pro, Wave Table, WebFITTER, WebPACK, WebPOWERED, XABEL, XACT-Floorplanner, XACT-Performance, XACTstep Advanced, XACTstep
Foundry, XAM, XAPP, X-BLOX +, XC designated products, XChecker, XDM, XEPLD, Xilinx Foundation Series, Xilinx XDTV, Xinfo, XSI, XtremeDSP and ZERO+ are trademarks of Xilinx, Inc.
The Programmable Logic Company is a service mark of Xilinx, Inc.
The following are trademarks of International Business Machines Corporation in the United States, or other countries, or both:
IBM IBM Logo PowerPC PowerPC Logo Blue Logic CoreConnect CodePack
All other trademarks are the property of their respective owners.
Xilinx does not assume any liability arising out of the application or use of any product described or shown herein; nor does it convey any license under its patents, copyrights, or maskwork rights or any rights of others. Xilinx reserves the right to make changes, at any time, in order to improve reliability, function or design and to supply the best product possible. Xilinx will not assume responsibility for the use of any circuitry described herein other than circuitry entirely embodied in its products. Xilinx provides any design, code, or information shown or described herein
"as is." By providing the design, code, or information as one possible implementation of a feature, application, or standard, Xilinx makes no representation that such implementation is free from any claims of infringement. You are responsible for obtaining any rights you may require for your implementation. Xilinx expressly disclaims any warranty whatsoever with respect to the adequacy of any such implementation, including but not limited to any warranties or representations that the implementation is free from claims of infringement, as well as any implied warranties of merchantability or fitness for a particular purpose. Xilinx assumes no obligation to correct any errors contained herein or to advise any user of this text of any correction if such be made. Xilinx will not assume any liability for the accuracy or correctness of any engineering or software support or assistance provided to a user.
Xilinx products are not intended for use in life support appliances, devices, or systems. Use of a Xilinx product in such applications without the written consent of the appropriate Xilinx officer is prohibited.
Copyright 2002 Xilinx, Inc. All Rights Reserved.
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
UG024 (v1.5) October 16, 2002
The following table shows the revision history for this document.
Date
11/20/01
01/23/02
02/25/02
07/11/02
09/27/02
10/16/02
Version
1.0
1.1
1.2
1.3
1.4
1.5
Revision
Initial Xilinx release.
Updated for typographical and other errors found during review.
Part of Virtex-II Pro™ Developer’s Kit (March 2002 Release)
Updated PCB Design Requirements, Chapter 4 . Added Timing Model as Appendix A,
changed Cell Models to Appendix B.
• Added additional
regarding ISE revisions at the beginning of
• Added material in section
• Added section
Other Important Design Notes, Chapter 3
• New pre-emphasis eye diagrams in section
Pre-emphasis Techniques, Chapter 4
• Numerous parameter additions previously shown as “TBD” in
• Corrected pinouts in
Table 5-2 , FF1152 package, device column 2VP20/30, LOC
Constraints rows GT_X0_Y0 and GT_X0_Y1.
• Corrected section
to express latency in terms of
TXUSRCLK and RXUSRCLK cycles.
•
Corrected sequence of packet elements in Figure 3-16 .
UG024 (v1.5) October 16, 2002 www.xilinx.com
1-800-255-7778
RocketIO™ Transceiver User Guide
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
Contents
................................................................................................................... 9
................................................................................................................... 11
RocketIO Features
................................................................................................................... 13
In This User Guide
................................................................................................................. 14
Naming Conventions
For More Information
............................................................................................................ 14
Chapter 2: RocketIO Transceiver Overview
Basic Architecture and Capabilities
................................................................................ 15
Clock Synthesizer
................................................................................................................... 17
Clock and Data Recovery
..................................................................................................... 18
Transmitter
................................................................................................................................. 18
........................................................................................................ 19
Receiver
........................................................................................................................................ 19
Loopback
..................................................................................................................................... 20
Elastic and Transmitter Buffers
........................................................................................ 21
CRC
................................................................................................................................................ 23
Reset/Power Down
................................................................................................................. 23
Chapter 3: Digital Design Considerations
List of Available Ports
........................................................................................................... 25
Primitive Attributes
............................................................................................................... 29
Modifiable Primitives
........................................................................................................... 33
Byte Mapping
............................................................................................................................ 38
Clocking
................................................................................................. 40
................................................................................................ 43
................................................................................................. 46
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
5
6
R
........................................................................................................... 53
................................................................................................................ 54
Resets
............................................................................................................................................ 54
RocketIO Transceiver Instantiations
.............................................................................. 56
.......................................................................................................... 56
PLL Operation and Clock Recovery
................................................................................ 56
SYNC_ACQUIRED (RXLOSSOFSYNC = 00)
................................................................... 57
.................................................................................... 57
LOSS_OF_SYNC (RXLOSSOFSYNC = 10)
....................................................................... 57
Receiving Vitesse Channel Bonding Sequence
....................................................................... 60
Status Signals
............................................................................................................................ 61
8B/10B Encoding
...................................................................................................................... 61
HDL Code Examples: Transceiver Bypassing of 8B/10B Encoding
.......................................... 70
CRC Operation
......................................................................................................................... 70
................................................................................................................... 71
............................................................................................................. 72
...................................................................................................................... 72
................................................................................................................... 72
Channel Bonding (Channel-to-Channel Alignment)
............................................. 73
HDL Code Examples: Channel Bonding
............................................................................... 74
Other Important Design Notes
......................................................................................... 75
.............................................................................................................................. 76
............................................................................................................................... 79
Chapter 4: Analog Design Considerations
Serial I/O Description
........................................................................................................... 83
Pre-emphasis Techniques
.................................................................................................... 84
Differential Receiver
............................................................................................................. 87
Jitter
............................................................................................................................................... 87
..................................................................................................... 87
.............................................................................................................. 87
Clock and Data Recovery
..................................................................................................... 87
PCB Design Requirements
................................................................................................. 89
............................................................................................................. 89
................................................................................................................. 90 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
......................................................................................................... 91
.................................................................................................... 92
......................................................................................................... 93
Epson EG-2121CA 2.5V (LVPECL outputs)
........................................................................ 94
Pletronics LV1145B (LVDS outputs)
................................................................................... 94
Other Important Design Notes
......................................................................................... 95
Chapter 5: Simulation and Implementation
Simulation Models
................................................................................................................. 97
Implementation Tools
........................................................................................................... 97
MGT Package Pins
.................................................................................................................. 99
Diagnostic Signals
................................................................................................................ 102
Appendix A: RocketIO Transceiver Timing Model
Timing Parameters
................................................................................................................ 104
Timing Parameter Tables and Diagram
...................................................................... 106
Appendix B: RocketIO Transceiver Cell Models
Summary
................................................................................................................................... 109
Verilog Module Declarations
.......................................................................................... 109
R
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
7
R
8 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Figures
Chapter 2: RocketIO Transceiver Overview
Figure 2-1: RocketIO Transceiver Block Diagram
................................................................. 16
Figure 2-2: Clock Correction in Receiver
................................................................................. 21
Figure 2-3: Channel Bonding (Alignment)
.............................................................................. 22
Chapter 3: Digital Design Considerations
........................................................................................................ 40
........................................................................................................ 43
......................................................................................................... 46
Figure 3-4: REFCLK/BREFCLK Selection Logic
..................................................................... 50
Figure 3-5: One-Byte Data Path Clocks, SERDES_10B = TRUE
.......................................... 52
Figure 3-6: Two-Byte Data Path Clocks, SERDES_10B = TRUE
......................................... 52
Figure 3-7: Four-Byte Data Path Clocks, SERDES_10B = TRUE
......................................... 52
Figure 3-8: Multiplexed REFCLK
.............................................................................................. 53
..................................................................................................... 58
Figure 3-10: 10-Bit TX Data Map with 8B/10B Bypassed
...................................................... 59
Figure 3-11: 10-Bit RX Data Map with 8B/10B Bypassed
...................................................... 59
Figure 3-12: 8B/10B Parallel to Serial Conversion
.................................................................. 69
Figure 3-13: 4-Byte Serial Structure
........................................................................................... 70
Figure 3-14: CRC Packet Format
................................................................................................ 71
Figure 3-15: USER_MODE / FIBRE_CHANNEL Mode
........................................................ 72
........................................................................................................ 72
.................................................................................................... 73
Figure 3-18: Local Route Header
................................................................................................ 73
Figure 3-19: RXDATA Aligned Correctly
................................................................................ 75
Figure 3-20: Realignment of RXDATA
..................................................................................... 76
Chapter 4: Analog Design Considerations
Figure 4-1: Differential Amplifier
............................................................................................. 83
Figure 4-2: Alternating K28.5+ with No Pre-Emphasis
......................................................... 85
Figure 4-3: K28.5+ with Pre-Emphasis
...................................................................................... 85
Figure 4-5: Eye Diagram, 33% Pre-Emphasis
.......................................................................... 86
Figure 4-4: Eye Diagram, 10% Pre-Emphasis
.......................................................................... 86
Figure 4-6: Power Supply Circuit Using LT1963 Regulator
................................................. 89
Figure 4-7: Power Filtering Network for One Transceiver
................................................... 90
Figure 4-8: Example Power Filtering PCB Layout for Four MGTs, Top Layer
................. 91
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
9
R
Figure 4-9: Example Power Filtering PCB Layout for Four MGTs, Bottom Layer
........... 91
Figure 4-10: Single-Ended Trace Geometry
............................................................................. 92
Figure 4-11: Microstrip Edge-Coupled Differential Pair
...................................................... 93
Figure 4-12: Stripline Edge-Coupled Differential Pair
......................................................... 93
Figure 4-13: AC-Coupled Serial Link
....................................................................................... 93
Figure 4-14: DC-Coupled Serial Link
....................................................................................... 94
Figure 4-15: LVPECL Reference Clock Oscillator Interface
................................................. 94
Figure 4-16: LVDS Reference Clock Oscillator Interface
..................................................... 94
Chapter 5: Simulation and Implementation
Figure 5-1: 2VP2 Implementation
.............................................................................................. 98
Figure 5-2: 2VP50 Implementation
............................................................................................ 98
Appendix A: RocketIO Transceiver Timing Model
RocketIO Transceiver Block Diagram .............................................................. 104
RocketIO Transceiver Timing Relative to Clock Edge .................................. 108
Appendix B: RocketIO Transceiver Cell Models
10 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Tables
Chapter 2: RocketIO Transceiver Overview
........................................................................................................... 15
Table 2-2: Communications Standards Supported by RocketIO Transceiver
.................. 15
Table 2-3: Serial Baud Rates and the SERDES_10B Attribute
............................................. 16
Table 2-4: Supported RocketIO Transceiver Primitives
........................................................ 17
Table 2-5: Running Disparity Control
...................................................................................... 18
...................................................................................................... 20
Table 2-7: Reset and Power Control Descriptions
.................................................................. 24
Table 2-8: Power Control Descriptions
..................................................................................... 24
Chapter 3: Digital Design Considerations
(1)
, GT_AURORA, GT_FIBRE_CHAN
(2)
, GT_ETHERNET
(2)
,
GT_INFINIBAND, and GT_XAUI Primitive Ports .......................................................... 25
Table 3-2: RocketIO Transceiver Attributes
............................................................................ 29
Table 3-3: Default Attribute Values: GT_AURORA, GT_CUSTOM, GT_ETHERNET
. 33
Table 3-4: Default Attribute Values: GT_FIBRE_CHAN, GT_INFINIBAND,
and GT_XAUI ........................................................................................................................... 35
Table 3-5: Control/Status Bus Association to Data Bus Byte Paths
..................................... 38
................................................................................................................... 38
Table 3-7: Data Width Clock Ratios
.......................................................................................... 39
Table 3-8: DCM Outputs for Different DATA_WIDTHs
.................................................... 39
Table 3-9: BREFCLK Pin Numbers
............................................................................................ 51
Clock Correction Sequence / Data Correlation for 16-Bit Data Port .............. 56
RXCLKCORCNT Definition ................................................................................. 56
8B/10B Bypassed Signal Significance .................................................................. 58
Valid Data Characters ............................................................................................. 61
Valid Control “K” Characters ................................................................................ 69
Effects of CRC on Transceiver Latency ............................................................... 71
Global and Local Headers ...................................................................................... 73
Bonded Channel Connections ............................................................................... 74
Master/Slave Channel Bonding Attribute Settings ........................................... 74
32-bit RXDATA, Aligned versus Misaligned ..................................................... 75
Chapter 4: Analog Design Considerations
Table 4-1: Differential Transmitter Parameters
...................................................................... 84
Table 4-2: Pre-emphasis Values
................................................................................................. 84
Table 4-3: Differential Receiver Parameters
............................................................................ 87
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
11
R
......................................................................................................... 88
Table 4-5: Transceiver Power Supplies
.................................................................................... 89
Chapter 5: Simulation and Implementation
Table 5-1: LOC Grid & Package Pins Correlation for FG256, FG456, and FF672
............. 99
Table 5-2: LOC Grid & Package Pins Correlation for FF896 and FF1152
........................... 99
Table 5-3: LOC Grid & Package Pins Correlation for FF1517 and FF1704
....................... 100
................................................................................................. 102
Appendix A: RocketIO Transceiver Timing Model
Table A-1: RocketIO Clock Descriptions
............................................................................... 103
Table A-2: Parameters Relative to the RX User Clock (RXUSRCLK)
............................... 106
Table A-3: Parameters Relative to the RX User Clock2 (RXUSRCLK2)
........................... 106
Table A-4: Parameters Relative to the TX User Clock2 (TXUSRCLK2)
............................ 107
Table A-5: Miscellaneous Clock Parameters
......................................................................... 107
Appendix B: RocketIO Transceiver Cell Models
12 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Chapter 1
Introduction
IMPORTANT NOTES
This document assumes use of ISE v5.1.x
.
• If running ISE v4.x.x
, the following modifications must be made:
1.
Remove the ports BREFCLK and BREFCLK2.
2.
Remove the REF_CLK_V_SEL attribute.
• If running ISE v4.1.x
, the following additional modifications must be made:
1.
Remove the port ENMCOMMAALIGN and replace its function by adding the attribute MCOMMA_ALIGN.
2.
Remove the port ENPCOMMAALIGN and replace its function by adding the attribute PCOMMA_ALIGN.
3.
Where a High is indicated for a removed port, set the corresponding attribute to TRUE; where a Low is indicated, set the corresponding attribute to FALSE.
4.
Change the attribute name TERMINATION_IMP to RX_TERM_IMP.
RocketIO Features
The RocketIO™ transceiver’s flexible, programmable features allow a multi-gigabit serial transceiver to be easily integrated into any Virtex-II Pro design:
• Variable speed full-duplex transceiver, allowing 622 Mb/s to 3.125 Gb/s baud transfer rates
• Monolithic clock synthesis and clock recovery system, eliminating the need for external components
• Automatic lock-to-reference function
• Serial output differential swing can be programmed at five levels from 800 mV to
1600 mV (peak-peak), allowing compatibility with other serial system voltage levels.
• Four levels of programmable pre-emphasis
• AC and DC coupling
• Programmable on-chip termination of 50 Ω or 75 Ω (eliminating the need for external termination resistors)
• Serial and parallel TX to RX internal loopback modes for testing operability
• Programmable comma detection to allow for any protocol and detection of any 10-bit character.
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
13
R
Chapter 1: Introduction
In This User Guide
The RocketIO Transceiver User Guide contains these sections:
• Chapter 1, Introduction — This chapter.
• Chapter 2, RocketIO Transceiver Overview — An overview of the transceiver’s capabilities and how it works.
• Chapter 3, Digital Design Considerations — Ports and attributes for the six provided communications protocol primitives; VHDL/Verilog code examples for clocking and reset schemes; transceiver instantiation; 8B/10B encoding; CRC; channel bonding.
• Chapter 4, Analog Design Considerations — RocketIO serial overview; preemphasis; jitter; clock/data recovery; PCB design requirements.
• Chapter 5, Simulation and Implementation — Simulation models; implementation tools; debugging and diagnostics.
• Appendix B, RocketIO Transceiver Cell Models — Verilog module declarations associated with each of the sixteen RocketIO communication standard implementations.
Naming Conventions
Input and output ports of the RocketIO transceiver primitives are denoted in upper-case letters. Attributes of the RocketIO transceiver are denoted in upper-case letters with underscores. Trailing numbers in primitive names denote the byte width of the data path.
These values are preset and not modifiable. When assumed to be the same frequency,
RXUSRCLK and TXUSRCLK are referred to as USRCLK and can be used interchangeably.
This also holds true for RXUSRCLK2, TXUSRCLK2, and USRCLK2.
Comma Definition
A comma is a “K” character used by the transceiver to align the serial data on a byte/half-word boundary (depending on the protocol used), so that the serial data is correctly decoded into parallel data.
For More Information
For a complete menu of online information resources available on the Xilinx website, visit http://www.xilinx.com/virtex2pro/ .
For a comprehensive listing of available tutorials and resources on network technologies and communications protocols, visit http://www.iol.unh.edu/training/ .
14 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Chapter 2
RocketIO Transceiver Overview
Basic Architecture and Capabilities
The RocketIO transceiver is based on Mindspeed’s SkyRail™ technology.
are available on a single Virtex-II Pro FPGA, depending on the part being used.
shows the RocketIO cores available by device.
Table 2-1: RocketIO Cores
Device RocketIO Cores
XC2VP2
XC2VP4
XC2VP7
XC2VP20
XC2VP30
4
4
8
8
8
Device
XC2VP40
XC2VP50
XC2VP70
XC2VP100
XC2VP125
RocketIO Cores
0 or 12
0 or 16
20
0 or 20
0, 20, or 24
The transceiver module is designed to operate at any serial bit rate in the range of
622 Mb/s to 3.125 Gb/s per channel, including the specific bit rates used by the communications standards listed in
. The serial bit rate need not be configured in the transceiver, as the operating frequency is implied by the received data, the reference
clock applied, and the SERDES_10B attribute ( Table 2-3, page 16
).
Table 2-2: Communications Standards Supported by RocketIO Transceiver
Mode
Channels
(Lanes)
(1)
I/O Bit Rate
(Gb/s)
1.06
Fibre Channel 1
Gbit Ethernet 1
2.12
1.25
XAUI (10-Gbit Ethernet)
Infiniband
Aurora (Xilinx protocol)
Custom Mode
4
1, 4, 12
1, 2, 3, 4, ...
1, 2, 3, 4, ...
3.125
2.5
0.622 – 3.125
0.622 – 3.125
Notes:
1.
One channel is considered to be one transceiver.
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
15
16
R
Chapter 2: RocketIO Transceiver Overview
Table 2-3: Serial Baud Rates and the SERDES_10B Attribute
SERDES_10B Serial Baud Rate
False
True
800 Mb/s – 3.125 Gb/s
622 Mb/s – 1.0 Gb/s
PACKAGE
PINS
AVCCAUXRX
2.5V RX
VTRX
Termination Supply RX
MULTI-GIGABIT TRANSCEIVER CORE
Power Down
RXP
RXN
TXP
TXN
Deserializer
Comma
Detect
Realign
8B/10B
Decoder
Channel Bonding and
Clock Correction
CRC
Check
RX
Elastic
Buffer
Clock
Manager
Serializer Output
Polarity
GNDA
TX/RX GND
AVCCAUXTX
2.5V TX
VTTX
Termination Supply TX
TX
FIFO
8B/10B
Encoder
CRC
FPGA FABRIC
POWERDOWN
RXRECCLK
RXPOLARITY
RXREALIGN
RXCOMMADET
ENPCOMMAALIGN
ENMCOMMAALIGN
RXCHECKINGCRC
RXCRCERR
RXDATA[15:0]
RXDATA[31:16]
RXNOTINTABLE[3:0]
RXDISPERR[3:0]
RXCHARISK[3:0]
RXCHARISCOMMA[3:0]
RXRUNDISP[3:0]
RXBUFSTATUS[1:0]
ENCHANSYNC
CHBONDDONE
CHBONDI[3:0]
CHBONDO[3:0]
RXLOSSOFSYNC
RXCLKCORCNT
TXBUFERR
TXFORCECRCERR
TXDATA[15:0]
TXDATA[31:16]
TXBYPASS8B10B[3:0]
TXCHARISK[3:0]
TXCHARDISPMODE[3:0]
TXCHARDISPVAL[3:0]
TXKERR[3:0]
TXRUNDISP[3:0]
TXPOLARITY
TXINHIBIT
LOOPBACK[1:0]
TXRESET
RXRESET
REFCLK
REFCLK2
REFCLKSEL
BREFCLK
BREFCLK2
RXUSRCLK
RXUSRCLK2
TXUSRCLK
TXUSRCLK2
DS083-2_04_090402
Figure 2-1: RocketIO Transceiver Block Diagram www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Clock Synthesizer
R
Table 2-4 lists the 16 gigabit transceiver primitives provided. These primitives carry
attributes set to default values for the communications protocols listed in
widths of one, two, and four bytes are selectable for each protocol.
Table 2-4: Supported RocketIO Transceiver Primitives
Primitives Description Primitive
GT_CUSTOM Fully customizable by user
GT_FIBRE_CHAN_1 Fibre Channel,
1-byte data path
GT_FIBRE_CHAN_2 Fibre Channel,
2-byte data path
GT_FIBRE_CHAN_4 Fibre Channel,
4-byte data path
GT_ETHERNET_1
GT_ETHERNET_2
Gigabit Ethernet,
1-byte data path
Gigabit Ethernet,
2-byte data path
GT_ETHERNET_4
GT_XAUI_1
Gigabit Ethernet,
4-byte data path
10-Gb Ethernet,
1-byte data path
Description
GT_XAUI_2
GT_XAUI_4
10-Gb Ethernet,
2-byte data path
10-Gb Ethernet,
4-byte data path
GT_INFINIBAND_1 Infiniband, 1-byte data path
GT_INFINIBAND_2 Infiniband, 2-byte data path
GT_INFINIBAND_4 Infiniband, 4-byte data path
GT_AURORA_1 Xilinx protocol,
1-byte data path
GT_AURORA_2
GT_AURORA_4
Xilinx protocol,
2-byte data path
Xilinx protocol,
4-byte data path
There are two ways to modify the RocketIO transceiver:
• Static properties can be set through attributes in the HDL code. Use of attributes are
covered in detail in Primitive Attributes , page 29
.
• Dynamic changes can be made by the ports of the primitives
The RocketIO transceiver consists of the Physical Media Attachment (PMA) and Physical
Coding Sublayer (PCS). The PMA contains the serializer/deserializer (SERDES), TX and
RX buffers, clock generator, and clock recovery circuitry. The PCS contains the 8B/10B encoder/decoder and the elastic buffer supporting channel bonding and clock correction.
The PCS also handles Cyclic Redundancy Check (CRC). Refer again to
, showing the RocketIO transceiver top-level block diagram and FPGA interface signals.
Clock Synthesizer
Synchronous serial data reception is facilitated by a clock/data recovery circuit. This circuit uses a fully monolithic Phase-Locked Loop (PLL), which does not require any external components. The clock/data recovery circuit extracts both phase and frequency from the incoming data stream. The recovered clock is presented on output RXRECCLK at
1/20 of the serial received data rate.
The gigabit transceiver multiplies the reference frequency provided on the reference clock input (REFCLK) by 20.
No fixed phase relationship is assumed between REFCLK, RXRECCLK, and/or any other clock that is not tied to either of these clocks. When the 4-byte or 1-byte receiver data path is used, RXUSRCLK and RXUSRCLK2 have different frequencies (1:2), and each edge of the slower clock is aligned to a falling edge of the faster clock. The same relationships
apply to TXUSRCLK and TXUSRCLK2. See the section entitled Clocking , page 38 , for
details.
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
17
R
Chapter 2: RocketIO Transceiver Overview
Clock and Data Recovery
The clock/data recovery (CDR) circuits lock to the reference clock automatically if the data is not present. For proper operation, frequency variations of REFCLK, TXUSRCLK,
RXUSRCLK, and the incoming stream (RXRECCLK) must not exceed
±
100 ppm.
It is critical to keep power supply noise low in order to minimize common and differential noise modes into the clock/data recovery circuitry. See
PCB Design Requirements , page 89 , for more details.
Transmitter
FPGA Transmit Interface
The FPGA can send either one, two, or four characters of data to the transmitter. Each character can be either 8 bits or 10 bits wide. If 8-bit data is applied, the additional inputs become control signals for the 8B/10B encoder. When the 8B/10B encoder is bypassed, the
10-bit character order is:
TXCHARDISPMODE[0]
TXCHARDISPVAL[0]
TXDATA[7:0]
Refer to
Figure 3-10, page 59 , for a graphical representation of the transmitted 10-bit
character.
8B/10B Encoder
A bypassable 8B/10B encoder is included. The encoder uses the same 256 data characters and 12 control characters that are used for Gigabit Ethernet, XAUI, Fibre Channel, and
InfiniBand.
The encoder accepts 8 bits of data along with a K-character signal for a total of 9 bits per character applied. If the K-character signal is High, the data is encoded into one of the 12 possible K-characters available in the 8B/10B code. If the K-character input is Low, the 8 bits are encoded as standard data. If the K-character input is High, and a user applies other than one of the 12 possible combinations, TXKERR indicates the error.
Disparity Control
The 8B/10B encoder is initialized with a negative running disparity.
TXRUNDISP signals the transmitter’s current running disparity.
Bits TXCHARDISPMODE and TXCHARDISPVAL control the generation of running
disparity before each byte, as shown in Table 2-5 .
Table 2-5: Running Disparity Control
{txchardispmode, txchardispval}
00
01
10
11
Function
Maintain running disparity normally
Invert normally generated running disparity before encoding this byte
Set negative running disparity before encoding this byte
Set positive running disparity before encoding this byte
For example, the transceiver can generate the sequence
K28.5+ K28.5+ K28.5– K28.5– or
K28.5– K28.5– K28.5+ K28.5+
18 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Receiver by specifying inverted running disparity for the second and fourth bytes.
Transmit FIFO
Proper operation of the circuit is only possible if the FPGA clock (TXUSRCLK) is frequency-locked to the reference clock (REFCLK). Phase variations up to one clock cycle are allowable. The FIFO has a depth of four. Overflow or underflow conditions are detected and signaled at the interface.
Serializer
The multi-gigabit transceiver multiplies the reference frequency provided on the reference clock input (REFCLK) by 20. Data is converted from parallel to serial format and transmitted on the TXP and TXN differential outputs.
The electrical polarity of TXP and TXN can be interchanged through the TXPOLARITY port. This option can either be programmed or controlled by an input at the FPGA core TX interface. This facilitates recovery from situations where printed circuit board traces have been reversed.
Transmit Termination
On-chip termination is provided at the transmitter, eliminating the need for external termination. Programmable options exist for 50 Ω (default) and 75 Ω termination.
Pre-emphasis Circuit and Swing Control
Four selectable levels of pre-emphasis, including default pre-emphasis, are available.
Optimizing this setting allows the transceiver to drive up to 20 inches of FR4 at the maximum baud rate.
The programmable output swing control can adjust the differential output level between
800 mV and 1600 mV (differential peak-to-peak) in four increments of 200 mV.
Receiver
Deserializer
The RocketIO transceiver core accepts serial differential data on its RXP and RXN inputs.
The clock/data recovery circuit extracts clock phase and frequency from the incoming data stream and re-times incoming data to this clock. The recovered clock is presented on output RXRECCLK at 1/20 of the received serial data rate.
The receiver is capable of handling either transition-rich 8B/10B streams or scrambled streams, and can withstand a string of up to 75 non-transitioning bits without an error.
Word alignment is dependent on the state of comma detect bits. If comma detect is enabled, the transceiver recognizes up to two 10-bit preprogrammed characters. Upon detection of the character or characters, the comma detect output is driven High and the data is synchronously aligned. If a comma is detected and the data is aligned, no further alignment alteration takes place. If a comma is received and realignment is necessary, the data is realigned and an indication is given at the RX FPGA interface. The realignment indicator is a distinct output. The transceiver continuously monitors the data for the presence of the 10-bit character(s). Upon each occurrence of the 10-bit character, the data is checked for word alignment. If comma detect is disabled, the data is not aligned to any particular pattern. The programmable option allows a user to align data on comma+, comma–, both, or a unique user-defined and programmed sequence.
The electrical polarity of RXP and RXN can be interchanged through the RXPOLARITY port. This can be useful in the event that printed circuit board traces have been reversed.
R
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
19
R
Chapter 2: RocketIO Transceiver Overview
Receiver Termination
On-chip termination is provided at the receiver, eliminating the need for external termination. The receiver includes programmable on-chip termination circuitry for 50 Ω
(default) or 75 Ω impedance.
8B/10B Decoder
An optional 8B/10B decoder is included. A programmable option allows the decoder to be bypassed. (See
RXCHARISK[0]
RXRUNDISP[0]
RXDATA[7:0]
Refer to Figure 3-11, page 59 , for a graphical representation of the received 10-bit character.
The decoder uses the same table that is used for Gigabit Ethernet, Fibre Channel and
InfiniBand. In addition to decoding all data and K-characters, the decoder has several extra features. The decoder separately detects both “disparity errors” and “out-of-band” errors.
A disparity error occurs when a 10-bit character is received that exists within the 8B/10B table, but has an incorrect disparity. An out-of-band error occurs when a 10-bit character is received that does not exist within the 8B/10B table. It is possible to obtain an out-of-band error without having a disparity error. The proper disparity is always computed for both legal and illegal characters. The current running disparity is available at the RXRUNDISP signal.
The 8B/10B decoder performs a unique operation if out-of-band data is detected. If out-ofband data is detected, the decoder signals the error and passes the illegal 10-bits through and places them on the outputs. This can be used for debugging purposes if desired.
The decoder also signals reception of one of the 12 valid K-characters. In addition, a programmable comma detect is included. The comma detect signal registers a comma on the receipt of any comma+, comma–, or both. Since the comma is defined as a 7-bit character, this includes several out-of-band characters. Another option allows the decoder to detect only the three defined commas (K28.1, K28.5, and K28.7) as comma+, comma–, or both. In total, there are six possible options, three for valid commas and three for "any comma".
Note that all bytes (1, 2, or 4) at the RX FPGA interface each have their own individual
8B/10B indicators (K-character, disparity error, out-of-band error, current running disparity, and comma detect).
Loopback
To facilitate testing without having the need to either apply patterns or measure data at
GHz rates, two programmable loopback features are available.
One option, serial loopback, places the gigabit transceiver into a state where transmit data is directly fed back to the receiver. An important point to note is that the feedback path is at the output pads of the transmitter. This tests the entirety of the transmitter and receiver.
The second loopback path is a parallel path that checks the digital circuitry. When the parallel option is enabled, the serial loopback path is disabled. However, the transmitter outputs remain active and data is transmitted over a link. If TXINHIBIT is asserted, TXN is forced to 1 and TXP is forced to 0 until TXINHIBIT is de-asserted.
The two loopback options are shown in
.
Table 2-6: Loopback Options
LOOPBACK[1:0] Description
LOOPBACK[1]
LOOPBACK[0]
External serial loopback
Internal parallel loopback
20 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Elastic and Transmitter Buffers
Elastic and Transmitter Buffers
Both the transmitter and the receiver include buffers (FIFOs) in the data path. This section gives the reasons for including the buffers and outlines their operation.
R
Receiver Buffer
The receiver buffer is required for two reasons:
• To accommodate the slight difference in frequency between the recovered clock
RXRECCLK and the internal FPGA core clock RXUSRCLK (clock correction)
• To allow realignment of the input stream to ensure proper alignment of data being read through multiple transceivers (channel bonding)
The receiver uses an elastic buffer , where "elastic" refers to the ability to modify the read pointer for clock correction and channel bonding.
Clock Correction
Clock RXRECCLK (the recovered clock) reflects the data rate of the incoming data. Clock
RXUSRCLK defines the rate at which the FPGA core consumes the data. Ideally, these rates are identical. However, since the clocks typically have different sources, one of the clocks is faster than the other. The receiver buffer accommodates this difference between the clock rates. See
Nominally, the buffer is always half full. This is shown in the top buffer,
the shaded area represents buffered data not yet read. Received data is inserted via the write pointer under control of RXRECCLK. The FPGA core reads data via the read pointer under control of RXUSRCLK. The half full/half empty condition of the buffer gives a cushion for the differing clock rates. This operation continues indefinitely, regardless of whether or not "meaningful" data is being received. When there is no meaningful data to be received, the incoming data consists of IDLE characters or other padding.
Read
RXUSRCLK
Write
RXRECCLK
Read
"Nominal" condition: buffer half-full
Write
Read
Buffer less than half -full (emptying)
Repeatable sequence
Write
Removable sequence
Buffer more than half-full (filling up)
DS083-2_15_100901
Figure 2-2: Clock Correction in Receiver
If RXUSRCLK is faster than RXRECCLK, the buffer becomes more empty over time. The clock correction logic corrects for this by decrementing the read pointer to reread a repeatable byte sequence. This is shown in the middle buffer,
read pointer decrements to the value represented by the dashed pointer. By decrementing the read pointer instead of incrementing it in the usual fashion, the buffer is partially refilled. The transceiver inserts a single repeatable byte sequence when necessary to refill a buffer. If the byte sequence length is greater than one, and if attribute
CLK_COR_REPEAT_WAIT is 0, then the transceiver can repeat the same sequence multiple times until the buffer is refilled to the half-full condition.
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
21
22
R
Chapter 2: RocketIO Transceiver Overview
Similarly, if RXUSRCLK is slower than RXRECCLK, the buffer fills up over time. The clock correction logic corrects for this by incrementing the read pointer to skip over a removable byte sequence that need not appear in the final FPGA core byte stream. This is shown in the
bottom buffer, Figure 2-2 , where the solid read pointer increments to the value represented
by the dashed pointer. This accelerates the emptying of the buffer, preventing its overflow.
The transceiver design skips a single byte sequence, when necessary, to partially empty a buffer. If attribute CLK_COR_REPEAT_WAIT is 0, the transceiver can also skip two consecutive removable byte sequences in one step, to further empty the buffer, when necessary.
These operations require the clock correction logic to recognize a byte sequence that can be freely repeated or omitted in the incoming data stream. This sequence is generally an IDLE sequence, or other sequence comprised of special values that occur in the gaps separating packets of meaningful data. These gaps are required to occur sufficiently often to facilitate the timely execution of clock correction.
Channel Bonding
Some gigabit I/O standards such as Infiniband specify the use of multiple transceivers in parallel for even higher data rates. Words of data are split into bytes, with each byte sent
over a separate channel (transceiver). See Figure 2-3 .
In Transmitters:
Full word SSSS sent over four channels, one byte per channel
P Q R S T Channel (lane) 0
P Q R S T
P Q R S T
P Q R S T
Channel (lane) 1
Channel (lane) 2
Channel (lane) 3
Read
RXUSRCLK
P Q R S T
In Receivers:
P Q R S T
P Q R S T
Read
RXUSRCLK
P Q R S T
P Q R S T
P Q R S T
P Q R S T
Before channel bonding
P Q R S T
After channel bonding
DS083-2_16_010202
Figure 2-3: Channel Bonding (Alignment)
The top half of the figure shows the transmission of words split across four transceivers
(channels or lanes). PPPP, QQQQ, RRRR, SSSS, and TTTT represent words sent over the four channels.
The bottom-left portion of the figure shows the initial situation in the FPGA’s receivers at the other end of the four channels. Due to variations in transmission delay—especially if the channels are routed through repeaters—the FPGA core might not correctly assemble the bytes into complete words. The bottom-left illustration shows the incorrect assembly of data words PQPP, QRQQ, RSRR, etc.
To support correction of this misalignment, the data stream includes special byte sequences that define corresponding points in the several channels. In the bottom half of
, the shaded "P" bytes represent these special characters. Each receiver www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
CRC recognizes the "P" channel bonding character, and remembers its location in the buffer. At some point, one transceiver designated as the master instructs all the transceivers to align to the channel bonding character "P" (or to some location relative to the channel bonding character). After this operation, the words transmitted to the FPGA core are properly aligned: RRRR, SSSS, TTTT, etc., as shown in the bottom-right portion of
. To ensure that the channels remain properly aligned following the channel bonding operation, the master transceiver must also control the clock correction operations described in the previous section for all channel-bonded transceivers.
Transmitter Buffer
The transmitter buffer’s write pointer (TXUSRCLK) is frequency-locked to its read pointer
(REFCLK). Therefore, clock correction and channel bonding are not required. The purpose of the transmitter's buffer is to accommodate a phase difference between TXUSRCLK and
REFCLK. A simple FIFO suffices for this purpose. A FIFO depth of four permits reliable operation with simple detection of overflow or underflow, which might occur if the clocks are not frequency-locked.
R
CRC
The RocketIO transceiver CRC logic supports the 32-bit invariant CRC calculation used by
Infiniband, FibreChannel, and Gigabit Ethernet.
On the transmitter side, the CRC logic recognizes where the CRC bytes should be inserted and replaces four placeholder bytes at the tail of a data packet with the computed CRC. For
Gigabit Ethernet and FibreChannel, transmitter CRC can adjust certain trailing bytes to generate the required running disparity at the end of the packet.
On the receiver side, the CRC logic verifies the received CRC value, supporting the same standards as above.
The CRC logic also supports a user mode, with a simple data packet structure beginning and ending with user-defined SOP and EOP characters.
There are limitations to the CRC support provided by the RocketIO transceiver core:
• It is for single-channel use only. Computation and byte-striping of CRC across multiple bonded channels is not supported. For that usage, the CRC logic can be implemented in the FPGA fabric.
• The RocketIO transceiver does not compute the 16-bit variant CRC used for
Infiniband. Therefore, RocketIO CRC does not fulfill the Infiniband CRC requirement.
Infiniband CRC can be computed in the FPGA fabric.
Reset/Power Down
The receiver and transmitter have their own synchronous reset inputs. The transmitter reset recenters the transmission FIFO and resets all transmitter registers and the 8B/10B encoder. The receiver reset recenters the receiver elastic buffer and resets all receiver registers and the 8B/10B decoder. Neither reset signal has any effect on the PLLs.
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
23
R
Chapter 2: RocketIO Transceiver Overview
Additional reset and power control descriptions are given in
Table 2-7: Reset and Power Control Descriptions
Ports Description
RXRESET
TXRESET
POWERDOWN
Synchronous receive system reset recenters the receiver elastic buffer, and resets the 8B/10B decoder, comma detect, channel bonding, clock correction logic, and other receiver registers. The
PLL is unaffected.
Synchronous transmit system reset recenters the transmission
FIFO, and resets the 8B/10B encoder and other transmission registers. The PLL is unaffected.
Shuts down the transceiver (both RX and TX sides).
In POWERDOWN mode, transmit output pins TXP/TXN are undriven, but biased by the state of transmit termination supply VTTX. If VTTX is unpowered, TXP/TXN float to a highimpedance state. Receive input pins RXP/RXN respond similarly to the state of receive termination supply VTRX.
Table 2-8: Power Control Descriptions
POWERDOWN
0
1
Transceiver Status
Transceiver in operation
Transceiver temporarily powered down
24 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Chapter 3
Digital Design Considerations
List of Available Ports
The RocketIO transceiver primitives contain 50 ports, with the exception of the 46-port
GT_ETHERNET and GT_FIBRE_CHAN primitives. The differential serial data ports
(RXN, RXP, TXN, and TXP) are connected directly to external pads; the remaining 46 ports are all accessible from the FPGA logic (42 ports for GT_ETHERNET and
GT_FIBRE_CHAN).
Table 3-1 contains the port descriptions of all primitives.
Table 3-1: GT_CUSTOM (1) , GT_AURORA, GT_FIBRE_CHAN (2) , GT_ETHERNET (2) ,
GT_INFINIBAND, and GT_XAUI Primitive Ports
Port I/O
Port
Size
Definition
BREFCLK(5)
BREFCLK2(5)
CHBONDDONE (2)
CHBONDI (2)
CHBONDO
(2)
CONFIGENABLE
CONFIGIN
CONFIGOUT
ENCHANSYNC (2)
ENMCOMMAALIGN
ENPCOMMAALIGN
LOOPBACK
I
I
O
I
I
O
I
I
O
I
I
I
1
1
1
1
1
1
1
4
4
1
1
2
This high quality reference clock uses dedicated routing to improve jitter for serial speeds 2.5 Gb/s or greater.
Alternative to BREFCLK.
Indicates a receiver has successfully completed channel bonding when asserted High.
The channel bonding control that is used only by "slaves" which is driven by a transceiver's CHBONDO port.
Channel bonding control that passes channel bonding and clock correction control to other transceivers.
Reconfiguration enable input (unused)
Data input for reconfiguring transceiver (unused)
Data output for configuration readback (unused)
Comes from the core to the transceiver and enables the transceiver to perform channel bonding
Selects realignment of incoming serial bitstream on minus-comma. High realigns serial bitstream byte boundary when minus-comma is detected.
Selects realignment of incoming serial bitstream on plus-comma. High realigns serial bitstream byte boundary when plus-comma is detected.
Selects the two loopback test modes. Bit 1 is for serial loopback and bit 0 is for internal parallel loopback.
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
25
R
Chapter 3: Digital Design Considerations
Table 3-1: GT_CUSTOM
(1)
, GT_AURORA, GT_FIBRE_CHAN
(2)
, GT_ETHERNET
(2)
,
GT_INFINIBAND, and GT_XAUI Primitive Ports (Continued)
Port I/O
Port
Size
Definition
POWERDOWN I 1 Shuts down both the receiver and transmitter sides of the transceiver when asserted High. This decreases the power consumption while the transceiver is shut down. This input is asynchronous.
REFCLK
REFCLK2
REFCLKSEL
RXBUFSTATUS
RXCHARISCOMMA
(3)
RXCHARISK
(3)
I
I
1
1
High-quality reference clock driving transmission (reading TX FIFO, and multiplied for parallel/serial conversion) and clock recovery. REFCLK frequency is accurate to ± 100 ppm. This clock originates off the device, is routed through fabric interconnect, and is selected by the REFCLKSEL.
An alternative to REFCLK. Can be selected by the REFCLKSEL.
I
O
1
2
Selects the reference clock to use REFCLK or REFCLK2. Deasserted is
REFCLK. Asserted is REFCLK2.
Receiver elastic buffer status. Bit 1 indicates if an overflow/underflow error has occurred when asserted High. Bit 0 indicates if the buffer is at least half-full when asserted High.
O 1, 2, 4 Similar to RXCHARISK except that the data is a comma.
RXCHECKINGCRC
RXCLKCORCNT
O 1, 2, 4 If 8B/10B decoding is enabled, it indicates that the received data is a "K" character when asserted High. Included in Byte-mapping. If 8B/10B decoding is bypassed, it remains as the first bit received (Bit "a") of the
10-bit encoded data (see Figure 3-11 ).
O 1
O 3
CRC status for the receiver. Asserts High to indicate that the receiver has recognized the end of a data packet. Only meaningful if RX_CRC_USE =
TRUE.
Status that denotes occurrence of clock correction or channel bonding. This
status is synchronized on the incoming RXDATA. See Clock Correction
RXCOMMADET
RXCRCERR
RXDATA
(3)
RXDISPERR
RXLOSSOFSYNC
RXN
(4)
RXNOTINTABLE
(3)
RXP
(4)
O
O
1
1
Signals that a comma has been detected in the data stream.
Indicates if the CRC code is incorrect when asserted High. Only meaningful if RX_CRC_USE = TRUE.
O 8,16,32 Up to four bytes of decoded (8B/10B encoding) or encoded (8B/10B bypassed) receive data.
O 1, 2, 4 If 8B/10B encoding is enabled it indicates whether a disparity error has occurred on the serial line. Included in Byte-mapping scheme.
O 2 Status related to byte-stream synchronization (RX_LOSS_OF_SYNC_FSM)
If RX_LOSS_OF_SYNC_FSM = TRUE, this outputs the state of the FSM.
Bit 1 signals a loss of sync.
Bit 0 indicates a resync state.
If RX_LOSS_OF_SYNC_FSM = FALSE, this indicates if received data is invalid (Bit 1) and if the channel bonding sequence is recognized (Bit 0).
I 1 Serial differential port (FPGA external)
O 1, 2, 4 Status of encoded data when the data is not a valid character when asserted High. Applies to the byte-mapping scheme.
I 1 Serial differential port (FPGA external)
26 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
List of Available Ports
Table 3-1: GT_CUSTOM
(1)
, GT_AURORA, GT_FIBRE_CHAN
(2)
, GT_ETHERNET
(2)
,
GT_INFINIBAND, and GT_XAUI Primitive Ports (Continued)
Port I/O
Port
Size
Definition
RXPOLARITY I 1 Similar to TXPOLARITY, but for RXN and RXP. When deasserted, assumes regular polarity. When asserted, reverses polarity.
RXREALIGN
RXRECCLK
RXRESET
RXRUNDISP
(3)
RXUSRCLK
RXUSRCLK2
O
O
1
1
Signal from the PMA denoting that the byte alignment with the serial data stream changed due to a comma detection. Asserted High when alignment occurs.
Recovered clock that is divided by 20.
I 1
O 1, 2, 4 Signals the running disparity ( 0 = negative, 1 = positive) in the received serial data. If 8B/10B encoding is bypassed, it remains as the second bit
received (Bit "b") of the 10-bit encoded data (see Figure 3-11 ).
I 1
Synchronous RX system reset that "recenters" the receive elastic buffer. It also resets 8B/10B decoder, comma detect, channel bonding, clock correction logic, and other internal receive registers. It does not reset the receiver PLL.
Clock from a DCM that is used for reading the RX elastic buffer. It also clocks CHBONDI and CHBONDO in and out of the transceiver. Typically, the same as TXUSRCLK.
I 1 Clock output from a DCM that clocks the receiver data and status between the transceiver and the FPGA core. Typically the same as TXUSRCLK2.
The relationship between RXUSRCLK and RXUSRCLK2 depends on the width of the RXDATA.
TXBUFERR
TXBYPASS8B10B
(3)
TXCHARDISPMODE
(3)
TXCHARDISPVAL
(3)
TXCHARISK
(3)
TXDATA
(3)
O
I
I
I
1 Provides status of the transmission FIFO. If asserted High, an overflow/underflow has occurred. When this bit becomes set, it can only be reset by asserting TXRESET.
1, 2, 4 This control signal determines whether the 8B/10B encoding is enabled or bypassed. If the signal is asserted High, the encoding is bypassed. This creates a 10-bit interface to the FPGA core. See the 8B/10B section for more details.
1, 2, 4 If 8B/10B encoding is enabled, this bus determines what mode of disparity is to be sent. When 8B/10B is bypassed, this becomes the first bit transmitted (Bit "a") of the 10-bit encoded TXDATA bus section (see
) for each byte specified by the byte-mapping.
1, 2, 4 If 8B/10B encoding is enabled, this bus determines what type of disparity is to be sent. When 8B/10B is bypassed, this becomes the second bit transmitted (Bit "b") of the 10-bit encoded TXDATA bus section (see
) for each byte specified by the byte-mapping section.
I 1, 2, 4 If 8B/10B encoding is enabled, this control bus determines if the transmitted data is a "K" character or a Data character. A logic High indicating a K-character.
I 8,16,32 Transmit data that can be 1, 2, or 4 bytes wide, depending on the primitive used. TXDATA [7:0] is always the last byte transmitted. The position of the first byte depends on selected TX data path width.
R
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
27
R
Chapter 3: Digital Design Considerations
Table 3-1: GT_CUSTOM
(1)
, GT_AURORA, GT_FIBRE_CHAN
(2)
, GT_ETHERNET
(2)
,
GT_INFINIBAND, and GT_XAUI Primitive Ports (Continued)
Port I/O
Port
Size
Definition
TXFORCECRCERR I 1 Specifies whether to insert error in computed CRC.
When TXFORCECRCERR = TRUE, the transmitter corrupts the correctly computed CRC value by XORing with the bits specified in attribute
TX_CRC_FORCE_VALUE. This input can be used to test detection of CRC errors at the receiver.
TXINHIBIT
TXKERR
(3)
TXN
(4)
TXP
(4)
TXPOLARITY
O
O
I
I 1 If a logic High, the TX differential pairs are forced to be a constant 1/0.
TXN = 1, TXP = 0
O 1, 2, 4 If 8B/10B encoding is enabled, this signal indicates (asserted High) when the "K" character to be transmitted is not a valid "K" character. Bits correspond to the byte-mapping scheme.
1
1
1
Transmit differential port (FPGA external)
Transmit differential port (FPGA external)
Specifies whether or not to invert the final transmitter output. Able to reverse the polarity on the TXN and TXP lines. Deasserted sets regular polarity. Asserted reverses polarity.
TXRESET
TXRUNDISP
(3)
TXUSRCLK
TXUSRCLK2
I 1
O 1, 2, 4 Signals the running disparity after this byte is encoded. Zero equals negative disparity and positive disparity for a one.
I 1 Clock output from a DCM that is clocked with the REFCLK (or other reference clock). This clock is used for writing the TX buffer and is frequency-locked to the REFCLK.
I 1
Synchronous TX system reset that “recenters” the transmit elastic buffer. It also resets 8B/10B encoder and other internal transmission registers. It does not reset the transmission PLL.
Clock output from a DCM that clocks transmission data and status and reconfiguration data between the transceiver an the FPGA core. The ratio between the TXUSRCLK and TXUSRCLK2 depends on the width of the
TXDATA.
Notes:
1.
The GT_CUSTOM ports are always the maximum port size.
2.
GT_FIBRE_CHAN and GT_ETHERNET ports do not have the three CHBOND** or ENCHANSYNC ports.
3.
The port size changes with relation to the primitive selected, and also correlates to the byte mapping.
4.
External ports only accessible from package pins.
5.
Will be available in ISE 5.1.
28 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Primitive Attributes
Primitive Attributes
The primitives also contain attributes set by default to specific values controlling each specific primitive’s protocol parameters. Included are channel-bonding settings (for primitives supporting channel bonding), clock correction sequences, and CRC.
shows a brief description of each attribute.
and
Table 3-4 have the default values
of each primitive.
R
Table 3-2: RocketIO Transceiver Attributes
Attribute
ALIGN_COMMA_MSB
CHAN_BOND_LIMIT
CHAN_BOND_MODE
Description
TRUE/FALSE controls the alignment of detected commas within the transceiver’s 2-byte-wide data path.
FALSE: Align commas within a 10-bit alignment range. As a result the comma is aligned to either RXDATA[15:8} byte or RXDATA [7:0] byte in the transceivers internal data path.
TRUE: Aligns comma with 20-bit alignment range.
As a result aligns on the RXDATA[15:8] byte.
NOTE: If protocols (like Gigabit Ethernet) are oriented in byte pairs with commas always in even (first) byte formation, this can be set to TRUE.
Otherwise, it should be set to FALSE.
NOTE: For 32-bit data path primitives, see
32-bit Alignment Design, page 76 .
Integer 1-31 that defines maximum number of bytes a slave receiver can read following a channel bonding sequence and still successfully align to that sequence.
STRING
OFF, MASTER, SLAVE_1_HOP, SLAVE_2_HOPS
OFF: No channel bonding involving this transceiver.
MASTER: This transceiver is master for channel bonding. Its CHBONDO port directly drives CHBONDI ports on one or more SLAVE_1_HOP transceivers.
SLAVE_1_HOP: This transceiver is a slave for channel bonding.
SLAVE_1_HOP’s CHBONDI is directly driven by a MASTER transceiver
CHBONDO port. SLAVE_1_HOP’s CHBONDO port can directly drive
CHBONDI ports on one or more SLAVE_2_HOPS transceivers.
SLAVE_2_HOPS: This transceiver is a slave for channel bonding.
SLAVE_2_HOPS CHBONDI is directly driven by a SLAVE_1_HOP CH-
BONDO port.
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
29
R
Chapter 3: Digital Design Considerations
Table 3-2: RocketIO Transceiver Attributes (Continued)
Attribute Description
CHAN_BOND_OFFSET
CHAN_BOND_ONE_SHOT
CHAN_BOND_SEQ_*_*
Integer 0-15 that defines offset (in bytes) from channel bonding sequence for realignment. It specifies the first elastic buffer read address that all channelbonded transceivers have immediately after channel bonding.
CHAN_BOND_WAIT specifies the number of bytes that the master transceiver passes to RXDATA, starting with the channel bonding sequence, before the transceiver executes channel bonding (alignment) across all channel-bonded transceivers.
CHAN_BOND_OFFSET specifies the first elastic buffer read address that all channel-bonded transceivers have immediately after channel bonding
(alignment), as a positive offset from the beginning of the matched channel bonding sequence in each transceiver.
For optimal performance of the elastic buffer, CHAN_BOND_WAIT and
CHAN_BOND_OFFSET should be set to the same value (typically 8).
TRUE/FALSE that controls repeated execution of channel bonding.
FALSE: Master transceiver initiates channel bonding whenever possible
(whenever channel-bonding sequence is detected in the input) as long as input ENCHANSYNC is High and RXRESET is Low.
TRUE: Master transceiver initiates channel bonding only the first time it is possible (channel bonding sequence is detected in input) following negated RXRESET and asserted ENCHANSYNC. After channel-bonding alignment is done, it does not occur again until RXRESET is asserted and negated, or until ENCHANSYNC is negated and reasserted.
Slave transceivers should always have CHAN_BOND_ONE_SHOT set to
FALSE.
11-bit vectors that define the channel bonding sequence. The usage of these vectors also depends on CHAN_BOND_SEQ_LEN and
CHAN_BOND_SEQ_2_USE. See Receiving Vitesse Channel Bonding
Sequence, page 60 , for format.
CHAN_BOND_SEQ_2_USE
CHAN_BOND_SEQ_LEN
Controls use of second channel bonding sequence.
FALSE: Channel bonding uses only one channel bonding sequence defined by CHAN_BOND_SEQ_1_1..4.
TRUE: Channel bonding uses two channel bonding sequences defined by:
CHAN_BOND_SEQ_1_1..4 and
CHAN_BOND_SEQ_2_1..4 as further constrained by CHAN_BOND_SEQ_LEN.
Integer 1-4 defines length in bytes of channel bonding sequence. This defines the length of the sequence the transceiver matches to detect opportunities for channel bonding.
CHAN_BOND_WAIT Integer 1-15 that defines the length of wait (in bytes) after seeing channel bonding sequence before executing channel bonding.
CLK_COR_INSERT_IDLE_FLAG TRUE/FALSE controls whether RXRUNDISP input status denotes running disparity or inserted-idle flag.
FALSE: RXRUNDISP denotes running disparity when RXDATA is decoded data.
TRUE: RXRUNDISP is raised for the first byte of each inserted (repeated) clock correction ("Idle") sequence (when RXDATA is decoded data).
30 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Primitive Attributes
Table 3-2: RocketIO Transceiver Attributes (Continued)
Attribute
CLK_COR_KEEP_IDLE
CLK_COR_REPEAT_WAIT
CLK_COR_SEQ_*_*
CLK_COR_SEQ_2_USE
CLK_COR_SEQ_LEN
CLK_CORRECT_USE
COMMA_10B_MASK
CRC_END_OF_PKT
CRC_FORMAT
CRC_START_OF_PKT
Description
TRUE/FALSE controls whether or not the final byte stream must retain at least one clock correction sequence.
FALSE: Transceiver can remove all clock correction sequences to further recenter the elastic buffer during clock correction.
TRUE: In the final RXDATA stream, the transceiver must leave at least one clock correction sequence per continuous stream of clock correction sequences.
Integer 0 - 31 controls frequency of repetition of clock correction operations.
This attribute specifies the minimum number of RXUSRCLK cycles without clock correction that must occur between successive clock corrections. If this attribute is zero, no limit is placed on how frequently clock correction can occur.
11-bit vectors that define the sequence for clock correction. The attribute used depends on the CLK_COR_SEQ_LEN and CLK_COR_SEQ_2_USE.
TRUE/FALSE Control use of second clock correction sequence.
FALSE: Clock correction uses only one clock correction sequence defined by CLK_COR_SEQ_1_1..4.
TRUE: Clock correction uses two clock correction sequences defined by:
CLK_COR_SEQ_1_1..4 and
CLK_COR_SEQ_2_1..4 as further constrained by CLK_COR_SEQ_LEN.
Integer that defines the length of the sequence the transceiver matches to detect opportunities for clock correction. It also defines the size of the correction, since the transceiver executes clock correction by repeating or skipping entire clock correction sequences.
TRUE/FALSE controls the use of clock correction logic.
FALSE: Permanently disable execution of clock correction (rate matching). Clock RXUSRCLK must be frequency-locked with RXRECCLK in this case.
TRUE: Enable clock correction (normal mode).
This 10-bit vector defines the mask that is ANDed with the incoming serial-bit stream before comparison against PCOMMA_10B_VALUE and
MCOMMA_10B_VALUE.
NOTE: This attribute is only valid when CRC_FORMAT = USER_MODE.
K28_0, K28_1, K28_2, K28_3, K28_4, K28_5, K28_6, K28_7, K23_7, K27_7,
K29_7, K30_7. End-of-packet (EOP) K-character for USER_MODE CRC.
Must be one of the 12 legal K-character values.
ETHERNET, INFINIBAND, FIBRE_CHAN, USER_MODE CRC algorithm selection. Modifiable only for GT_AURORA_n, GT_XAUI_n, and
GT_CUSTOM. USER_MODE allows user definition of start-of-packet and end-of-packet K-characters.
NOTE: This attribute is only valid when CRC_FORMAT = USER_MODE.
K28_0, K28_1, K28_2, K28_3, K28_4, K28_5, K28_6, K28_7, K23_7, K27_7,
K29_7, K30_7. Start-of-packet (SOP) K-character for USER_MODE CRC.
Must be one of the 12 legal K-character values.
R
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
31
R
Chapter 3: Digital Design Considerations
Table 3-2: RocketIO Transceiver Attributes (Continued)
Attribute
DEC_MCOMMA_DETECT
DEC_PCOMMA_DETECT
DEC_VALID_COMMA_ONLY
MCOMMA_10B_VALUE
MCOMMA_DETECT
PCOMMA_10B_VALUE
PCOMMA_DETECT
REF_CLK_V_SEL
RX_BUFFER_USE
RX_CRC_USE,
TX_CRC_USE
(1)
RX_DATA_WIDTH,
TX_DATA_WIDTH
RX_DECODE_USE
Description
TRUE/FALSE controls the raising of per-byte flag RXCHARISCOMMA on minus-comma.
TRUE/FALSE controls the raising of per-byte flag RXCHARISCOMMA on plus-comma.
TRUE/FALSE controls the raising of RXCHARISCOMMA on an invalid comma.
FALSE: Raise RXCHARISCOMMA on:
0011111xxx
(if DEC_PCOMMA_DETECT is TRUE) and/or on:
1100000xxx
(if DEC_MCOMMA_DETECT is TRUE) regardless of the settings of the xxx bits.
TRUE: Raise RXCHARISCOMMA only on valid characters that are in the
8B/10B translation.
This 10-bit vector defines minus-comma for the purpose of raising
RXCOMMADET and realigning the serial bit stream byte boundary. This definition does not affect 8B/10B encoding or decoding. Also see
COMMA_10B_MASK.
TRUE/FALSE indicates whether to raise or not raise the RXCOMMADET when minus-comma is detected.
This 10-bit vector defines plus-comma for the purpose of raising
RXCOMMADET and realigning the serial bit stream byte boundary. This definition does not affect 8B/10B encoding or decoding. Also see
COMMA_10B_MASK.
TRUE/FALSE indicates whether to raise or not raise the RXCOMMADET when plus-comma is detected.
1/0:
1: Selects the BREFCLKs for 2.5 Gb/s or greater serial speeds.
0: Selects the REFCLK for serial speeds under 2.5 Gb/s.
Always set to TRUE.
TRUE/FALSE determines if CRC is used or not.
Integer (1, 2, or 4). Relates to the data width of the FPGA fabric interface.
RX_LOS_INVALID_INCR
RX_LOS_THRESHOLD
This determines if the 8B/10B decoding is bypassed. FALSE denotes that it is bypassed.
Power of two in a range of 1 to 128 that denotes the number of valid characters required to "cancel out" appearance of one invalid character for loss of sync determination.
Power of two in a range of 4 to 512. When divided by
RX_LOS_INVALID_INCR, denotes the number of invalid characters required to cause FSM transition to "sync lost" state.
32 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Modifiable Primitives
Table 3-2: RocketIO Transceiver Attributes (Continued)
Attribute
RX_LOSS_OF_SYNC_FSM
SERDES_10B
TERMINATION_IMP
TX_BUFFER_USE
TX_CRC_FORCE_VALUE
TX_DIFF_CTRL
TX_PREEMPHASIS
Description
TRUE/FALSE denotes the nature of RXLOSSOFSYNC output.
TRUE: RXLOSSOFSYNC outputs the state of the FSM bit.
See
RXLOSSOFSYNC, page 26 , for details.
Denotes whether the reference clock runs at 1/20 or 1/10 the serial bit rate.
TRUE denotes 1/10 and FALSE denotes 1/20. FALSE supports a serial bitstream range of 800 Mb/s to 3.125 Gb/s. TRUE supports a range of
622 Mb/s to 1.0 Gb/s. See Half-Rate Clocking Scheme, page 52
.
Integer (50 or 75). Termination impedance of either 50
Ω or 75
Ω
. Refers to both the RX and TX.
Always set to TRUE.
8-bit vector. Value to corrupt TX CRC computation when input
TXFORCECRCERR is high. This value is XORed with the correctly computed CRC value, corrupting the CRC if TX_CRC_FORCE_VALUE is nonzero. This can be used to test CRC error detection in the receiver downstream.
An integer value (400, 500, 600, 700, or 800) representing 400 mV, 500 mV,
600 mV, 700 mV, or 800 mV of voltage difference between the differential lines. Twice this value is the peak-peak voltage.
An integer value (0-3) that sets the output driver pre-emphasis to improve output waveform shaping for various load conditions. Larger value denotes stronger pre-emphasis. See pre-emphasis values in
Notes:
1.
Will be available in ISE 5.1.
R
Modifiable Primitives
As shown in
, only certain attributes are modifiable for any primitive. These attributes help to define the protocol used by the primitive. Only the
GT_CUSTOM primitive allows the user to modify all of the attributes to a protocol not supported by another transceiver primitive. This allows for complete flexibility. The other primitives allow modification of the analog attributes of the serial data lines and several channel-bonding values.
Table 3-3: Default Attribute Values: GT_AURORA, GT_CUSTOM, GT_ETHERNET
Attribute
Default
GT_AURORA
Default
GT_CUSTOM
(1)
ALIGN_COMMA_MSB
CHAN_BOND_LIMIT
CHAN_BOND_MODE
CHAN_BOND_OFFSET
FALSE
16
OFF (2)
8
FALSE (2)
FALSE
16
OFF
8
FALSE CHAN_BOND_ONE_SHOT
CHAN_BOND_SEQ_1_1
CHAN_BOND_SEQ_1_2
00101111100
00000000000
00000000000
00000000000
Default
GT_ETHERNET
FALSE
1
OFF
0
TRUE
00000000000
00000000000
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
33
R
Chapter 3: Digital Design Considerations
Table 3-3: Default Attribute Values: GT_AURORA, GT_CUSTOM, GT_ETHERNET (Continued)
Attribute
Default
GT_AURORA
Default
GT_CUSTOM (1)
Default
GT_ETHERNET
CHAN_BOND_SEQ_1_3
CHAN_BOND_SEQ_1_4
CHAN_BOND_SEQ_2_1
CHAN_BOND_SEQ_2_2
CHAN_BOND_SEQ_2_3
CHAN_BOND_SEQ_2_4
CHAN_BOND_SEQ_2_USE
CHAN_BOND_SEQ_LEN
CHAN_BOND_WAIT
CLK_COR_INSERT_IDLE_FLAG
CLK_COR_KEEP_IDLE
CLK_COR_REPEAT_WAIT
CLK_COR_SEQ_1_1
CLK_COR_SEQ_1_2
CLK_COR_SEQ_1_3
CLK_COR_SEQ_1_4
CLK_COR_SEQ_2_1
CLK_COR_SEQ_2_2
CLK_COR_SEQ_2_3
CLK_COR_SEQ_2_4
CLK_COR_SEQ_2_USE
CLK_COR_SEQ_LEN
CLK_CORRECT_USE
COMMA_10B_MASK
CRC_END_OF_PKT
CRC_FORMAT
CRC_START_OF_PKT
DEC_MCOMMA_DETECT
DEC_PCOMMA_DETECT
DEC_VALID_COMMA_ONLY
MCOMMA_10B_VALUE
MCOMMA_DETECT
PCOMMA_10B_VALUE
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
FALSE
1
8
FALSE (2)
FALSE
(2)
1 (2)
00100011100
00100011100
(4)
00100011100
(5)
00100011100
(5)
00000000000
00000000000
00000000000
00000000000
FALSE
N (3)
TRUE
1111111111
K29_7
USER_MODE
K27_7
TRUE
TRUE
TRUE
1100000101
TRUE
0011111010
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
FALSE
1
8
FALSE
FALSE
1
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
FALSE
1
TRUE
1111111000
K29_7
USER_MODE
K27_7
TRUE
TRUE
TRUE
1100000000
TRUE
0011111000
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
FALSE
1
7
FALSE (2)
FALSE
(2)
1 (2)
00110111100
00001010000
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
FALSE
2
TRUE
1111111000
Note (7)
ETHERNET
Note (7)
TRUE
TRUE
TRUE
1100000000
TRUE
0011111000
34 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Modifiable Primitives
Table 3-3: Default Attribute Values: GT_AURORA, GT_CUSTOM, GT_ETHERNET (Continued)
Attribute
Default
GT_AURORA
Default
GT_CUSTOM (1)
Default
GT_ETHERNET
PCOMMA_DETECT
REF_CLK_V_SEL (6)
RX_BUFFER_USE
RX_CRC_USE
RX_DATA_WIDTH
RX_DECODE_USE
RX_LOS_INVALID_INCR
RX_LOS_THRESHOLD
RX_LOSS_OF_SYNC_FSM
SERDES_10B
TERMINATION_IMP
TX_BUFFER_USE
TX_CRC_FORCE_VALUE
TX_CRC_USE
TX_DATA_WIDTH
TX_DIFF_CTRL
TX_PREEMPHASIS
TRUE
0
TRUE
FALSE (2)
N
(3)
TRUE
1
(2)
4 (2)
TRUE
(2)
FALSE (2)
50
(2)
TRUE
11010110
(2)
FALSE (2)
N
(3)
500 (2)
0
(2)
TRUE
0
TRUE
FALSE
2
TRUE
1
4
TRUE
FALSE
50
TRUE
11010110
FALSE
2
500
0
TRUE
0
TRUE
FALSE (2)
N
(3)
TRUE
1
(2)
4 (2)
TRUE
(2)
FALSE (2)
50
(2)
TRUE
11010110
(2)
FALSE (2)
N
(3)
500 (2)
0
(2)
Notes:
1.
All GT_CUSTOM attributes are modifiable.
2.
Modifiable attribute for specific primitives.
3.
Depends on primitive used: either 1, 2, or 4.
4.
Attribute value only when RX_DATA_WIDTH is 2 or 4. When RX_DATA_WIDTH is 1, attribute value is 0.
5.
Attribute value only when RX_DATA_WIDTH is 4. When RX_DATA_WIDTH is 1 or 2, attribute value is 0.
6.
Will be available in ISE 5.1.
7.
CRC_EOP and CRC_SOP are not applicable for this primitive.
R
Table 3-4: Default Attribute Values: GT_FIBRE_CHAN, GT_INFINIBAND, and GT_XAUI
Attribute
Default
GT_FIBRE_CHAN
Default
GT_INFINIBAND
ALIGN_COMMA_MSB
CHAN_BOND_LIMIT
CHAN_BOND_MODE
CHAN_BOND_OFFSET
CHAN_BOND_ONE_SHOT
CHAN_BOND_SEQ_1_1
FALSE
1
OFF
0
TRUE
00000000000
FALSE
16
OFF
(1)
8
FALSE
(1)
00110111100
Default
GT_XAUI
FALSE
16
OFF
(1)
8
FALSE
(1)
00101111100
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
35
R
Chapter 3: Digital Design Considerations
Table 3-4: Default Attribute Values: GT_FIBRE_CHAN, GT_INFINIBAND, and GT_XAUI (Continued)
Attribute
Default
GT_FIBRE_CHAN
Default
GT_INFINIBAND
CHAN_BOND_SEQ_1_2 00000000000
00000000000
Lane ID (Modify with
Lane ID)
00001001010 CHAN_BOND_SEQ_1_3
CHAN_BOND_SEQ_1_4
CHAN_BOND_SEQ_2_1
CHAN_BOND_SEQ_2_2
00000000000
00000000000
00000000000
00000000000
00001001010
00110111100
Lane ID (Modify with
Lane ID)
00001000101 CHAN_BOND_SEQ_2_3
CHAN_BOND_SEQ_2_4
CHAN_BOND_SEQ_2_USE
CHAN_BOND_SEQ_LEN
CHAN_BOND_WAIT
CLK_COR_INSERT_IDLE_FLAG
CLK_COR_KEEP_IDLE
CLK_COR_REPEAT_WAIT
CLK_COR_SEQ_1_1
CLK_COR_SEQ_1_2
CLK_COR_SEQ_1_3
CLK_COR_SEQ_1_4
CLK_COR_SEQ_2_1
CLK_COR_SEQ_2_2
CLK_COR_SEQ_2_3
CLK_COR_SEQ_2_4
CLK_COR_SEQ_2_USE
CLK_COR_SEQ_LEN
CLK_CORRECT_USE
COMMA_10B_MASK
CRC_END_OF_PKT
CRC_FORMAT
CRC_START_OF_PKT
DEC_MCOMMA_DETECT
DEC_PCOMMA_DETECT
DEC_VALID_COMMA_ONLY
00000000000
FALSE
1
7
FALSE
(1)
FALSE (1)
2
(1)
00110111100
00010010101
00010110101
00010110101
00000000000
00000000000
00000000000
00000000000
FALSE
4
TRUE
1111111000
Note (3)
FIBRE_CHAN
Note (3)
TRUE
TRUE
TRUE
00001000101
TRUE
4
8
FALSE
(1)
FALSE (1)
1
(1)
00100011100
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
FALSE
1
TRUE
1111111000
Note (3)
INFINIBAND
Note (3)
TRUE
TRUE
TRUE
Default
GT_XAUI
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
FALSE
1
8
FALSE
(1)
FALSE (1)
1
(1)
00100011100
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
00000000000
FALSE
1
TRUE
1111111000
K29_7 (1)
USER_MODE
(1)
K27_7 (1)
TRUE
TRUE
TRUE
36 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Modifiable Primitives
Table 3-4: Default Attribute Values: GT_FIBRE_CHAN, GT_INFINIBAND, and GT_XAUI (Continued)
Attribute
Default
GT_FIBRE_CHAN
Default
GT_INFINIBAND
Lane ID(INFINBAND ONLY) NA 00000000000
(1)
MCOMMA_10B_VALUE
MCOMMA_DETECT
1100000000
TRUE
1100000000
TRUE
PCOMMA_10B_VALUE
PCOMMA_DETECT
REF_CLK_V_SEL (4)
0011111000 0011111000
RX_BUFFER_USE
RX_CRC_USE
RX_DATA_WIDTH
RX_DECODE_USE
RX_LOS_INVALID_INCR
RX_LOS_THRESHOLD
RX_LOSS_OF_SYNC_FSM
SERDES_10B
TERMINATION_IMP
TX_BUFFER_USE
TX_CRC_FORCE_VALUE
TX_CRC_USE
TX_DATA_WIDTH
TX_DIFF_CTRL
TX_PREEMPHASIS
TRUE
0
TRUE
FALSE (1)
N
(2)
TRUE
1
(1)
4 (1)
TRUE
(1)
FALSE (1)
50
(1)
TRUE
11010110
(1)
FALSE (1)
N
(2)
500 (1)
0
(1)
TRUE
0
TRUE
FALSE (1)
N
(2)
TRUE
1
(1)
4 (1)
TRUE
(1)
FALSE (1)
50
(1)
TRUE
11010110
(1)
FALSE (1)
N
(2)
500 (1)
0
(1)
Notes:
1.
Modifiable attribute for specific primitives.
2.
Depends on primitive used: either 1, 2, or 4.
3.
CRC_EOP and CRC_SOP are not applicable for this primitive.
4.
Will be available in ISE 5.1.
Default
GT_XAUI
NA
1100000000
TRUE
0011111000
TRUE
0
TRUE
FALSE (1)
N
(2)
TRUE
1
(1)
4 (1)
TRUE
(1)
FALSE (1)
50
(1)
TRUE
11010110
(1)
FALSE (1)
N
(2)
500 (1)
0
(1)
R
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
37
R
Chapter 3: Digital Design Considerations
Byte Mapping
Most of the 4-bit wide status and control buses correlate to a specific byte of the TXDATA
or RXDATA. This scheme is shown in Table 3-5
. This creates a way to tie all the signals together regardless of the data path width needed for the GT_CUSTOM. All other primitives with specific data width paths and all byte-mapped ports are affected by this situation. For example, a 1-byte wide data path has only 1-bit control and status bits
(TXKERR[0]) correlating to the data bits TXDATA[7:0]. Note
in
shows the ports that use byte mapping.
Table 3-5: Control/Status Bus Association to Data Bus Byte Paths
Control/Status Bit
[0]
[1]
[2]
[3]
Data Bits
[7:0]
[15:8]
[23:16]
[31:24]
Clocking
Clock Signals
There are five clock inputs into each RocketIO transceiver instantiation (
is a clock generated from an external source. REFCLK is connected to the REFCLK of the
RocketIO transceiver. It also clocks a Digital Clock Manager (DCM) to generate all of the other clocks for the gigabit transceiver. Typically, TXUSRCLK = RXUSRCLK and
TXUSRCLK2 = RXUSRCLK2. The transceiver uses one or two clocks generated by the
DCM. As an example, the USRCLK and USRCLK2 clocks run at the same speed if the 2-byte data path is used. The USRCLK must always be frequency-locked to the reference clock,
REFCLK of the RocketIO transceiver.
NOTE: The REFCLK must be at least 40 MHz (full-rate operation only; 62.2 MHz for half-rate operation) with a duty cycle between 45% and 55%, and should have a frequency stability of
100 ppm or better, with jitter as low as possible. Module 3 of the Virtex-II Pro data sheet gives further details.
Table 3-6: Clock Ports
Clock
BREFCLK
(1)
BREFCLK2 (1)
I/Os
Input
Input
Description
Reference clock used to read the TX FIFO and multiplied by 20 for parallel-to-serial conversion (20X)
Alternative to BREFCLK
RXRECCLK Output Recovered clock (from serial data stream) divided by 20
REFCLK Input
REFCLK2 Input
Reference clock used to read the TX FIFO and multiplied by 20 for parallel-to-serial conversion (20X)
Reference clock used to read the TX FIFO and multiplied by 20 for parallel-to-serial conversion (20X)
REFCLKSEL Input
RXUSRCLK Input
TXUSRCLK
RXUSRCLK2
Input
Input
Selects which reference clock is used. 0 selects REFCLK; 1 selects REFCLK2.
Clock from FPGA used for reading the RX Elastic Buffer. Clock signals CHBONDI and
CHBONDO into and out of the transceiver. This clock is typically the same as
TXUSRCLK.
Clock from FPGA used for writing the TX Buffer. This clock must be frequency locked to REFCLK for proper operation.
Clock from FPGA used to clock RX data and status between the transceiver and FPGA fabric. The relationship between RXUSRCLK2 and RXUSRCLK depends on the width of the receiver data path. RXUSRCLK2 is typically the same as TXUSRCLK2.
38 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Clocking
Table 3-6: Clock Ports (Continued)
Clock I/Os
TXUSRCLK2 Input
Description
Clock from FPGA used to clock TX data and status between the transceiver and FPGA fabric. The relationship between TXUSRCLK2 and TXUSRCLK depends on the width of the transmission data path.
Notes:
1.
Will be available in ISE 5.1.
R
Clock Ratio
USRCLK2 clocks the data buffers. The ability to send parallel data to the transceiver at three different widths requires the user to change the frequency of USRCLK2. This creates a frequency ratio between USRCLK and USRCLK2. The falling edges of the clocks must align. Finally, for a 4-byte data path, the 1-byte data path creates a clocking scheme where
USRCLK2 is phase-shifted 180 ° and at twice the rate of USRCLK.
Table 3-7: Data Width Clock Ratios
Data Width
1 byte
Frequency Ratio of USRCLK\USRCLK2
1:2 (1)
2 byte
4 byte
1:1
2:1 (1)
Notes:
1.
Each edge of slower clock must align with falling edge of faster clock
Digital Clock Manager (DCM) Examples
With at least three different clocking schemes possible on the transceiver, a DCM is the best way to create these schemes.
Table 3-8 shows typical DCM connections for several transceiver clocks. REFCLK is the
input reference clock for the DCM. The other clocks are generated by the DCM. The DCM establishes a desired phase relationship between RXUSRCLK, TXUSRCLK, etc. in the
FPGA core and REFCLK at the pad.
Table 3-8: DCM Outputs for Different DATA_WIDTHs
SERDES_10B
TX_DATA_WIDTH
RX_DATA_WIDTH
REFCLK
FALSE 1 CLKIN
FALSE
FALSE
TRUE
TRUE
TRUE
2
4
1
2
4
CLKIN
CLKIN
CLKIN
CLKIN
CLKIN
TXUSRCLK
RXUSRCLK
CLK0
CLK0
CLK180 (1)
CLKDV (divide by 2)
CLKDV (divide by 2)
CLKFX180 (divide by 2)
TXUSRCLK2
RXUSRCLK2
CLK2X180
CLK0
CLKDV (divide by 2)
CLK180 (1)
CLKDV (divide by 2)
CLKDV (divide by 4)
Notes:
1.
Since CLK0 is needed for feedback, it can be used instead of CLK180 to clock USRCLK or USRCLK2 of the transceiver with the use of the transceiver’s local inverter, saving a global buffer (BUFG).
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
39
40
R
Chapter 3: Digital Design Considerations
Example 1: Two-Byte Clock
The following HDL codes are examples of a simple clock scheme using 2-byte data with both USRCLK and USRCLK2 at the same frequency. USRCLK_M is the input for both
USRCLK and USRCLK2.
Clocks for 2-Byte Data Path
REFCLK
MGT + DCM for 2-Byte Data Path
TXUSRCLK
RXUSRCLK
TXUSRCLK2
RXUSRCLK2
REFCLK
IBUFG
CLKIN
CLKFB
DCM
0
GT_std_2
REFCLKSEL
REFCLK
TXUSRCLK2
RXUSRCLK2
TXUSRCLK
RXUSRCLK RST CLK0
BUFG ug024_02_021102
Figure 3-1: Two-Byte Clock
VHDL Template
-- Module:
-- Description:
--
TWO_BYTE_CLK
VHDL submodule
DCM for 2-byte GT
--
-- Device: Virtex-II Pro Family
--------------------------------------------------------------------library IEEE; use IEEE.std_logic_1164.all;
--
-- pragma translate_off library UNISIM; use UNISIM.VCOMPONENTS.ALL;
-- pragma translate_on
-entity TWO_BYTE_CLK is port (
REFCLKIN : in std_logic;
RST : in std_logic;
USRCLK_M : out std_logic;
REFCLK : out std_logic;
); end TWO_BYTE_CLK;
-architecture TWO_BYTE_CLK_arch of TWO_BYTE_CLK is
--
-- Components Declarations: component BUFG port (
I : in std_logic;
O : out std_logic
); end component;
-component IBUFG port (
I : in std_logic;
O : out std_logic www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Clocking
); end component;
-component DCM port (
CLKIN : in std_logic;
CLKFB
DSSEN
: in std_logic;
: in std_logic;
PSINCDEC : in std_logic;
PSEN
PSCLK
RST
: in std_logic;
: in std_logic;
: in std_logic;
CLK90 : std_logic;
CLK2X : std_logic;
CLKDV : std_logic;
CLKFX : std_logic;
STATUS : out std_logic_vector ( 7 downto 0 )
); end component;
--
-- Signal Declarations:
-signal GND : std_logic; signal CLK0_W : std_logic; signal CLK1X_W : std_logic; begin
GND
--
<= '0';
CLK1X <= CLK1X_W;
--
-- DCM Instantiation
U_DCM: DCM port map (
CLKIN
CLKFB
=> REFCLK,
=> USRCLK_M,
=> GND, DSSEN
PSINCDEC => GND,
PSEN => GND,
PSCLK
RST
CLK0
LOCKED
);
--
-- BUFG Instantiation
U_BUFG: IBUFG port map (
=> GND,
=> RST,
=> CLK0_W,
=> LOCK
I => REFCLKIN,
O => REFCLK
);
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
41
42
R
Chapter 3: Digital Design Considerations
U2_BUFG: BUFG port map (
I => CLK0_W,
O => USRCLK_M
); end TWO_BYTE_CLK_arch;
Verilog Template
//Module: TWO_BYTE_CLK
//Description: Verilog Submodule
DCM for 2-byte GT //
//
// Device: Virtex-II Pro Family module TWO_BYTE_CLK (
REFCLKIN,
REFCLK,
USRCLK_M,
DCM_LOCKED
); input REFCLKIN; output REFCLK; output USRCLK_M; output DCM_LOCKED; wire REFCLKIN; wire REFCLK; wire wire
USRCLK_M;
DCM_LOCKED; wire REFCLKINBUF; wire clk_i;
DCM dcm1 (
.CLKFB
( USRCLK_M ),
.CLKIN
( REFCLKINBUF ),.DSSEN( 1'b0 ),
.PSCLK
.PSEN
( 1'b0 ),
( 1'b0 ),
.PSINCDEC
( 1'b0 ),
.RST
.CLK0
.CLK90
.CLK180
.CLK270
.CLK2X
( 1'b0 ),
( clk_i ),
( ),
( ),
( ),
( ),
.CLK2X180
( ),
.CLKDV
.CLKFX
( ),
( ),
.CLKFX180
( ),
.LOCKED
( DCM_LOCKED ),
.PSDONE
( ),
.STATUS
);
( )
BUFG buf1 (
.I
( clk_i ),
.O
( USRCLK_M )
);
IBUFG buf2(
.I ( REFCLKIN ), www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Clocking
.O ( REFCLKINBUF )); endmodule
Example 2: Four-Byte Clock
If a 4-byte or 1-byte data path is chosen, the ratio between USRCLK and USRCLK2 changes. The time it take for the SERDES to serialize the parallel data requires the change in ratios.
The DCM example (
Figure 3-2 ) is detailed for a 4-byte data path. If 3.125 Gb/s is required,
the REFCLK is 156 MHz and the USRCLK2_M only runs at 78 MHz including the clocking for any interface logic. Both USRCLK and USRCLK2 are aligned on the falling edge, since
USRCLK_M is 180 ° out of phase when using local inverters with the transceiver.
NOTE: These local MGT cloock input inverters, shown and noted in
not included in the FOUR_BYTE_CLK templates.
R
Clocks for 4-Byte Data Path
REFCLK
TXUSRCLK
RXUSRCLK
TXUSRCLK2
RXUSRCLK2
REFCLK
IBUFG
MGT + DCM for 4-Byte Data Path
CLKDV_DIVIDE = 2
DCM
BUFG
CLKIN
CLKFB
CLKDV
RST CLK0
BUFG
0
GT_std_4
REFCLKSEL
REFCLK
TXUSRCLK2
RXUSRCLK2
TXUSRCLK
RXUSRCLK
MGT clock input inverters
(acceptable skew)
UG024_03_020802
Figure 3-2: Four-Byte Clock
VHDL Template
-- Module:
-- Description:
--
--
FOUR_BYTE_CLK
VHDL submodule
DCM for 4-byte GT
-- Device: Virtex-II Pro Family
--------------------------------------------------------------------library IEEE; use IEEE.std_logic_1164.all;
--
-- pragma translate_off library UNISIM; use UNISIM.VCOMPONENTS.ALL;
-- pragma translate_on
-entity FOUR_BYTE_CLK is port (
REFCLKIN
RST
USRCLK_M
: in std_logic;
: in std_logic;
: out std_logic;
USRCLK2_M : out std_logic;
REFCLK : out std_logic;
); end FOUR_BYTE_CLK;
-architecture FOUR_BYTE_CLK_arch of FOUR_BYTE_CLK is
--
-- Components Declarations: component BUFG
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
43
44
R port (
I : in std_logic;
O : out std_logic
); end component;
-component IBUFG port (
I : in std_logic;
O : out std_logic
); end component;
-component DCM port (
CLKIN
CLKFB
DSSEN
: in std_logic;
: in std_logic;
: in std_logic;
PSINCDEC : in std_logic;
PSEN : in std_logic;
PSCLK : in std_logic;
RST : in std_logic;
CLK90 : std_logic;
Chapter 3: Digital Design Considerations
CLK2X : std_logic;
CLKDV : std_logic;
CLKFX : std_logic;
STATUS : out std_logic_vector ( 7 downto 0 )
); end component;
--
-- Signal Declarations:
-signal GND : std_logic; signal CLK0_W : std_logic; signal CLKDV_W : std_logic; begin
GND <= '0';
-- DCM Instantiation
U_DCM: DCM port map (
CLKIN
DSSEN
=> REFCLK, CLKFB
=> GND,
PSINCDEC => GND,
PSEN
PSCLK
RST
CLK0
CLKDV
LOCKED
);
=> GND,
=> GND,
=> RST,
=> CLK0_W,
=> CLKDV_W,
=> LOCK
-- BUFG Instantiation
U_BUFG: IBUFG
=> CLK0_W, www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Clocking port map (
I => REFCLKIN,
O => REFCLK );
U2_BUFG: BUFG port map (
I => CLK0_W,
O => USRCLK_M
);
U3_BUFG: BUFG port map (
I => CLKDV_W,
O => USRCLK2_M
); end FOUR_BYTE_CLK_arch;
Verilog Template
// Module: FOUR_BYTE_CLK
// Description: Verilog Submodule
// DCM for 4-byte GT
//
// Device: Virtex-II Pro Family module FOUR_BYTE_CLK(
REFCLKIN,
REFCLK,
USRCLK_M,
USRCLK2_M,
DCM_LOCKED
); input output output output output
REFCLKIN;
REFCLK;
USRCLK_M;
USRCLK2_M;
DCM_LOCKED; wire REFCLKIN; wire wire
REFCLK;
USRCLK_M; wire wire
USRCLK2_M;
DCM_LOCKED; wire REFCLKINBUF; wire wire clkdv2; clk_i;
DCM dcm1 (
.CLKFB
.CLKIN
1'b0 ),
.PSCLK
.PSEN
.PSINCDEC
.RST
.CLK0
.CLK90
.CLK180
.CLK270
.CLK2X
( USRCLK_M ),
( REFCLKINBUF ) , .DSSEN
( 1'b0 ),
( 1'b0 ),
( 1'b0 ),
( 1'b0 ),
( clk_i ),
( ),
( ),
( ),
( ),
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
(
45
R
46
R
.CLK2X180
.CLKDV
.CLKFX
.CLKFX180
.LOCKED
.PSDONE
.STATUS
);
Chapter 3: Digital Design Considerations
( ),
( clkdv2 ),
( ),
( ),
( DCM_LOCKED ),
( ),
( )
BUFG buf1 (
.I
( clkdv2 ),
.O
( USRCLK2_M )
);
BUFG buf2 (
.I
( clk_i ),
.O
( USRCLK_M )
);
IBUFG buf3(
.I
( REFCLKIN ),
.O
( REFCLKINBUF ) ); endmodule
Example 3: One-Byte Clock
This is the 1-byte wide data path clocking scheme example. USRCLK2_M is twice as fast as
USRCLK_M. It is also phase-shifted 180 ° for falling edge alignment.
Clocks for 1-Byte Data Path
REFCLK
TXUSRCLK
RXUSRCLK
TXUSRCLK2
RXUSRCLK2
REFCLK
IBUFG
MGT + DCM for 1-Byte Data Path
CLKIN CLK2X180
CLKFB
RST
DCM
CLK0
BUFG
0
GT_std_1
REFCLKSEL
REFCLK
TXUSRCLK2
RXUSRCLK2
TXUSRCLK
RXUSRCLK
BUFG
UG024_04_020802
Figure 3-3: One-Byte Clock
VHDL Template
-- Module:
-- Description:
--
ONE_BYTE_CLK
VHDL submodule
DCM for 1-byte GT
--
-- Device: Virtex-II Pro Family
--------------------------------------------------------------------library IEEE; use IEEE.std_logic_1164.all;
--
-- pragma translate_off library UNISIM; use UNISIM.VCOMPONENTS.ALL;
-- pragma translate_on
-entity ONE_BYTE_CLK is www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Clocking port (
REFCLKIN : in std_logic;
RST : in std_logic;
USRCLK_M : out std_logic;
USRCLK2_M : out std_logic;
REFCLK : out std_logic;
); end ONE_BYTE_CLK;
-architecture ONE_BYTE_CLK_arch of ONE_BYTE_CLK is
--
-- Components Declarations: component BUFG port (
I : in std_logic;
O : out std_logic
); end component;
-component IBUFG port (
I : in std_logic;
O : out std_logic
); end component;
-component DCM port (
CLKIN : in std_logic;
CLKFB
DSSEN
: in std_logic;
: in std_logic;
PSINCDEC : in std_logic;
PSEN
PSCLK
RST
: in std_logic;
: in std_logic;
: in std_logic;
CLK90 : std_logic;
CLK270 : std_logic;
CLKDV : std_logic;
PSDONE
STATUS
); end component;
--
: out std_logic;
: out std_logic_vector ( 7 downto 0 )
-- Signal Declarations:
-signal GND : std_logic; signal CLK0_W signal CLK1X_W
: std_logic;
: std_logic; signal CLK2X180_W : std_logic; begin
GND
--
<= '0';
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
47
48
R
Chapter 3: Digital Design Considerations
CLK1X <= CLK1X_W;
--
-- DCM Instantiation
U_DCM: DCM port map (
CLKIN => REFCLK,
CLKFB
DSSEN
=> USRCLK_M,
=> GND,
PSINCDEC => GND,
PSEN
PSCLK
=> GND,
=> GND,
RST
CLK0
=> RST,
=> CLK0_W,
CLK2X180 => CLK2X180_W,
LOCKED => LOCK
);
-- BUFG Instantiation
U_BUFG: IBUFG port map (
I => REFCLKIN,
O => REFCLK
);
U2_BUFG: BUFG port map (
I => CLK0_W,
O => USRCLK_M
);
U4_BUFG: BUFG port map (
I => CLK2X180_W,
O => USRCLK2
); end ONE_BYTE_CLK_arch;
Verilog Template
// Module: ONE_BYTE_CLK
// Description: Verilog Submodule
DCM for 1-byte GT //
//
// Device: Virtex-II Pro Family module ONE_BYTE_CLK (
REFCLKIN,
REFCLK,
USRCLK_M,
USRCLK2_M,
DCM_LOCKED
); input REFCLKIN; output REFCLK; output USRCLK_M; output USRCLK2_M; output DCM_LOCKED; wire REFCLKIN; www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Clocking wire wire wire
REFCLK;
USRCLK_M;
USRCLK2_M; wire DCM_LOCKED; wire REFCLKINBUF; wire clk_i; wire clk_2x_180;
DCM dcm1 (
.CLKFB
.CLKIN
( USRCLK_M ),
( REFCLKINBUF),
.DSSEN
.PSCLK
.PSEN
( 1'b0 ),
( 1'b0 ),
( 1'b0 ),
.PSINCDEC
( 1'b0 ),
.RST
.CLK0
( 1'b0 ),
( clk_i ),
.CLK90
.CLK180
.CLK270
( ),
( ),
( ),
.CLK2X
( ),
.CLK2X180
( clk2x_180 ),
.CLKDV
( ),
.CLKFX
( ),
.CLKFX180
( ),
.LOCKED
( DCM_LOCKED ),
.PSDONE
.STATUS
);
( ),
( )
BUFG buf1 (
.I ( clk2x_180 ),
.O ( USRCLK2_M )
);
BUFG buf2 (
.I ( clk_i ),
.O ( USRCLK_M )
);
IBUFGbuf3 (
.I ( REFCLKIN ),
.O ( REFCLKINBUF )
); endmodule
R
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
49
50
R
Chapter 3: Digital Design Considerations
BREFCLK
At speeds of 2.5 Gb/s or greater, the REFCLK configuration introduces more than the maximum allowable jitter to the RocketIO transceiver. For these higher speeds, the
BREFCLK configuration is required. The BREFCLK configuration uses dedicated routing resources that reduce jitter.
BREFCLK must enter the FPGA through dedicated clock I/O. This BREFCLK can connect to the BREFCLK inputs of the transceiver and the CLKIN input of the DCM for creation of
USRCLKs. If all the transceivers on a Virtex-II Pro FPGA are to be used, two BREFCLKs must be created, one for the top of the chip and one for the bottom.
These dedicated clocks use the same clock inputs for all packages: .
Top
Bottom
BREFCLK
BREFCLK2
BREFCLK
BREFCLK2
P
N
P
N
P
N
P
N
GCLK4S
GCLK5P
GCLK2S
GCLK3P
GCLK6P
GCLK7S
GCLK0P
GCLK1S
shows how REFCLK and BREFCLK are selected through use of REFCLKSEL and REF_CLK_V_SEL. refclk refclk2
REF_CLK_V_SEL
0
1
1.5V
0
REFCLKSEL refclk_out to PCS and PMA brefclk brefclk2
0
1
2.5V
1 ug024_35_091802
Figure 3-4: REFCLK/BREFCLK Selection Logic www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Clocking
R
Table 3-9 shows the BREFCLK pin numbers for all packages. Note that these pads must be
used for BREFCLK operations
Table 3-9: BREFCLK Pin Numbers
Top
Package
BREFCLK
Pin Number
BREFCLK2
Pin Number
FG256 A8/B8 B9/A9
FG456
FF672
FF896
C11/D11
B14/C14
F16/G16
D12/C12
C13/B13
G15/F15
FF1152
FF1148
FF1517
FF1704
FF1696
H18/J18
N/A
E20/D20
G22/F22
N/A
J17/H17
N/A
J20/K20
F21/G21
N/A
Bottom
BREFCLK
Pin Number
R8/T8
W11/Y11
AD14/AE14
AH16/AJ16
AK18/AL18
N/A
AR20/AT20
AU22/AT22
N/A
BREFCLK2
Pin Number
T9/R9
Y12/W12
AE13/AD13
AJ15/AH15
AL17/AK17
N/A
AL20/AK20
AT21/AU21
N/A
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
51
52
R
Chapter 3: Digital Design Considerations
Half-Rate Clocking Scheme
Some applications require serial speeds between 622 Mb/s and 1 Gb/s. The transceiver attribute SERDES_10B, which sets the REFCLK multiplier to 10 instead of 20, enables the half-rate speed range when set to TRUE. With this configuration, the clocking scheme also changes. The figures below illustrate the three clocking scheme waveforms when
SERDES_10B = TRUE.
Clocks for 1-Byte Data Path
(SERDES_10B = TRUE)
REFCLK
TXUSRCLK
RXUSRCLK
TXUSRCLK2
RXUSRCLK2
UG024_29_051302
Figure 3-5: One-Byte Data Path Clocks, SERDES_10B = TRUE
Clocks for 2-Byte Data Path
(SERDES_10B = TRUE)
REFCLK
TXUSRCLK
RXUSRCLK
TXUSRCLK2
RXUSRCLK2
UG024_30_051302
Figure 3-6: Two-Byte Data Path Clocks, SERDES_10B = TRUE
Clocks for 4-Byte Data Path
(SERDES_10B = TRUE)
REFCLK
TXUSRCLK
RXUSRCLK
TXUSRCLK2
RXUSRCLK2
UG024_31_051302
Figure 3-7: Four-Byte Data Path Clocks, SERDES_10B = TRUE www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Clocking
Multiplexed Clocking Scheme
Following configuration of the FPGA, some applications might need to change the
frequency of its REFCLK depending on the protocol used. Figure 3-8
shows how the design can use two different reference clocks connected to two different DCMs. The clocks are then multiplexed before input into the RocketIO transceiver.
User logic can be designed to determine during autonegotiation if the reference clock used for the transceiver is incorrect. If so, the transceiver must then be reset and another reference clock selected.
R
REFCLK
REFCLK2
REFCLKSEL
IBUFG
CLKIN
DCM
CLKFB
RST CLK0
CLKIN
DCM
CLKFB
RST
0
CLK0 1
BUFGMUX
Figure 3-8: Multiplexed REFCLK
GT_std_2
REFCLK
REFCLK2
REFCLKSEL
TXUSRCLK2
RXUSRCLK2
TXUSRCLK
RXUSRCLK
Use of 2 DCMs is required to maintain correct
IBUFG/DCM/BUFGMUX topology for clock skew compensation
UG024_05_020802
Data Path Latency
With the many configurations of the MGT, both the transmit and receive latency of the data path varies. Below are several tables that provide approximate latencies for common configurations.
Transmitter Latency
• Latencies for
TX_BUFFER_USE = TRUE
TX_CRC_USE = FALSE
SERDES_10B = FALSE
TX_DATA_WIDTH
1
2
4
Latency
(Approx. TXUSRCLK Cycles)
8.75
8.5
10
• If TX FIFO bypassed (TX_BUFFER_USE = FALSE), subtract 4
• If TX CRC is used (TX_CRC_USE = TRUE), add 6
• For half-rate option (SERDES_10B = TRUE). subtract 1 (approx.)
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
53
Resets
R
Chapter 3: Digital Design Considerations
Receiver Latency
• Latencies for RX_BUFFER_USE = TRUE
RX_DATA_WIDTH
1
2
4
Latency
(Approx. TXUSRCLK Cycles)
25.25
25
26.5
• If RX elastic buffer is bypassed (RX_BUFFER_USE = FALSE), subtract 18.
Clock Dependency
All signals used by the FPGA fabric to interact between user logic and the transceiver depend on an edge of USRCLK2. These signals all have setup and hold times with respect to this clock. For specific timing values, see Module 3 of the Virtex-II Pro data sheet. The timing relationships are further discussed and illustrated in
.
54
There are two reset signals, one each for the transmit and receive sections of each gigabit transceiver. After the DCM locked signal is asserted, the resets can be asserted. The resets must be asserted for two USRCLK2 cycles to ensure correct initialization of the FIFOs.
Although both the transmit and receive resets can be attached to the same signal, separate signals are preferred. This allows the elastic buffer to be cleared in case of an over/underflow without affecting the ongoing TX transmission. The following example is an implementation to reset all three data-width transceivers.
VHDL Template
-- Module: gt_reset
-- Description: VHDL submodule
-- reset for GT
--
-- Device: Virtex-II Pro Family
---------------------------------------------------------------------
LIBRARY IEEE;
USE IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.Numeric_STD.all; use IEEE.STD_LOGIC_UNSIGNED.ALL;
--
-- pragma translate_off library UNISIM; use UNISIM.VCOMPONENTS.ALL;
-- pragma translate_on
-entity gt_reset is port (
USRCLK2_M : in std_logic;
LOCK : in std_logic;
REFCLK : out std_logic;
DCM_LOCKED: in std_logic;
RST : out std_logic); end gt_reset;
-www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Resets architecture RTL of gt_reset is
--
signal startup_count : std_logic_vector (7 downto 0); begin process (USRCLK2_M, DCM_LOCKED) begin if (USRCLK2_M' event and USRCLK2_M = '1') then if(DCM_LOCKED = '0') then startup_count <= "00000000"; elsif (DCM_LOCKED = '1') then startup_count <= startup_count + "00000001"; end if; end if; if (USRCLK2_M' event and USRCLK2_M = '1') then if(DCM_LOCKED = '0') then
RST <= '1'; elsif (startup_count = "00000010") then
RST <= '0'; end if; end if; end process; end RTL;
Verilog Template
// Module: gt_reset
// Description: Verilog Submodule
// reset for4-byte GT
//
// Device: Virtex-II Pro Family module gt_reset(
USRCLK2_M,
DCM_LOCKED,
);
RST input input output
USRCLK2_M;
DCM_LOCKED;
RST; wire wire
USRCLK2_M;
DCM_LOCKED; reg RST; reg [7:0] startup_counter; always @ ( posedge USRCLK2_M ) if ( !DCM_LOCKED ) startup_counter <= 8'h0; else if ( startup_counter != 8'h02 ) startup_counter <= startup_counter + 1; always @ ( posedge USRCLK2_M or negedge DCM_LOCKED ) if ( !DCM_LOCKED )
RST <= 1'b1; else
RST <= ( startup_counter != 8'h02 ); endmodule
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
55
R
R
Chapter 3: Digital Design Considerations
RocketIO Transceiver Instantiations
For the different clocking schemes, several things must change, including the clock frequency for USRCLK and USRCLK2 discussed in the DCM section above. The data and control ports for GT_CUSTOM must also reflect this change in data width by concatenating zeros onto inputs and wires for outputs for Verilog designs, and by setting outputs to open and concatenating zeros on unused input bits for VHDL designs.
HDL Code Examples
For code examples, see the Virtex-II Pro Platform FPGA Handbook web page at: http://www.xilinx.com/publications/products/v2pro/handbook/index.htm
PLL Operation and Clock Recovery
The clock correction sequence is a special sequence to accommodate frequency differences between the received data (as reflected in RXRECCLK) and RXUSRCLK. Most of the primitives have these defaulted to the respective protocols. Only the GT_CUSTOM allows this sequence to be set to any specific protocol. The sequence contains 11 bits including the
10 bits of serial data. The 11th bit has two different formats. The typical usage is:
0, disparity error required, char is K, 8-bit data value (after
8B/10B decoding)
1, 10 bit data value (without 8B/10B decoding)
is an example of data 11-bit attribute setting, the character value, CHARISK value, and the parallel data interface, and how each corresponds with the other.
Table 3-10: Clock Correction Sequence / Data Correlation for 16-Bit Data Port
Attribute Setting Character CHARISK TXDATA (hex)
CLK_COR_SEQ_1_1 = 00110111100 K28.5
1 BC
CLK_COR_SEQ_1_2 = 00010010101
CLK_COR_SEQ_1_3 = 00010110101
CLK_COR_SEQ_1_4 = 00010110101
D21.4
D21.5
D21.5
0
0
0
95
B5
B5
The GT_CUSTOM transceiver examples use the previous sequence for clock correction.
Clock Correction Count
The clock correction count signal (RXCLKCORCNT) is a three-bit signal. It signals if the clock correction has occurred and whether the elastic buffer realigned the data by skipping
or repeating data in the buffer. It also signals if channel bonding has occurred ( Table 3-11
).
Table 3-11: RXCLKCORCNT Definition
RXCLKCORCNT[2:0]
000
Significance
No channel bonding or clock correction occurred for current
RXDATA
001
010
011
Elastic buffer skipped one clock correction sequence for current RXDATA
Elastic buffer skipped two clock correction sequence for current RXDATA
Elastic buffer skipped three clock correction sequence for current RXDATA
56 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
PLL Operation and Clock Recovery
Table 3-11: RXCLKCORCNT Definition (Continued)
RXCLKCORCNT[2:0] Significance
100
101
110
111
Elastic buffer skipped four clock correction sequence for current RXDATA
Elastic buffer executed channel bonding for current RXDATA
Elastic buffer repeated two clock correction sequences for current RXDATA
Elastic buffer repeated one clock correction sequences for current RXDATA
R
RX_LOSS_OF_SYNC_FSM
The transceivers FSM is driven by RXRECLK and uses status from the data stream prior to the elastic buffer. This is intended to give early warning of possible problems well before corrupt data appears on RXDATA. There are three states.
SYNC_ACQUIRED (RXLOSSOFSYNC = 00)
In this state, a counter is decremented by 1 (but not past 0) for a valid received symbol and incremented by RX_LOS_INVALID_INCR for an invalid symbol. If the count reaches or exceeds RX_LOS_THRESHOLD, the FSM moves to state LOSS_OF_SYNC. Otherwise, if a channel bonding (alignment) sequence has just been written into the elastic buffer, or if a comma realignment has just occurred, the FSM moves to state RESYNC. Otherwise, the
FSM remains in state SYNC_ACQUIRED.
RESYNC (RXLOSSOFSYNC = 01)
The FSM waits in this state for four RXRECCLK cycles and then goes to state
SYNC_ACQUIRED, unless an invalid symbol is received, in which case the FSM goes to state LOSS_OF_SYNC.
LOSS_OF_SYNC (RXLOSSOFSYNC = 10)
The FSM remains in this state until a comma is received, at which time it goes to state
RESYNC. The FSM state appears on RXLOSSOFSYNC if RX_LOSS_OF_SYNC_FSM is
TRUE. Otherwise, RXLOSSOFSYNC[1] is high if an invalid byte (not in table, or with disparity error) is received, and RXLOSSOFSYNC[0] is High when a channel bonding
(alignment) sequence has just been written into the elastic buffer.
8B/10B Operation
The RocketIO transceiver has the ability to encode eight bits into a 10-bit serial stream using standard 8B/10B encoding. This guarantees a DC-balanced, edge-rich serial stream, facilitating DC- or AC-coupling and clock recovery. If the 8B/10B encoding is disabled, the data is sent through in 10-bit blocks. The 8B/10B-bypass signal is set to 1111 and the
RX_DECODE_USE attribute must be set to FALSE. If the 8B/10B encoding is needed, the bypass signal must be set to 0000 and the RX_DECODE_USE must be set to TRUE. If this
pair is not matched, the data is not received correctly. Figure 3-9 shows the
encoding/decoding blocks of the transceiver and how the data passes through these blocks.
, shows the significance of 8B/10B ports that change purpose depending on whether 8B/10B is bypassed or enabled.
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
57
R
Chapter 3: Digital Design Considerations
32/16/8 bits
TXDATA
40 – 156.3 MHz
C
R
C
Transceiver Module
Physical Coding Sublayer Physical Media Attachment
Mindspeed IP
8B/10B
Encode
F
I
F
O
Serializer
Transmit
Buffer
REFCLK
TX Clock Generator
Transmitter
Channel Bonding and
Clock Correction
20X Multiplier
CRC
Receiver
RX Clock Recovery
Elastic
Buffer
8B/10B
Decode
Deserializer
Comma Detect
Receive
Buffer
TX+
TX −
32/16/8 bits
RXDATA
RX+
RX −
UG024_09_020802
Figure 3-9: 8B/10B Data Flow
Table 3-12: 8B/10B Bypassed Signal Significance
TXBYPASS8B10B
Function
0 8B/10B encoding is enabled (not bypassed)
1 8B/10B encoding bypassed (disabled)
Function, 8B/10B Enabled Function, 8B/10B Bypassed
TXCHARDISPMODE,
TXCHARDISPVAL
RXCHARISK
RXRUNDISP
00
01
10
11
0
1
Maintain running disparity normally
Invert the normally generated running disparity before encoding this byte.
Set negative running disparity before encoding this byte.
Set positive running disparity before encoding this byte.
Received byte is a K-character
Indicates running disparity is
NEGATIVE
Indicates running disparity is
POSITIVE
Part of 10-bit encoded byte
TXCHARDISPMODE[0],
( or: [1] / [2] / [3] )
TXCHARDISPVAL[0],
( or: [1] / [2] / [3] )
TXDATA[7:0]
( or: [15:8] / [23:16] / [31:24] )
Part of 10-bit encoded byte
RXCHARISK[0],
( or: [1] / [2] / [3] )
RXRUNDISP[0],
( or: [1] / [2] / [3] )
RXDATA[7:0]
( or: [15:8] / [23:16] / [31:24] )
58 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
PLL Operation and Clock Recovery
Table 3-12: 8B/10B Bypassed Signal Significance (Continued)
RXDISPERR Disparity error occurred on current byte Unused
TXCHARISK
RXCHARISCOMMA
Transmitted byte is a K-character
Received byte is a comma
Unused
Unused
During transmit, while 8B/10B encoding is enabled, the disparity of the serial transmission can be controlled with the TXCHARDISPVAL and TXCHARDISPMODE ports. When 8B/10B encoding is bypassed, these bits become Bits "b" and "a", respectively, of the 10-bit encoded data that the transceiver must transmit to the receiving terminal.
illustrates the TX data map during 8B/10B bypass.
TXCHARDISPMODE[0]
TXCHARDISPVAL[0]
TXDATA[7] . . .
a b c d e
0 1 2 3 4 i
5 f
6
. . . TXDATA[0] g h j
7 8 9
First transmitted Last transmitted
UG024_10a_051602
Figure 3-10: 10-Bit TX Data Map with 8B/10B Bypassed
During receive, while 8B/10B decoding is enabled, the running disparity of the serial transmission can be read by the transceiver from the RXRUNDISP port, while the
RXCHARISK port indicates presence of a K-character. When 8B/10B decoding is bypassed, these bits remain as Bits "b" and "a", respectively, of the 10-bit encoded data that the transceiver passes on to the user logic.
Figure 3-11 illustrates the RX data map during
8B/10B bypass.
RXCHARISK[0]
RXRUNDISP[0]
RXDATA[7] . . .
a b c d e
0 1 2 3 4 i
5 f
6
. . . RXDATA[0] g h j
7 8 9
First received Last received
UG024_10b_051602
Figure 3-11: 10-Bit RX Data Map with 8B/10B Bypassed
Vitesse Disparity Example
To support other protocols, the transceiver can affect the disparity mode of the serial data transmitted. For example, Vitesse channel-to-channel alignment protocol sends out:
K28.5+ K28.5+ K28.5- K28.5- or
K28.5- K28.5- K28.5+ K28.5+
Instead of:
K28.5+ K28.5- K28.5+ K28.5- or
K28.5- K28.5+ K28.5- K28.5+
The logic must assert TXCHARDISPVAL to cause the serial data to send out two negative running disparity characters.
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
59
R
Chapter 3: Digital Design Considerations
Transmitting Vitesse Channel Bonding Sequence
TXBYPASS8B10B
| TXCHARISK
| | TXCHARDISPMODE
| | | TXCHARDISPVAL
| | | | TXDATA
| | | | |
0 1 0 0 10111100 K28.5+ (or K28.5-)
0 1 0 1 10111100 K28.5+ (or K28.5-)
0 1 0 0 10111100 K28.5- (or K28.5+)
0 1 0 1 10111100 K28.5- (or K28.5+)
The RocketIO core receives this data but must have the CHAN_BOND_SEQ set with the disp_err bit set High for the cases when TXCHARDISPVAL is set High during data transmission.
Receiving Vitesse Channel Bonding Sequence
On the RX side, the definition of the channel bonding sequence uses the disp_err bit to specify the flipped disparity.
10-bit literal value
| disp_err
| | char_is_k
| | | 8-bit_byte_value
| | | |
CHAN_BOND_SEQ_1_1 = 0 0 1 10111100 matches K28.5+ (or K28.5-)
CHAN_BOND_SEQ_1_2 = 0 1 1 10111100 matches K28.5+ (or K28.5-)
CHAN_BOND_SEQ_1_3 = 0 0 1 10111100 matches K28.5- (or K28.5+)
CHAN_BOND_SEQ_1_4 = 0 1 1 10111100 matches K28.5- (or K28.5+)
CHAN_BOND_SEQ_LEN = 4
CHAN_BOND_SEQ_2_USE = FALSE
60 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Status Signals
Status Signals
Whether the 8B/10B encoding is enabled or disabled, there are several status signals for error indication. If an invalid K-character is sent to the transceiver, the TXKERR transitions
High. This can produce several receive errors. These receive errors are RXNOTINTABLE or
RUNDISPERR. RUNDISPERR transitions High if the incorrect disparity is received.
RXNOTINTABLE determines if the incoming character is a valid character. These signals are meant to detect errors in the transmission data from incorrect framing. The
Operation section covers transmission data error detection caused by noise.
R
8B/10B Encoding
8B/10B encoding includes a set of Data characters and K-characters. Eight-bit values are coded into 10-bit values keeping the serial line DC balanced. K-characters are special Data characters designated with a CHARISK. K-characters are used for specific informative designations.
and
show the Data and K tables of valid characters.
Table 3-13: Valid Data Characters
Data Byte
Name
Bits
HGF EDCBA
D8.0
D9.0
D10.0
D11.0
D12.0
D13.0
D14.0
D15.0
D4.0
D5.0
D6.0
D7.0
D0.0
D1.0
D2.0
D3.0
D16.0
D17.0
D18.0
D19.0
D20.0
D21.0
000 00000
000 00001
000 00010
000 00011
000 00100
000 00101
000 00110
000 00111
000 01000
000 01001
000 01010
000 01011
000 01100
000 01101
000 01110
000 01111
000 10000
000 10001
000 10010
000 10011
000 10100
000 10101
Current RD – abcdei fghj
100111 0100
011101 0100
101101 0100
110001 1011
110101 0100
101001 1011
011001 1011
111000 1011
111001 0100
100101 1011
010101 1011
110100 1011
001101 1011
101100 1011
011100 1011
010111 0100
011011 0100
100011 1011
010011 1011
110010 1011
001011 1011
101010 1011
Current RD + abcdei fghj
011000 1011
100010 1011
010010 1011
110001 0100
001010 1011
101011 0100
011001 0100
000111 0100
000110 1011
100101 0100
010101 0100
110100 0100
001101 0100
101100 0100
011100 0100
101000 1011
100100 1011
100011 0100
010011 0100
110010 0100
001011 0100
101010 0100
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
61
62
R
Chapter 3: Digital Design Considerations
Table 3-13: Valid Data Characters (Continued)
Data Byte
Name
Bits
HGF EDCBA
Current RD – abcdei fghj
D12.1
D13.1
D14.1
D15.1
D16.1
D17.1
D18.1
D19.1
D4.1
D5.1
D6.1
D7.1
D8.1
D9.1
D10.1
D11.1
D20.1
D21.1
D22.1
D28.0
D29.0
D30.0
D31.0
D0.1
D1.1
D2.1
D3.1
D22.0
D23.0
D24.0
D25.0
D26.0
D27.0
000 10110
000 10111
000 11000
000 11001
000 11010
000 11011
000 11100
000 11101
000 11110
000 11111
001 00000
001 00001
001 00010
001 00011
001 00100
001 00101
001 00110
001 00111
001 01000
001 01001
001 01010
001 01011
001 01100
001 01101
001 01110
001 01111
001 10000
001 10001
001 10010
001 10011
001 10100
001 10101
001 10110
011010 1011
111010 0100
110011 0100
100110 1011
010110 1011
110110 0100
001110 1011
101110 0100
011110 0100
101011 0100
100111 1001
011101 1001
101101 1001
110001 1001
110101 1001
101001 1001
011001 1001
111000 1001
111001 1001
100101 1001
010101 1001
110100 1001
001101 1001
101100 1001
011100 1001
010111 1001
011011 1001
100011 1001
010011 1001
110010 1001
001011 1001
101010 1001
011010 1001
110001 1001
001010 1001
101011 1001
011001 1001
000111 1001
000110 1001
011010 1001
010101 1001
110100 1001
001101 1001
101100 1001
011100 1001
101000 1001
100100 1001
100011 1001
010011 1001
110010 1001
001011 1001
101010 1001
011010 1001
Current RD + abcdei fghj
011010 0100
000101 1011
001100 1011
100110 0100
010110 0100
001001 1011
001110 0100
010001 1011
100001 1011
010100 1011
011000 1001
100010 1001
010010 1001 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
8B/10B Encoding
Table 3-13: Valid Data Characters (Continued)
Data Byte
Name
Bits
HGF EDCBA
Current RD – abcdei fghj
D13.2
D14.2
D15.2
D16.2
D17.2
D18.2
D19.2
D20.2
D5.2
D6.2
D7.2
D8.2
D9.2
D10.2
D11.2
D12.2
D21.2
D22.2
D23.2
D29.1
D30.1
D31.1
D0.2
D1.2
D2.2
D3.2
D4.2
D23.1
D24.1
D25.1
D26.1
D27.1
D28.1
001 10111
001 11000
001 11001
001 11010
001 11011
001 11100
001 11101
001 11110
001 11111
010 00000
010 00001
010 00010
010 00011
010 00100
010 00101
010 00110
010 00111
010 01000
010 01001
010 01010
010 01011
010 01100
010 01101
010 01110
010 01111
010 10000
010 10001
010 01010
010 10011
010 10100
010 10101
010 10110
010 10111
111010 1001
110011 1001
100110 1001
010010 1001
110110 1001
001110 1001
101110 1001
011110 1001
101011 1001
100111 0101
011101 0101
101101 0101
110001 0101
110101 0101
101001 0101
011001 0101
111000 0101
111001 0101
100101 0101
010101 0101
110100 0101
001101 0101
101100 0101
011100 0101
010111 0101
011011 0101
100011 0101
010011 0101
110010 0101
001011 0101
101010 0101
011010 0101
111010 0101
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
001010 0101
101011 0101
011001 0101
000111 0101
000110 0101
011010 0101
010101 0101
110100 0101
001101 0101
101100 0101
011100 0101
101000 0101
100100 0101
100011 0101
010011 0101
110010 0101
001011 0101
101010 0101
011010 0101
000101 0101
Current RD + abcdei fghj
000101 1001
001100 1001
100110 1001
010110 1001
001001 1001
001110 1001
010001 1001
100001 1001
010100 1001
011000 0101
100010 0101
010010 0101
110001 0101
63
64
R
Chapter 3: Digital Design Considerations
Table 3-13: Valid Data Characters (Continued)
Data Byte
Name
Bits
HGF EDCBA
Current RD – abcdei fghj
D14.3
D15.3
D16.3
D17.3
D18.3
D19.3
D20.3
D21.3
D6.3
D7.3
D8.3
D9.3
D10.3
D11.3
D12.3
D13.3
D22.3
D23.3
D24.3
D30.2
D31.2
D0.3
D1.3
D2.3
D3.3
D4.3
D5.3
D24.2
D25.2
D26.2
D27.2
D28.2
D29.2
010 11000
010 11001
010 11010
010 11011
010 11100
010 11101
010 11110
010 11111
000 00000
011 00001
011 00010
011 00011
011 00100
011 00101
011 00110
011 00111
011 01000
011 01001
011 01010
011 01011
011 01100
011 01101
011 01110
011 01111
011 10000
011 10001
011 10010
011 10011
011 10100
011 10101
011 10110
011 10111
011 11000
110011 0101
100110 0101
010010 0101
110110 0101
001110 0101
101110 0101
011110 0101
101011 0101
100111 0011
011101 0011
101101 0011
110001 1100
110101 0011
101001 1100
011001 1100
111000 1100
111001 0011
100101 1100
010101 1100
110100 1100
001101 1100
101100 1100
011100 1100
010111 0011
011011 0011
100011 1100
010011 1100
110010 1100
001011 1100
101010 1100
011010 1100
111010 0011
110011 0011
101011 0011
011001 0011
000111 0011
000110 1100
011010 0011
010101 0011
110100 0011
001101 0011
101100 0011
011100 0011
101000 1100
100100 1100
100011 0011
010011 0011
110010 0011
001011 0011
101010 0011
011010 0011
000101 1100
001100 1100
Current RD + abcdei fghj
001100 0101
100110 0101
010110 0101
001001 0101
001110 0101
010001 0101
100001 0101
010100 0101
011000 1100
100010 1100
010010 1100
110001 0011
001010 1100 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
8B/10B Encoding
Table 3-13: Valid Data Characters (Continued)
Data Byte
Name
Bits
HGF EDCBA
Current RD – abcdei fghj
D15.4
D16.4
D17.4
D18.4
D19.4
D20.4
D21.4
D22.4
D7.4
D8.4
D9.4
D10.4
D11.4
D12.4
D13.4
D14.4
D23.4
D24.4
D25.4
D31.3
D0.4
D1.4
D2.4
D3.4
D4.4
D5.4
D6.4
D25.3
D26.3
D27.3
D28.3
D29.3
D30.3
011 11001
011 11010
011 11011
011 11100
011 11101
011 11110
011 11111
100 00000
100 00001
100 00010
100 00011
100 00100
100 00101
100 00110
100 00111
100 01000
100 01001
100 01010
100 01011
100 01100
100 01101
100 01110
100 01111
100 10000
100 10001
100 10010
100 10011
100 10100
100 10101
100 10110
100 10111
100 11000
100 11001
100110 1100
010110 1100
110110 0011
001110 1100
101110 0011
011110 0011
101011 0011
100111 0010
011101 0010
101101 0010
110001 1101
110101 0010
101001 1101
011001 1101
111000 1101
111001 0010
100101 1101
010101 1101
110100 1101
001101 1101
101100 1101
011100 1101
010111 0010
011011 0010
100011 1101
010011 1101
110010 1101
001011 1101
101010 1101
011010 1101
111010 0010
110011 0010
100110 1101
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
011001 0010
000111 0010
000110 1101
011010 0010
010101 0010
110100 0010
001101 0010
101100 0010
011100 0010
101000 1101
100100 1101
100011 0010
010011 0010
110010 0010
001011 0010
101010 0010
011010 0010
000101 1101
001100 1101
100110 0010
Current RD + abcdei fghj
100110 0011
010110 0011
001001 1100
001110 0011
010001 1100
100001 1100
010100 1100
011000 1101
100010 1101
010010 1101
110001 0010
001010 1101
101011 0010
65
66
R
Chapter 3: Digital Design Considerations
Table 3-13: Valid Data Characters (Continued)
Data Byte
Name
Bits
HGF EDCBA
Current RD – abcdei fghj
D16.5
D17.5
D18.5
D19.5
D20.5
D21.5
D22.5
D23.5
D8.5
D9.5
D10.5
D11.5
D12.5
D13.5
D14.5
D15.5
D24.5
D25.5
D26.5
D4.5
D5.5
D6.5
D7.5
D0.5
D1.5
D2.5
D3.5
D26.4
D27.4
D28.4
D29.4
D30.4
D31.4
100 11010
100 11011
100 11100
100 11101
100 11110
100 11111
101 00000
101 00001
101 00010
101 00011
101 00100
101 00101
101 00110
101 00111
101 01000
101 01001
101 01010
101 01011
101 01100
101 01101
101 01110
101 01111
101 10000
101 10001
101 01010
101 10011
101 10100
101 10101
101 10110
101 10111
101 11000
101 11001
101 11010
010010 1101
110110 0010
001110 1101
101110 0010
011110 0010
101011 0010
100111 1010
011101 1010
101101 1010
110001 1010
110101 101
101001 1010
011001 1010
111000 1010
111001 1010
100101 1010
010101 1010
110100 1010
001101 1010
101100 1010
011100 1010
010111 1010
011011 1010
100011 1010
010011 1010
110010 1010
001011 1010
101010 1010
011010 1010
111010 1010
110011 1010
100110 1010
010010 1010
000111 1010
000110 1010
011010 1010
010101 1010
110100 1010
001101 1010
101100 1010
011100 1010
101000 1010
100100 1010
100011 1010
010011 1010
110010 1010
001011 1010
101010 1010
011010 1010
000101 1010
001100 1010
100110 1010
010110 1010
Current RD + abcdei fghj
010110 0010
001001 1101
001110 0010
010001 1101
100001 1101
010100 1101
011000 1010
100010 1010
010010 1010
110001 1010
001010 1010
101011 1010
011001 1010 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
8B/10B Encoding
Table 3-13: Valid Data Characters (Continued)
Data Byte
Name
Bits
HGF EDCBA
Current RD – abcdei fghj
D17.6
D18.6
D19.6
D20.6
D21.6
D22.6
D23.6
D24.6
D9.6
D10.6
D11.6
D12.6
D13.6
D14.6
D15.6
D16.6
D25.6
D26.6
D27.6
D5.6
D6.6
D7.6
D8.6
D1.6
D2.6
D3.6
D4.6
D27.5
D28.5
D29.5
D30.5
D31.5
D0.6
101 11011
101 11100
101 11101
101 11110
101 11111
110 00000
110 00001
110 00010
110 00011
110 00100
110 00101
110 00110
110 00111
110 01000
110 01001
110 01010
110 01011
110 01100
110 01101
110 01110
110 01111
110 10000
110 10001
110 01010
110 10011
110 10100
110 10101
110 10110
110 10111
110 11000
110 11001
110 11010
110 11011
110110 1010
001110 1010
101110 1010
011110 1010
101011 1010
100111 0110
011101 0110
101101 0110
110001 0110
110101 0110
101001 0110
011001 0110
111000 0110
111001 0110
100101 0110
010101 0110
110100 0110
001101 0110
101100 0110
011100 0110
010111 0110
011011 0110
100011 0110
010011 0110
110010 0110
001011 0110
101010 0110
011010 0110
111010 0110
110011 0110
100110 0110
010010 0110
110110 0110
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
000110 0110
011010 0110
010101 0110
110100 0110
001101 0110
101100 0110
011100 0110
101000 0110
100100 0110
100011 0110
010011 0110
110010 0110
001011 0110
101010 0110
011010 0110
000101 0110
001100 0110
100110 0110
010110 0110
001001 0110
Current RD + abcdei fghj
001001 1010
001110 1010
010001 1010
100001 1010
010100 1010
011000 0110
100010 0110
010010 0110
110001 0110
001010 0110
101011 0110
011001 0110
000111 0110
67
68
R
Chapter 3: Digital Design Considerations
Table 3-13: Valid Data Characters (Continued)
Data Byte
Name
Bits
HGF EDCBA
Current RD – abcdei fghj
D18.7
D19.7
D20.7
D21.7
D22.7
D23.7
D24.7
D25.7
D10.7
D11.7
D12.7
D13.7
D14.7
D15.7
D16.7
D17.7
D26.7
D27.7
D28.7
D6.7
D7.7
D8.7
D9.7
D2.7
D3.7
D4.7
D5.7
D28.6
D29.6
D30.6
D31.6
D0.7
D1.7
110 11100
110 11101
110 11110
110 11111
111 00000
111 00001
111 00010
111 00011
111 00100
111 00101
111 00110
111 00111
111 01000
111 01001
111 01010
111 01011
111 01100
111 01101
111 01110
111 01111
111 10000
111 10001
111 10010
111 10011
111 10100
111 10101
111 10110
111 10111
111 11000
111 11001
111 11010
111 11011
111 11100
001110 0110
101110 0110
011110 0110
101011 0110
100111 0001
011101 0001
101101 0001
110001 1110
110101 0001
101001 1110
011001 1110
111000 1110
111001 0001
100101 1110
010101 1110
110100 1110
001101 1110
101100 1110
011100 1110
010111 0001
011011 0001
100011 0111
010011 0111
110010 1110
001011 0111
101010 1110
011010 1110
111010 0001
110011 0001
100110 1110
010110 1110
110110 0001
001110 1110
011010 0001
010101 0001
110100 1000
001101 0001
101100 1000
011100 1000
101000 1110
100100 1110
100011 0001
010011 0001
110010 0001
001011 0001
101010 0001
011010 0001
000101 1110
001100 1110
100110 0001
010110 0001
001001 1110
001110 0001
Current RD + abcdei fghj
001110 0110
010001 0110
100001 0110
010100 0110
011000 1110
100010 1110
010010 1110
110001 0001
001010 1110
101011 0001
011001 0001
000111 0001
000110 1110 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
8B/10B Encoding
Table 3-13: Valid Data Characters (Continued)
Data Byte
Name
Bits
HGF EDCBA
Current RD – abcdei fghj
D29.7
D30.7
D31.7
111 11101
111 11110
111 11111
101110 0001
011110 0001
101011 0001
Current RD + abcdei fghj
010001 1110
100001 1110
010100 1110
Table 3-14: Valid Control “K” Characters
Special
Code Name
Bits
HGF EDCBA
Current RD – abcdei fghj
K28.0
K28.1
K28.2
K28.3
K28.4
K28.5
K28.6
K28.7
(1)
K23.7
K27.7
K29.7
K30.7
000 11100
001 11100
010 11100
011 11100
100 11100
101 11100
110 11100
111 11100
111 10111
111 11011
111 11101
111 11110
001111 0100
001111 1001
001111 0101
001111 0011
001111 0010
001111 1010
001111 0110
001111 1000
111010 1000
110110 1000
101110 1000
011110 1000
Notes:
1.
Used for testing and characterization only.
Current RD + abcdei fghj
110000 1011
110000 0110
110000 1010
110000 1100
110000 1101
110000 0101
110000 1001
110000 0111
000101 0111
001001 0111
010001 0111
100001 0111
8B/10B Serial Output Format
The 8B/10B encoding translates a 8-bit parallel data byte to be transmitted into a 10-bit serial data stream. This conversion and data alignment are shown in
port transmits the least significant bit of the 10-bit data “a” first and proceeds to “j”. This allows data to be read and matched to the form shown in
R
Parallel
H G
7 6
F
5
E
4
D
3
C
2
B
1
A
0
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide a
0 b
1 c
2 d
3
8B/10B e
4 i
5 f
6 g
7 h j
8 9 Serial
First transmitted Last transmitted
UG024_10_021102
Figure 3-12: 8B/10B Parallel to Serial Conversion www.xilinx.com
1-800-255-7778
69
R
Chapter 3: Digital Design Considerations
The serial data bit sequence is dependent on the width of the parallel data. The most significant byte is always sent first regardless of the whether 1-byte, 2-byte, or 4-byte paths
are used. The least significant byte is always last. Figure 3-13 shows a case when the serial
data corresponds to each byte of the parallel data. TXDATA [31:24] is serialized and sent out first followed by TXDATA [23:16], TXDATA [15:8], and finally TXDATA [7:0]. The 2byte path transmits TXDATA [15:8] and then TXDATA [7:0].
H3 − A3 H2 − A2
TXDATA 31:24 TXDATA 23:16
H1 − A1
TXDATA 15:8
H0 − A0
TXDATA 7:0 a3 − j3 a2 − j2
8B/10B a1 − j1 a0 − j0
LSB3
1st Sent
Encoded
LSB2
2nd Sent
Encoded
LSB1
3rd Sent
Encoded
LSB0
4th Sent
Encoded
U024_11_020802
Figure 3-13: 4-Byte Serial Structure
HDL Code Examples: Transceiver Bypassing of 8B/10B Encoding
8B/10B encoding can be bypassed by the transceiver. The TX8B10BBYPASS is set to 1111 ; the RXDECODE attribute is set to “FALSE” to create the extra two bits needed for a 10-bit data bus; and TXCHARDISPMODE, TXCHARDISPVAL, RXCHARISK, and RXRUNDISP are added to the 8-bit data bus.
Availability for download of code examples with 8B/10B bypassing is planned for a later date.
CRC Operation
Cyclic Redundancy Check (CRC) is a procedure to detect errors in the received data. There are four possible CRC modes, USER_MODE, ETHERNET, INFINIBAND, and
FIBRE_CHAN. These are only modifiable for the GT_XAUI and GT_CUSTOM. Each mode has a start-of-packet (SOP) and end-of-packet (EOP) setting to determine where to start and end the CRC monitoring. USER_MODE allows the user to define the SOP and EOP by setting the CRC_START_OF_PKT and CRC_END_OF_PKT to one of the valid
K-characters (
). The CRC is controlled by RX_CRC_USE and TX_CRC_USE.
Whenever these attributes are set to TRUE, CRC is used. A CRC error can be “forced” with the use of TXFORCECRCERR. This causes TX_CRC_FORCE_VALUE to be XORed with the computed CRC, to test the CRC error logic.
CRC Generation
RocketIO transceivers support a 32-bit invariant CRC (fixed 32-bit polynomial shown below) for Gigabit Ethernet, Fibre Channel, Infiniband, and user-defined modes. x
32
+ x
26
+ x
23
+ x
22
+ x
16
+ x
12
+ x
11
+ x
10
+ x
8
+ x
7
+ x
5
+ x
4
+ x
2
+ x
1
+ 1
The CRC recognizes the SOP (Start of Packet), EOP (End of Packet), and other packet features to identify the beginning and end of data. These SOP and EOP are defined by the mode, except in the case where CRC_MODE is USER_DEFINED. The user-defined mode uses CRC_START_OF_PKT and CRC_END_OF_PKT to define SOP and EOP.
70 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
CRC Operation
R
The transmitter computes 4-byte CRC on the packet data between the SOP and EOP
(excluding the CRC placeholder bytes). The transmitter inserts the computed CRC just before the EOP. The transmitter modifies trailing Idles or EOP if necessary to generate correct running disparity for Gigabit Ethernet and FibreChannel. The receiver recomputes
CRC and verifies it against the inserted CRC.
Figure 3-14 shows the packet format for CRC
generation. The empty boxes are only used in certain protocols (Ethernet). The user logic must create a four-byte placeholder for the CRC; otherwise, data is overwritten.
SOP
…
Data CRC
4 Bytes
…
EOP
…
Idle
UG024_07_021102
Figure 3-14: CRC Packet Format
CRC Latency
Enabling CRC increases the transmission latency from TXDATA to TXP and TXN. The enabling of CRC does not affect the latency from RXP and RXN to RXDATA. The typical and maximum latencies, expressed in TXUSRCLK/RXUSRCLK cycles, are shown in
. For timing diagrams expressing these relationships, please see Module 3 of the
Virtex-II Pro Data Sheet .
Table 3-15: Effects of CRC on Transceiver Latency
TXDATA to TXP and TXN, in TXUSRCLK Cycles
RXP and RXN to RXDATA, in RXUSRCLK Cycles
CRC Disabled
CRC Enabled
Typical
8
14
Maximum
11
17
Typical
25
25
Maximum
42
42
CRC Limitations
There are several limitations to the RocketIO CRC. First, CRC is not supported in bytestriped data. If byte-striped (channel bonding) is required, CRC must be computed in
CLBs prior to the byte-striping. The CRC support of Infiniband is incomplete, because the
16-bit variant CRC must be done in the CLBs making the transceiver core CRC function redundant. For this case, set TX_CRC_USE = FALSE.
CRC Modes
The RocketIO transceiver has four CRC modes: USER_MODE, FIBRECHANNEL,
ETHERNET, and INFINIBAND. These CRC modes are briefly explained below.
USER_MODE
USER_MODE is the simplest CRC methodology. The CRC checks for the SOP and EOF, calculates CRC on the data, and leaves the four remainders directly before the EOP. The
CRC form for the user-defined mode is shown in Figure 3-15 , along with the timing for
asserting RXCHECKINGCRC and RXCRCERR High with respect to the incoming data.
TXCRCFORCEERR and RXCRCERR are both useful during testing. When using CRC, testing the CRC logic can be done by setting CRCFORCEERR High to incorporate an error into the data that is transmitted. When the data is received in a testing mode, such as serial loopback, the data is "corrupted" and the receiver should signal an error with the use of
RXCRCERR when the RXCHECKINGCRC is asserted High. User logic determines the procedure when a RXCRCERR occurs.
NOTE: Data must be a minimum of 16 bytes for user mode CRC generation.
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
71
72
R
Chapter 3: Digital Design Considerations
FIBRECHANNEL
The Fibre Channel CRC is similar to the USER_MODE CRC (
) with one exception: In FibreChannel, SOP and EOP are the protocol delimiters, while USER_MODE uses the two attributes CRC_START_OF_PKT and CRC_END_OF_PKT to define SOP and
EOP. Both USER_MODE and Fibre Channel, however, disregard the SOP and EOP in CRC computation.
SOP DATA R
0
R
1
R
2
R
3
EOP
RXCHECKINGCRC
RXCRCERR
UG024_12_020802
Figure 3-15: USER_MODE / FIBRE_CHANNEL Mode
Designs should generate only the EOF frame delimiter for a beginning running disparity
(RD) that is negative; these are the frame delimiters that begin with /K28.5/D21.4/ or
/K28.5/D10.4/. Never generate the EOF frame delimiter for a beginning RD that is positive; these are the frame delimiters that begin with /K28.5/D21.5/ or /K28.5/D10.5/.
When the RocketIO CRC determines that the running disparity must be inverted to satisfy
Fibre Channel requirements, it will convert the second byte of the EOF frame delimiter
(D21.4 or D10.4) to the value required to invert the running disparity (D21.5 or D10.5).
ETHERNET
The Ethernet CRC is more complex (
Figure 3-16 ). The SOP, EOP, and Preamble are
neglected by the CRC. The extension bytes are special “K” characters in special cases. The extension bytes are untouched by the CRC as are the Trail bits, which are added to maintain packet length.
SOP Preamble n Bytes
SOF DATA Pad Bits
2 to 3 Bytes
R0 R1 R2 R3 EOP Trail Bits
UG024_13_101602
Figure 3-16: Ethernet Mode
Designs should generate only the /K28.5/D16.2/ idle sequence for transmission, never
/K28.5/D5.6/. When the RocketIO CRC determines that the running disparity must be inverted to satisfy Gigabit Ethernet requirements, it will convert the first /K28.5/D16.2/ idle following a packet to /K28.5/D5.6/, performing the necessary conversion.
INFINIBAND
The Infiniband CRC is the most complex mode, and is not supported in the CRC generator.
Infiniband CRC contains two computation types: an invariant 32-bit CRC, the same as in
Ethernet protocol; and a variant 16-bit CRC, which is not supported in the hard core.
Infiniband CRC must be implemented entirely in the FPGA fabric. www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Channel Bonding (Channel-to-Channel Alignment)
There are also two Infiniband Architecture (IBA) packets, a local and a global. Both of these
IBA packets are shown in
.
Local IBA
SOP LRH BTH
Packet
Payload
R
0
R
1
R
2
R
3 Variant CRC EOP
Global IBA
SOP LRH GRH BTH
Packet
Payload
R
0
R
1
R
2
R
3 Variant CRC EOP
UG024_14_020802
Figure 3-17: Infiniband Mode
The CRC is calculated with certain bits masked in LRH and GRH, depending on whether the packet is local or global. The size of these headers is shown in
Table 3-16: Global and Local Headers
Packet Description
LRH Local Routing Header
GRH
BTH
Global Routing Header
IBA Transport Header
Size
8 Bytes
40 Bytes
12 Bytes
The CRC checks the LNH (Link Next Header) of the LRH. LRH is shown in
along with the bits the CRC uses to evaluate the next packet.
B
0
B1
7
−
B1
0
B
2
B
3
B
4
B
5
B
6
B
7
B1
1
, B1
0
1 1 IBA Global Packet
1 0 IBA Local Packet
0 1 Raw Packet (CRC does not insert remainder)
0 0 Raw Packet (CRC does not insert remainder)
UG024_15_020802
Figure 3-18: Local Route Header
Because of the complexity of the CRC algorithms and implementations, especially with
Infiniband, a more in-depth discussion is beyond the scope of this manual.
Channel Bonding (Channel-to-Channel Alignment)
Channel bonding is the technique of tying several serial channels together to create one aggregate channel. Several channels are fed on the transmit side by one parallel bus and reproduced on the receive side as the identical parallel bus. The maximum number of serial differential pairs that can be bonded is 16. For implementation guidelines, see
Implementation Tools, page 97 .
Channel bonding allows those primitives that support it to send data over multiple
"channels." Among these primitives are GT_CUSTOM, GT_INFINIBAND, GT_XAUI, and
GT_AURORA. To "bond" channels together, there is always one "master." The other channels can either be a SLAVE_1_HOP or SLAVE_2_HOPs. SLAVE_1_HOP is a slave to a
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
73
74
R
Chapter 3: Digital Design Considerations master that can also be daisy chained to a SLAVE_2_HOPs. A SLAVE_2_HOPs can only be a slave to a SLAVE_1_HOP and its CHBONDO does not connect to another transceiver. To designate a transceiver as a master or a slave, the attribute CHAN_BOND_MODE must be set to one of three designations: Master, SLAVE_1_HOP, or SLAVE_2_HOPs. To shut off channel bonding, set the transceiver attribute to "off." The possible values that can be used
Table 3-17: Bonded Channel Connections
Mode CHBONDI
OFF
MASTER
SLAVE_1_HOP
SLAVE_2_HOPS
NA
NA master CHBONDO slave 1 CHBONDO
CHBONDO
NA slave 1 CHBONDI slave 2 CHBONDI
NA
The channel bonding sequence is similar to the clock correction sequence. This sequence is set to the appropriate sequence for the primitives supporting channel bonding. The
GT_CUSTOM is the only primitive allowing modification to the sequence. These sequences are comprised of one or two sequences of length up to 4 bytes each, as set by
CHAN_BOND_SEQ_LEN and CHAN_BOND_SEQ_2_USE. Other control signals include the attributes:
• CHAN_BOND_WAIT
• CHAN_BOND_OFFSET
• CHAN_BOND_LIMIT
• CHAN_BOND_ONE_SHOT
Typical values for these attributes are:
CHAN_BOND_WAIT = 8
CHAN_BOND_OFFSET = CHAN_BOND_WAIT
CHAN_BOND_LIMIT = 2 x CHAN_BOND_WAIT
Lower values are not recommended. Use higher values only if channel bonding sequences are farther apart than 17 bytes.
shows different settings for CHAN_BONDONE_SHOT and ENCHANSYNC in
Master and Slave applications.
Table 3-18: Master/Slave Channel Bonding Attribute Settings
Master
CHAN_BOND_ONE_SHOT
ENCHANSYNC
TRUE or FALSE as desired
Dynamic control as desired
Slave
FALSE
Tie High
HDL Code Examples: Channel Bonding
Code examples can be downloaded from the Virtex-II Pro Platform FPGA Handbook page on the Xilinx website. Go to: http://www.xilinx.com/publications/products/v2pro/handbook/index.htm
www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Other Important Design Notes
Other Important Design Notes
Receive Data Path 32-bit Alignment
The RocketIO transceiver uses the attribute ALIGN_COMMA_MSB to align protocol delimiters with the use of comma characters (special K characters K28.5, K28.1, and K28.7 for most protocols). Setting the ALIGN_COMMA_MSB to TRUE/FALSE determines where the comma characters appear on the RXDATA bus. A setting of
ALIGN_COMMA_MSB = FALSE allows the comma to appear in any byte lane of the
RXDATA in the 2- and 4-byte primitives. When ALIGN_COMMA_MSB is set to TRUE, the comma appears in RXDATA[15:8] for the 2-byte primitives, and in either RXDATA[15:8] or
RXDATA[31:24] for the 4-byte primitives.
In the case of a 4-byte primitive, the transceiver sets comma alignment with respect to its
2-byte internal data path, but it does not constrain the comma to appear only in
RXDATA[31:24]. Logic must be designed in the FPGA fabric to handle comma alignment for the 32-bit primitives when implementing certain protocols.
One such protocol is Fibre Channel. Delimiters such as IDLES, SOF, and EOF are four bytes long, and are assumed by the protocol logic to be aligned on a 32-bit boundary. The Fibre
Channel IDLE delimiter is four bytes long and is composed of characters K28.5, D21.4,
D21.5, and D21.5. The comma, K28.5, is transmitted in TXDATA[31:24], which the protocol logic expects to be received in RXDATA[31:24].
Using
, the IDLE delimiter can be translated into a hexadecimal value 0xBC95B5B5 that represents the 32-bit RXDATA word. On the
32-bit RXDATA interface, the received word is either 32-bit aligned or misaligned, as
shown in Table 3-19 . In the table, "
pp " indicates a byte from a previous word of data.
Table 3-19: 32-bit RXDATA, Aligned versus Misaligned
RXDATA
[31:24]
RXDATA
[23:16]
RXDATA
[15:8]
32-bit aligned
CHARISCOMMA
32-bit misaligned
CHARISCOMMA
BC
1 pp
0
95
0 pp
0
B5
0
BC
1
RXDATA
[7:0]
B5
0
95
0
R
When RXDATA is 32-bit aligned, the logic should pass RXDATA though to the protocol logic without modification. A properly aligned data flow is shown in
.
TXDATA BC95B5B5 FDB53737 45674893 nnnnnnnn nnnnnnnn
RXDATA BC95B5B5 FDB53737 45674893 nnnnnnnn nnnnnnnn
ALIGNED_DATA pppppppp BC95B5B5 FDB53737 45674893 nnnnnnnn ug024_33_091602
Figure 3-19: RXDATA Aligned Correctly
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
75
76
R
Chapter 3: Digital Design Considerations
When RXDATA is 32-bit misaligned, the word requiring alignment is split between consecutive RXDATA words in the data stream, as shown in
.
TXDATA BC95B5B5 FDB53737 45674893 nnnnnnnn nnnnnnnn
RXDATA ppppBC95 B5B5FDB5 37374567 4893 nnnn nnnnnnnn
RXDATA_REG[15:0] pppp BC95 FDB5 4567 nnnn
ALIGNED_DATA pppppppp pppppppp BC95B5B5 FDB53737 45674893 ug024_34_091602
Figure 3-20: Realignment of RXDATA
This conditional shift/delay operation on RXDATA also must be performed on the status outputs RXNOTINTABLE, RXDISPERR, RXCHARISK, RXCHARISCOMMA, and
RXRUNDISP in order to keep them properly synchronized with RXDATA.
It is not possible to adjust RXCLKCORCNT appropriately for shifted/delayed RXDATA, because RXCLKCORCNT is summary data, and the summary for the shifted case cannot be recalculated.
32-bit Alignment Design
The following example code illustrates one way to create the logic to properly align 32-bit wide data with a comma in bits [31:24] For brevity, most status bits are not included in this example design; however, these should be shifted in the same manner as RXDATA and
RXCHARISK.
Note that when using a 40-bit data path (8B/10B bypassed), a similar realignment scheme may be used, but it cannot rely on RXCHARISCOMMA for comma detection.
Verilog
/*********************************************************************
*
* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"
* AS A COURTESY TO YOU, SOLELY FOR USE IN DEVELOPING PROGRAMS AND
* SOLUTIONS FOR XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE,
* OR INFORMATION AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE,
* APPLICATION OR STANDARD, XILINX IS MAKING NO REPRESENTATION
* THAT THIS IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT,
* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE
* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY
* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE
* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR
* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF
* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE.
*
* (c) Copyright 2002 Xilinx Inc.
* All rights reserved.
*
*********************************************************************/
// Virtex-II Pro RocketIO comma alignment module
// www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Other Important Design Notes
// This module reads RXDATA[31:0] from a RocketIO transceiver
// and copies it to
// its output, realigning it if necessary so that commas
// are aligned to the MSB position
// [31:24]. The module assumes ALIGN_COMMA_MSB is TRUE,
// so that the comma
// is already aligned to [31:24] or [15:8].
//
// Outputs
//
// aligned_data[31:0] -- Properly aligned 32-bit ALIGNED_DATA
// sync -- Indicator that aligned_data is properly aligned
// aligned_rxisk[3:0] - poperly aligned 4 bit RXCHARISK
// Inputs - These are all RocketIO inputs or outputs
// as indicated:
//
// usrclk2 -- RXUSRCLK2
// rxreset -- RXRESET
// rxisk[3:0] RXCHARISK[3:0]
// rxdata[31:0] RXDATA[31:0] -- (commas aligned to
// [31:24] or [15:8])
// rxrealign -- RXREALIGN
// rxcommadet -- RXCOMMADET
// rxchariscomma3 -- RXCHARISCOMMA[3]
// rxchariscomma1 -- RXCHARISCOMMA[1]
//
module align_comma_32 ( aligned_data, aligned_rxisk, sync,
usrclk2, rxreset,
rxdata, rxisk,
rxrealign, rxcommadet,
rxchariscomma3, rxchariscomma1 );
output [31:0] aligned_data;
output [3:0] aligned_rxisk;
output sync;
reg [31:0] aligned_data;
reg sync;
input usrclk2;
input rxreset;
input [31:0] rxdata;
input [3:0] rxisk;
input rxrealign;
input rxcommadet;
input rxchariscomma3;
input rxchariscomma1;
reg [15:0] rxdata_reg;
reg [1:0] rxisk_reg;
reg [3:0] aligned_rxisk;
reg byte_sync;
reg [3:0] wait_to_sync;
reg count;
// This process maintains wait_to_sync and count,
// which are used only to
// maintain output sync; this provides some idea
// of when the output is properly
// aligned, with the comma in aligned_data[31:24]. The
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
77
78
R
Chapter 3: Digital Design Considerations
// counter is set to a high value
// whenever the elastic buffer is reinitialized;
// that is, upon asserted RXRESET or
// RXREALIGN. Count-down is enabled whenever a
// comma is known to have
// come through the comma detection circuit,
// that is, upon an asserted RXREALIGN
// or RXCOMMADET.
always @ ( posedge usrclk2 )
begin
if ( rxreset )
begin
wait_to_sync <= 4'b1111;
count <= 1'b0;
end
else if ( rxrealign )
begin
wait_to_sync <= 4'b1111;
count <= 1'b1;
end
else
begin
if ( count && ( wait_to_sync != 4'b0000 ) )
wait_to_sync <= wait_to_sync - 4'b0001;
if ( rxcommadet )
count <= 1'b1;
end
end
// This process maintains output sync, which indicates
// when outgoing aligned_data
// should be properly aligned, with the comma in aligned_data[31:24].
// Output aligned_data is
// considered to be in sync when a comma is seen on
// rxdata (as indicated
// by rxchariscomma3 or 1) after the counter wait_to_sync
// has reached 0, indicating
// that commas seen by the comma detection circuit
// have had time to propagate to
// aligned_data after initialization of the elastic buffer.
always @ ( posedge usrclk2 )
begin
if ( rxreset | rxrealign )
sync <= 1'b0;
else if ( ( wait_to_sync == 4'b0000 ) &
( rxchariscomma3 | rxchariscomma1 ) )
sync <= 1'b1;
end
// This process generates aligned_data with commas aligned in [31:24],
// assuming that incoming commas are aligned to [31:24] or [15:8].
// Here, you could add code to use ENPCOMMAALIGN and
// ENMCOMMAALIGN to enable a move back into the byte_sync=0 state.
always @ ( posedge usrclk2 or posedge rxreset )
begin
if ( rxreset )
begin
rxdata_reg <= 16'h0000;
aligned_data <= 32'h0000_0000; www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Other Important Design Notes
rxisk_reg <= 2'b00;
aligned_rxisk <= 4'b0000;
byte_sync <= 1'b0;
end
else
begin
rxdata_reg[15:0] <= rxdata[15:0];
rxisk_reg[1:0] <= rxisk[1:0];
if ( rxchariscomma3 )
begin
aligned_data[31:0] <= rxdata[31:0];
aligned_rxisk[3:0] <= rxisk[3:0];
byte_sync <= 1'b0;
end
else
if ( rxchariscomma1 | byte_sync )
begin
aligned_data[31:0] <= { rxdata_reg[15:0], rxdata[31:16] };
aligned_rxisk[3:0] <= { rxisk_reg[1:0], rxisk[3:2] };
byte_sync <= 1'b1;
end
else
begin
aligned_data[31:0] <= rxdata[31:0];
aligned_rxisk <= rxisk;
end
end
end
endmodule // align_comma_32
VHDL
-- *
-- ***********************************************************
-- ***********************************************************
-- *
-- * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"
-- * AS A COURTESY TO YOU, SOLELY FOR USE IN DEVELOPING PROGRAMS AND
-- * SOLUTIONS FOR XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE,
-- * OR INFORMATION AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE,
-- * APPLICATION OR STANDARD, XILINX IS MAKING NO REPRESENTATION
-- * THAT THIS IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT,
-- * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE
-- * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY
-- * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE
-- * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR
-- * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF
-- * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-- * FOR A PARTICULAR PURPOSE.
-- *
-- * (c) Copyright 2002 Xilinx Inc.
-- * All rights reserved.
-- *
--************************************************************
-- Virtex-II Pro RocketIO comma alignment module
--
-- This module reads RXDATA[31:0] from a RocketIO transceiver
-- and copies it to
-- its output, realigning it if necessary so that commas
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
79
80
R
Chapter 3: Digital Design Considerations
-- are aligned to the MSB position
-- [31:24]. The module assumes ALIGN_COMMA_MSB is TRUE,
-- so that the comma
-- is already aligned to [31:24] or [15:8].
--
-- Outputs
--
-- aligned_data[31:0] -- Properly aligned 32-std_logic ALIGNED_DATA
-- sync -- Indicator that aligned_data is properly aligned
-- aligned_rxisk[3:0] -properly aligned 4-std_logic RXCHARISK
-- Inputs - These are all RocketIO inputs or outputs
-- as indicated:
--
-- usrclk2 -- RXUSRCLK2
-- rxreset -- RXRESET
-- rxdata[31:0] RXDATA[31:0] -- (commas aligned to
-- [31:24] or [15:8])
-- rxisk[3:0] - RXCHARISK[3:0]
-- rxrealign -- RXREALIGN
-- rxcommadet -- RXCOMMADET
-- rxchariscomma3 -- RXCHARISCOMMA[3]
-- rxchariscomma1 -- RXCHARISCOMMA[1]
--
LIBRARY IEEE;
USE IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.Numeric_STD.all; use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY align_comma_32 IS
PORT (
aligned_data : OUT std_logic_vector(31 DOWNTO 0);
aligned_rxisk : OUT std_logic_vector(3 DOWNTO 0);
sync : OUT std_logic;
usrclk2 : IN std_logic;
rxreset : IN std_logic;
rxdata : IN std_logic_vector(31 DOWNTO 0);
rxisk : IN std_logic_vector(3 DOWNTO 0);
rxrealign : IN std_logic;
rxcommadet : IN std_logic;
rxchariscomma3 : IN std_logic;
rxchariscomma1 : IN std_logic);
END ENTITY align_comma_32;
ARCHITECTURE translated OF align_comma_32 IS
SIGNAL rxdata_reg : std_logic_vector(15 DOWNTO 0);
SIGNAL rxisk_reg : std_logic_vector(1 DOWNTO 0);
SIGNAL byte_sync : std_logic;
SIGNAL wait_to_sync : std_logic_vector(3 DOWNTO 0);
SIGNAL count : std_logic;
SIGNAL rxdata_hold : std_logic_vector(31 DOWNTO 0);
SIGNAL rxisk_hold : std_logic_vector(3 DOWNTO 0);
SIGNAL sync_hold : std_logic;
BEGIN
aligned_data <= rxdata_hold;
aligned_rxisk <= rxisk_hold;
sync <= sync_hold;
-- This process maintains wait_to_sync and count, www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Other Important Design Notes
-- which are used only to
-- maintain output sync; this provides some idea
-- of when the output is properly
-- aligned, with the comma in aligned_data[31:24].
-- The counter is set to a high value
-- whenever the elastic buffer is reinitialized;
-- that is, upon asserted RXRESET or
-- RXREALIGN. Count-down is enabled whenever a
-- comma is known to have
-- come through the comma detection circuit, that
-- is, upon an asserted RXREALIGN
-- or RXCOMMADET.
PROCESS (usrclk2)
BEGIN
IF (usrclk2'EVENT AND usrclk2 = '1') THEN
IF (rxreset = '1') THEN
wait_to_sync <= "1111";
count <= '0';
ELSE
IF (rxrealign = '1') THEN
wait_to_sync <= "1111";
count <= '1';
ELSE
IF (count = '1') THEN
IF(wait_to_sync /= "0000") THEN
wait_to_sync <= wait_to_sync - "0001";
END IF;
END IF;
IF (rxcommadet = '1') THEN
count <= '1';
END IF;
END IF;
END IF;
END IF;
END PROCESS;
-- This process maintains output sync, which
-- indicates when outgoing aligned_data
-- should be properly aligned, with the comma
-- in aligned_data[31:24]. Output aligned_data is
-- considered to be in sync when a comma is seen
-- on rxdata (as indicated
-- by rxchariscomma3 or 1) after the counter
-- wait_to_sync has reached 0, indicating
-- that commas seen by the comma detection circuit
-- have had time to propagate to
-- aligned_data after initialization of the elastic buffer.
PROCESS (usrclk2)
BEGIN
IF (usrclk2'EVENT AND usrclk2 = '1') THEN
IF ((rxreset OR rxrealign) = '1') THEN
sync_hold <= '0';
ELSE
IF (wait_to_sync = "0000")THEN
IF ((rxchariscomma3 OR rxchariscomma1) = '1') THEN
sync_hold <= '1';
END IF;
END IF;
END IF;
END IF;
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
81
R
Chapter 3: Digital Design Considerations
END PROCESS;
-- This process generates aligned_data with commas
-- aligned in [31:24],
-- assuming that incoming commas are aligned
-- to [31:24] or [15:8].
-- Here, you could add code to use ENPCOMMAALIGN and
-- ENMCOMMAALIGN to enable a move back into the
-- byte_sync=0 state.
PROCESS (usrclk2, rxreset)
BEGIN
IF (rxreset = '1') THEN
rxdata_reg <= "0000000000000000";
rxdata_hold <= "00000000000000000000000000000000";
rxisk_reg <= "00";
rxisk_hold <= "0000";
byte_sync <= '0';
ELSIF (usrclk2'EVENT AND usrclk2 = '1') THEN
rxdata_reg(15 DOWNTO 0) <= rxdata(15 DOWNTO 0);
rxisk_reg(1 DOWNTO 0) <= rxisk(1 DOWNTO 0);
IF (rxchariscomma3 = '1') THEN
rxdata_hold(31 DOWNTO 0) <= rxdata(31 DOWNTO 0);
rxisk_hold(3 DOWNTO 0) <= rxisk(3 DOWNTO 0);
byte_sync <= '0';
ELSE
IF ((rxchariscomma1 OR byte_sync) = '1') THEN
rxdata_hold(31 DOWNTO 0) <= rxdata_reg(15 DOWNTO 0) &
rxdata(31 DOWNTO 16);
rxisk_hold(3 DOWNTO 0) <= rxisk_reg(1 DOWNTO 0) &
rxisk(3 DOWNTO 2);
byte_sync <= '1';
ELSE
rxdata_hold(31 DOWNTO 0) <= rxdata(31 DOWNTO 0);
rxisk_hold(3 DOWNTO 0) <= rxisk(3 DOWNTO 0);
END IF;
END IF;
END IF;
END PROCESS;
END ARCHITECTURE translated;
82 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Chapter 4
Analog Design Considerations
Serial I/O Description
The RocketIO transceiver transmits and receives serial differential signals. This feature operates at a nominal supply voltage of 2.5 VDC. A serial differential pair consists of a true
(V
P
) and a complement (V
N
) set of signals. The voltage difference represents the transferred data. Thus: V
P
– V
N
= V
DATA
. Differential switching is performed at the crossing of the two complementary signals. Therefore, no separate reference level is needed.
A graphical representation of this concept is shown in Figure 4-1 .
DATA
CML Output Driver
U024_06_020802
Figure 4-1: Differential Amplifier
The RocketIO transceiver is implemented in Current Mode Logic (CML). A CML output
consists of transistors configured as shown in Figure 4-1 . CML uses a positive supply and
offers easy interface requirements. In this configuration, both legs of the driver, V
P
and V
N
, sink current, with one leg always sinking more current than its complement. The CML output consists of a differential pair with 50 Ω (or, optionally, 75 Ω ) source resistors. The signal swing is created by switching the current in a common-drain differential pair.
The differential transmitter specification is shown in
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
83
R
Chapter 4: Analog Design Considerations
Table 4-1: Differential Transmitter Parameters
Parameter Min Typ Max Units
V
OUT
V
TTX
Serial output differential peak to peak (TXP/TXN)
800
1.8
1600
2.8
mV
V
Conditions
Output differential voltage is programmable
V
V
TCM
ISKEW
Output termination voltage supply
Common mode output voltage range
Differential output skew
1.5
2.5
15
V ps
Pre-emphasis Techniques
In pre-emphasis, the initial differential voltage swing is boosted to create a stronger rising or falling waveform. This method compensates for high frequency loss in the transmission media that would otherwise limit the magnitude of this waveform. The effects of pre-emphasis are shown in four scope screen captures,
the pages following. The STRONG notation in Figure 4-3 is used to show that the
waveform is greater in voltage magnitude, at this point, than the LOGIC or normal level
(i.e., no pre-emphasis).
A second characteristic of RocketIO transceiver pre-emphasis is that the STRONG level is reduced after some time to the LOGIC level, thereby minimizing the voltage swing necessary to switch the differential pair into the opposite state.
Lossy transmission lines cause the dissipation of electrical energy. This pre-emphasis technique extends the distance that signals can be driven down lossy line media and increases the signal-to-noise ratio at the receiver.
The four levels of pre-emphasis are shown in
.
Table 4-2: Pre-emphasis Values
Attribute Values Emphasis (%)
0
1
2
3
10
20
25
33
84 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Pre-emphasis Techniques
Figure 4-2: Alternating K28.5+ with No Pre-Emphasis
UG024_17_020802
Strong High
Logic High
Strong Low
Logic Low
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Figure 4-3: K28.5+ with Pre-Emphasis www.xilinx.com
1-800-255-7778
UG024_18_020802
85
R
Chapter 4: Analog Design Considerations
Figure 4-4: Eye Diagram, 10% Pre-Emphasis ug024_36_091802
86
Figure 4-5: Eye Diagram, 33% Pre-Emphasis ug024_37_091802 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Differential Receiver
Differential Receiver
The differential receiver accepts the V
P calculation V
P
- V
N
electronically.
and V
N
signals, carrying out the difference
All input data must be differential and nominally biased to a common mode voltage of
0.5 V – 2.5 V, or AC coupled. Internal terminations provide for simple 50 Ω or 75 Ω transmission line connection.
The differential receiver parameters are shown in
Table 4-3: Differential Receiver Parameters
Parameter Min Typ Max Units Conditions
V
IN
175 1,000 mV
T
T
V
ISKEW
T
ICM
JTOL
DJTOL
Serial input differential peak to peak (RXP/RXN)
Common mode input voltage range
Differential input skew
Receive data total jitter tolerance (peak to peak)
Receive data deterministic jitter tolerance (peak to peak)
500 2500
75
0.65
0.41
mV ps
UI
UI
(1)
Notes:
1.
UI = Unit Interval
R
Jitter
Jitter is defined as the short-term variations of significant instants of a signal from their ideal positions in time (ITU). Jitter is typically expressed in a decimal fraction of Unit
Interval (UI), e.g. 0.3 UI.
Total Jitter (DJ + RJ)
Deterministic Jitter (DJ)
DJ is data pattern dependant jitter, attributed to a unique source (e.g., Inter Symbol
Interference (ISI) due to loss effects of the media). DJ is linearly additive.
Random Jitter (RJ)
RJ is due to stochastic sources, such as substrate, power supply, etc. RJ is additive as the sum of squares, and follows a bell curve.
Clock and Data Recovery
The serial transceiver input is locked to the input data stream through Clock and Data
Recovery (CDR), a built-in feature of the RocketIO transceiver. CDR keys off the rising and falling edges of incoming data and derives a clock that is representative of the incoming data rate.
The derived clock, RXRECCLK, is presented to the FPGA fabric at 1/20th the incoming data rate. This clock is generated and locked to as long as it remains within the specified component range. This range is shown in
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
87
R
Chapter 4: Analog Design Considerations
Table 4-4: CDR Parameters
Parameter
Frequency
Range
Serial input differential
(RXP/RXN)
Frequency
Offset
T
DCREF
T
RCLK
/T
FCLK
T
GJTT
T
LOCK
REFCLK duty cycle
REFCLK rise and fall time (see
Virtex-II Pro Data
Sheet, Module 3)
REFCLK total jitter
Clock recovery frequency acquisition time
T
UNLOCK
PLL length
Min
311
45
Typ
50
10
Max
1,562.5
55
75
40
Units
MHz ppm
% ps ps
µs
Conditions
Between 20% and 80% voltage levels
Peak-to-peak
75 cycles nontransitions
Requirement when bypassing
8B/10B
A sufficient number of transitions must be present in the data stream for CDR to work properly. The CDR circuit is guaranteed to work with 8B/10B encoding. Further, CDR requires approximately 5,000 transitions upon power-up to guarantee locking to the incoming data rate. Once lock is achieved, up to 75 missing transitions can be tolerated before lock to the incoming data stream is lost.
An additional feature of CDR is its ability to accept an external precision clock, REFCLK, which either acts to clock incoming data or to assist in synchronizing the derived
RXRECCLK. REFCLK acts either to clock incoming data or to assist in synchronizing the derived RXRECCLK.
For further clarity, the TXUSRCLK is used to clock data from the FPGA core to the TX
FIFO. The FIFO depth accounts for the slight phase difference between these two clocks. If the clocks are locked in frequency, then the FIFO acts much like a pass-through buffer.
88 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
PCB Design Requirements
PCB Design Requirements
In order to ensure reliable operation of the RocketIO transceivers, certain requirements must be met by the designer. This section outlines these requirements governing power filtering networks, high-speed differential signal traces, and reference clocks. Any designs that do not adhere to these requirements will not be supported by Xilinx, Inc.
R
Power Conditioning
Each RocketIO transceiver has five power supply pins, all of which are sensitive to noise.
Table 4-5 , summarizes the power supply pins, their names, associated voltages, and power
requirements.
To operate properly, the RocketIO transceiver requires a certain level of noise isolation from surrounding noise sources. For this reason, it is required that both dedicated voltage regulators and passive high-frequency filtering be used to power the RocketIO circuitry.
Table 4-5: Transceiver Power Supplies
Supply 2.5V
1.8V -
2.625V
Power (1)
(mW)
Description
AVCCAUXRX
AVCCAUXTX
VTRX
VTTX
GNDA
X
X
X
X
90
130
27
(2)
27 (2)
N/A
Analog RX supply
Analog TX supply
RX termination supply
TX termination supply
Analog ground for transmit and receive analog supplies
Notes:
1.
Power at max data rate. Power figures shown do not include power requirements of V
CCINT
(28 mW) and V
CCAUX
(48 mW), which power the PCS and PMA respectively.
2.
Dependent on voltage level and whether AC or DC coupling is used. These numbers are based on AC coupling with 2.5V V
TTX
and V
TRX
.
Voltage Regulation
The transceiver voltage regulator circuits must not be shared with any other supplies
(including FPGA supplies V
CCINT
, V
CCO
, V
CCAUX
, and V
REF
). Voltage regulators may be shared among transceiver power supplies of the same voltage; however, each supply pin must still have its own separate passive filtering network.
V
IN
> 3VDC
+
10
µ
F
2
IN
1
SHDN
5
SENSE
LT1963
OUT
4
3
GND
TAB
GNDA
0.1
µ
F
+
100 µ F 1
µ
F 1
µ
F 1
µ
F 1
µ
F 1
µ
F 1
µ
F 1
µ
F 1
µ
F 1
µ
F 1
µ
F
GNDA
UG024_026_050302
Figure 4-6: Power Supply Circuit Using LT1963 Regulator
The required voltage regulator is the Linear Technology LT1963 device. This regulator must be used in the circuit specified by the manufacturer.
shows the schematic
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
89
90
R
Chapter 4: Analog Design Considerations for the adjustable version of the LT1963 device with values for a 2.5 V supply, as would be used for AVCCAUXRX and AVCCAUXTX. Alternatively, fixed output voltage devices in the same series may be used, such as the LT1963-2.5. If the fixed version is used, SENSE should be connected to OUT.
Termination voltages V
TTX
and V
TRX
may be of any value in the range of 1.8 V to 2.625 V.
In cases where the RocketIO transceiver is interfacing with a transceiver from another vendor, termination voltage may be dictated by the specifications of the other transceiver.
In cases where the RocketIO transceiver is interfacing with another RocketIO transceiver, any termination voltage my be used. The logical choice is 2.5 V, as this voltage is already available on the board for the AVCCAUXTX and AVCCAUXRX supplies.
The LT1963 circuit’s output capacitors (100 µ F and 1 µ F) may be placed anywhere on the board, preferably close to the output of the LT1963 device.
Refer to the manufacturer’s Web page at http://www.linear-tech.com
for further information about this device.
Passive Filtering
To achieve the necessary isolation from high-frequency power supply noise, passive filter networks are required on the power supply pins. The topology of these capacitor and ferrite bead circuits is given in
.
2.5V
BLM18AG102SN1
AVCCAUXRX
0.22
µ
F
BLM18AG102SN1
AVCCAUXTX
0.22
µ
F
V
TT
BLM18AG102SN1
VTTX
0.22
µ
F
V
TR
BLM18AG102SN1
VTRX
0.22
µ
F
GNDA
UG024_20_022002
Figure 4-7: Power Filtering Network for One Transceiver
Each transceiver power pin requires one capacitor and one ferrite bead. The capacitors must be of value 0.22 µF in an 0603 SMT package of X7R dielectric material at 10% tolerance, rated to at least 5 V. These capacitors must be placed within 1 cm of the pins they are connected to. The ferrite bead is the Murata BLM18AG102SN1. These components may not be shared under any circumstances.
Figure 4-8 and Figure 4-9 show an example layout of the power filtering network for four
transceivers. The device is in an FF672 package, which has eight transceivers total—four
on the top edge and four on the bottom edge. Figure 4-8 shows the top PCB layer, with
lands for the capacitors and ferrite beads of the VTTX and VTRX supplies. The ferrite beads are L1, L2, L3, L4, L9, L11, L12, and L21; the capacitors are C85, C90, C94, C96, C98,
C100, C119, and C124.
shows the bottom PCB layer, with lands for the capacitors and ferrite beads of the AVCCAUXTX and AVCCAUXRX supplies. The ferrite beads are
L10, L13, L15, L16, L19, L33, and L34; the capacitors are C141, C144, C211, C221, C223,
C225, C227, and C229.
www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
PCB Design Requirements
UG024_27_022202
Figure 4-8: Example Power Filtering PCB Layout for Four MGTs, Top Layer
UG024_28_022202
Figure 4-9: Example Power Filtering PCB Layout for Four MGTs, Bottom Layer
All AVCCAUXTX and AVCCAUXRX pins in a Virtex-II Pro device must be connected to
2.5 V, regardless of whether or not they are used. See
Powering the RocketIO Transceivers and The POWERDOWN Port , page 95 , for details.
High-Speed Serial Trace Design
Routing Serial Traces
All RocketIO transceiver I/Os are placed on the periphery of the BGA package to facilitate routing and inspection (since JTAG is not available on serial I/O pins). Two output/input impedance options are available in the RocketIO transceivers: 50 Ω and 75 Ω. Controlled
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
91
R
92
R
Chapter 4: Analog Design Considerations impedance traces with a corresponding impedance should be used to connect the
RocketIO transceiver to other compatible transceivers. In chip-to-chip PCB applications,
50 Ω termination and 100 Ω differential transmission lines are recommended.
When routing a differential pair, the complementary traces must be matched in length to as close a tolerance as is feasible. Length mismatches produce common mode noise and radiation. Severe length mismatches produce jitter and unpredictable timing problems at the receiver. Matching the differential traces to within 50 mils (1.27 mm) produces a robust design. Since signals propagate in FR4 PCB traces at approximately 180 ps per inch, a difference of 50 mils produces a timing skew of roughly 9 ps. Use SI CAD tools to confirm these assumptions on specific board designs.
All signal traces must have an intact reference plane beneath them. Stripline and microstrip geometries may be used. The reference plane should extend no less than five trace widths to either side of the trace to ensure predictable transmission line behavior.
Routing of a differential pair is optimally done in a point-to-point fashion, ideally remaining on the same PCB routing layer. As vias represent an impedance discontinuity, layer-to-layer changes should be avoided wherever possible. It is acceptable to traverse the
PCB stackup to reach the transmitter and receiver package pins. If serial traces must change layers, care must be taken to ensure an intact current return path. For this reason, routing of high-speed serial traces should be on signal layers that share a reference plane.
If the signal layers do not share a reference plane, a capacitor of value 0.01 µ F should be connected across the two reference layers close to the vias where the signals change layers.
If both of the reference layers are DC coupled (if they are both ground), they can be connected with vias close to where the signals change layers.
To control crosstalk, serial differential traces should be spaced at least five trace separation widths from all other PCB routes, including other serial pairs. A larger spacing is required if the other PCB routes carry especially noisy signals, such as TTL and other similarly noisy standards.
The RocketIO transceiver is designed to function at 3.125 Gb/s through 20 inches of FR4 with two high-bandwidth connectors. Longer trace lengths require either a low-loss dielectric or considerably wider serial traces.
Differential Trace Design
The characteristic impedance of a pair of differential traces depends not only on the individual trace dimensions, but also on the spacing between them. The RocketIO transceivers require either a 100 Ω or 150 Ω differential trace impedance (depending on whether the 50 Ω or 75 Ω termination option is selected). To achieve this differential impedance requirement, the characteristic impedance of each individual trace must be slightly higher than half of the target differential impedance. A field solver should be used to determine the exact trace geometry suited to the specific application (
). This task should not be left up to the PCB vendor.
Differential impedance of traces on the finished PCB should be verified with Time Domain
Reflectometry (TDR) measurements.
W
W = 7.9 mil (0.201 mm)
H = 5.0 mil (0.127 mm)
Z
0
= 50
Ω
Trace
E r = 4.3
H
Reference Plane
Dielectric
UG024_21_041902
Figure 4-10: Single-Ended Trace Geometry www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
PCB Design Requirements
Tight coupling of differential traces is recommended. Tightly coupled traces (as opposed to loosely coupled) maintain a very close proximity to one another along their full length.
Since the differential impedance of tightly coupled traces depends heavily on their proximity to each other, it is imperative that they maintain constant spacing along their full length, without deviation. If it is necessary to separate the traces in order to route through a pin field or other PCB obstacle, it can be helpful to modify the trace geometry in the vicinity of the obstacle to correct for the impedance discontinuity (increase the individual trace width where trace separation occurs).
show examples of PCB geometries that result in 100 Ω differential impedance.
E r = 4.3
W
1
Trace
S
H
W
2
Trace
Dielectric
W
1
W
2
= 6.29 mil (0.160 mm)
= 6.29 mil (0.160 mm)
S = 10 mil (0.254 mm)
H = 5.0 mil (0.127 mm)
Z
01
= 55.3
Ω
Z
Z
02
= 55.3
Ω
0DIFF
= 100 Ω
Reference Plane
UG024_22_041902
Figure 4-11: Microstrip Edge-Coupled Differential Pair
R
Reference Plane
W
1
Trace
S W
2
Trace
H
1
W
W
1
= 3.0 mil (0.076 mm)
2
= 3.0 mil (0.076 mm)
S = 6.85 mil (0.174 mm)
H
1
H
2
Z
Z
Z
= 10.0 mil (0.254 mm)
= 10.0 mil (0.254 mm)
01
= 64.8
Ω
02
= 64.8
Ω
0DIFF
= 100
Ω
Dielectric
H
2
E r = 4.3
Reference Plane
UG024_22a_041902
Figure 4-12: Stripline Edge-Coupled Differential Pair
AC and DC Coupling
AC coupling (use of DC blocking capacitors in the signal path) should be used in cases where transceiver differential voltages are compatible, but common mode voltages are not.
Some designs require AC coupling to accommodate hot plug-in, and/or differing power
supply voltages at different transceivers. This is illustrated in Figure 4-13
.
TX Z
0DIFF
C
1
C
2
RX
UG024_23_020802
Figure 4-13: AC-Coupled Serial Link
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
93
R
Chapter 4: Analog Design Considerations
Capacitors of value 0.01
µ F in a 0402 package are suitable for AC coupling at 3.125 Gb/s when 8B/10B encoding is used. Different data rates and different encoding schemes may require a different value.
DC coupling (direct connection) is preferable in cases where RocketIO transceivers are interfaced with other RocketIO transceivers or other Mindspeed transceivers that have compatible differential and common mode voltage specifications. Passive components are not required when DC coupling is used. This is illustrated in
94
TX Z
0DIFF
RX
UG024_24_020802
Figure 4-14: DC-Coupled Serial Link
Reference Clock
A high degree of accuracy is required from the reference clock. For this reason, it is required that one of the oscillators listed in this section be used:
Epson EG-2121CA 2.5V (LVPECL outputs)
See the Epson Electronics America website for detailed information. The power supply circuit specified by the manufacturer must be used.
The circuit shown in
Figure 4-15 must be used to interface the oscillator’s LVPECL outputs
to the LVDS inputs of the transceiver reference clock.
Z
0
EG2121CA
2.5V-PECL
100 Ω LVDS
Z
0
100 Ω 100 Ω
UG024_025a_050102
Figure 4-15: LVPECL Reference Clock Oscillator Interface
Pletronics LV1145B (LVDS outputs)
See the Pletronics website for detailed information.
The circuit shown in
Figure 4-16 must be used to interface the oscillator’s LVDS outputs to
the LVDS inputs of the transceiver reference clock.
Z
0
LV1145B
2.5V-LVDS
100 Ω LVDS
Z
0
UG024_025b_050102
Figure 4-16: LVDS Reference Clock Oscillator Interface www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Other Important Design Notes
Other Important Design Notes
Powering the RocketIO Transceivers
IMPORTANT!
All RocketIO transceivers in the FPGA, whether instantiated in the design or not, must be connected to power and ground. Unused transceivers may be powered by any 2.5 V source, and passive filtering is not required. Refer to
The maximum power consumption per port is 350 mW at 3.125 Gb/s operation.
The POWERDOWN Port
POWERDOWN is a single-bit primitive port (see Table 3-1, page 25 ) that allows shutting
off the transceiver in case it is not needed for the design, or will not be transmitting or receiving for a long period of time. When POWERDOWN is asserted, the transceiver does not use any power. The clocks are disabled and do not propagate through the core. The
3-state TXP and TXN pins are set to high-Z, while the outputs to the fabric are frozen but not set to high-Z.
Any given transceiver that is not instantiated in the design will automatically be set to the
POWERDOWN state by the Xilinx ISE development software, and will consume no power.
An instantiated transceiver, however, will consume some power, even if it is not engaged in transmitting or receiving. Therefore, when a transceiver is not to be used for an extended period of time, the POWERDOWN port should be asserted High to reduce overall power consumption by the Virtex-II Pro FPGA.
Deasserting the POWERDOWN port restores the transceiver to normal functional status.
R
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
95
R
Chapter 4: Analog Design Considerations
96 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Chapter 5
Simulation and Implementation
Simulation Models
SmartModels
SmartModels are encrypted versions of the actual HDL code. These models allow the user to simulate the actual functionality of the design without having access to the code itself.
A simulator with SmartModel capability is required to use SmartModels.
The models must be extracted before they can be used. For information on how to extract the SmartModels under ISE 5.1i, see Solution Record 15501 . For revisions of ISE below 5.1i, see Solution Record 14019 .
HSPICE
HSPICE is an analog design model that allows simulation of the RX and TX high-speed transceiver. To obtain these HSPICE models, go to the SPICE Suite Access web page at http://support.xilinx.com/support/software/spice/spice-request.htm
.
Implementation Tools
Synthesis
During synthesis, the transceiver is treated as a "black box." This requires that a wrapper be used that describes the modules port.
Par
For place and route, the transceiver has one restriction. This is required when channel bonding is implemented. Because of the delay limitations on the CHBONDO to CHBONDI ports, linking of the Master to a Slave_1_hop must run either in the X or Y direction, but not both.
In
, the two Slave_1_hops are linked to the master in only one direction. To navigate to the other slave (a Slave_2_hops), both X and Y displacement is needed. This slave needs one level of daisy-chaining, which is the basis of the Slave_2_hops setting.
shows the channel bonding mode and linking for a 2VP50, which (optionally) contains more transceivers (16) per chip. To ensure the timing is met on the link between the CHBONDO and CHBONDI ports, a constraint must be added to check the time delay.
The UCF example below shows and describes this.
97 UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
R
Chapter 5: Simulation and Implementation
MASTER SLAVE_1_HOP
CHBONDI CHBONDO
CHBONDI CHBONDO
SLAVE_1_HOP
CHBONDI CHBONDO
Top of device
Bottom of device
CHBONDO CHBONDI
SLAVE_2_HOPS
UG024_08_020802
Figure 5-1: 2VP2 Implementation
SLAVE_1_HOP
CHBONDI CHBONDO
SLAVE_1_HOP
CHBONDI CHBONDO
SLAVE_1_HOP
CHBONDI CHBONDO
MASTER
CHBONDI CHBONDO
SLAVE_1_HOP
CHBONDI CHBONDO
SLAVE_1_HOP
CHBONDI CHBONDO
SLAVE_1_HOP SLAVE_1_HOP
CHBONDI CHBONDO CHBONDI CHBONDO
Top of device
Bottom of device
CHBONDO CHBONDI
SLAVE_2_HOPS
CHBONDO CHBONDI
SLAVE_2_HOPS
CHBONDO CHBONDI
SLAVE_2_HOPS
CHBONDO CHBONDI
SLAVE_1_HOP
CHBONDO CHBONDI
SLAVE_2_HOPS
CHBONDO CHBONDI
SLAVE_2_HOPS
CHBONDO CHBONDI
SLAVE_2_HOPS
CHBONDO CHBONDI
SLAVE_2_HOPS
UG024_08_020802
Figure 5-2: 2VP50 Implementation
UCF Example
NET "chbond_*" MAXDELAY = 4.2 ns ;
4.2 ns is estimated as the channel bonding delay. This is based upon an RXUSRCLK of
156.25 MHz (6.4 ns period), less 0.2 ns for estimated clock skew, less 2.0 ns for estimated clock-to-out/setup-time adjustment:
6.4 ns – 0.2 ns – 2.0 ns = 4.2 ns
This design used four RocketIO multi-gigabit transceivers, consisting of one master, two
Slave_1_hop, and one Slave_2_hops. The net chbond_m_s01[3:0] connects the master and two Slave_1_hop. The net chbond_s1_s2[3:0] connects one Slave_1_hop and one
Slave_2_hops.
NET "chbond_*" MAXDELAY = 4.2 ns ;
constrains all these connections.
Implementing Clock Schemes
Sometimes certain FPGA resources are needed for specific logic. With RocketIO clocking schemes, the user has several resource choices. If the transceivers implemented are only at the top or bottom of the device, the REFCLK of the transceivers is not required to run through a clock tree resource. This saves this resource for other user logic. However, it does require additional I/O pins to be used (one for the DCM and one for the transceiver).
Figure 3-3, page 46 , shows this scenario, which is similar to
minus the clock-tree resource. If transceivers from both the top and bottom of the device are used or device I/Os are at a premium, the clock tree resource is used allowing one less I/O pin used.
98 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
MGT Package Pins
MGT Package Pins
The MGTs are a hard core placed in the FPGA fabric; all package pins for the MGTs are dedicated on the Virtex-II Pro device. This is shown in the package pin diagrams in the
Virtex-II Pro Handbook. When creating a design, LOC constraints must be used to implement a specific MGT on the die. This LOC constraint also determines which package pins are used.
shows the correlation between the LOC grid and the package pins themselves. The pin numbers are the TXNPAD, TXPPAD, RXPPAD, and RXNPAD, respectively. The power pins are adjacent to these pins in the package pin diagrams of the handbook.
Table 5-1: LOC Grid & Package Pins Correlation for FG256, FG456, and FF672
FG256 FG456 FF672
LOC
Constraints
2VP2/2VP4 2VP2 /2VP4 2VP7 2VP2 /2VP4 2VP7
GT_X0_Y0 T4, T5, T6,
T7
AB7, AB8,
AB9, AB10
AB3, AB4,
AB5, AB6
AF18, AF17,
AF16, AF15
AF23, AF22,
AF21, AF20
GT_X0_Y1 T10, T11,
T12, T13
GT_X1_Y0 A4, A5, A6,
A7
GT_X1_Y1 A10, A11,
GT_X2_Y0
A12, A13
AB13,AB14,
AB15, AB16
A7, A8, A9,
A10
A13, A14,
A15, A16
A3, A4, A5,
A6
AB7, AB8,
AB9, AB10
A7, A8, A9,
A10
AB13, AB14,
AB15, AB16
A18, A17,
A16, A15
AF12, AF11,
AF10, AF9
A12, A11,
A10, A9
A23, A22,
A21, A20
AF18, AF17,
AF16, AF15
A18, A17,
A16, A15
AF12, AF11,
AF10, AF9
GT_X2_Y1
GT_X3_Y0
GT_X3_Y1
A13, A14,
A15, A16
AB17, AB18,
AB19, AB20
A17, A18,
A19, A20
A12, A11,
A10, A9
AF7, AF6,
AF5, AF4
A7, A6, A5,
A4
R
.
Table 5-2: LOC Grid & Package Pins Correlation for FF896 and FF1152
FF896 FF1152
LOC
Constraints
2VP7
/2VP20
2VP30
2VP20
/2VP30
2VP40
GT_X0_Y0 AK27, AK26,
AK25, AK24
AK27, AK26,
AK25, AK24
AP29, AP28,
AP27, AP26
AP33, AP32,
AP31AP30
GT_X0_Y1 A27, A26,
A25, A24
GT_X1_Y0 AK20, AK19,
AK18, AK17
GT_X1_Y1 A20, A19,
A18, A17
GT_X2_Y0 AK14, AK13,
AK12, AK11
A27, A26,
A25, A24
AK20, AK19,
AK18, AK17
A20, A19,
A18, A17
AK14, AK13,
AK12, AK11
A29, A28,
A27, A26
AP21, AP20,
AP19, AP18
A21, A20,
A19, A18
AP17, AP16,
AP15, AP14
A33, A32,
A31, A30
AP29, AP28,
AP27, AP26
A29, A28,
A27, A26
AP21, AP20,
AP19, AP18
2VP50
AP33, AP32,
AP31AP30
A33, A32,
A31, A30
AP29, AP28,
AP27, AP26
A29, A28,
A27, A26
AP25, AP24,
AP23, AP22
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
99
100
R
Chapter 5: Simulation and Implementation
Table 5-2: LOC Grid & Package Pins Correlation for FF896 and FF1152 (Continued)
FF896 FF1152
LOC
Constraints
2VP7
/2VP20
2VP30
2VP20
/2VP30
2VP40 2VP50
GT_X2_Y1 A14, A13,
A12, A11
GT_X3_Y0 AK7, AK6,
AK5, AK4
A14, A13,
A12, A11
AK7, AK6,
AK5, AK4
A17, A16,
A15, A14
AP13, AP12,
AP11, AP10
A21, A20,
A19, A18
AP17, AP16,
AP15, AP14
A25, A24,
A23, A22
AP21, AP20,
AP19, AP18
GT_X3_Y1 A7, A6, A5,
A4
GT_X4_Y0
GT_X4_Y1
A7, A6, A5,
A4
A13, A12,
A11, A10
A17, A16,
A15, A14
AP9, AP8,
AP7, AP6
A9, A8, A7,
A6
A21, A20,
A19, A18
AP17, AP16,
AP15, AP14
A17, A16,
A15, A14
GT_X5_Y0
GT_X5_Y1
AP5, AP4,
AP3, AP2
A5, A4, A3,
A2
GT_X6_Y0
GT_X6_Y1
GT_X7_Y0
GT_X7_Y1
AP13, AP12,
AP11, AP10
A13, A12,
A11, A10
AP9, AP8,
AP7, AP6
A9, A8, A7,
A6
AP5, AP4,
AP3, AP2
A5, A4, A3,
A2
GT_X8_Y0
GT_X8_Y1
GT_X9_Y0
GT_X9_Y1
Table 5-3: LOC Grid & Package Pins Correlation for FF1517 and FF1704
FF1517 FF1704
LOC
Constraints
2VP40 2VP50 2VP70
2VP70
/2VP100
2VP125
GT_X0_Y0 AW36, AW35,
AW34, AW33
AW36, AW35,
AW34, AW33
AW36, AW35,
AW34, AW33
BB41, BB40,
BB39, BB38
GT_X0_Y1 A36, A35,
A34, A33
A36, A35,
A34, A33
A36, A35,
A34, A33
A41, A40,
A39, A38
GT_X1_Y0 AW32, AW31,
AW30, AW29
AW32, AW31,
AW30, AW29
AW32, AW31,
AW30, AW29
BB37, BB36,
BB35, BB34
GT_X1_Y1 A32, A31,
A30, A29
A32, A31,
A30, A29
A32, A31,
A30, A29
A37, A36,
A35, A34
BB41, BB40,
BB39, BB38
A41, A40,
A39, A38 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
MGT Package Pins
Table 5-3: LOC Grid & Package Pins Correlation for FF1517 and FF1704 (Continued)
FF1517 FF1704
LOC
Constraints
2VP40 2VP50 2VP70
2VP70
/2VP100
2VP125
GT_X2_Y0
GT_X2_Y1
GT_X3_Y0
AW24, AW23,
AW22, AW21
A24, A23,
A22, A21
AW19, AW18,
AW17, AW16
AW28, AW27,
AW26, AW25
A28, A27,
A26, A25
AW24, AW23,
AW22, AW21
AW32, AW31,
AW30, AW29
A32, A31,
A30, A29
AW28, AW27,
AW26, AW25
BB33, BB32,
BB31, BB30
A33, A32,
A31, A30
BB29, BB28,
BB27, BB26
BB37, BB36,
BB35, BB34
A37, A36,
A35, A34
BB33, BB32,
BB31, BB30
GT_X3_Y1 A19, A18,
A17, A16
A24, A23,
A22, A21
A28, A27,
A26, A25
A29, A28,
A27, A26
GT_X4_Y0 AW11, AW10,
AW9, AW8
AW19, AW18,
AW17, AW16
AW24, AW23,
AW22, AW21
BB25, BB24,
BB23, BB22
GT_X4_Y1 A11, A10, A9,
A8
GT_X5_Y0 AW7, AW6,
AW5, AW4
GT_X5_Y1 A7, A6, A5,
A4
GT_X6_Y0
GT_X6_Y1
GT_X7_Y0
GT_X7_Y1
GT_X8_Y0
GT_X8_Y1
GT_X9_Y0
GT_X9_Y1
A19, A18,
A17, A16
AW15, AW14,
AW13, AW12
A15, A14,
A13, A12
AW11, AW10,
AW9, AW8
A11, A10, A9,
A8
AW7, AW6,
AW5, AW4
A7, A6, A5,
A4
A24, A23,
A22, A21
AW19, AW18,
AW17, AW16
A19, A18,
A17, A16
AW15, AW14,
AW13, AW12
A15, A14,
A13, A12
AW11, AW10,
AW9, AW8
BB13, BB12,
BB11, BB10
A11, A10, A9,
A8
AW7, AW6,
AW5, AW4
A7, A6, A5,
A4
A25, A24,
A23, A22
BB21, BB20,
BB19, BB18
A21, A20,
A19, A18
BB17, BB16,
BB15, BB14
A17, A16,
A15, A14
A13, A12,
A11, A10
BB9, BB8,
BB7, BB6
A9, A8, A7,
A6
BB5, BB4,
BB3, BB2
A5, A4, A3,
A2
A33, A32,
A31, A30
BB29, BB28,
BB27, BB26
A29, A28,
A27, A26
BB25, BB24,
BB23, BB22
A25, A24,
A23, A22
BB21, BB20,
BB19, BB18
A21, A20,
A19, A18
BB17, BB16,
BB15, BB14
A17, A16,
A15, A14
BB13, BB12,
BB11, BB10
A13, A12,
A11, A10
BB9, BB8,
BB7, BB6
GT_X10_Y0
GT_X10_Y1
A9, A8, A7,
A6
BB5, BB4,
BB3, BB2
A5, A4, A3,
A2
GT_X11_Y0
GT_X11_Y1
R
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
101
R
Chapter 5: Simulation and Implementation
Diagnostic Signals
Often a diagnostic check is needed upon power-up. RocketIO transceivers have several inputs and outputs to run these checks.
LOOPBACK
LOOPBACK allows the user to send the data that is being transmitted directly to the
receiver of the transceiver. Table 5-4
shows the three modes for loopback.
Table 5-4: LOOPBACK Modes
Input
Value
Mode Description
00 Normal Mode The normal mode is selected during normal operation.
The transmitted data is sent out the differential transmit ports (TXN, TXP) and are sent to another transceiver without being sent to its own receiver logic.
During normal operation, the LOOPBACK should be set to “00”.
01 External Serial Mode The external serial mode is used to check that the entire transceiver is working properly. This includes testing of the 8B/10B encoding/decoding. This emulates what another transceiver would receive as data from this specific transceiver design.
10 Internal Parallel Mode For testing of interfacing logic, the Internal Parallel
Mode allows the use of linking the transmit and receive interface logic without having to go to another transceiver in the cases of 8B/10B bypassed or to reduce data latency from TXDATA to RXDATA.
102 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Appendix A
RocketIO Transceiver Timing Model
This appendix explains all of the timing parameters associated with the RocketIO™ transceiver core. It is intended to be used in conjunction with Module 3 of the Virtex-II Pro
Data Sheet and the Timing Analyzer (TRCE) report from Xilinx software. For specific timing parameter values, refer to the data sheet.
There are many signals entering and exiting the RocketIO core. (Refer to Figure A-1 .) The
model presented in this section treats the RocketIO core as a “black box.” Propagation delays internal to the RocketIO core logic are ignored. Signals are characterized with setup and hold times for inputs, and with clock to valid output times for outputs.
There are five clocks associated with the RocketIO core, but only three of these clocks—
RXUSRCLK, RXUSRCLK2, and TXUSRCLK2—have I/Os that are synchronous to them.
The following table gives a brief description of all of these clocks. For an in-depth discussion of clocking the RocketIO core, refer to
.
Table A-1: RocketIO Clock Descriptions
CLOCK SIGNAL
REFCLK
TXUSRCLK
TXUSRCLK2
RXUSRCLK
RXUSRCLK2
DESCRIPTION
Main reference clock for RocketIO transceiver
Clock used for writing the TX buffer. Frequency-locked to
REFCLK.
Clocks transmission data and status and reconfiguration data between the transceiver and the FPGA core. Relationship between TXUSRCLK2 and TXUSRCLK depends on width of transmission data path.
Clock used for reading the RX elastic buffer. Clocks CHBONDI and CHBONO into and out of the transceiver. Typically the same as TXUSRCLK.
Clocks receiver data and status between the transceiver and the
FPGA core. Typically the same as TXUSRCLK2. Relationship between RXUSRCLK2 and RXUSRCLK depends on width of receiver data path.
103 UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
R
Appendix A: RocketIO Transceiver Timing Model
PACKAGE
PINS
AVCCAUXRX
2.5V RX
VTRX
Termination Supply RX
MULTI-GIGABIT TRANSCEIVER CORE
Power Down
RXP
RXN
TXP
TXN
Deserializer
Clock
Manager
Serializer
GNDA
TX/RX GND
AVCCAUXTX
2.5V TX
VTTX
Termination Supply TX
Comma
Detect
Realign
Output
Polarity
8B/10B
Decoder
TX
FIFO
CRC
Check
RX
Elastic
Buffer
Channel Bonding and
Clock Correction
8B/10B
Encoder
CRC
FPGA FABRIC
POWERDOWN
RXRECCLK
RXPOLARITY
RXREALIGN
RXCOMMADET
ENPCOMMAALIGN
ENMCOMMAALIGN
RXCHECKINGCRC
RXCRCERR
RXDATA[15:0]
RXDATA[31:16]
RXNOTINTABLE[3:0]
RXDISPERR[3:0]
RXCHARISK[3:0]
RXCHARISCOMMA[3:0]
RXRUNDISP[3:0]
RXBUFSTATUS[1:0]
ENCHANSYNC
CHBONDDONE
CHBONDI[3:0]
CHBONDO[3:0]
RXLOSSOFSYNC
RXCLKCORCNT
TXBUFERR
TXFORCECRCERR
TXDATA[15:0]
TXDATA[31:16]
TXBYPASS8B10B[3:0]
TXCHARISK[3:0]
TXCHARDISPMODE[3:0]
TXCHARDISPVAL[3:0]
TXKERR[3:0]
TXRUNDISP[3:0]
TXPOLARITY
TXINHIBIT
LOOPBACK[1:0]
TXRESET
RXRESET
REFCLK
REFCLK2
REFCLKSEL
BREFCLK
BREFCLK2
RXUSRCLK
RXUSRCLK2
TXUSRCLK
TXUSRCLK2
DS083-2_04_090402
Figure A-1: RocketIO Transceiver Block Diagram
Timing Parameters
Parameter designations are constructed to reflect the functions they perform, as well as the
I/O signals to which they are synchronous. The following subsections explain the meaning of each of the basic timing parameter designations used in the tables.
104 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Timing Parameters
Setup/Hold Times of Inputs Relative to Clock
Basic Format:
ParameterName _ SIGNAL where
ParameterName = T with subscript string defining the timing relationship
SIGNAL = name of RocketIO signal synchronous to the clock
ParameterName Format:
T
G x CK
T
GCK x where
=
=
Setup time before clock edge
Hold time after clock edge x = C
D
(Control inputs)
(Data inputs)
Setup/Hold Time (Examples):
T
GCCK
_RRST/T
GCKC
_PLB
T
GDCK
_TDAT/T
GCKD
_TDAT
Setup/hold times of RX Reset input relative to rising edge of RXUSRCLK2
Setup/hold times of TX Data inputs relative to rising edge of TXUSRCLK2
Clock to Output Delays
Basic Format:
ParameterName _ SIGNAL where
ParameterName = T with subscript string defining the timing relationship
SIGNAL = name of RocketIO signal synchronous to the clock
ParameterName Format:
T
GCK x where
= Delay time from clock edge to output x = CO
DO
ST
(Control outputs)
(Data outputs)
(Status outputs)
Output Delay Time (Examples):
T
GCKCO
_CHBO
T
GCKDO
_RDAT
T
GCKST
_TBERR
Rising edge of RXUSRCLK to Channel Bond outputs
Rising edge of RXUSRCLK2 to RX Data outputs
Rising edge of TXUSRCLK2 to TX Buffer Err output
Clock Pulse Width
ParameterName Format:
T x PWH
T x PWL where
=
=
Minimum pulse width, High state
Minimum pulse width, Low state x = REF
TX
TX2
RX
RX2
(REFCLK)
(TXUSRCLK)
(TXUSRCLK2)
(RXUSRCLK)
(RXUSRCLK2)
Pulse Width (Examples):
T
TX2PWL
T
REFPWH
Minimum pulse width, TX2 clock, Low state
Minimum pulse width, Reference clock, High state
R
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
105
R
Appendix A: RocketIO Transceiver Timing Model
Timing Parameter Tables and Diagram
The following four tables list the timing parameters as reported by the implementation tools relative to the clocks given in
Table A-1 , along with the RocketIO signals that are
synchronous to each clock. (No signals are synchronous to REFCLK or TXUSRCLK.)
A timing diagram (
) illustrates the timing relationships.
•
Table A-2 , Parameters Relative to the RX User Clock (RXUSRCLK) , page 106
•
Table A-3 , Parameters Relative to the RX User Clock2 (RXUSRCLK2) , page 106
•
Table A-4 , Parameters Relative to the TX User Clock2 (TXUSRCLK2) , page 107
•
Table A-5 , Miscellaneous Clock Parameters , page 107
Table A-2: Parameters Relative to the RX User Clock (RXUSRCLK)
Parameter
Setup/Hold:
T
GCCK
_CHBI/T
GCKC
_CHBI
Clock to Out:
T
GCKCO
_CHBO
Clock:
T
RXPWH
T
RXPWL
Function
Control inputs
Control outputs
CHBONDI[3:0]
CHBONDO[3:0]
Clock pulse width, High state RXUSRCLK
Clock pulse width, Low state RXUSRCLK
Signals
Table A-3: Parameters Relative to the RX User Clock2 (RXUSRCLK2)
Parameter
Setup/Hold:
T
GCCK
_RRST/T
GCKC
_RRST
T
GCCK
_RPOL/T
GCKC
_RPOL
T
GCCK
_ECSY/T
GCKC
_ECSY
Clock to Out:
T
GCKST
_RNIT
T
GCKST
_RDERR
T
GCKST
_RCMCH
T
GCKST
_ALIGN
T
GCKST
_CMDT
T
GCKST
_RLOS
T
GCKST
_RCCCNT
T
GCKST
_RBSTA
T
GCKST
_RCCRC
T
GCKST
_RCRCE
T
GCKST
_CHBD
T
GCKST
_RKCH
T
GCKST
_RRDIS
T
GCKDO
_RDAT
Clock:
T
RX2PWH
T
RX2PWH
Function
Control input
Control input
Control input
Status outputs
Status outputs
Status outputs
Status output
Status output
Status outputs
Status outputs
Status outputs
Status output
Status output
Status output
Status outputs
Status outputs
Data outputs
RXRESET
RXPOLARITY
ENCHANSYNC
Signals
RXNOTINTABLE[3:0]
RXDISPERR[3:0]
RXCHARISCOMMA[3:0]
RXREALIGN
RXCOMMADET
RXLOSSOFSYNC[1:0]
RXCLKCORCNT[2:0]
RXBUFSTATUS[1:0]
RXCHECKINGCRC
RXCRCERR
CHBONDDONE
RXCHARISK[3:0]
RXRUNDISP[3:0]
RXDATA[31:0]
Clock pulse width, High state RXUSRCLK2
Clock pulse width, Low state RXUSRCLK2
106 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Timing Parameter Tables and Diagram
Table A-4: Parameters Relative to the TX User Clock2 (TXUSRCLK2)
Parameter Function
Setup/Hold:
Signals
T
GCCK
_CFGEN/T
GCKC
_CFGEN Control inputs
T
GCCK
_TBYP/T
GCKC
_TBYP Control inputs
T
GCCK
_TCRCE/T
GCKC
_TCRCE Control inputs
Control inputs T
GCCK
_TPOL/T
GCKC
_TPOL
T
GCCK
_TINH/T
GCKC
_TINH
T
GCCK
_LBK/T
GCKC
_LBK
Control inputs
Control inputs
Control inputs T
GCCK
_TRST/T
GCKC
_TRST
T
GCCK
_TKCH/T
GCKC
_TKCH
T
GCCK
_TCDM/T
GCKC
_TCDM
T
GCCK
_TCDV/T
GCKC
_TCDV
Control inputs
Control inputs
Control inputs
T
GDCK
_CFGIN/T
GCKD
_CFGIN
T
GDCK
_TDAT/T
GCKD
_TDAT
Clock to Out:
Data inputs
Data inputs
T
GCKST
_TBERR
T
GCKST
_TKERR
T
GCKDO
_TRDIS
T
GCKDO
_CFGOUT
Clock:
Status outputs
Status outputs
Data outputs
Data outputs
T
TX2PWH
T
TX2PWH
CONFIGENABLE
TXBYPASS8B10B[3:0]
TXFORCECRCERR
TXPOLARITY
TXINHIBIT
LOOPBACK[1:0]
TXRESET
TXCHARISK[3:0]
TXCHARDISPMODE[3:0]
TXCHARDISPVAL[3:0]
CONFIGIN
TXDATA[31:0]
TXBUFERR
TXKERR[3:0]
TXRUNDISP[3:0]
CONFIGOUT
Clock pulse width, High state TXUSRCLK2
Clock pulse width, Low state TXUSRCLK2
Table A-5: Miscellaneous Clock Parameters
Parameter Function
Clock:
T
REFPWH
T
REFPWL
T
TXPWH
T
TXPWL
Clock pulse width, High state REFCLK
Clock pulse width, Low state
Clock pulse width, Low state
Notes:
1.
REFCLK is not synchronous to any RocketIO signals.
2.
TXUSRCLK is not synchronous to any RocketIO signals.
REFCLK
(1)
(1)
Clock pulse width, High state TXUSRCLK
TXUSRCLK
(2)
(2)
Signals
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
107
R
R
Appendix A: RocketIO Transceiver Timing Model
1 2
T xGWL
CLOCK
T xGWH
T
GCCK
T
GCKC
CONTROL
INPUTS
CONTROL
OUTPUTS
T
GCKCO
T
GCKDO
DATA
OUTPUTS
T
GDCK
T
GCKD
DATA
INPUTS
UG012_106_02_100101
Figure A-2: RocketIO Transceiver Timing Relative to Clock Edge
108 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
R
Appendix B
RocketIO Transceiver Cell Models
Summary
This appendix documents the RocketIO™ Multi-Gigabit Transceiver cell models. The following information lists the Verilog module declarations of the model and pins associated with each of the RocketIO communication standards available in the
Virtex-II Pro family.
Verilog Module Declarations
GT_AURORA_1
module GT_AURORA_1 (
CHBONDDONE,
CHBONDO,
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CHBONDI,
CONFIGENABLE,
CONFIGIN,
ENCHANSYNC,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
109
110
R
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
);
TXRESET,
TXUSRCLK,
TXUSRCLK2
GT_AURORA_2
module GT_AURORA_2 (
CHBONDDONE,
CHBONDO,
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CHBONDI,
CONFIGENABLE,
CONFIGIN,
ENCHANSYNC,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET, www.xilinx.com
1-800-255-7778
Appendix B: RocketIO Transceiver Cell Models
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Verilog Module Declarations
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
TXUSRCLK,
);
TXUSRCLK2
GT_AURORA_4
module GT_AURORA_4 (
CHBONDDONE,
CHBONDO,
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CHBONDI,
CONFIGENABLE,
CONFIGIN,
ENCHANSYNC,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
111
R
112
R
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
);
TXUSRCLK,
TXUSRCLK2
GT_CUSTOM
module GT_CUSTOM (
CHBONDDONE,
CHBONDO,
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CHBONDI,
CONFIGENABLE,
CONFIGIN,
ENCHANSYNC,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY, www.xilinx.com
1-800-255-7778
Appendix B: RocketIO Transceiver Cell Models
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Verilog Module Declarations
);
TXRESET,
TXUSRCLK,
TXUSRCLK2
GT_ETHERNET_1
module GT_ETHERNET_1 (
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CONFIGENABLE,
CONFIGIN,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
TXUSRCLK,
);
TXUSRCLK2
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
113
R
114
R
GT_ETHERNET_2
module GT_ETHERNET_2 (
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CONFIGENABLE,
CONFIGIN,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
TXUSRCLK,
);
TXUSRCLK2
GT_ETHERNET_4
module GT_ETHERNET_4 (
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC, www.xilinx.com
1-800-255-7778
Appendix B: RocketIO Transceiver Cell Models
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Verilog Module Declarations
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CONFIGENABLE,
CONFIGIN,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
TXUSRCLK,
);
TXUSRCLK2
GT_FIBRE_CHAN_1
module GT_FIBRE_CHAN_1 (
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
115
R
116
R
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CONFIGENABLE,
CONFIGIN,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
);
TXUSRCLK,
TXUSRCLK2
GT_FIBRE_CHAN_2
module GT_FIBRE_CHAN_2 (
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CONFIGENABLE,
CONFIGIN,
LOOPBACK, www.xilinx.com
1-800-255-7778
Appendix B: RocketIO Transceiver Cell Models
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Verilog Module Declarations
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
TXUSRCLK,
);
TXUSRCLK2
GT_FIBRE_CHAN_4
module GT_FIBRE_CHAN_4 (
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CONFIGENABLE,
CONFIGIN,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
117
R
R
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
);
TXUSRCLK,
TXUSRCLK2
118
GT_INFINIBAND_1
module GT_INFINIBAND_1 (
CHBONDDONE,
CHBONDO,
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CHBONDI,
CONFIGENABLE,
CONFIGIN,
ENCHANSYNC,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2, www.xilinx.com
1-800-255-7778
Appendix B: RocketIO Transceiver Cell Models
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Verilog Module Declarations
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
TXUSRCLK,
);
TXUSRCLK2
GT_INFINIBAND_2
module GT_INFINIBAND_2 (
CHBONDDONE,
CHBONDO,
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CHBONDI,
CONFIGENABLE,
CONFIGIN,
ENCHANSYNC,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
119
R
120
R
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
);
TXRESET,
TXUSRCLK,
TXUSRCLK2
GT_INFINIBAND_4
module GT_INFINIBAND_4 (
CHBONDDONE,
CHBONDO,
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CHBONDI,
CONFIGENABLE,
CONFIGIN,
ENCHANSYNC,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
TXUSRCLK, www.xilinx.com
1-800-255-7778
Appendix B: RocketIO Transceiver Cell Models
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Verilog Module Declarations
);
TXUSRCLK2
GT_XAUI_1
module GT_XAUI_1 (
CHBONDDONE,
CHBONDO,
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CHBONDI,
CONFIGENABLE,
CONFIGIN,
ENCHANSYNC,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
TXUSRCLK,
);
TXUSRCLK2
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
121
R
122
R
GT_XAUI_2
module GT_XAUI_2 (
CHBONDDONE,
CHBONDO,
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CHBONDI,
CONFIGENABLE,
CONFIGIN,
ENCHANSYNC,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
);
TXUSRCLK,
TXUSRCLK2
GT_XAUI_4
module GT_XAUI_4 (
CHBONDDONE, www.xilinx.com
1-800-255-7778
Appendix B: RocketIO Transceiver Cell Models
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
Verilog Module Declarations
CHBONDO,
CONFIGOUT,
RXBUFSTATUS,
RXCHARISCOMMA,
RXCHARISK,
RXCHECKINGCRC,
RXCLKCORCNT,
RXCOMMADET,
RXCRCERR,
RXDATA,
RXDISPERR,
RXLOSSOFSYNC,
RXNOTINTABLE,
RXREALIGN,
RXRECCLK,
RXRUNDISP,
TXBUFERR,
TXKERR,
TXN,
TXP,
TXRUNDISP,
CHBONDI,
CONFIGENABLE,
CONFIGIN,
ENCHANSYNC,
LOOPBACK,
POWERDOWN,
REFCLK,
REFCLK2,
REFCLKSEL,
BREFCLK,
BREFCLK2,
RXN,
RXP,
RXPOLARITY,
RXRESET,
RXUSRCLK,
RXUSRCLK2,
TXBYPASS8B10B,
TXCHARDISPMODE,
TXCHARDISPVAL,
TXCHARISK,
TXDATA,
TXFORCECRCERR,
TXINHIBIT,
TXPOLARITY,
TXRESET,
TXUSRCLK,
);
TXUSRCLK2
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide www.xilinx.com
1-800-255-7778
123
R
R
Appendix B: RocketIO Transceiver Cell Models
124 www.xilinx.com
1-800-255-7778
UG024 (v1.5) October 16, 2002
RocketIO™ Transceiver User Guide
advertisement
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Related manuals
advertisement
Table of contents
- 18 FPGA Transmit Interface
- 18 8B/10B Encoder
- 18 Disparity Control
- 19 Transmit FIFO
- 19 Serializer
- 19 Deserializer
- 20 Receiver Termination
- 20 8B/10B Decoder
- 21 Receiver Buffer
- 21 Clock Correction
- 22 Channel Bonding
- 23 Transmitter Buffer
- 38 Clock Signals
- 39 Clock Ratio
- 39 Digital Clock Manager (DCM) Examples
- 22 UG024 (v1.5) October
- 50 BREFCLK
- 52 Half-Rate Clocking Scheme
- 53 Multiplexed Clocking Scheme
- 53 Data Path Latency
- 54 Clock Dependency
- 56 Clock Correction Count
- 57 RX_LOSS_OF_SYNC_FSM
- 57 8B/10B Operation
- 59 Vitesse Disparity Example
- 69 8B/10B Serial Output Format
- 70 CRC Generation
- 71 CRC Latency
- 71 CRC Limitations
- 71 CRC Modes
- 75 Receive Data Path 32-bit Alignment
- 76 32-bit Alignment Design
- 87 Total Jitter (DJ + RJ)
- 89 Power Conditioning
- 71 UG024 (v1.5) October
- 91 High-Speed Serial Trace Design
- 94 Reference Clock
- 95 Powering the RocketIO Transceivers
- 95 The POWERDOWN Port
- 97 SmartModels
- 97 HSPICE
- 97 Synthesis
- 98 UCF Example
- 98 Implementing Clock Schemes
- 102 LOOPBACK
- 105 Setup/Hold Times of Inputs Relative to Clock
- 105 Clock to Output Delays
- 105 Clock Pulse Width
- 109 GT_AURORA
- 112 GT_CUSTOM
- 113 GT_ETHERNET
- 115 GT_FIBRE_CHAN
- 118 GT_INFINIBAND
- 121 GT_XAUI
- 112 UG024 (v1.5) October