XAUI

Block: XAUI Transceiver (XAUI)
Block Author: Pierre Yves Droz, Henry Chen
Document Author: Jason Manley

Contents

Summary

XAUI block for sending and receiving point-to-point, streaming data over the BEE2 and iBOB’s CX4 connectors. NOTE: A new version of this block is in development.

Mask Parameters

Parameter Variable Description
Demux demux Selects the width of the data bus. 1 for 64 bits, 2 for 32 bits.
Port port Selects the physical CX4 port on the iBOB or BEE2. The iBOB has two ports; the BEE2 has two for the control FPGA and four for each of the user FPGAs. CORR is not used by CASPER.
Pre-emphasis pre_emph Selects the pre-emaphasis to use over the physical link. Default: 3 (see Xilinx documentation)
Differential Swing swing Selects the size of the differential swing to use in mV. Default: 800 (see Xilinx documentation)

Ports

Port Dir Data Type Description
rx_get in boolean Used to request the next data word from the RX buffer.
rx_reset in boolean Resets the receive subsystem.
tx_data in ufix_64_0 or ufix_32_0 Accepts the next data word (64 or 32 bits) to be transmitted.
tx_outofband in ufix_8_0 or ufix_4_0 Accepts the next data word (8 bits if demux=1, 4 bits if demux=2) to be transmitted through the out-of-band channel.
tx_valid out boolean Clocks the transmit data into the transceiver. Data is clocked into the buffer while this line is high.
rx_data out ufix_64_0 Outputs the received data stream.
rx_outofband out ufix_8_0 or ufix_4_0 Outputs the out-of-band received data stream.
rx_empty out boolean Indicates that the receive buffer is empty.
rx_valid out boolean Indicates that data has been received.
rx_linkdown out boolean Indicates that the link is down (eg. faulty cable).
tx_full out boolean Indicates the transmit buffer is full.
rx_almost_full boolean inherited Indicates the receive buffer is full.

Description

Demux

Perhaps a misnomer, this parameter describes the width of the data bus rather than a selection of two muxed streams on one channel. At 156MHz XAUI clock, the maximum transmission speed is 64bits * 156.25 MHz = 10Gbit/s. For BEE or iBOB designs clocked at rates above 156MHz, clocking-in 64 bit data on every clock cycle would cause the XAUI block’s FIFO buffers to overflow. The demux option is provided which halves the input data bus width to 32 bits and enables data to be clocked-in on every FPGA clock cycle. Along with the data bus width, the out of band bus width is also halved to 4 bits.

Out of band signals

Out of band signals are guaranteed to arrive at the same time as the data word with which they were sent. Out-of-band data is only transmitted across the physical link if the input to tx_outofband changes and is clocked in as valid (tx_valid). In other words, if you keep tx_outofband constant, no additional bandwidth is consumed (the in-band signals are transmitted as normal). When data is clocked into the transmitter, it will appear out the receiver as if the tx_outofband and tx_data arrived simultaneously. Care should be taken to ensure that the data clocked into tx_outofband and tx_data does not exceed the XAUI’s maximum transmission rate (approximately 10Gbps for 156.25MHz clock). Each change of tx_outofband (be it one bit or eight bits) requires 64 bits (a full word) to transmit. This bus width is 8 bits if demux is not selected (set to 1), and 4 bits if it is set to 2.