20.06.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!