Xilinx UG194 Virtex-5 FPGA Embedded Tri-Mode Ethernet MAC ...
Xilinx UG194 Virtex-5 FPGA Embedded Tri-Mode Ethernet MAC ...
Xilinx UG194 Virtex-5 FPGA Embedded Tri-Mode Ethernet MAC ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
R<br />
RX Elastic Buffer Implementations<br />
Selecting the Buffer Implementation from the GUI<br />
Serial Gigabit Media Independent Interface (SGMII)<br />
The GUI for the <strong>Ethernet</strong> <strong>MAC</strong> provides two options under the heading of SGMII<br />
Capabilities. These options are:<br />
Option 1: 10/100/1000 Mb/s clock tolerance compliant with <strong>Ethernet</strong> specification<br />
For this option, if the <strong>FPGA</strong> and PHY clocks are independent and each has<br />
100 ppm tolerance, an additional elastic buffer is required (100 slices and<br />
1 block RAM per <strong>Ethernet</strong> <strong>MAC</strong>).<br />
Option 2: 10/100/1000 Mb/s (restricted tolerance for clocks) OR 100/1000 Mb/s<br />
For this option, if 10 Mb/s is not required OR it is required but the <strong>FPGA</strong> and<br />
PHY clocks are closely related (see UG196, <strong>Virtex</strong>-5 RocketIO GTP Transceiver User<br />
Guide or UG198, <strong>Virtex</strong>-5 RocketIO GTX Transceiver User Guide), the RX buffer can<br />
be used (saves 100 slices and 1 block RAM per <strong>Ethernet</strong> <strong>MAC</strong>).<br />
Option 1, the default mode, provides the implementation using the RX elastic buffer in the<br />
<strong>FPGA</strong> logic. This alternative RX elastic buffer utilizes a single block RAM to create a buffer<br />
that is twice as large as the one present in the RocketIO serial transceiver, therefore<br />
consuming extra logic resources. However, this default mode provides reliable SGMII<br />
operation.<br />
Option 2 uses the RX elastic buffer in the RocketIO serial transceivers. This buffer, which is<br />
half the size of the buffer in Option 1, can potentially underflow or overflow during SGMII<br />
frame reception at 10 Mb/s operation (see “The <strong>FPGA</strong> RX Elastic Buffer Requirement”).<br />
However, in logical implementations where this case is proven reliable, this option is<br />
preferred because of its lower logic utilization.<br />
The <strong>FPGA</strong> RX Elastic Buffer Requirement<br />
Figure 6-29 illustrates a simplified diagram of a common situation where the<br />
<strong>Ethernet</strong> <strong>MAC</strong> in SGMII mode is interfaced to an external PHY device. Separate oscillator<br />
sources are used for the <strong>FPGA</strong> and the external PHY. The <strong>Ethernet</strong> specification uses clock<br />
sources with a 100 ppm tolerance. In Figure 6-29, the clock source for the PHY is slightly<br />
faster than the clock source to the <strong>FPGA</strong>. Therefore, during frame reception, the RX elastic<br />
buffer (implemented in the RocketIO serial transceiver in this example) starts to fill up.<br />
Following frame reception in the interframe gap period, idles are removed from the<br />
received datastream to return the RX elastic buffer to half-full occupancy. This task is<br />
performed by the clock correction circuitry (see UG196, <strong>Virtex</strong>-5 RocketIO GTP Transceiver<br />
User Guide or UG198, <strong>Virtex</strong>-5 RocketIO GTX Transceiver User Guide).<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 181<br />
<strong>UG194</strong> (v1.10) February 14, 2011