Rx Fabric Interface And Channel Bonding; Status And Event Bus; Status Indication - Xilinx Virtex-4 RocketIO User Manual

Multi-gigabit transceiver
Hide thumbs Also See for Virtex-4 RocketIO:
Table of Contents

Advertisement

Chapter 3: PCS Digital Design Considerations

RX Fabric Interface and Channel Bonding

When channel bonding is used, RXRESET must be deasserted synchronously on all
channel-bonded MGTs. This is because of the way the fabric interface block distributes the
internal four bytes of data. A counter is used to select (load) data from the RXUSRCLK
domain when 1-byte and 2-byte fabric width is used. On the next RXUSRCLK2 clock, data
is shifted from MSB to LSB two bytes at a time. Data can be skewed if RXRESET is
deasserted asynchronously (or on different clock cycles to bonded MGTs). Therefore, in
1-byte and 2-byte modes, RXRESET must be deasserted synchronously on all channel-
bonded MGTs.

Status and Event Bus

The Virtex-4 design has merged several signals together to provide extra functionality over
the Virtex-II Pro design. The signals CHBONDDONE, RXBUFSTATUS, and
RXCLKCORCNT were previously used independently of each other to indicate status. In
the Virtex-4 design, these signals are concatenated together to provide a status and event
bus.
There are two modes of this concatenated bus, status mode and event mode. In status
mode, the bus indicates either the difference between the read and write pointers of the
receive side buffer or the skew of the last channel bond event.

Status Indication

In status mode, the RXSTATUS pins alternate between the buffer pointer difference and
channel bonding skew. The protocol is described by three sequential clocks (STATUS and
DATA are one RXUSRCLK in duration):
where:
Table 3-21
pointer Diff[5:0] holds the pointer difference between the receive write and read pointers:
Table 3-21: Signal Values for a Pointer Difference Status
Table 3-22
cbSkew[5:0] holds the skew between the MGT and the channel bonding master.
Table 3-22: Signal Values for a Channel Bonding Skew
132
<STATUS INDICATOR> <DATA0><DATA1>
STATUS INDICATOR can indicate either pointer difference or channel bonding skew,
DATA0 indicates status data 5:3, and
DATA1 indicates status data 2:0.
shows the signal values for a pointer difference status where the variable
Status
STATUS INDICATOR
DATA0
DATA1
shows the signal values for a channel bonding skew where the variable
Status
STATUS INDICATOR
www.xilinx.com
RXSTATUS[5]
RXSTATUS[4:3]
1'b0
2'b01
1'b0
2'b00
1'b0
2'b00
RXSTATUS[5]
RXSTATUS[4:3]
1'b0
2'b01
RXSTATUS[2:0]
3'b000
pointerDiff[5:3]
pointerDiff[2:0]
RXSTATUS[2:0]
3'b001
Virtex-4 RocketIO MGT User Guide
UG076 (v4.1) November 2, 2008
R

Advertisement

Table of Contents
loading

Table of Contents