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
Note: A small logic shim (included in the “block” level wrapper) is required to convert between the port differences between the
The MGT clock distribution in
A GT11CLK_MGT primitive is also instantiated to derive the reference clocks required by the MGT
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.
It can be seen from Figure
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
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 Figure
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 Answer Record 22477 for more information.
Figure 8-4 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 MGT (see Virtex-4 Errata). 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.
Ethernet | www.xilinx.com | 101 |