Xilinx 1000BASE-X User Manual
Page 101
Ethernet 1000BASE-X PCS/PMA or SGMII v9.1
101
UG155 March 24, 2008
RocketIO Logic with the Fabric Rx Elastic Buffer
R
Virtex-4 Devices for SGMII or Dynamic Standards Switching
The core is designed to integrate with the Virtex-4 MGT. The connections and logic
required between the core and MGT transceiver are illustrated in
–the signal
names and logic in the figure precisely match those delivered with the example design
when an MGT transceiver is used.
Note:
A small logic shim (included in the “block” level wrapper) is required to convert between the
port differences between the Virtex-II Pro and Virtex-4 MGTs. This is not illustrated in
The MGT clock distribution in Virtex-4 devices is column-based and consists of multiple
MGT tiles (that contain two MGTs each). For this reason, the MGT transceiver wrapper
delivered with the core always contains two MGT instantiations, even if only a single MGT
is in use.
illustrates only a single MGT for clarity.
A GT11CLK_MGT primitive is also instantiated to derive the reference clocks required by
the MGT column-based tiles. See the Virtex-4 RocketIO Multi-Gigabit Transceiver User Guide
(UG076) for more information about layout and clock distribution.
The 250 MHz reference clock from the GT11CLK_MGT primitive is routed to the MGT,
which is configured to internally synthesize a 125 MHz clock. This is output on the
TXOUTCLK1
port of the MGT and once placed onto global clock routing, can be used by all
core logic. This clock is input back into the MGT on the user interface clock port
txusrclk2
. With the attribute settings applied to the MGT from the example design, the
txusrclk
port is derived internally within the MGT using the internal clock dividers and
does not need to be provided from the FPGA fabric.
that the Rx Elastic Buffer is implemented in the FPGA fabric
between the MGT and the core. This replaces the Rx Elastic Buffer in the MGT (which is
bypassed).
This alternative Receiver Elastic Buffer uses a single block RAM to create a buffer twice as
large as the one present in the MGT. It is able to cope with larger frame sizes before clock
tolerances accumulate and result in emptying or filling of the buffer. This is necessary to
guarantee SGMII operation at 10 Mbps where each frame size is effectively 100 times larger
than the same frame would be at 1 Gbps because each byte is repeated 100 times (see
“Designing with Client-side GMII for the SGMII Standard,” page 59
In bypassing the MGT Rx Elastic Buffer, data is clocked out of the MGT synchronously to
rxrecclk1
. This clock can be placed on a BUFR component and is used to synchronize
the transfer of data between the MGT and the Elastic Buffer, as illustrated in
. See
also
“Virtex-4 RocketIO MGTs for SGMII or Dynamic Standards Switching Constraints,”
.
The MGT transceivers require a calibration block to be included in the fabric logic. The
example design provided with the core instantiates calibration blocks as required.
Calibration blocks require a clock source of between 25 to 50 MHz, which is shared with
the Dynamic Reconfiguration Port (DRP) of the MGT, named dclk in the example design.
See Xilinx
for more information.
also illustrates the TX_SIGNAL_DETECT and RX_SIGNAL_DETECT ports of the
calibration block, which should be driven to indicate whether or not dynamic data is being
transmitted and received through the MG
). However,
RX_SIGNAL_DETECT
is connected to the signal_detect port of the example design.
signal_detect
is intended to indicate to the core that valid data is being received. When
not asserted, the calibration block will switch the MGT into loopback to force dynamic data
through the MGT receiver path.