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.
<strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong><br />
<strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong><br />
User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
<strong>Xilinx</strong> is disclosing this user guide, manual, release note, and/or specification (the "Documentation") to you solely for use in the development<br />
of designs to operate with <strong>Xilinx</strong> hardware devices. You may not reproduce, distribute, republish, download, display, post, or transmit the<br />
Documentation in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise,<br />
without the prior written consent of <strong>Xilinx</strong>. <strong>Xilinx</strong> expressly disclaims any liability arising out of your use of the Documentation. <strong>Xilinx</strong> reserves<br />
the right, at its sole discretion, to change the Documentation without notice at any time. <strong>Xilinx</strong> assumes no obligation to correct any errors<br />
contained in the Documentation, or to advise you of any corrections or updates. <strong>Xilinx</strong> expressly disclaims any liability in connection with<br />
technical support or assistance that may be provided to you in connection with the Information.<br />
THE DOCUMENTATION IS DISCLOSED TO YOU “AS-IS” WITH NO WARRANTY OF ANY KIND. XILINX MAKES NO OTHER<br />
WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE DOCUMENTATION, INCLUDING ANY<br />
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY<br />
RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL<br />
DAMAGES, INCLUDING ANY LOSS OF DATA OR LOST PROFITS, ARISING FROM YOUR USE OF THE DOCUMENTATION.<br />
© 2006–2011 <strong>Xilinx</strong>, Inc. XILINX, the <strong>Xilinx</strong> logo, <strong>Virtex</strong>, Spartan, ISE, and other designated brands included herein are trademarks of <strong>Xilinx</strong><br />
in the United States and other countries. All other trademarks are the property of their respective owners.<br />
Revision History<br />
The following table shows the revision history for this document.<br />
Date Version Revision<br />
09/06/06 1.0 Initial <strong>Xilinx</strong> release on CD.<br />
10/13/06 1.1 Added further descriptions and figures to “SGMII RX Elastic Buffer” in Chapter 6.<br />
03/06/07 1.2 Modified RGMII IDELAY placement and inputs in Figure 6-3, Figure 6-4, Figure 6-6<br />
through Figure 6-10, and Figure 6-12 through Figure 6-17.<br />
08/08/07 1.3 Chapter 1: Minor grammatical edits in “Preamble” and “<strong>Mode</strong>l Considerations.”<br />
Chapter 2: Modified description of E<strong>MAC</strong>#_LTCHECK_DISABLE in Table 2-17.<br />
Chapter 3:<br />
Added “Standard Conditions” and “1000BASE-X/SGMII Specific Conditions”<br />
sections.<br />
Added new paragraph to “Enabled.”<br />
Modified paragraph in “Receiving a PAUSE Control Frame.”<br />
Chapter 4:<br />
Modified Figure 4-1.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com <strong>UG194</strong> (v1.10) February 14, 2011<br />
R
Date Version Revision<br />
08/08/07<br />
(cont’d)<br />
1.3<br />
(cont’d)<br />
Edited text in “Clocking Requirements.”<br />
Minor grammatical edits in paragraph above Table 4-16, and “<strong>Ethernet</strong> <strong>MAC</strong><br />
Configuration and Address Filter Access.”<br />
Chapter 6:<br />
Added IDELAY elements to GMII_RX_CLK and GMII_RXD[7:0] lines in Figure 6-6 to<br />
Figure 6-10.<br />
Added description of fixed-mode IDELAYs to “Gigabit Media Independent Interface<br />
(GMII).”<br />
Added IDELAY elements to RGMII_RXC lines between IBUFG and BUFG in<br />
Figure 6-12 to Figure 6-17.<br />
Modified description of IDELAY in “Reduced Gigabit Media Independent Interface<br />
(RGMII).”<br />
Modified speed data in Table 6-2.<br />
Modified <strong>Ethernet</strong> <strong>MAC</strong> connections in Figure 6-36 and Figure 6-37.<br />
03/31/08 1.4 Updated the following: Table 3-4, Figure 6-3, Figure 6-4, Figure 6-6, Figure 6-7,<br />
Figure 6-10, Figure 6-12, Figure 6-13, Figure 6-15, Figure 6-17, Figure 6-20,<br />
Figure 6-21, Figure 6-22 (and notes), Figure 6-34, Figure 6-35, Figure 6-36, Figure 6-39,<br />
and Figure 6-40.<br />
Updated the following sections: “<strong>Ethernet</strong> Communications Port for an <strong>Embedded</strong><br />
Processor,” “RocketIO Serial Transceiver Signals,” “Statistics Registers/Counters,”<br />
“GMII Clock Management for 1 Gb/s Only,” “GMII Clock Management for <strong>Tri</strong>-Speed<br />
Operation Using Clock Enables,” “16-Bit Data Client,” “RocketIO Serial Transceiver<br />
Logic Using the RX Elastic Buffer in <strong>FPGA</strong> Logic,” “SGMII Clock Management (LXT<br />
and SXT Devices),” “1000BASE-X PCS/PMA (16-Bit Data Client) <strong>Mode</strong>,” and “Host<br />
Clock.”<br />
Added LXT device information.<br />
Added Figure 6-23, Figure 6-24, Figure 6-36, and Figure 6-37.<br />
06/06/08 1.5 Chapter 2: Updated Table 2-16.<br />
Chapter 3:<br />
Updated “Client-Supplied FCS Passing,” page 53, “Frame Collisions - Half-Duplex<br />
10/100 Mb/s Operation Only,” page 56, “VLAN Tagged Frames,” page 66, and the<br />
enabled discussion in “Length/Type Field Error Checks.”<br />
Chapter 4:<br />
Updated Table 4-7, Table 4-8, Figure 4-1, Figure 4-4, and Figure 4-5.<br />
Updated “Introduction to the <strong>Ethernet</strong> <strong>MAC</strong> Host Interface.”<br />
Chapter 6: Updated “Overview of Operation.”<br />
Appendix C: Updated “DCR Bus Modifications.”<br />
Added Appendix D, “Differences between Soft IP Cores and the <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong><br />
<strong>MAC</strong>.”<br />
07/24/08 1.6 Updated “Transmitting a PAUSE Control Frame,” Table 5-6, and Table 5-7.<br />
10/17/08 1.7 Added HOSTE<strong>MAC</strong>1SEL signal to Figure 4-6 and Figure 4-7.<br />
Added host_stats_lsw_rdy and host_stats_msw_rdy signals to Figure 7-1.<br />
<strong>UG194</strong> (v1.10) February 14, 2011 www.xilinx.com TE<strong>MAC</strong> User Guide
Date Version Revision<br />
04/28/09 1.8 All chapters:<br />
Changed references to FXT devices to include both TXT and FXT devices.<br />
Replaced the term platform with the term device.<br />
Replaced the term Smart<strong>Mode</strong>l with the term SecureIP model.<br />
Chapter 2:<br />
Changed references to GTP transceiver to GTP/GTX transceiver in Figure 2-1,<br />
page 27, Figure 2-2, page 29, and Figure 2-3, page 32.<br />
Chapter 3:<br />
Revised the text of “Client-Supplied FCS Passing” on page 53.<br />
Chapter 5:<br />
Changed references to GTP transceiver to GTP/GTX transceiver in Figure 5-4,<br />
page 119, Figure 5-6, page 121, Figure 5-7, page 122, and Figure 5-8, page 130.<br />
Chapter 6:<br />
Revised Note 1 to indicate the clock input of IFD can be driven by a BUFIO in<br />
Figure 6-3, page 141, Figure 6-8, page 148, Figure 6-14, page 157, and<br />
Figure 6-15, page 159.<br />
Added Note 1 indicating a BUFG buffer can be replaced by a BUFR and the<br />
clock input of IFD can be driven by a BUFIO in Figure 6-4, page 142, Figure 6-6,<br />
page 145, Figure 6-7, page 147, and Figure 6-10, page 152.<br />
Added Note 1 indicating a BUFG buffer can be replaced by a BUFR and the<br />
clock input of IDDR can be driven by a BUFIO in Figure 6-12, page 154,<br />
Figure 6-13, page 156, Figure 6-16, page 160, and Figure 6-17, page 162.<br />
Where a RocketIO® transceiver is shown, added the term RocketIO in<br />
Figure 6-21, page 169, Figure 6-22, page 170, Figure 6-36, page 191, and<br />
Figure 6-37, page 192.<br />
Revised schematic by adding a BUFGMUX to the PHYE<strong>MAC</strong>#MIITXCLK<br />
input in Figure 6-8, page 148.<br />
Revised schematic by changing the I0 input source for the BUFGMUX on the<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN input in Figure 6-8, page 148.<br />
Revised schematic by adding a BUFG buffer between the transceiver<br />
REFCLKOUT output and the DCM CLKIN input in Figure 6-22, page 170,<br />
Figure 6-23, page 172, Figure 6-24, page 173, Figure 6-38, page 194, and<br />
Figure 6-39, page 195.<br />
Changed references to GTP transceiver to GTP/GTX transceiver in Figure 6-28,<br />
page 179, Figure 6-29, page 182, Figure 6-33, page 186, and Figure 6-41,<br />
page 198.<br />
Added link to UG198 in “RX Elastic Buffer Implementations” on page 181 and<br />
“The <strong>FPGA</strong> RX Elastic Buffer Requirement” on page 181.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com <strong>UG194</strong> (v1.10) February 14, 2011
Date Version Revision<br />
10/01/09 1.9 Chapter 1:<br />
Revised first paragraph in “Frame Transmission and Interframe Gap,” page 23.<br />
Chapter 2:<br />
Revised E<strong>MAC</strong>#_RXFLOWCTRL_ENABLE and<br />
E<strong>MAC</strong>#_TXFLOWCTRL_ENABLE descriptions in Table 2-17, page 45.<br />
Chapter 3:<br />
Revised first paragraph in “Flow Control Block,” page 73.<br />
Chapter 5:<br />
Revised Link Status description in Table 5-4, page 124.<br />
02/14/11 1.10 Updated description of E<strong>MAC</strong>#_PAUSEADDR[47:0] in Table 2-17.<br />
Added description of standard and alternative clock management to “Transmitter<br />
Statistics Vector” and “Receiver Statistics Vector.”<br />
Updated Table 4-14.<br />
Added “Use of Clock Correction Sequences.”<br />
<strong>UG194</strong> (v1.10) February 14, 2011 www.xilinx.com TE<strong>MAC</strong> User Guide
TE<strong>MAC</strong> User Guide www.xilinx.com <strong>UG194</strong> (v1.10) February 14, 2011
Table of Contents<br />
Guide Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
Additional Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
Additional Support Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
User Guide Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
Typographical. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
Online Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
Chapter 1: Introduction<br />
Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
Typical <strong>Ethernet</strong> Application Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
<strong>Ethernet</strong> Switch or Router. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
<strong>Ethernet</strong> Communications Port for an <strong>Embedded</strong> Processor . . . . . . . . . . . . . . . . . . . . 19<br />
<strong>Ethernet</strong> Protocol Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
<strong>Ethernet</strong> Sublayer Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
<strong>Ethernet</strong> Data Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
Frame Transmission and Interframe Gap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
Using the <strong>Embedded</strong> <strong>Ethernet</strong> <strong>MAC</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
Accessing the <strong>Ethernet</strong> <strong>MAC</strong> from the CORE Generator Tool . . . . . . . . . . . . . . . . . . . 25<br />
Simulating the <strong>Ethernet</strong> <strong>MAC</strong> using SecureIP <strong>Mode</strong>ls . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
Architecture Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
<strong>Ethernet</strong> <strong>MAC</strong> Configuration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />
<strong>Ethernet</strong> <strong>MAC</strong> Primitive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
<strong>Ethernet</strong> <strong>MAC</strong> Signal Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
Client-Side Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
Host Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
Management Data Input/Output (MDIO) Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
MII/GMII/RGMII Physical Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
RocketIO Serial Transceiver Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
Global Clock and Reset Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />
<strong>Ethernet</strong> <strong>MAC</strong> Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />
Chapter 3: Client Interface<br />
Transmit (TX) Client: 8-Bit Interface (without Clock Enables) . . . . . . . . . . . . . . . . 52<br />
Normal Frame Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
In-Band Parameter Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
Client-Supplied FCS Passing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
Client Underrun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
Back-to-Back Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />
Virtual LAN (VLAN) Tagged Frames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 7<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Maximum Permitted Frame Length/Jumbo Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
Frame Collisions - Half-Duplex 10/100 Mb/s Operation Only . . . . . . . . . . . . . . . . . . 56<br />
IFG Adjustment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />
Transmit (TX) Client: 8-Bit Interface (with Clock Enables) . . . . . . . . . . . . . . . . . . . 58<br />
Normal Frame Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />
Transmit (TX) Client: 16-Bit Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
Back-to-Back Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />
Receive (RX) Client: 8-Bit Interface (without Clock Enables) . . . . . . . . . . . . . . . . . 63<br />
Normal Frame Reception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />
Frame Reception with Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65<br />
Client-Supplied FCS Passing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
VLAN Tagged Frames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
Maximum Permitted Frame Length/Jumbo Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
Length/Type Field Error Checks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
Receive (RX) Client: 8-Bit Interface (with Clock Enables). . . . . . . . . . . . . . . . . . . . . 67<br />
Receive (RX) Client: 16-Bit Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
Address Filtering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />
Address Filter Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />
Client RX Data/Control Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
Flow Control Block. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />
Requirement for Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />
Flow Control Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />
Transmitting a PAUSE Control Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />
Receiving a PAUSE Control Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />
Flow Control Implementation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />
Statistics Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />
Transmitter Statistics Vector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />
Receiver Statistics Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />
Statistics Registers/Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />
Chapter 4: Host/DCR Bus Interfaces<br />
Introduction to the <strong>Ethernet</strong> <strong>MAC</strong> Host Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />
<strong>Ethernet</strong> <strong>MAC</strong> Register Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />
Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />
Address Filter Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
Using the Host Bus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />
Clocking Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />
Reading and Writing <strong>MAC</strong> Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . 98<br />
Reading and Writing Address Filter Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />
PCS/PMA Sublayer or External Device Access via MDIO . . . . . . . . . . . . . . . . . . . . . 100<br />
Using the DCR Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
Clocking Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
Device Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102<br />
Interfacing to a Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />
DCR Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />
<strong>Ethernet</strong> <strong>MAC</strong> Configuration and Address Filter Access . . . . . . . . . . . . . . . . . . . . . . 109<br />
PCS/PMA Sublayer or External Device Access via MDIO . . . . . . . . . . . . . . . . . . . . . 111<br />
Accessing <strong>FPGA</strong> Logic via Unused Host Bus Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br />
8 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Chapter 5: MDIO Interface<br />
Introduction to MDIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />
MDIO Bus System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />
MDIO Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117<br />
MDIO Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118<br />
MDIO Implementation in the <strong>Ethernet</strong> <strong>MAC</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />
Accessing MDIO through the Host Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />
Accessing PCS/PMA Sublayer Management Registers using MDIO . . . . . . . . . . . . 121<br />
1000BASE-X PCS/PMA Management Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122<br />
Link Status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />
SGMII Management Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />
Chapter 6: Physical Interface<br />
Introduction to the Physical Interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />
Media Independent Interface (MII). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140<br />
MII Standard Clock Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141<br />
MII Clock Management using Clock Enables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142<br />
Gigabit Media Independent Interface (GMII). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143<br />
GMII Clock Management for 1 Gb/s Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />
GMII Standard Clock Management for <strong>Tri</strong>-Speed Operation . . . . . . . . . . . . . . . . . . . 148<br />
GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Byte PHY . . . . . . . . . . . . 149<br />
GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Clock Enables. . . . . . . . . 151<br />
Reduced Gigabit Media Independent Interface (RGMII). . . . . . . . . . . . . . . . . . . . 153<br />
RGMII Clock Management for 1 Gb/s Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154<br />
RGMII Standard Clock Management for <strong>Tri</strong>-Speed Operation . . . . . . . . . . . . . . . . . 157<br />
RGMII Clock Management for <strong>Tri</strong>-Speed Operation Using Clock Enables . . . . . . . 160<br />
1000BASE-X PCS/PMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164<br />
<strong>Ethernet</strong> <strong>MAC</strong> PCS/PMA Sublayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164<br />
Introduction to the 1000BASE-X PCS/PMA Implementation. . . . . . . . . . . . . . . . . . . 164<br />
<strong>Ethernet</strong> <strong>MAC</strong> to RocketIO Serial Transceiver Connections . . . . . . . . . . . . . . . . . . . . 167<br />
1000BASE-X PCS/PMA Clock Management (LXT and SXT Devices) . . . . . . . . . . . . 169<br />
1000BASE-X PCS/PMA Clock Management (TXT and FXT Devices). . . . . . . . . . . . 171<br />
1000BASE-X Auto-Negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174<br />
Loopback When Using the PCS/PMA Sublayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177<br />
Serial Gigabit Media Independent Interface (SGMII) . . . . . . . . . . . . . . . . . . . . . . . 178<br />
<strong>Ethernet</strong> <strong>MAC</strong> PCS/PMA Sublayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178<br />
Introduction to the SGMII Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179<br />
SGMII RX Elastic Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180<br />
SGMII Clock Management (LXT and SXT Devices) . . . . . . . . . . . . . . . . . . . . . . . . . . . 191<br />
SGMII Clock Management (TXT and FXT Devices) . . . . . . . . . . . . . . . . . . . . . . . . . . . 193<br />
SGMII Auto-Negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196<br />
Loopback When Using the PCS/PMA Sublayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197<br />
Chapter 7: Interfacing to a Statistics Block<br />
Using the Host Bus to Access Statistics Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . 199<br />
Using the DCR Bus to Access Statistics Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . 201<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 9<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Appendix A: Pinout Guidelines<br />
Appendix B: <strong>Ethernet</strong> <strong>MAC</strong> Clocks<br />
<strong>Ethernet</strong> <strong>MAC</strong> Internal Clock Logic Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205<br />
<strong>Ethernet</strong> <strong>MAC</strong> Clock Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206<br />
<strong>Ethernet</strong> <strong>MAC</strong> Input Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206<br />
Clock Connections to and from <strong>FPGA</strong> Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206<br />
Standard Clocking Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207<br />
Advanced Clocking Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208<br />
Clock Definitions and Frequencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211<br />
PHYE<strong>MAC</strong>#GTXCLK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211<br />
PHYE<strong>MAC</strong>#MIITXCLK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212<br />
PHYE<strong>MAC</strong>#RXCLK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT, PHYE<strong>MAC</strong>#TXGMIIMIICLKIN . . . . . . . . . . . . 213<br />
E<strong>MAC</strong>#PHYTXCLK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT, CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN . . . . . . . 214<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT, CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN . . . . . . 215<br />
Appendix C: <strong>Virtex</strong>-4 to <strong>Virtex</strong>-5 <strong>FPGA</strong> Enhancements<br />
New Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217<br />
Unidirectional Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217<br />
Programmable Auto-Negotiation Link Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217<br />
GT Loopback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217<br />
DCR Bus Modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218<br />
Clocking Scheme Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218<br />
Host Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218<br />
Advanced Clocking Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218<br />
Modifications Related to the Physical Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219<br />
Collision Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219<br />
RGMII Version 2.0 Clock Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219<br />
Port Map Changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219<br />
Tie-Off Pins Changed to Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220<br />
Additional Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221<br />
Appendix D: Differences between Soft IP Cores and<br />
the <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong><br />
Features Exclusive to the <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong>. . . . . . . . . . . . . . . 223<br />
Features Exclusive to Soft IP Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223<br />
10 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
About This Guide<br />
Guide Contents<br />
Preface<br />
This user guide is a description of the <strong>Virtex</strong>®-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong><br />
<strong>MAC</strong>. Complete and up-to-date documentation of the <strong>Virtex</strong>-5 family of <strong>FPGA</strong>s is<br />
available on the <strong>Xilinx</strong>® website at http://www.xilinx.com/virtex5.<br />
This user guide contains the following chapters:<br />
Chapter 1, “Introduction,” introduces the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong><br />
<strong>Ethernet</strong> <strong>MAC</strong> and describes how to get started using the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
Chapter 2, “<strong>Ethernet</strong> <strong>MAC</strong> Overview,” describes the architecture of the <strong>Ethernet</strong><br />
<strong>MAC</strong>, defines its signal interface, and gives an overview of its possible configurations.<br />
Chapter 3, “Client Interface,” provides details of the client interface protocol and the<br />
<strong>Ethernet</strong> functionality associated with the client interface.<br />
Chapter 4, “Host/DCR Bus Interfaces,” describes how to access registers in the<br />
<strong>Ethernet</strong> <strong>MAC</strong> using either the generic host bus or the DCR bus. The <strong>Ethernet</strong> <strong>MAC</strong><br />
register descriptions are also found in this chapter.<br />
Chapter 5, “MDIO Interface,” describes the MDIO interface protocol and the MDIO<br />
implementation in the <strong>Ethernet</strong> <strong>MAC</strong>. The SGMII and 1000BASE-X PCS/PMA<br />
management register descriptions are also found in this chapter.<br />
Chapter 6, “Physical Interface,” describes all of the possible configurations for the<br />
physical interface and includes a description of optimized clocking schemes that can<br />
be used with the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
Chapter 7, “Interfacing to a Statistics Block,” provides details on how to use the<br />
<strong>Ethernet</strong> <strong>MAC</strong> with an <strong>FPGA</strong> logic-based statistics block.<br />
Appendix A, “Pinout Guidelines,” lists recommendations to improve design timing<br />
when using the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong>.<br />
Appendix B, “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” gives an overview of the internal clock logic of<br />
the <strong>Ethernet</strong> <strong>MAC</strong> and summarizes the main clocking schemes. Definitions of each<br />
clock and its frequency, in all possible <strong>Ethernet</strong> <strong>MAC</strong> configurations, are also<br />
provided.<br />
Appendix C, “<strong>Virtex</strong>-4 to <strong>Virtex</strong>-5 <strong>FPGA</strong> Enhancements,” documents some key<br />
enhancements and a few minor modifications.<br />
Appendix D, “Differences between Soft IP Cores and the <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong>,”<br />
explains the differences between soft IP cores and the <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> by<br />
listing the features exclusive to both.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 11<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Preface: About This Guide<br />
Additional Documentation<br />
The following documents are also available for download at<br />
http://www.xilinx.com/virtex5.<br />
<strong>Virtex</strong>-5 Family Overview<br />
The features and product selection of the <strong>Virtex</strong>-5 family are outlined in this overview.<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> Data Sheet: DC and Switching Characteristics<br />
This data sheet contains the DC and Switching Characteristic specifications for the<br />
<strong>Virtex</strong>-5 family.<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide<br />
This user guide includes chapters on:<br />
Clocking Resources<br />
Clock Management Technology (CMT)<br />
Phase-Locked Loops (PLLs)<br />
Block RAM<br />
Configurable Logic Blocks (CLBs)<br />
SelectIO Resources<br />
SelectIO Logic Resources<br />
Advanced SelectIO Logic Resources<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO GTP Transceiver User Guide<br />
This guide describes the RocketIO GTP transceivers available in the <strong>Virtex</strong>-5 LXT<br />
and SXT devices.<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO GTX Transceiver User Guide<br />
This guide describes the RocketIO GTX transceivers available in the <strong>Virtex</strong>-5 TXT and<br />
FXT devices.<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> Processor Block for PowerPC® 440 Designs<br />
This reference guide is a description of the embedded processor block available in the<br />
<strong>Virtex</strong>-5 TXT and FXT devices.<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> Integrated Endpoint Block User Guide for PCI Express Designs<br />
This guide describes the integrated Endpoint blocks in the <strong>Virtex</strong>-5 LXT, SXT, TXT, and<br />
FXT devices used for PCI Express® designs.<br />
XtremeDSP Design Considerations<br />
This guide describes the XtremeDSP slice and includes reference designs for using<br />
the DSP48E slice.<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> Configuration Guide<br />
This all-encompassing configuration guide includes chapters on configuration<br />
interfaces (serial and SelectMAP), bitstream encryption, Boundary-Scan and JTAG<br />
configuration, reconfiguration techniques, and readback through the SelectMAP and<br />
JTAG interfaces.<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> System Monitor User Guide<br />
The System Monitor functionality available in all the <strong>Virtex</strong>-5 devices is outlined in<br />
this guide.<br />
12 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Additional Support Resources<br />
User Guide Conventions<br />
Acronyms<br />
Additional Support Resources<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> Packaging and Pinout Specifications<br />
This specification includes the tables for device/package combinations and maximum<br />
I/Os, pin definitions, pinout tables, pinout diagrams, mechanical drawings, and<br />
thermal specifications.<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> PCB Designer’s Guide<br />
This guide provides information on PCB design for <strong>Virtex</strong>-5 devices, with a focus on<br />
strategies for making design decisions at the PCB and interface level.<br />
To search the database of silicon and software questions and answers, or to create a<br />
technical support case in WebCase, see the <strong>Xilinx</strong> website at:<br />
http://www.xilinx.com/support.<br />
This document uses the following conventions.<br />
Table 1-1 lists the acronyms and abbreviations that are used throughout this User Guide.<br />
Table 1-1: Acronyms and Abbreviations in this User Guide<br />
Acronym Definition<br />
Byte PHY Name given to a particular <strong>Ethernet</strong> <strong>MAC</strong> clocking scheme described<br />
in this User Guide<br />
CRC Cyclic Redundancy Check<br />
CSMA/CD Carrier Sense Multiple Access with Collision Detection<br />
DA Destination Address (<strong>MAC</strong> frame)<br />
DCR Device Control Register<br />
DMA Direct Memory Access<br />
EDK <strong>Embedded</strong> Development Kit (<strong>Xilinx</strong> software)<br />
FCS Frame Check Sequence (<strong>MAC</strong> frame)<br />
FIFO First In, First Out memory<br />
<strong>FPGA</strong> Field Programmable Gate Array<br />
GBIC Gigabit Interface Converter (optical transceiver)<br />
Gb/s Gigabits per second<br />
GMII Gigabit Media Independent Interface<br />
GTP High-speed serial transceivers offered in the <strong>Virtex</strong>-5 LXT and SXT<br />
platforms<br />
GTX High-speed serial transceivers offered in the <strong>Virtex</strong>-5 FXT and TXT<br />
platforms<br />
IFG Interframe Gap (<strong>MAC</strong> frame)<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 13<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Preface: About This Guide<br />
Table 1-1: Acronyms and Abbreviations in this User Guide<br />
Acronym Definition<br />
IOB Input/Output Block<br />
ISE <strong>Xilinx</strong> Integrated Software Environment<br />
L/T Length/Type field (<strong>MAC</strong> frame)<br />
LAN Local Area Network<br />
<strong>MAC</strong> Media Access Controller<br />
Mb/s Megabits per second<br />
MDIO Management Data Input/Output<br />
MII Media Independent Interface<br />
OP Operation code (read or write) for MDIO frame (sometimes called<br />
OPCODE in text)<br />
OSI Open Systems Interconnection<br />
PCB Printed Circuit Board<br />
PCS Physical Coding Sublayer<br />
PHY Physical Layer<br />
The term refers to all physical sublayers (PCS, PMA, PMD). Often<br />
applied to a device, e.g., BASE-T PHY: an external chip which can<br />
connect to the <strong>Ethernet</strong> <strong>MAC</strong> to perform this physical standard<br />
PHYAD Physical Address (MDIO Frame)<br />
PLB Processor Local Bus<br />
PMA Physical Medium Attachment<br />
PMD Physical Medium Dependent<br />
PRE Preamble (MDIO Frame)<br />
REGAD Register Address (MDIO Frame)<br />
RGMII Reduced Gigabit Media Independent Interface<br />
RX Receiver<br />
SA Source Address (<strong>MAC</strong> frame)<br />
SFD Start of Frame Delimiter (<strong>MAC</strong> frame)<br />
SFP Small Form-factor Pluggable (optical transceiver)<br />
SGMII Serial Gigabit Media Independent Interface<br />
ST Start Code (MDIO Frame) or Start of Frame<br />
Stats Abbreviation of Statistics<br />
TA Turnaround (MDIO Frame)<br />
TX Transmitter<br />
VLAN Virtual Local Area Network<br />
14 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Typographical<br />
Online Document<br />
User Guide Conventions<br />
This document uses the following typographical conventions. An example illustrates each<br />
convention.<br />
Convention Meaning or Use Example<br />
Italic font<br />
References to other documents<br />
Emphasis in text<br />
The following conventions are used in this document:<br />
See the <strong>Virtex</strong>-5 User Guide for<br />
more information.<br />
The address (F) is asserted after<br />
clock event 2.<br />
Underlined Text Indicates a link to a web page. http://www.xilinx.com/virtex5<br />
Blue text<br />
Convention Meaning or Use Example<br />
Cross-reference link to a location<br />
in the current document<br />
Blue, underlined text Hyperlink to a website (URL)<br />
See the section “Additional<br />
Documentation” for details.<br />
Refer to “Address Filtering” in<br />
Chapter 3 for details.<br />
Go to http://www.xilinx.com<br />
for the latest documentation.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 15<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Preface: About This Guide<br />
16 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
Introduction<br />
Key Features<br />
R<br />
Chapter 1<br />
This chapter introduces the <strong>Virtex</strong>®-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> and<br />
provides an overview of typical <strong>Ethernet</strong> applications and the <strong>Ethernet</strong> protocol. It also<br />
provides guidance on how to successfully incorporate the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Ethernet</strong> Media<br />
Access Controller (<strong>MAC</strong>) into a larger design using two alternative <strong>Xilinx</strong>® tools.<br />
The <strong>Virtex</strong>-5 device family contains paired embedded <strong>Ethernet</strong> <strong>MAC</strong>s that are<br />
independently configurable to meet all common <strong>Ethernet</strong> system connectivity needs.<br />
Table 1 in the <strong>Virtex</strong>-5 Family Overview lists the device type versus the number of available<br />
<strong>Ethernet</strong> <strong>MAC</strong>s.<br />
This chapter contains the following sections:<br />
“Key Features”<br />
“Typical <strong>Ethernet</strong> Application Overview”<br />
“<strong>Ethernet</strong> Protocol Overview”<br />
“Using the <strong>Embedded</strong> <strong>Ethernet</strong> <strong>MAC</strong>”<br />
The key features of the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Ethernet</strong> <strong>MAC</strong> are:<br />
Fully integrated 10/100/1000 Mb/s <strong>Ethernet</strong> <strong>MAC</strong><br />
Designed to the IEEE Std 802.3-2002 specification<br />
Configurable full-duplex operation in 10/100/1000 Mb/s<br />
Configurable half-duplex operation in 10/100 Mb/s<br />
Management Data Input/Output (MDIO) interface to manage objects in the physical<br />
layer<br />
User-accessible raw statistic vector outputs<br />
Support for VLAN frames<br />
Configurable interframe gap (IFG) adjustment in full-duplex operation<br />
Configurable in-band Frame Check Sequence (FCS) field passing on both transmit<br />
and receive paths<br />
Auto padding on transmit and stripping on receive paths<br />
Configured and monitored through a host interface<br />
Hardware-selectable Device Control Register (DCR) bus or generic host bus interface<br />
Configurable flow control through <strong>Ethernet</strong> <strong>MAC</strong> Control PAUSE frames;<br />
symmetrically or asymmetrically enabled<br />
Configurable support for jumbo frames of any length<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 17<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 1: Introduction<br />
Configurable receive address filter for unicast, general, and broadcast addresses<br />
Media Independent Interface (MII), Gigabit Media Independent Interface (GMII), and<br />
Reduced Gigabit Media Independent Interface (RGMII)<br />
1000BASE-X Physical Coding Sublayer (PCS) and a Physical Medium Attachment<br />
(PMA) sublayer included for use with the <strong>Virtex</strong>-5 RocketIO serial transceivers to<br />
provide a complete on-chip 1000BASE-X implementation<br />
Serial Gigabit Media Independent Interface (SGMII) supported through the RocketIO<br />
serial transceivers’ interfaces to external copper PHY layer for full-duplex operation<br />
Typical <strong>Ethernet</strong> Application Overview<br />
Typical applications for the <strong>Ethernet</strong> <strong>MAC</strong> include:<br />
“<strong>Ethernet</strong> Switch or Router”<br />
“<strong>Ethernet</strong> Communications Port for an <strong>Embedded</strong> Processor”<br />
<strong>Ethernet</strong> Switch or Router<br />
<strong>Virtex</strong>-5 Device<br />
Switch or<br />
Router<br />
Figure 1-1 illustrates a typical application for a single <strong>Ethernet</strong> <strong>MAC</strong>. The PHY side of the<br />
core is connected to an off-the-shelf <strong>Ethernet</strong> PHY device, which performs the BASE-T<br />
standard at 1 Gb/s, 100 Mb/s, and 10 Mb/s speeds. The PHY device can be connected<br />
using any of the following supported interfaces: GMII/MII, RGMII, or SGMII.<br />
The client side of the <strong>Embedded</strong> <strong>Ethernet</strong> <strong>MAC</strong> is connected to a FIFO to complete a single<br />
<strong>Ethernet</strong> port. This port is connected to a Switch or Routing matrix, which can contain<br />
several ports.<br />
For this application, the recommended place to start is in “Accessing the <strong>Ethernet</strong> <strong>MAC</strong><br />
from the CORE Generator Tool,” page 25. The CORE Generator tool provides an<br />
example design for the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> for any of the<br />
supported physical interfaces. A FIFO example is also generated, which can be used as the<br />
FIFO in the illustration, for a typical application.<br />
Packet FIFO<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
<strong>MAC</strong><br />
Figure 1-1: Typical Application: <strong>Ethernet</strong> Switch or Router<br />
GMII/MII,<br />
RGMII,<br />
or SGMII<br />
Copper<br />
Medium<br />
18 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
IOBs<br />
<strong>Tri</strong>-Speed<br />
BASE-T<br />
PHY<br />
1 Gb/s,<br />
100 Mb/s,<br />
or<br />
10 Mb/s<br />
<strong>UG194</strong>_1_01_072306<br />
R
R<br />
Typical <strong>Ethernet</strong> Application Overview<br />
<strong>Ethernet</strong> Communications Port for an <strong>Embedded</strong> Processor<br />
<strong>Virtex</strong>-5 Device<br />
Processor<br />
CPU<br />
Bus<br />
Figure 1-2 illustrates a typical application for a single <strong>Ethernet</strong> <strong>MAC</strong>. The PHY side of the<br />
core is connected to an off-the-shelf <strong>Ethernet</strong> PHY device, which performs the BASE-T<br />
standard at 1 Gb/s, 100 Mb/s, and 10 Mb/s speeds. The PHY device can be connected<br />
using any of the following supported interfaces: GMII/MII, RGMII, or SGMII.<br />
A soft core is provided as part of the <strong>Xilinx</strong> Platform Studio (XPS), <strong>Embedded</strong><br />
Development Kit (EDK) IP portfolio to connect the client interface of the <strong>Embedded</strong><br />
<strong>Ethernet</strong> <strong>MAC</strong> to the DMA port of a processor. DS537, XPSLL TE<strong>MAC</strong> Data Sheet, describes<br />
the XPS_LL_TE<strong>MAC</strong>, which can be instantiated for an intended processor application.<br />
DMA<br />
Engine<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
<strong>MAC</strong><br />
GMII/MII,<br />
RGMII,<br />
or SGMII<br />
Figure 1-2: Typical Application: <strong>Ethernet</strong> Communications Port for <strong>Embedded</strong> Processor<br />
Copper<br />
Medium<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 19<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
IOBs<br />
<strong>Tri</strong>-Speed<br />
BASE-T<br />
PHY<br />
1 Gb/s,<br />
100 Mb/s,<br />
or<br />
10 Mb/s<br />
<strong>UG194</strong>_1_02_081006
Chapter 1: Introduction<br />
<strong>Ethernet</strong> Protocol Overview<br />
This section gives an overview of where the <strong>Ethernet</strong> <strong>MAC</strong> fits into an <strong>Ethernet</strong> system and<br />
provides a description of some basic <strong>Ethernet</strong> terminology.<br />
<strong>Ethernet</strong> Sublayer Architecture<br />
OSI<br />
Reference<br />
<strong>Mode</strong>l<br />
Layers<br />
Application<br />
Presentation<br />
Session<br />
Transport<br />
Network<br />
Data Link<br />
PHY - Physical<br />
Figure 1-3 illustrates the relationship between the OSI reference model and the <strong>Ethernet</strong><br />
<strong>MAC</strong>, as defined in the IEEE 802.3 specification. The grayed-in layers show the<br />
functionality that the <strong>Ethernet</strong> <strong>MAC</strong> handles. Figure 1-3 also shows where the supported<br />
physical interfaces fit into the architecture.<br />
PCS - Physical Coding Sublayer<br />
PMA - Physical Medium Attachment<br />
PMD - Physical Medium Dependent<br />
PCS<br />
PMA<br />
PMD<br />
Medium<br />
1000BASE-X<br />
(e.g., Optical Fiber Medium)<br />
Figure 1-3: IEEE 802_3.2002 <strong>Ethernet</strong> <strong>Mode</strong>l<br />
<strong>MAC</strong> and <strong>MAC</strong> CONTROL Sublayer<br />
LAN<br />
CSMA/CD<br />
Layers<br />
Higher Layers<br />
LLC-Logical Link Control<br />
<strong>MAC</strong> Control (Optional)<br />
<strong>MAC</strong> - Media Access Control<br />
Reconciliation<br />
MII - Media Independent Interface<br />
The <strong>Ethernet</strong> <strong>MAC</strong> is defined in the IEEE 802.3 specification in clauses 2, 3, and 4. A <strong>MAC</strong><br />
is responsible for the <strong>Ethernet</strong> framing protocols described in “<strong>Ethernet</strong> Data Format” and<br />
error detection of these frames. The <strong>MAC</strong> is independent of and can connect to any type of<br />
physical layer device.<br />
The <strong>MAC</strong> Control sublayer is defined in the IEEE 802.3 specification, clause 31. This<br />
provides real-time flow control manipulation of the <strong>MAC</strong> sublayer.<br />
Both the <strong>MAC</strong> CONTROL and <strong>MAC</strong> sublayers are provided by the <strong>Ethernet</strong> <strong>MAC</strong> in all<br />
modes of operation.<br />
20 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
PCS<br />
PMA<br />
PMD<br />
Medium<br />
1000BASE-T<br />
100BASE-T<br />
10BASE-T<br />
(e.g., Copper Medium)<br />
GMII - Gigabit Media Independent Interface<br />
RGMII - Reduced Gigabit Media Independent Interface<br />
SGMII - Serial Gigabit Media Independent Interface<br />
GMII/MII<br />
RGMII<br />
SGMII<br />
<strong>UG194</strong>_1_03_072306<br />
R
R<br />
Number<br />
of Bytes<br />
Physical Sublayers PCS, PMA, and PMD<br />
<strong>Ethernet</strong> Protocol Overview<br />
The combination of the Physical Coding Sublayer (PCS), the Physical Medium Attachment<br />
(PMA), and the Physical Medium Dependent (PMD) sublayer constitute the physical<br />
layers for the protocol. Two main physical standards are specified:<br />
<strong>Ethernet</strong> Data Format<br />
Number<br />
of Bytes<br />
Preamble<br />
Preamble<br />
BASE-T PHYs provide a link between the <strong>MAC</strong> and copper mediums. This<br />
functionality is not offered within the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong><br />
<strong>MAC</strong>. However, external BASE-T PHY devices are readily available on the market.<br />
These can connect to the <strong>Ethernet</strong> <strong>MAC</strong>, using GMII/MII, RGMII, or SGMII<br />
interfaces.<br />
BASE-X PHYs provide a link between the <strong>MAC</strong> and (usually) fibre optic mediums.<br />
The <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> is capable of supporting the<br />
1 Gb/s BASE-X standard; 1000BASE-X PCS and PMA sublayers can be offered by<br />
connecting the <strong>Ethernet</strong> <strong>MAC</strong> to a RocketIO serial transceiver. An optical transceiver<br />
can be directly connected to the RocketIO serial transceiver to complete the PMD<br />
sublayer functionality.<br />
<strong>Ethernet</strong> data is encapsulated in frames, as shown in Figure 1-4, for standard <strong>Ethernet</strong><br />
frames. The fields in the frame are transmitted from left to right. The bytes within the<br />
frame are transmitted from left to right (from least significant bit to most significant bit<br />
unless specified otherwise). The <strong>Ethernet</strong> <strong>MAC</strong> can handle jumbo <strong>Ethernet</strong> frames where<br />
the data field can be much larger than 1500 bytes.<br />
7 1 6 6 2 0 - 1500 0 - 46 4<br />
Start of Frame Destination<br />
Delimiter (SFD) Address<br />
Source<br />
Address<br />
Length/<br />
Type<br />
64 - 1518 Bytes<br />
Figure 1-4: Standard <strong>Ethernet</strong> Frame Format<br />
Data Pad<br />
<strong>UG194</strong>_1_04_072306<br />
The <strong>Ethernet</strong> <strong>MAC</strong> can also accept VLAN frames. The VLAN frame format is shown in<br />
Figure 1-5. If the frame is a VLAN type frame, the <strong>Ethernet</strong> <strong>MAC</strong> accepts four additional<br />
bytes.<br />
7 1 6 6 2 2 2 0 - 1500 0 - 46 4<br />
Start of Frame Destination<br />
Delimiter (SFD) Address<br />
Source<br />
Address<br />
0x<br />
8100<br />
VLAN<br />
Tag<br />
Len/<br />
Type<br />
Data Pad FCS<br />
64 - 1522 bytes<br />
Figure 1-5: <strong>Ethernet</strong> VLAN Frame Format<br />
<strong>Ethernet</strong> pause/flow control frames can be transmitted and received by the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
Figure 3-29, page 75 shows how a pause/flow control frame differs from the standard<br />
<strong>Ethernet</strong> frame format.<br />
The following subsections describe the individual fields of an <strong>Ethernet</strong> frame and some<br />
basic functionality of the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 21<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
FCS<br />
<strong>UG194</strong>_1_05_020807
Chapter 1: Introduction<br />
Preamble<br />
For transmission, this field is automatically inserted by the <strong>Ethernet</strong> <strong>MAC</strong>. The preamble<br />
field was historically used for synchronization and contains seven bytes with the pattern<br />
0x55, transmitted from left to right. For reception, this field is always stripped from the<br />
incoming frame, before the data is passed to the client. The <strong>Ethernet</strong> <strong>MAC</strong> can receive<br />
<strong>Ethernet</strong> frames, even if the preamble does not exist, as long as a valid start of frame is<br />
available.<br />
Start of Frame Delimiter<br />
The start of frame delimiter field marks the start of the frame and must contain the pattern<br />
0xD5.<br />
For transmission on the physical interface, this field is automatically inserted by the<br />
<strong>Ethernet</strong> <strong>MAC</strong>. For reception, this field is always stripped from the incoming frame before<br />
the data is passed to the client.<br />
Destination Address<br />
The least significant bit of the destination address determines if the address is an<br />
individual/unicast (0) or group/multicast (1) address. Multicast addresses are used to<br />
group logically related stations. The broadcast address (destination address field is all 1s)<br />
is a multicast address that addresses all stations on the LAN. The <strong>Ethernet</strong> <strong>MAC</strong> supports<br />
transmission and reception of unicast, multicast, and broadcast packets.<br />
This field is the first field of the <strong>Ethernet</strong> frame that is always provided in the packet data<br />
for transmissions and is always retained in the receive packet data.<br />
Source Address<br />
For transmission, the source address of the <strong>Ethernet</strong> frame should be provided by the client<br />
because it is unmodified by the <strong>Ethernet</strong> <strong>MAC</strong>. The unicast address for the <strong>Ethernet</strong> <strong>MAC</strong><br />
is used as the source address when the <strong>Ethernet</strong> <strong>MAC</strong> creates pause control frames. The<br />
source address field is always retained in the receive packet data.<br />
Length/Type<br />
The value of this field determines if it is interpreted as a length or a type field, as defined<br />
by the IEEE 802.3 standard. A value of 1536 decimal or greater is interpreted by the<br />
<strong>Ethernet</strong> <strong>MAC</strong> as a type field.<br />
When used as a length field, the value in this field represents the number of bytes in the<br />
following data field. This value does not include any bytes that can be inserted in the pad<br />
field following the data field.<br />
A length/type field value of 0x8100 hex indicates that the frame is a VLAN frame, and a<br />
value of 0x8808 hex indicates a pause <strong>MAC</strong> control frame.<br />
For transmission, the <strong>Ethernet</strong> <strong>MAC</strong> does not perform any processing of the length/type<br />
field.<br />
For reception, if this field is a length field, the <strong>Ethernet</strong> <strong>MAC</strong> receive engine interprets this<br />
value and removes any padding in the pad field (if necessary). If the field is a length field<br />
and length/type checking is enabled, the <strong>Ethernet</strong> <strong>MAC</strong> compares the length against the<br />
actual data field length and flags an error if a mismatch occurs. If the field is a type field,<br />
the <strong>Ethernet</strong> <strong>MAC</strong> ignores the value and passes it along with the packet data with no<br />
further processing. The length/type field is always retained in the receive packet data.<br />
22 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Data<br />
Pad<br />
FCS<br />
<strong>Ethernet</strong> Protocol Overview<br />
The data field can vary from 0 to 1500 bytes in length for a normal frame. The <strong>Ethernet</strong><br />
<strong>MAC</strong> can handle jumbo frames of any length.<br />
This field is always provided in the packet data for transmissions and is always retained in<br />
the receive packet data.<br />
The pad field can vary from 0 to 46 bytes in length. This field is used to ensure that the<br />
frame length is at least 64 bytes in length (the preamble and SFD fields are not considered<br />
part of the frame for this calculation), which is required for successful CSMA/CD<br />
operation. The values in this field are used in the frame check sequence calculation but are<br />
not included in the length field value, if it is used. The length of this field and the data field<br />
combined must be at least 46 bytes. If the data field contains 0 bytes, the pad field is<br />
46 bytes. If the data field is 46 bytes or more, the pad field has 0 bytes.<br />
For transmission, this field can be inserted automatically by the <strong>Ethernet</strong> <strong>MAC</strong> or can be<br />
supplied by the client. If the pad field is inserted by the <strong>Ethernet</strong> <strong>MAC</strong>, the FCS field is<br />
calculated and inserted by the <strong>Ethernet</strong> <strong>MAC</strong>. If the pad field is supplied by the client, the<br />
FCS can be either inserted by the <strong>Ethernet</strong> <strong>MAC</strong> or provided by the client, as indicated by<br />
a configuration register bit.<br />
For reception, if the length/type field has a length interpretation, any pad field in the<br />
incoming frame is not be passed to the client, unless the <strong>Ethernet</strong> <strong>MAC</strong> is configured to<br />
pass the FCS field on to the client.<br />
The value of the FCS field is calculated over the destination address, source address,<br />
length/type, data, and pad fields using a 32-bit Cyclic Redundancy Check (CRC), as<br />
defined in IEEE Std 802.3-2002 para. 3.2.8:<br />
G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1 + x0 The CRC bits are placed in the FCS field with the x31 term in the left-most bit of the first<br />
byte, and the x0 term is the right-most bit of the last byte (i.e., the bits of the CRC are<br />
transmitted in the order x31 , x30 ,..., x1 , x0 ).<br />
For transmission, this field can be either inserted automatically by the <strong>Ethernet</strong> <strong>MAC</strong> or<br />
supplied by the client, as indicated by a configuration register bit.<br />
For reception, the incoming FCS value is verified on every frame. If an incorrect FCS value<br />
is received, the <strong>Ethernet</strong> <strong>MAC</strong> indicates to the client that it has received a bad frame. The<br />
FCS field can either be passed on to the client or be dropped by the <strong>Ethernet</strong> <strong>MAC</strong>, as<br />
indicated by a configuration register bit.<br />
Frame Transmission and Interframe Gap<br />
Frames are transmitted over the <strong>Ethernet</strong> medium with an interframe gap, as specified by<br />
IEEE Std 802.3. For full-duplex systems, the minimum IFG is 96 bit times (9.6 µs for<br />
10 Mb/s, 0.96 µs for 100 Mb/s, and 96 ns for 1 Gb/s). For half-duplex systems, the<br />
minimum IFG is 208 bit times and 144 bit times for RGMII and MII respectively. The<br />
defined IFG is a minimum and can be increased with a resulting decrease in throughput.<br />
The process for frame transmission is different for half-duplex and full-duplex systems.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 23<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 1: Introduction<br />
Half-Duplex Frame Transmission<br />
In a half-duplex system, the CSMA/CD media access method defines how two or more<br />
stations share a common medium.<br />
1. Even when it has nothing to transmit, the <strong>Ethernet</strong> <strong>MAC</strong> monitors the <strong>Ethernet</strong><br />
medium for traffic by watching the carrier sense signal (CRS) from the external PHY.<br />
Whenever the medium is busy (CRS = 1), the <strong>Ethernet</strong> <strong>MAC</strong> defers to the passing<br />
frame by delaying any pending transmission of its own.<br />
2. After the last bit of the passing frame (when the carrier sense signal changes from<br />
TRUE to FALSE), the <strong>Ethernet</strong> <strong>MAC</strong> starts the timing of the interframe gap.<br />
3. The <strong>Ethernet</strong> <strong>MAC</strong> resets the interframe gap timer if the carrier sense becomes TRUE<br />
during the period defined by “interframe gap part 1 (IFG1).” The IEEE Std 802.3 states<br />
that this should be the first 2/3 of the interframe gap timing interval (64 bit times) but<br />
can be shorter and as small as zero. The purpose of this option is to support a possible<br />
brief failure of the carrier sense signal during a collision condition and is described in<br />
paragraph 4.2.3.2.1 of the IEEE standard.<br />
4. The <strong>Ethernet</strong> <strong>MAC</strong> does not reset the interframe gap timer if carrier sense becomes<br />
TRUE during the period defined by “interframe gap part 2 (IFG2)” to ensure fair<br />
access to the bus. The IEEE Std 802.3 states that this should be the last 1/3 of the<br />
interframe gap timing interval.<br />
If, after initiating a transmission, the message collides with the message of another station<br />
(COL = 1), then each transmitting station intentionally continues to transmit (jam) for an<br />
additional predefined period (32 bit times for 10/100 Mb/s) to ensure propagation of the<br />
collision throughout the system. The station remains silent for a random amount of time<br />
(backoff) before attempting to transmit again.<br />
A station can experience a collision during the beginning of its transmission (the collision<br />
window) before its transmission has had time to propagate to all stations on the bus. After<br />
the collision window has passed, a transmitting station has acquired the bus. Subsequent<br />
collisions (late collisions) are avoided because all other (properly functioning) stations are<br />
assumed to have detected the transmission and are deferring to it.<br />
Full-Duplex Frame Transmission<br />
In a full-duplex system, there is a point-to-point dedicated connection between two<br />
<strong>Ethernet</strong> devices, capable of simultaneous transmit and receive with no possibility of<br />
collisions. The <strong>Ethernet</strong> <strong>MAC</strong> does not use the carrier sense signal from the external PHY<br />
because the medium is not shared, and the <strong>Ethernet</strong> <strong>MAC</strong> only needs to monitor its own<br />
transmissions. After the last bit of an <strong>Ethernet</strong> <strong>MAC</strong> frame transmission, the <strong>Ethernet</strong><br />
<strong>MAC</strong> starts the interframe gap timer and defers transmissions until it reaches 96 bit times<br />
the value represented by CLIENTE<strong>MAC</strong>#TXIFGDELAY.<br />
Using the <strong>Embedded</strong> <strong>Ethernet</strong> <strong>MAC</strong><br />
This section describes how the TE<strong>MAC</strong> User Guide can be easily incorporated into<br />
customer designs using <strong>Xilinx</strong> software:<br />
“Accessing the <strong>Ethernet</strong> <strong>MAC</strong> from the CORE Generator Tool”: The CORE Generator<br />
tool provides wrapper files to help instantiate and configure the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
“Simulating the <strong>Ethernet</strong> <strong>MAC</strong> using SecureIP <strong>Mode</strong>ls”: SecureIP models are<br />
provided with the ISE® software to allow the <strong>Ethernet</strong> <strong>MAC</strong> to be simulated both<br />
functionally and with timing information.<br />
24 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Using the <strong>Embedded</strong> <strong>Ethernet</strong> <strong>MAC</strong><br />
This section provides more information on how to use these <strong>Xilinx</strong> software tools to access<br />
the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
Accessing the <strong>Ethernet</strong> <strong>MAC</strong> from the CORE Generator Tool<br />
Generating the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> wrapper files greatly<br />
simplifies the use of the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Ethernet</strong> <strong>MAC</strong>. The <strong>Ethernet</strong> <strong>MAC</strong> is highly<br />
configurable, and not all pins/interfaces are required for every configuration. The CORE<br />
Generator tool allows the configuration of the <strong>Ethernet</strong> <strong>MAC</strong> to be selected using a GUI<br />
and generates HDL wrapper files for the configuration. These wrapper files hide much of<br />
the complexity of the <strong>Ethernet</strong> <strong>MAC</strong> by only bringing out interface signals for the selected<br />
configuration. Accessing the <strong>Ethernet</strong> <strong>MAC</strong> from the CORE Generator tool provides the<br />
following features:<br />
Allows selection of one or both of the two <strong>Ethernet</strong> <strong>MAC</strong>s (E<strong>MAC</strong>0/E<strong>MAC</strong>1) from<br />
the <strong>Embedded</strong> <strong>Ethernet</strong> <strong>MAC</strong> primitive<br />
Sets the values of the E<strong>MAC</strong>0/E<strong>MAC</strong>1 attributes based on user options<br />
Provides user-configurable <strong>Ethernet</strong> <strong>MAC</strong> physical interfaces<br />
Supports MII, GMII, RGMII v1.3, RGMII v2.0, SGMII, and 1000BASE-X<br />
PCS/PMA interfaces<br />
Provides off-chip connections for physical interfaces by instantiating RocketIO<br />
serial transceivers, and logic as required, for the selected physical interfaces<br />
Provides an optimized clocking scheme for the selected physical interface and<br />
instantiates the required clock buffers, DCMs, etc.<br />
Provides a simple FIFO-loopback example design, which is connected to the <strong>MAC</strong><br />
client interfaces<br />
Provides a simple demonstration test bench based on the selected configuration<br />
Generates VHDL or Verilog wrapper files<br />
For further details, refer to DS550, <strong>Virtex</strong>-5 <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> Wrapper Data<br />
Sheet.<br />
Simulating the <strong>Ethernet</strong> <strong>MAC</strong> using SecureIP <strong>Mode</strong>ls<br />
SecureIP models are encrypted versions of the actual HDL code that allow the user to<br />
simulate the actual functionality of the design without the overhead of simulating RTL. A<br />
Verilog LRM-IEEE Std 1364-2005 encryption-compliant simulator is required to use<br />
SecureIP.<br />
The SecureIP model of the <strong>Ethernet</strong> <strong>MAC</strong> is installed with the <strong>Xilinx</strong> tools and can be<br />
precompiled into UniSim and SimPrim libraries. These libraries are used for functional<br />
and timing simulations, respectively. In addition, VHDL and Verilog wrappers are<br />
generated by the <strong>Xilinx</strong> CORE Generator tool in the ISE software, as well as the scripts to<br />
simulate the SecureIP model.<br />
For further help using the <strong>Ethernet</strong> <strong>MAC</strong> SecureIP model, see the documentation supplied<br />
with ISE, especially the Synthesis and Simulation Design Guide at:<br />
http://www.xilinx.com/support/software_manuals.htm.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 25<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 1: Introduction<br />
<strong>Mode</strong>l Considerations<br />
If the <strong>Ethernet</strong> <strong>MAC</strong> is configured in either SGMII or 1000BASE-X PCS/PMA mode,<br />
simulation times are much longer than when using other physical interfaces due to the<br />
auto-negotiation sequence. It is recommended that auto negotiation is disabled (by setting<br />
the E<strong>MAC</strong>#_PHYINITAUTONEG_ENABLE attribute to FALSE or by disabling autonegotiation<br />
by writing through the host interface) to allow frame transmission to occur<br />
within a reasonable period of simulation time. See “<strong>Ethernet</strong> <strong>MAC</strong> Attributes,” page 42. If<br />
simulating auto-negotiation, then simulation time can be reduced by setting the<br />
programmable link timer to a small value. This is achieved by modifying the<br />
E<strong>MAC</strong>#_LINKTIMERVAL[8:0] attribute.<br />
26 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
<strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
Chapter 2<br />
This chapter describes the architecture of the <strong>Virtex</strong>®-5 <strong>Tri</strong>-<strong>Mode</strong> <strong>Embedded</strong> <strong>Ethernet</strong><br />
Media Access Controller (<strong>MAC</strong>) block. It contains the following sections:<br />
“Architecture Description”<br />
“<strong>Ethernet</strong> <strong>MAC</strong> Configuration Options”<br />
“<strong>Ethernet</strong> <strong>MAC</strong> Primitive”<br />
Architecture Description<br />
Client Client TX0<br />
Interface<br />
Client RX0<br />
Generic Host Bus<br />
<strong>FPGA</strong> Logic<br />
“<strong>Ethernet</strong> <strong>MAC</strong> Signal Descriptions”<br />
“<strong>Ethernet</strong> <strong>MAC</strong> Attributes”<br />
Figure 2-1 shows a block diagram of the <strong>Ethernet</strong> <strong>MAC</strong> block. The block contains two<br />
<strong>Ethernet</strong> <strong>MAC</strong>s sharing a single host interface.<br />
DCR Bus<br />
Client Client TX1<br />
Interface<br />
Client RX1<br />
Statistics IP0<br />
TX Stats MUX0 RX Stats MUX0<br />
32<br />
E<strong>MAC</strong>0<br />
<strong>Ethernet</strong> <strong>MAC</strong> Block<br />
Host Interface<br />
DCR Bridge<br />
E<strong>MAC</strong>1<br />
Figure 2-1: <strong>Embedded</strong> <strong>Ethernet</strong> <strong>MAC</strong> Block<br />
7<br />
32<br />
32 32<br />
TX Stats MUX1 RX Stats MUX1<br />
Statistics IP1<br />
7<br />
MII/GMII/RGMII TX0<br />
MII/GMII/RGMII RX0 Physical<br />
GTP/GTX Transceiver TX0 Interface<br />
GTP/GTX Transceiver RX0<br />
MDIO Interface 0<br />
MII/GMII/RGMII TX1<br />
MII/GMII/RGMII RX1 Physical<br />
GTP/GTX Transceiver TX1 Interface<br />
GTP/GTX Transceiver RX1<br />
MDIO Interface 1<br />
<strong>UG194</strong>_2_01_031009<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 27<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
The <strong>Ethernet</strong> <strong>MAC</strong>s within the block are the same. When describing the functionality of<br />
the <strong>Ethernet</strong> <strong>MAC</strong>s in this document, E<strong>MAC</strong># is used when the description is for E<strong>MAC</strong>0<br />
or E<strong>MAC</strong>1.<br />
Each <strong>Ethernet</strong> <strong>MAC</strong> has an independent transmit (TX) and receive (RX) datapath,<br />
providing full-duplex capability.<br />
The host interface of the <strong>Ethernet</strong> <strong>MAC</strong> provides access to the configuration registers of<br />
both <strong>Ethernet</strong> <strong>MAC</strong>s, illustrated in Figure 2-1. The host interface can be accessed using<br />
either the generic host bus or the DCR bus through the DCR bridge.<br />
The physical interface of each <strong>Ethernet</strong> <strong>MAC</strong> can be configured as either MII, GMII,<br />
RGMII, SGMII, or 1000BASE-X. Figure 2-1 shows all possible data ports for the physical<br />
interface; however, only one set of these TX and RX interfaces is active per <strong>Ethernet</strong> <strong>MAC</strong>,<br />
based on the selected physical interface configuration. The individual <strong>Ethernet</strong> <strong>MAC</strong>s can<br />
be configured to have different physical interfaces.<br />
Each <strong>Ethernet</strong> <strong>MAC</strong> has an optional Management Data I/O interface (MDIO), allowing<br />
access to the management registers of an external PHY or access to the physical interface<br />
management registers within the <strong>Ethernet</strong> <strong>MAC</strong> (used only when it is configured in either<br />
1000BASE-X or SGMII modes).<br />
Each <strong>Ethernet</strong> <strong>MAC</strong> outputs statistics vectors containing information about the <strong>Ethernet</strong><br />
frames seen on its transmit and receive datapaths. The statistics vectors are multiplexed to<br />
reduce the number of pins at the block boundary. An external module (Statistics IP0<br />
and/or Statistics IP1) can be designed and implemented in the <strong>FPGA</strong> logic to accumulate<br />
all the TX and RX datapath statistics of each <strong>Ethernet</strong> <strong>MAC</strong>. Additional information on<br />
interfacing to the statistics block is provided in Chapter 7, “Interfacing to a Statistics<br />
Block.”<br />
A detailed functional block diagram of a single <strong>Ethernet</strong> <strong>MAC</strong> is shown in Figure 2-2. This<br />
is labeled as E<strong>MAC</strong>#, which can represent either E<strong>MAC</strong>0 or E<strong>MAC</strong>1 from Figure 2-1.<br />
28 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
Generic<br />
Host Bus<br />
DCR Bus<br />
R<br />
Flow Control<br />
Interface<br />
Host<br />
Interface<br />
DCR Bridge<br />
E<strong>MAC</strong>#<br />
TX<br />
RX<br />
16- or 8-bit Client Interface<br />
Transmit Engine<br />
Flow Control<br />
Receive Engine<br />
Address Filter<br />
Registers<br />
MDIO Interface<br />
<strong>MAC</strong> Configuration<br />
Registers<br />
TX RX<br />
Statistics<br />
Clock Management<br />
Architecture Description<br />
Figure 2-2: Functional Block Diagram of Single <strong>Ethernet</strong> <strong>MAC</strong> (with Host Interface)<br />
MII/GMII/RGMII<br />
Interface to<br />
External PHY<br />
GTP/GTX Transceiver<br />
Interface<br />
MDIO Interface<br />
to External PHY<br />
The client interface shows the user transmit and receive interfaces connected to the<br />
transmit and receive engines of the <strong>Ethernet</strong> <strong>MAC</strong>, respectively. For detailed information<br />
on the protocol for data transmission and reception on this interface, refer to “Client<br />
Interface,” page 51.<br />
The flow control interface allows the client logic to force the physical layer to stop sending<br />
frames until the client is capable of accepting more. A description of how to use this<br />
interface from the client logic can be found in “Flow Control Block,” page 73.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> has a programmable address filter to accept or reject incoming frames<br />
on the receive datapath. The full functionality of the <strong>Ethernet</strong> <strong>MAC</strong> address filter is<br />
described in “Address Filtering,” page 71.<br />
The shared host interface can access the <strong>MAC</strong> Configuration registers and the Address<br />
Filter registers. See “Host/DCR Bus Interfaces,” page 85 to learn how to interface to any<br />
host via the generic host bus, or how to interface to a processor through the DCR bus.<br />
The host interface can also initiate transactions on the MDIO interface, when the MDIO<br />
interface is enabled. This allows the host interface to access the PCS Management Registers<br />
within the <strong>Ethernet</strong> <strong>MAC</strong>, when it is configured in 1000BASE-X or SGMII mode. It is also<br />
possible for the host interface to initiate transactions via the MDIO interface to an external<br />
PHY device. When the MDIO interface is enabled and the host interface is disabled, an<br />
external device can still access the PCS Management Registers of the <strong>Ethernet</strong> <strong>MAC</strong> when<br />
it is configured in 1000BASE-X or SGMII mode. Information on these configurations and<br />
on using the MDIO protocol to access PCS Management registers can be found in “MDIO<br />
Interface,” page 115.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 29<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
MII/GMII/RGMII Interface<br />
TX<br />
RX<br />
TX<br />
RX<br />
PCS/PMA Sublayer<br />
PCS Management<br />
Registers<br />
MDIO Arbitration<br />
<strong>UG194</strong>_c2_02_062309
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
On the physical side of the <strong>Ethernet</strong> <strong>MAC</strong>, a common MII/GMII/RGMII interface block is<br />
shown. When the physical interface of the <strong>Ethernet</strong> <strong>MAC</strong> is configured to MII/GMII or<br />
RGMII, these signals can be used via standard I/Os to connect to an external physical<br />
interface. When the physical interface is configured in 1000BASE-X or SGMII mode, the<br />
PCS/PMA sublayer block in the <strong>Ethernet</strong> <strong>MAC</strong> is enabled. The PCS/PMA sublayer block<br />
interfaces directly to the RocketIO serial transceiver. See “Physical Interface,” page 137<br />
for information on all physical interfaces, including clocking schemes and interfacing with<br />
serial transceivers.<br />
The clock management module automatically configures the output clocks to the correct<br />
frequency based on the internal speed of the <strong>Ethernet</strong> <strong>MAC</strong> (10 Mb/s, 100 Mb/s, or<br />
1000 Mb/s) and the <strong>Ethernet</strong> <strong>MAC</strong> mode settings (GMII, MII, RGMII, SGMII, and<br />
1000BASE-X).<br />
<strong>Ethernet</strong> <strong>MAC</strong> Configuration Options<br />
The <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> addresses all common<br />
configuration requirements for embedded <strong>Ethernet</strong> connectivity. This section provides an<br />
overview of the possible options for each <strong>Ethernet</strong> <strong>MAC</strong>. A full list of the mode<br />
configuration options is in Table 2-16, and further details on the configuration options and<br />
how to set these using the CORE Generator tool can be found in “Accessing the <strong>Ethernet</strong><br />
<strong>MAC</strong> from the CORE Generator Tool,” page 25.<br />
The choice of physical interface for the <strong>Ethernet</strong> <strong>MAC</strong> affects some of the other<br />
configuration options. Table 2-1 provides a breakdown of compatible parameters.<br />
Table 2-1: <strong>Ethernet</strong> <strong>MAC</strong> Block Static Configurations<br />
Physical<br />
Interface<br />
Client Interface Speed Advanced Clocking<br />
8-Bit 16-Bit<br />
<strong>Tri</strong>-<br />
Speed<br />
1G 10/100M<br />
Clock<br />
Enable<br />
Byte PHY<br />
MII only Y N N N Y Y N<br />
GMII only Y N N Y N N N<br />
GMII/MII<br />
Y N Y Y Y<br />
Y<br />
(<strong>Tri</strong>-speed)<br />
Y<br />
(<strong>Tri</strong>-speed)<br />
RGMII<br />
Y N Y Y Y<br />
Y<br />
(<strong>Tri</strong>-speed)<br />
N<br />
SGMII Y N Y Y Y N N<br />
1000BASE-X Y Y N Y N N N<br />
A 16-bit client interface can only be used when the <strong>Ethernet</strong> <strong>MAC</strong> physical interface is<br />
configured to be 1000BASE-X. The 16-bit client interface allows the <strong>Ethernet</strong> <strong>MAC</strong> to run at<br />
an internal clock frequency of greater than 125 MHz. The <strong>Ethernet</strong> <strong>MAC</strong> can run at a line<br />
rate greater than 1 Gb/s, as specified in IEEE Std 802.3. Therefore, this interface should not<br />
be used for <strong>Ethernet</strong> compliant designs, but it can be useful for backplane applications.<br />
The possible speed configurations for the <strong>Ethernet</strong> <strong>MAC</strong> vary with the physical interface<br />
configuration. An initial value for the speed can be chosen for the <strong>Ethernet</strong> <strong>MAC</strong> at<br />
instantiation, and depending on the mode, this speed can later be modified by writing to<br />
the <strong>Ethernet</strong> <strong>MAC</strong> mode configuration register.<br />
30 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
<strong>Ethernet</strong> <strong>MAC</strong> Primitive<br />
<strong>Ethernet</strong> <strong>MAC</strong> Primitive<br />
To minimize resource utilization, advanced (optimized) clocking schemes are available for<br />
specific physical interface configurations.<br />
In addition to the configuration options listed in Table 2-1, it is also possible to statically<br />
configure other interfaces:<br />
Out of the pair of <strong>Ethernet</strong> <strong>MAC</strong>s, either or both can be enabled. To use a single<br />
<strong>Ethernet</strong> <strong>MAC</strong>, a pair is instantiated and one can be disabled.<br />
The host interface can be enabled/disabled. This affects both <strong>Ethernet</strong> <strong>MAC</strong>s.<br />
Per <strong>Ethernet</strong> <strong>MAC</strong>, the MDIO interface can be enabled/disabled.<br />
Within the paired <strong>Ethernet</strong> <strong>MAC</strong>s, the individual <strong>MAC</strong>s can have different configuration<br />
settings.<br />
The <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> is available to the <strong>Xilinx</strong>® software<br />
tools as a library primitive, named TE<strong>MAC</strong>. This primitive encompasses the <strong>Ethernet</strong><br />
<strong>MAC</strong> block as illustrated in Figure 2-1; it includes a pair of <strong>Ethernet</strong> <strong>MAC</strong>s (E<strong>MAC</strong>0 and<br />
E<strong>MAC</strong>1) sharing a common host interface.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> primitive can be simplified for specific customer needs by using the<br />
CORE Generator tool to create <strong>Ethernet</strong> <strong>MAC</strong> wrappers. “Accessing the <strong>Ethernet</strong> <strong>MAC</strong><br />
from the CORE Generator Tool,” page 25 describes how to use the CORE Generator<br />
software to simplify the <strong>Ethernet</strong> <strong>MAC</strong> primitive.<br />
Figure 2-3 illustrates the <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> primitive. The # sign denotes that a port<br />
of that name exists for each of the <strong>Ethernet</strong> <strong>MAC</strong>s (E<strong>MAC</strong>0 and E<strong>MAC</strong>1) in the TE<strong>MAC</strong><br />
primitive.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 31<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
RX Client<br />
TX Client<br />
Flow<br />
Control<br />
Generic<br />
Host Bus<br />
DCR<br />
Bus<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXD[15:0]<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXDVLDMSW<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXBADFRAME<br />
E<strong>MAC</strong>#CLIENTRXFRAMEDROP<br />
E<strong>MAC</strong>#CLIENTRXSTATS[6:0]<br />
E<strong>MAC</strong>#CLIENTRXSTATSBYTEVLD<br />
E<strong>MAC</strong>#CLIENTRXSTATSVLD<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXD[15:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
CLIENTE<strong>MAC</strong>#TXDVLDMSW<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
CLIENTE<strong>MAC</strong>#TXIFGDELAY[7:0]<br />
CLIENTE<strong>MAC</strong>#TXFIRSTBYTE<br />
E<strong>MAC</strong>#CLIENTTXSTATS<br />
E<strong>MAC</strong>#CLIENTTXSTATSBYTEVLD<br />
E<strong>MAC</strong>#CLIENTTXSTATSVLD<br />
CLIENTE<strong>MAC</strong>#PAUSEREQ<br />
CLIENTE<strong>MAC</strong>#PAUSEVAL[15:0]<br />
HOSTADDR[9:0]<br />
HOSTCLK<br />
HOSTMIIMSEL<br />
HOSTOPCODE[1:0]<br />
HOSTREQ<br />
HOSTMIIMRDY<br />
HOSTRDDATA[31:0]<br />
HOSTWRDATA[31:0]<br />
HOSTE<strong>MAC</strong>1SEL<br />
DCRE<strong>MAC</strong>ENABLE<br />
E<strong>MAC</strong>DCRACK<br />
E<strong>MAC</strong>DCRDBUS[0:31]<br />
DCRE<strong>MAC</strong>ABUS[0:9]<br />
DCRE<strong>MAC</strong>CLK<br />
DCRE<strong>MAC</strong>DBUS[0:31]<br />
DCRE<strong>MAC</strong>READ<br />
DCRE<strong>MAC</strong>WRITE<br />
DCRHOSTDONEIR<br />
E<strong>MAC</strong>#<br />
Primitive<br />
Figure 2-3: <strong>Ethernet</strong> <strong>MAC</strong> Primitive<br />
RESET<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
E<strong>MAC</strong>#SPEEDIS10100<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
PHYE<strong>MAC</strong>#RXCLK<br />
PHYE<strong>MAC</strong>#RXD[7:0]<br />
PHYE<strong>MAC</strong>#RXDV<br />
PHYE<strong>MAC</strong>#RXER<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
E<strong>MAC</strong>#PHYTXCLK<br />
E<strong>MAC</strong>#PHYTXD[7:0]<br />
E<strong>MAC</strong>#PHYTXEN<br />
E<strong>MAC</strong>#PHYTXER<br />
PHYE<strong>MAC</strong>#COL<br />
PHYE<strong>MAC</strong>#CRS<br />
PHYE<strong>MAC</strong>#SIGNALDET<br />
PHYE<strong>MAC</strong>#PHYAD[4:0]<br />
E<strong>MAC</strong>#PHYENCOMMAALIGN<br />
E<strong>MAC</strong>#PHYLOOPBACKMSB<br />
E<strong>MAC</strong>#PHYMGTRXRESET<br />
E<strong>MAC</strong>#PHYMGTTXRESET<br />
E<strong>MAC</strong>#PHYPOWERDOWN<br />
E<strong>MAC</strong>#PHYSYNCACQSTATUS<br />
PHYE<strong>MAC</strong>#RXCLKCORCNT[2:0]<br />
PHYE<strong>MAC</strong>#RXBUFSTATUS[1:0]<br />
PHYE<strong>MAC</strong>#RXCHARISCOMMA<br />
PHYE<strong>MAC</strong>#RXCHARISK<br />
PHYE<strong>MAC</strong>#RXCHECKINGCRC<br />
PHYE<strong>MAC</strong>#RXCOMMADET<br />
PHYE<strong>MAC</strong>#RXDISPERR<br />
PHYE<strong>MAC</strong>#RXLOSSOFSYNC[1:0]<br />
PHYE<strong>MAC</strong>#RXNOTINTABLE<br />
PHYE<strong>MAC</strong>#RXRUNDISP<br />
PHYE<strong>MAC</strong>#RXBUFERR<br />
E<strong>MAC</strong>#CLIENTANINTERRUPT<br />
E<strong>MAC</strong>#PHYTXCHARDISPMODE<br />
E<strong>MAC</strong>#PHYTXCHARDISPVAL<br />
E<strong>MAC</strong>#PHYTXCHARISK<br />
PHYE<strong>MAC</strong>#TXBUFERR<br />
E<strong>MAC</strong>#PHYMCLKOUT<br />
PHYE<strong>MAC</strong>#MCLKIN<br />
PHYE<strong>MAC</strong>#MDIN<br />
E<strong>MAC</strong>#PHYMDOUT<br />
E<strong>MAC</strong>#PHYMDTRI<br />
32 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
Physical Interface<br />
GTP/GTX Transceiver<br />
Management<br />
Data I/O<br />
<strong>UG194</strong>_2_03_072306<br />
R
R<br />
<strong>Ethernet</strong> <strong>MAC</strong> Signal Descriptions<br />
<strong>Ethernet</strong> <strong>MAC</strong> Signal Descriptions<br />
This section defines all of the <strong>Ethernet</strong> <strong>MAC</strong> primitive signals. The signals are divided into<br />
the following categories:<br />
“Client-Side Signals”<br />
“Host Interface Signals”<br />
“Management Data Input/Output (MDIO) Signals”<br />
“MII/GMII/RGMII Physical Interface Signals”<br />
“RocketIO Serial Transceiver Signals”<br />
“Global Clock and Reset Signals”<br />
All the signals available in the <strong>Ethernet</strong> <strong>MAC</strong> primitive are described in this section. The #<br />
symbol denotes the E<strong>MAC</strong>0 or E<strong>MAC</strong>1 signals.<br />
Client-Side Signals<br />
TX Client Signals<br />
Table 2-2: Transmit Client Interface Signals<br />
Table 2-2 describes the client-side transmit signals in the <strong>Ethernet</strong> <strong>MAC</strong>. These signals are<br />
used to transmit data from the client to the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
Signal Direction Description<br />
CLIENTE<strong>MAC</strong>#TXD[15:0] Input Frame data for transmit. The datapath can be configured to be<br />
either 8 or 16 bits wide. Bits [7:0] are used for 8-bit width. The<br />
16-bit interface is available only in 1000BASE-X PCS/PMA mode.<br />
See “Transmit (TX) Client: 16-Bit Interface,” page 60.<br />
CLIENTE<strong>MAC</strong>#TXDVLD Input Asserted by the client to indicate a valid data input at<br />
CLIENTE<strong>MAC</strong>#TXD[7:0].<br />
CLIENTE<strong>MAC</strong>#TXDVLDMSW Input When the width of CLIENTE<strong>MAC</strong>#TXD is set to 16 bits, this signal<br />
denotes an odd number of bytes in the transmit datapath. In the<br />
frame with an odd number of bytes, the<br />
CLIENTE<strong>MAC</strong>#TXD[7:0] is valid on the last byte.<br />
When the width of CLIENTE<strong>MAC</strong>#TXD is set to 8 bits, this signal<br />
is connected to ground.<br />
CLIENTE<strong>MAC</strong>#TXFIRSTBYTE Input This signal should be tied Low.<br />
CLIENTE<strong>MAC</strong>#TXIFGDELAY[7:0] Input Configurable interframe gap (IFG) adjustment for full-duplex<br />
mode.<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN Input Asserted by the client to force the <strong>Ethernet</strong> <strong>MAC</strong> to corrupt the<br />
current frame.<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN Input See “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205.<br />
E<strong>MAC</strong>#CLIENTTXACK Output Handshake signal – Asserted when the <strong>Ethernet</strong> <strong>MAC</strong> accepts the<br />
first byte of data. On the next and subsequent rising clock edges,<br />
the client must provide the remainder of the frame data. See<br />
“Normal Frame Transmission Across Client Interface,” page 53.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 33<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
Table 2-2: Transmit Client Interface Signals (Cont’d)<br />
Signal Direction Description<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION Output Asserted by the <strong>Ethernet</strong> <strong>MAC</strong> to signal a collision on the<br />
medium. Any transmission in progress must be aborted. This<br />
signal is always deasserted in full-duplex mode.<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT Output Asserted by the <strong>Ethernet</strong> <strong>MAC</strong> at the same time as the<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION signal. The client should resupply<br />
the aborted frame to the <strong>Ethernet</strong> <strong>MAC</strong> for retransmission. This<br />
signal is always deasserted in full-duplex mode.<br />
E<strong>MAC</strong>#CLIENTTXSTATS Output The statistics data on the last data frame sent. The 32-bit TX raw<br />
statistics vector is output by one bit per cycle for statistics<br />
gathering. See “Transmitter Statistics Vector,” page 78.<br />
E<strong>MAC</strong>#CLIENTTXSTATSBYTEVLD Output Asserted if an <strong>Ethernet</strong> <strong>MAC</strong> frame byte is transmitted (including<br />
destination address to FCS). This is valid on every TX clock cycle.<br />
E<strong>MAC</strong>#CLIENTTXSTATSVLD Output Asserted by the <strong>Ethernet</strong> <strong>MAC</strong> after a frame transmission to<br />
indicate a valid E<strong>MAC</strong>#CLIENTTXSTATS output. See “Transmitter<br />
Statistics Vector,” page 78.<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT Output See “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205.<br />
RX Client Signals<br />
Table 2-3: Receive Client Interface Signals<br />
Table 2-3 describes the client-side receive signals. These signals are used by the <strong>Ethernet</strong><br />
<strong>MAC</strong> to transfer data to the client.<br />
Signal Direction Description<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN Input See “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205.<br />
E<strong>MAC</strong>#CLIENTRXD[15:0] Output Frame data received from the <strong>Ethernet</strong> <strong>MAC</strong>. The datapath can be<br />
configured to either 8 bits or 16 bits wide. Bits [7:0] are used for<br />
8-bit widths. The 16-bit interface is used in 1000BASE-X<br />
PCS/PMA mode. See “Receive (RX) Client: 16-Bit Interface,” page<br />
69.<br />
E<strong>MAC</strong>#CLIENTRXDVLD Output The <strong>Ethernet</strong> <strong>MAC</strong> indicates to the client the receipt of valid frame<br />
data.<br />
E<strong>MAC</strong>#CLIENTRXFRAMEDROP Output This signal is asserted to notify the client that an incoming receive<br />
frames destination address does not match any addresses in the<br />
address filter. The signal functions even when the address filter is<br />
not enabled.<br />
E<strong>MAC</strong>#CLIENTRXDVLDMSW Output This signal denotes an odd number of bytes in the receive<br />
datapath when the width of E<strong>MAC</strong>#CLIENTRXD is set to 16 bits.<br />
In a frame with an odd number of bytes, the<br />
E<strong>MAC</strong>#CLIENTRXD[7:0] byte is valid on the last byte.<br />
When the width of E<strong>MAC</strong>#CLIENTRXD is set to 8 bits, this signal<br />
should be left unconnected.<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME Output This signal is asserted after the last receipt of data to indicate the<br />
reception of a compliant frame.<br />
34 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Table 2-3: Receive Client Interface Signals (Cont’d)<br />
Signal Direction Description<br />
Flow Control Signals<br />
<strong>Ethernet</strong> <strong>MAC</strong> Signal Descriptions<br />
E<strong>MAC</strong>#CLIENTRXBADFRAME Output This signal is asserted after the last receipt of data to indicate the<br />
reception of a non-compliant frame.<br />
E<strong>MAC</strong>#CLIENTRXSTATS[6:0] Output The statistics data on the last received data frame. The 27-bit raw<br />
RX statistics vector is multiplexed into a 7-bits-per-RX clock cycle<br />
output for statistics gathering. See “Receiver Statistics Vector,”<br />
page 81.<br />
E<strong>MAC</strong>#CLIENTRXSTATSBYTEVLD Output Asserted if an <strong>Ethernet</strong> <strong>MAC</strong> frame byte (including destination<br />
address to FCS) is received. Valid on every RX clock cycle.<br />
E<strong>MAC</strong>#CLIENTRXSTATSVLD Output Asserted by the <strong>Ethernet</strong> <strong>MAC</strong> after the end of receiving a frame<br />
to indicate a valid E<strong>MAC</strong>#CLIENTRXSTATS[6:0] output.<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT Output See “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205.<br />
Table 2-4: Flow Control Interface Signals<br />
Table 2-4 describes the signals used by the client to request a flow control action from the<br />
transmit engine. The flow control block is designed per the specifications in clause 31 of the<br />
IEEE Std 802.3-2002 specification. Flow control frames received by the <strong>Ethernet</strong> <strong>MAC</strong> are<br />
automatically handled.<br />
Signal Direction Description<br />
CLIENTE<strong>MAC</strong>#PAUSEREQ Input Asserted by client to transmit a pause frame.<br />
CLIENTE<strong>MAC</strong>#PAUSEVAL[15:0] Input The amount of pause time for the transmitter as defined in the<br />
IEEE Std 802.3-2002 specification.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 35<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
Host Interface Signals<br />
Generic Host Bus Signals<br />
Table 2-5: Generic Host Bus Signals<br />
Table 2-5 outlines the host bus interface signals.<br />
Signal Direction Description<br />
HOSTCLK Input Clock supplied for running the host.<br />
HOSTOPCODE[1:0] Input Defines the operation to be performed over the MDIO interface. Bit 1 is also used<br />
in configuration register access. See “Using the Host Bus,” page 97.<br />
HOSTADDR[9:0] Input Address of register to be accessed.<br />
HOSTWRDATA[31:0] Input Data bus to write to register.<br />
HOSTRDDATA[31:0] Output Data bus to read from register.<br />
HOSTMIIMSEL Input When asserted, the MDIO interface is accessed. When deasserted, the <strong>Ethernet</strong><br />
<strong>MAC</strong> internal configuration registers are accessed.<br />
HOSTREQ Input Used to signal a transaction on the MDIO interface.<br />
HOSTE<strong>MAC</strong>1SEL Input This signal is asserted when E<strong>MAC</strong>1 is being accessed through the host interface<br />
and deasserted when E<strong>MAC</strong>0 is being accessed through the host interface. It is<br />
ignored when the host interface is not used.<br />
HOSTMIIMRDY Output When High, the MDIO interface has completed any pending transaction and is<br />
ready for a new transaction.<br />
Notes:<br />
1. All signals are synchronous to HOSTCLK and are active High.<br />
2. When using a host processor with the DCR bus, the host bus signals are used to read the optional <strong>FPGA</strong> logic-based statistics<br />
registers. See Chapter 7, “Interfacing to a Statistics Block.”<br />
36 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
DCR Bus Signals<br />
Table 2-6: DCR Bus Signals<br />
Table 2-6 outlines the DCR bus interface signals.<br />
Signal Direction Description<br />
DCRE<strong>MAC</strong>CLK Input Clock for the DCR interface.<br />
Management Data Input/Output (MDIO) Signals<br />
<strong>Ethernet</strong> <strong>MAC</strong> Signal Descriptions<br />
DCRE<strong>MAC</strong>ABUS[0:9] Input DCR address bus.<br />
Bits 0 through 7 must be driven to match DCR base address of one of the<br />
<strong>Ethernet</strong> <strong>MAC</strong>s, as set by the E<strong>MAC</strong>#_DCRBASEADDR[7:0] attribute. See<br />
Table 2-20, page 49 for more information on this attribute.<br />
DCRE<strong>MAC</strong>READ Input DCR read request.<br />
DCRE<strong>MAC</strong>WRITE Input DCR write request.<br />
DCRE<strong>MAC</strong>DBUS[0:31] Input DCR write data bus.<br />
DCRE<strong>MAC</strong>ENABLE Input When using the DCR bus, this signal is asserted High.<br />
When using the host bus interface, the signal is asserted Low.<br />
E<strong>MAC</strong>DCRDBUS[0:31] Output DCR read data bus.<br />
E<strong>MAC</strong>DCRACK Output DCR acknowledge.<br />
DCRHOSTDONEIR Output Interrupt signal to indicate when the <strong>Ethernet</strong> <strong>MAC</strong> register access is complete.<br />
Table 2-7: MDIO Interface Signals<br />
Table 2-7 describes the Management Data Input/Output (MDIO) interface signals. The<br />
MDIO format is defined in IEEE Std 802.3, clause 22.<br />
Signal Direction Description<br />
E<strong>MAC</strong>#PHYMCLKOUT Output Management clock derived from the host clock or PHYE<strong>MAC</strong>#MCLKIN.<br />
PHYE<strong>MAC</strong>#MCLKIN Input When the host is not used, access to the PCS must be provided by an<br />
external MDIO controller. In this situation, the management clock is an<br />
input to the E<strong>MAC</strong> block.<br />
PHYE<strong>MAC</strong>#MDIN Input Signal from the physical interface for communicating the configuration<br />
and status. If unused, must be tied High.<br />
E<strong>MAC</strong>#PHYMDOUT Output Signal to output the configuration and command to the physical<br />
interface.<br />
E<strong>MAC</strong>#PHYMDTRI Output The three-state control to accompany E<strong>MAC</strong>#PHYMDOUT.<br />
MII/GMII/RGMII Physical Interface Signals<br />
The <strong>Ethernet</strong> <strong>MAC</strong> has several signals that change definition depending on the selected<br />
physical interface configuration. This section describes the physical interface signals when<br />
the <strong>Ethernet</strong> <strong>MAC</strong> physical interface configuration is set to either MII, GMII, or RGMII.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 37<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
Data and Control Signals<br />
Table 2-8 shows the data and control signals for the different physical interface modes. The<br />
functionality of each of these signals is defined after the static configuration mode is set.<br />
This is achieved via attributes, as described in “<strong>Ethernet</strong> <strong>MAC</strong> Attributes,” page 42.<br />
Table 2-8: PHY Data and Control Signals<br />
Signal Direction <strong>Mode</strong> Description<br />
E<strong>MAC</strong>#PHYTXEN Output<br />
E<strong>MAC</strong>#PHYTXER Output<br />
E<strong>MAC</strong>#PHYTXD[7:0] Output<br />
PHYE<strong>MAC</strong>#RXDV Input<br />
PHYE<strong>MAC</strong>#RXER Input<br />
PHYE<strong>MAC</strong>#RXD[7:0] Input<br />
GMII<br />
RGMII<br />
The data enable control signal to the PHY.<br />
RGMII The RGMII_TX_CTL_RISING signal to the PHY.<br />
10/100 MII<br />
GMII<br />
The error control signal to the PHY.<br />
RGMII The RGMII_TX_CTL_FALLING signal to the PHY.<br />
10/100 MII<br />
E<strong>MAC</strong>#PHYTXD[3:0] is the transmit data bus to the<br />
PHY. E<strong>MAC</strong>#PHYTXD[7:4] are driven Low.<br />
GMII The transmit data signal to the PHY.<br />
RGMII<br />
SGMII<br />
1000BASE-X<br />
10/100 MII<br />
GMII<br />
E<strong>MAC</strong>#PHYTXD[3:0] are the RGMII_TXD_RISING<br />
signals and E<strong>MAC</strong>#PHYTXD[7:4] are the<br />
RGMII_TXD_FALLING signals to the PHY.<br />
The TX_DATA signal to the RocketIO serial transceiver.<br />
The data valid control signal from the PHY.<br />
RGMII The RGMII_RX_CTL_RISING signal.<br />
SGMII The RXREALIGN signal from the RocketIO serial<br />
transceiver.<br />
1000BASE-X<br />
10/100 MII<br />
GMII<br />
The error control signal from the PHY.<br />
RGMII The RGMII_RX_CTL_FALLING signal from the PHY.<br />
10/100 MII<br />
PHYE<strong>MAC</strong>#RXD[3:0] are the received data signals<br />
from the PHY. PHYE<strong>MAC</strong>#RXD[7:4] are left<br />
unconnected.<br />
GMII The received data signal to the PHY.<br />
RGMII<br />
PHYE<strong>MAC</strong>#RXD[3:0] are the RGMII_RXD_RISING<br />
signals and PHYE<strong>MAC</strong>#RXD[7:4] are the<br />
RGMII_RXD_FALLING signals from the PHY.<br />
SGMII The RX_DATA signal from the RocketIO serial<br />
transceiver.<br />
1000BASE-X<br />
38 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Table 2-8: PHY Data and Control Signals (Cont’d)<br />
Signal Direction <strong>Mode</strong> Description<br />
PHYE<strong>MAC</strong>#COL Input<br />
10/100 MII<br />
PHYE<strong>MAC</strong>#CRS Input 10/100 MII<br />
<strong>Ethernet</strong> <strong>MAC</strong> Signal Descriptions<br />
The usage of the <strong>Ethernet</strong> <strong>MAC</strong> clock signals associated with the physical interface also<br />
changes, based on the selected configuration. This is fully described in Appendix B,<br />
“<strong>Ethernet</strong> <strong>MAC</strong> Clocks.” Table 2-9 lists the physical interface clock signals and references<br />
the associated descriptions of each clock.<br />
Table 2-9: PHY Clock Signals<br />
Table 2-10 shows <strong>Ethernet</strong> <strong>MAC</strong> output that indicates the current operating speed of the<br />
<strong>Ethernet</strong> <strong>MAC</strong>.<br />
RocketIO Serial Transceiver Signals<br />
The collision control signal from the PHY, used in halfduplex<br />
mode.<br />
SGMII The TXRUNDISP signal from the RocketIO serial<br />
transceiver.<br />
1000BASE-X<br />
The carrier sense control signal from the PHY, used in<br />
half-duplex mode.<br />
Signal Direction Description<br />
PHYE<strong>MAC</strong>#MIITXCLK Input See “PHYE<strong>MAC</strong>#MIITXCLK,” page 212.<br />
E<strong>MAC</strong>#PHYTXCLK Output See “E<strong>MAC</strong>#PHYTXCLK,” page 214.<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT Output<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN Input<br />
See “E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT,<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN,” page 213.<br />
See “E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT,<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN,” page 213.<br />
PHYE<strong>MAC</strong>#RXCLK Input See “PHYE<strong>MAC</strong>#RXCLK,” page 212.<br />
Table 2-10: Physical Interface Speed Signal<br />
Signal Direction Description<br />
E<strong>MAC</strong>#SPEEDIS10100 Output When asserted High, the physical interface is operating at 10 Mb/s or<br />
100 Mb/s.<br />
When asserted Low, the physical interface is operating at 1 Gb/s.<br />
RocketIO serial transceivers are defined by device family in the following way:<br />
<strong>Virtex</strong>-5 LXT and SXT devices: RocketIO GTP transceivers<br />
<strong>Virtex</strong>-5 TXT and FXT devices: RocketIO GTX transceivers<br />
RocketIO GTP serial transceivers are placed as dual transceiver GTP_DUAL tiles in<br />
<strong>Virtex</strong>-5 LXT and SXT devices. RocketIO GTX serial transceivers are placed as dual<br />
transceiver GTX_DUAL tiles in <strong>Virtex</strong>-5 TXT and FXT devices. Throughout this guide, the<br />
term RocketIO transceiver is used to represent any or all of the RocketIO transceivers; the<br />
RocketIO transceiver that is specific to the desired target device should be selected.<br />
Table 2-11 shows the signals used to connect the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Ethernet</strong> <strong>MAC</strong> to the<br />
RocketIO serial transceiver (see the UG196, <strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO GTP Transceiver User<br />
Guide and UG198, <strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO GTX Transceiver User Guide).<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 39<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
Table 2-11: RocketIO Serial Transceiver Connections<br />
Signal Direction Description<br />
E<strong>MAC</strong>#PHYENCOMMAALIGN Output Enable RocketIO serial transceiver PMA layer to realign to<br />
commas.<br />
E<strong>MAC</strong>#PHYLOOPBACKMSB Output Perform loopback testing in the RocketIO serial transceiver from<br />
TX to RX.<br />
E<strong>MAC</strong>#PHYMGTRXRESET Output Reset to RocketIO serial transceiver RXRESET.<br />
E<strong>MAC</strong>#PHYMGTTXRESET Output Reset to RocketIO serial transceiver TXRESET.<br />
E<strong>MAC</strong>#PHYPOWERDOWN Output Power-down the RocketIO serial transceiver.<br />
E<strong>MAC</strong>#PHYSYNCACQSTATUS Output The output from the receiver’s synchronization state machine of<br />
IEEE Std 802.3, clause 36.<br />
When asserted High, the received bitstream is synchronized. The<br />
state machine is in one of the SYNC_ACQUIRED states of IEEE Std<br />
802.3, figures 36-39.<br />
When deasserted Low, no synchronization has been obtained.<br />
E<strong>MAC</strong>#PHYTXCHARDISPMODE Output Set running disparity for current byte.<br />
E<strong>MAC</strong>#PHYTXCHARDISPVAL Output Set running disparity value.<br />
E<strong>MAC</strong>#PHYTXCHARISK Output K character transmitted in TXDATA.<br />
PHYE<strong>MAC</strong>#RXBUFSTATUS[1:0] Input Receiver Elastic Buffer Status: Bit 1 asserted indicates overflow or<br />
underflow.<br />
PHYE<strong>MAC</strong>#RXCHARISCOMMA Input Comma detected in RXDATA.<br />
PHYE<strong>MAC</strong>#RXCHARISK Input K character received or extra data bit in RXDATA. When<br />
RXNOTINTABLE is asserted, this signal becomes the tenth bit in<br />
RXDATA.<br />
PHYE<strong>MAC</strong>#RXCHECKINGCRC Input Reserved - tied to GND.<br />
PHYE<strong>MAC</strong>#RXBUFERR Input Reserved - tied to GND.<br />
PHYE<strong>MAC</strong>#RXCOMMADET Input Reserved - tied to GND.<br />
PHYE<strong>MAC</strong>#RXDISPERR Input Disparity error in RXDATA.<br />
PHYE<strong>MAC</strong>#RXLOSSOFSYNC[1:0] Input Reserved - tied to GND.<br />
PHYE<strong>MAC</strong>#RXNOTINTABLE Input Indicates non-existent 8B/10 code.<br />
PHYE<strong>MAC</strong>#RXRUNDISP Input Running disparity in the received serial data. When<br />
RXNOTINTABLE is asserted in RXDATA, this signal becomes the<br />
ninth data bit.<br />
PHYE<strong>MAC</strong>#RXCLKCORCNT[2:0] Input Status showing the occurrence of a clock correction.<br />
PHYE<strong>MAC</strong>#TXBUFERR Input TX buffer error (overflow or underflow).<br />
40 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Table 2-12: PCS/PMA Signals<br />
Table 2-12 shows the PCS/PMA signals.<br />
Signal Direction Description<br />
Global Clock and Reset Signals<br />
Global Clock Signal<br />
<<br />
Table 2-13: Global Clock Signals<br />
<strong>Ethernet</strong> <strong>MAC</strong> Signal Descriptions<br />
PHYE<strong>MAC</strong>#PHYAD[4:0] Input Physical interface address of MDIO register set for the PCS<br />
sublayer.<br />
PHYE<strong>MAC</strong>#SIGNALDET Input Signal direct from PMD sublayer indicating the presence of light<br />
detected at the optical receiver, as defined in IEEE Std 802.3,<br />
clause 36. If asserted High, the optical receiver has detected light. If<br />
deasserted Low, indicates the absence of light.<br />
If unused, this signal should be tied High for correct operation.<br />
E<strong>MAC</strong>#CLIENTANINTERRUPT Output Interrupt upon auto-negotiation.<br />
Table 2-13 shows the global clock signal that is necessary for most configurations of the<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Ethernet</strong> <strong>MAC</strong>. See Appendix B, “<strong>Ethernet</strong> <strong>MAC</strong> Clocks” for further<br />
details.<br />
Signal Direction Description<br />
PHYE<strong>MAC</strong>#GTXCLK Input Clock supplied by the user to derive the other transmit clocks.<br />
Clock tolerance must be within the IEEE Std 802.3-2002<br />
specification.<br />
Reset Signal<br />
Table 2-14: Reset Signal<br />
Table 2-14 describes the Reset signal.<br />
Signal Direction Description<br />
Reset Input Asynchronous reset of the entire <strong>Ethernet</strong> <strong>MAC</strong>.<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED Signal<br />
Table 2-15 describes the CLIENTE<strong>MAC</strong>#DCMLOCKED signal.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 41<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
Table 2-15: CLIENTE<strong>MAC</strong>#DCMLOCKED Signal<br />
Signal Direction Description<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED Input If a DCM is used to derive any of the clock signals, the LOCKED<br />
port of the DCM must be connected to the<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED port. The <strong>Ethernet</strong> <strong>MAC</strong> is held in reset<br />
until CLIENTE<strong>MAC</strong>#DCMLOCKED is asserted High. If the RocketIO<br />
serial transceiver PLL is used, the PLLLKDET signal should be<br />
ANDed with the DCM LOCK signal.<br />
If a DCM is not used, both CLIENTE<strong>MAC</strong>#DCMLOCKED ports from<br />
E<strong>MAC</strong>0 and E<strong>MAC</strong> 1 must be tied High.<br />
If any <strong>Ethernet</strong> <strong>MAC</strong> is not used, CLIENTE<strong>MAC</strong>#DCMLOCKED must be<br />
tied to High.<br />
<strong>Ethernet</strong> <strong>MAC</strong> Attributes<br />
This section describes the attributes (control parameters) that are used to configure the<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong>. Some of these attributes control the<br />
static configuration of the <strong>Ethernet</strong> <strong>MAC</strong> and others are used to preconfigure the internal<br />
control registers. The values of these attributes are loaded into the <strong>Ethernet</strong> <strong>MAC</strong> at powerup<br />
or when the <strong>Ethernet</strong> <strong>MAC</strong> is reset (1) .<br />
The attributes are divided into five sections: mode configuration, <strong>MAC</strong> configuration,<br />
physical interface, address filter, and DCR base address attributes.<br />
The mode configuration attributes control the static behavior of the <strong>Ethernet</strong> <strong>MAC</strong>,<br />
including whether the <strong>Ethernet</strong> <strong>MAC</strong> has a host interface, the type of physical interface,<br />
the width of the client interface and whether the MDIO interface is enabled. These<br />
attributes are not dynamically reconfigurable.<br />
All other attributes described in Table 2-16 (unless stated otherwise) define default values<br />
for internal registers. If the host interface is not enabled on the <strong>Ethernet</strong> <strong>MAC</strong>, these<br />
attributes allow the user to set the internal control register defaults. If the host interface is<br />
enabled (by setting the E<strong>MAC</strong>#_HOST_ENABLE attribute to be TRUE), then the host<br />
interface can be used to dynamically change the associated register contents or to read the<br />
register contents.<br />
1. An attribute value of TRUE is translated into a bit value of 1; a value of FALSE equals a bit value of 0.<br />
42 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Table 2-16: <strong>Mode</strong> Configuration Attributes<br />
Attribute Type Description<br />
Attribute to Configure Default Register Values for<br />
Management Configuration Register<br />
<strong>Ethernet</strong> <strong>MAC</strong> Attributes<br />
See “Management Configuration Register,” page 94 for register<br />
details.<br />
The MDIO interface can be enabled/disabled using the host<br />
interface, when the host interface is enabled. (The host interface is<br />
enabled by setting the E<strong>MAC</strong>#_HOST_ENABLE attribute to<br />
TRUE). If the host interface is not enabled then the MDIO enable<br />
value is fixed by this attribute.<br />
E<strong>MAC</strong>#_MDIO_ENABLE Boolean When E<strong>MAC</strong>#_HOST_ENABLE is FALSE, setting this attribute to<br />
TRUE enables the use of MDIO in the <strong>Ethernet</strong> <strong>MAC</strong>. When<br />
E<strong>MAC</strong>#_HOST_ENABLE and E<strong>MAC</strong>#_MDIO_ENABLE are both<br />
TRUE, the MDIO interface is enabled when the MDIO enable bit is<br />
set in the <strong>Ethernet</strong> <strong>MAC</strong> Management Configuration Register. See<br />
“MDIO Interface,” page 115.<br />
Attributes to Configure Fixed <strong>Mode</strong> for the<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
See “<strong>Ethernet</strong> <strong>MAC</strong> <strong>Mode</strong> Configuration Register,” page 92 for<br />
register details.<br />
E<strong>MAC</strong>#_HOST_ENABLE Boolean Setting this attribute to TRUE enables the use of the <strong>Ethernet</strong> <strong>MAC</strong><br />
host interface via either the generic host bus or the DCR bus.<br />
E<strong>MAC</strong>#_TX16BITCLIENT_ENABLE Boolean When this attribute is set to TRUE, the TX client data interface is<br />
16 bits wide. When this attribute is set to FALSE, the TX client data<br />
interface is 8 bits wide.<br />
E<strong>MAC</strong>#_RX16BITCLIENT_ENABLE Boolean When this attribute is set to TRUE, the RX client data interface is<br />
16 bits wide. When this attribute is set to FALSE, the RX client data<br />
interface is 8 bits wide.<br />
Attributes to Configure Fixed Physical Interface<br />
for the <strong>Ethernet</strong> <strong>MAC</strong><br />
The following three attributes define the physical interface of the<br />
<strong>Ethernet</strong> <strong>MAC</strong>. These attributes are mutually exclusive. If none of<br />
these three attributes is set to TRUE, then the physical interface is<br />
enabled for 10/100 MII and GMII modes. See “<strong>Ethernet</strong> <strong>MAC</strong><br />
<strong>Mode</strong> Configuration Register,” page 92 for register details.<br />
E<strong>MAC</strong>#_RGMII_ENABLE Boolean Setting this attribute to TRUE enables the <strong>Ethernet</strong> <strong>MAC</strong> for RGMII<br />
mode.<br />
E<strong>MAC</strong>#_SGMII_ENABLE Boolean Setting this attribute to TRUE enables the <strong>Ethernet</strong> <strong>MAC</strong> for SGMII<br />
mode.<br />
E<strong>MAC</strong>#_1000BASEX_ENABLE Boolean Setting this attribute to TRUE enables the <strong>Ethernet</strong> <strong>MAC</strong> for<br />
1000BASE-X mode.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 43<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
Table 2-16: <strong>Mode</strong> Configuration Attributes (Cont’d)<br />
Attribute Type Description<br />
Attributes to Configure Fixed Speed for the<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
These attributes determine the speed of the <strong>Ethernet</strong> <strong>MAC</strong> after<br />
reset or power-up.<br />
The speed of the <strong>Ethernet</strong> <strong>MAC</strong> can be changed in multi-speed<br />
configurations using the host interface, when the host interface is<br />
enabled. (The host interface is enabled by setting the<br />
E<strong>MAC</strong>#_HOST_ENABLE attribute to TRUE). If the host interface is<br />
not enabled, then the speed of the <strong>Ethernet</strong> <strong>MAC</strong> is directly set by<br />
these two attributes.<br />
(E<strong>MAC</strong>#_SPEED_MSB: E<strong>MAC</strong>#_SPEED_LSB)<br />
1:0 = 1000 Mb/s<br />
0:1 = 100 Mb/s<br />
0:0 = 10 Mb/s<br />
1:1 = not applicable<br />
See “<strong>Ethernet</strong> <strong>MAC</strong> <strong>Mode</strong> Configuration Register,” page 92 for<br />
register details.<br />
E<strong>MAC</strong>#_SPEED_MSB Boolean E<strong>MAC</strong>#_SPEED[1]. (TRUE takes the bit value 1 in the table cell<br />
above.)<br />
E<strong>MAC</strong>#_SPEED_LSB Boolean E<strong>MAC</strong>#_SPEED[0]. (TRUE takes the bit value 1 in the table cell<br />
above.)<br />
Attributes to Configure Advanced Clocking<br />
Scheme for the <strong>Ethernet</strong> <strong>MAC</strong><br />
To reduce the number of BUFGs used for the <strong>Ethernet</strong> <strong>MAC</strong>,<br />
optimized clocking modes are available. See “Clock Connections to<br />
and from <strong>FPGA</strong> Logic,” page 206 for a description of the possible<br />
clocking mode options.<br />
E<strong>MAC</strong>#_BYTEPHY Boolean When this attribute is set to TRUE, the GMII/MII interface bus<br />
remains the same as GMII interface. Specifically, it is 8 bits wide<br />
and runs at the E<strong>MAC</strong> block’s ½ clock rate of 12.5 MHz or<br />
1.25 MHz. See “Advanced Clocking Schemes,” page 208 for an<br />
introduction to this clocking mode option.<br />
E<strong>MAC</strong>#_USECLKEN Boolean When this attribute is set to TRUE, the client interface clock output<br />
is switched to clock enable, thus eliminating BUFGs on the client<br />
interface. See “Advanced Clocking Schemes,” page 208 for an<br />
introduction to this clocking mode option.<br />
44 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Table 2-17: <strong>MAC</strong> Configuration Attributes<br />
Attribute Type Description<br />
Attribute to Configure Default Register Value for<br />
the Address Filter <strong>Mode</strong> Register<br />
<strong>Ethernet</strong> <strong>MAC</strong> Attributes<br />
The address filter can be enabled/disabled using the host<br />
interface, when the host interface is enabled. (The host interface<br />
is enabled by setting the E<strong>MAC</strong>#_HOST_ENABLE attribute to<br />
TRUE). If the host interface is not enabled, the address filter<br />
mode is fixed by the following attribute value.<br />
See “Address Filter <strong>Mode</strong>,” page 97 for register details.<br />
E<strong>MAC</strong>#_ADDRFILTER_ENABLE Boolean Address Filter Enable: This attribute sets the default value of the<br />
Promiscuous <strong>Mode</strong> enable bit in the Address Filter <strong>Mode</strong><br />
register.<br />
Setting this attribute to TRUE enables the use of the address filter<br />
module in the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
Attributes to Configure Default Register Value for<br />
the Flow Control Configuration Register<br />
The following two attributes configure the <strong>Ethernet</strong> <strong>MAC</strong> flow<br />
control module. See “Flow Control Configuration Register,” page<br />
91 for register details.<br />
E<strong>MAC</strong>#_RXFLOWCTRL_ENABLE Boolean Receive Flow Control Enable: This attribute sets the default value<br />
of the Flow control enable (RX) bit in the Flow Control<br />
Configuration Register.<br />
When this attribute is set to TRUE and full-duplex mode is<br />
enabled, receive flow control is enabled. Any flow control frames<br />
received by the <strong>Ethernet</strong> <strong>MAC</strong> cause the transmitter operation to<br />
be inhibited. When this attribute is set to FALSE, any flow control<br />
frames received by the <strong>Ethernet</strong> <strong>MAC</strong> are passed on to the client.<br />
See “Flow Control Block,” page 73 for description of flow control<br />
functionality.<br />
E<strong>MAC</strong>#_TXFLOWCTRL_ENABLE Boolean Transmit Flow Control Enable: This attribute sets the default<br />
value of the Flow control enable (TX) bit in the Flow Control<br />
Configuration Register.<br />
When this attribute is set to TRUE and full-duplex mode is<br />
enabled, asserting the CLIENTE<strong>MAC</strong>#PAUSEREQ signal causes the<br />
<strong>Ethernet</strong> <strong>MAC</strong> to send a flow control frame out from the<br />
transmitter.<br />
When this attribute is set to FALSE, asserting the<br />
CLIENTE<strong>MAC</strong>#PAUSEREQ signal has no effect.<br />
Attributes to Configure Default Register Value for<br />
the Transmitter Configuration Register<br />
The following attributes configure the transmit engine of the<br />
<strong>Ethernet</strong> <strong>MAC</strong>. See “Transmitter Configuration Register,” page<br />
90 for register details.<br />
E<strong>MAC</strong>#_TXRESET Boolean This attribute sets the default value of the Reset bit in the<br />
Transmitter Configuration Register.<br />
When this attribute is set to TRUE, the <strong>Ethernet</strong> <strong>MAC</strong> transmitter<br />
is reset. This reset also sets all of the transmitter configuration<br />
registers to their default values.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 45<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
Table 2-17: <strong>MAC</strong> Configuration Attributes (Cont’d)<br />
Attribute Type Description<br />
E<strong>MAC</strong>#_TXJUMBOFRAME_ENABLE Boolean This attribute sets the default value of the Jumbo Frame Enable<br />
bit in the Transmitter Configuration Register.<br />
When this attribute is set to TRUE, the <strong>Ethernet</strong> <strong>MAC</strong> transmitter<br />
allows frames larger than the maximum legal frame length<br />
specified in IEEE Std 802.3-2002 to be sent. When FALSE, the<br />
<strong>Ethernet</strong> <strong>MAC</strong> transmitter only allows frames up to the legal<br />
maximum to be sent.<br />
E<strong>MAC</strong>#_TXINBANDFCS_ENABLE Boolean This attribute sets the default value of the In-Band FCS Enable bit<br />
in the Transmitter Configuration Register.<br />
When this attribute is set to TRUE, the <strong>Ethernet</strong> <strong>MAC</strong> transmitter<br />
expects the FCS field to be passed in by the client. When FALSE,<br />
the <strong>Ethernet</strong> <strong>MAC</strong> transmitter appends padding as required,<br />
computes the FCS, and appends it to the frame.<br />
E<strong>MAC</strong>#_TX_ENABLE Boolean This attribute sets the default value of the Transmit Enable bit in<br />
the Transmitter Configuration Register.<br />
When this attribute is set to TRUE, the transmitter is operational.<br />
When FALSE, the transmitter is disabled.<br />
E<strong>MAC</strong>#_TXVLAN_ENABLE Boolean This attribute sets the default value of the VLAN Enable bit in the<br />
Transmitter Configuration Register.<br />
When this attribute is set to TRUE, the transmitter allows the<br />
transmission of VLAN tagged frames.<br />
E<strong>MAC</strong>#_TXHALFDUPLEX Boolean This attribute sets the default value of the Half Duplex mode bit<br />
in the Transmitter Configuration Register.<br />
When this attribute is set to TRUE, the transmitter operates in<br />
half-duplex mode. When FALSE, the transmitter operates in fullduplex<br />
mode.<br />
E<strong>MAC</strong>#_TXIFGADJUST_ENABLE Boolean This attribute sets the default value of the IFG Adjustment<br />
Enable bit in the Transmitter Configuration Register.<br />
When this attribute is set to TRUE, the transmitter reads the<br />
value of the CLIENTE<strong>MAC</strong>#TXIFGDELAY[7:0] port and sets the<br />
IFG accordingly. When FALSE, the transmitter always inserts at<br />
least the legal minimum IFG.<br />
Attributes to Configure Default Register Value for<br />
the Receiver Configuration Registers<br />
Configures the receive engine of the <strong>Ethernet</strong> <strong>MAC</strong>. See<br />
“Receiver Configuration Register (Word 0)” and “Receiver<br />
Configuration Register (Word 1),” page 89 for register details.<br />
E<strong>MAC</strong>#_RXRESET Boolean This attribute sets the default value of the Reset bit in the<br />
Receiver Configuration Register.<br />
When this attribute is set to TRUE, the receiver is held in reset.<br />
This signal is an input to the reset circuit for the receiver block.<br />
E<strong>MAC</strong>#_RXJUMBOFRAME_ENABLE Boolean This attribute sets the default value of the Jumbo Frame Enable<br />
bit in the Receiver Configuration Register.<br />
When this attribute is set to FALSE, the receiver does not pass<br />
frames longer than the maximum legal frame size specified in<br />
IEEE Std 802.3-2002. When TRUE, the receiver does not have an<br />
upper limit on frame size.<br />
46 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Table 2-17: <strong>MAC</strong> Configuration Attributes (Cont’d)<br />
Attribute Type Description<br />
<strong>Ethernet</strong> <strong>MAC</strong> Attributes<br />
E<strong>MAC</strong>#_RXINBANDFCS_ENABLE Boolean This attribute sets the default value of the In-band FCS Enable bit<br />
in the Receiver Configuration Register.<br />
When this attribute is set to TRUE, the <strong>Ethernet</strong> <strong>MAC</strong> receiver<br />
passes the FCS field up to the client. When FALSE, the <strong>Ethernet</strong><br />
<strong>MAC</strong> receiver does not pass the FCS field. In both cases, the FCS<br />
field is verified on the frame.<br />
E<strong>MAC</strong>#_RX_ENABLE Boolean This attribute sets the default value of the Receive Enable bit in<br />
the Receiver Configuration Register.<br />
When this attribute is set to TRUE, the receiver block is<br />
operational. When FALSE, the block ignores activity on the<br />
physical interface RX port.<br />
E<strong>MAC</strong>#_RXVLAN_ENABLE Boolean This attribute sets the default value of the VLAN Enable bit in the<br />
Receiver Configuration Register.<br />
When this attribute is set to TRUE, VLAN tagged frames are<br />
accepted by the receiver.<br />
E<strong>MAC</strong>#_RXHALFDUPLEX Boolean This attribute sets the default value of the Half Duplex mode bit<br />
in the Receiver Configuration Register.<br />
When this attribute is set to TRUE, the receiver operates in halfduplex<br />
mode. When FALSE, the receiver operates in full-duplex<br />
mode.<br />
E<strong>MAC</strong>#_LTCHECK_DISABLE Boolean This attribute sets the default value of the Length/Type Check<br />
Disable bit in the Receiver Configuration register.<br />
Setting this attribute to TRUE disables the Length/Type check on<br />
received frames where the Length/Type field is less than<br />
0x0600. See “Length/Type Field Error Checks” for more<br />
information.<br />
E<strong>MAC</strong>#_PAUSEADDR[47:0] 48-bit<br />
Binary<br />
This attribute sets the default value of the Pause Frame <strong>Ethernet</strong><br />
<strong>MAC</strong> Address [47:0] in the Receiver Configuration (Word 0) and<br />
(Word 1) registers.<br />
This address is used by the <strong>Ethernet</strong> <strong>MAC</strong> to match against the<br />
destination address of any incoming flow control frames and as<br />
the source address for any outbound flow control frames.<br />
The address is ordered for the least significant byte in the register<br />
to have the first byte transmitted or received; for example, an<br />
<strong>Ethernet</strong> <strong>MAC</strong> address of AA-BB-CC-DD-EE-FF is stored in byte<br />
[47:0] as 0xFFEEDDCCBBAA.<br />
The Pause frame address should be set to the same <strong>Ethernet</strong><br />
<strong>MAC</strong> address as the E<strong>MAC</strong>#_UNICASTADDR[47:0] attributes.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 47<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
Table 2-18: Physical Interface Attributes<br />
Attribute Type Description<br />
E<strong>MAC</strong>#_CONFIGVEC_79 Boolean Reserved, set to TRUE.<br />
Attributes to Configure Default Register Values for<br />
SGMII or 1000BASE-X Management Registers<br />
The following attributes are only used in SGMII or 1000BASE-<br />
X modes. See “1000BASE-X PCS/PMA Management<br />
Registers,” page 122 and “SGMII Management Registers,”<br />
page 130 for register details. See “MDIO Implementation in<br />
the <strong>Ethernet</strong> <strong>MAC</strong>,” page 119 for information on how to<br />
access these registers.<br />
E<strong>MAC</strong>#_PHYRESET Boolean This attribute sets the default value of the Reset bit in the<br />
PCS/PMA Management Register 0 (Control Register). A<br />
value of TRUE resets the PCS/PMA module.<br />
E<strong>MAC</strong>#_PHYINITAUTONEG_ENABLE Boolean This attribute sets the default value of the Auto-Negotiation<br />
Enable bit in the PCS/PMA Management Register 0 (Control<br />
Register). A value of TRUE enables auto-negotiation of the<br />
PCS/PMA module.<br />
E<strong>MAC</strong>#_PHYISOLATE Boolean This attribute sets the default value of the Isolate bit in the<br />
PCS/PMA Management Register 0 (Control Register). A<br />
value of TRUE causes the PCS/PMA sublayer logic to behave<br />
as if it is electrically isolated from the attached <strong>Ethernet</strong> <strong>MAC</strong>,<br />
as defined in IEEE Std 802.3, clause 22.2.4.1.6. Therefore,<br />
frames transmitted by the <strong>Ethernet</strong> <strong>MAC</strong> are not forwarded<br />
through the PCS/PMA. Frames received by the PCS/PMA<br />
are not relayed to the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
E<strong>MAC</strong>#_PHYPOWERDOWN Boolean This attribute sets the default value of the Power Down bit in<br />
the PCS/PMA Management Register 0 (Control Register). A<br />
value of TRUE causes the RocketIO serial transceiver to be<br />
placed in a Low power state. A reset must be applied to clear<br />
the Low power state.<br />
E<strong>MAC</strong>#_PHYLOOPBACKMSB Boolean This attribute sets the default value of the Loopback bit in the<br />
PCS/PMA Management Register 0 (Control Register). A<br />
value of TRUE for this attribute enables loopback.<br />
E<strong>MAC</strong>#_GTLOOPBACK sets if the loopback occurs in the<br />
<strong>Ethernet</strong> <strong>MAC</strong> or in the RocketIO serial transceiver.<br />
E<strong>MAC</strong>#_UNIDIRECTION_ENABLE Boolean This attribute sets the default value of the unidirection enable<br />
bit in the PCS/PMA Management Register 0 (Control<br />
Register). Setting this attribute to TRUE allows the <strong>Ethernet</strong><br />
<strong>MAC</strong> to transmit regardless of whether a valid link has been<br />
established.<br />
E<strong>MAC</strong>#_GTLOOPBACK Boolean This attribute sets the default value of the GT Loopback bit in<br />
“Vendor-Specific Register: Loopback Control Register<br />
(Register 17),” page 129. This attribute controls where the<br />
loopback happens when loopback is selected.<br />
When E<strong>MAC</strong>#_GTLOOPBACK is TRUE, the loopback occurs<br />
in the RocketIO serial transceiver. Near-End parallel PCS<br />
loopback is used.<br />
When E<strong>MAC</strong>#_GTLOOPBACK is FALSE, the loopback is<br />
internal to the E<strong>MAC</strong>. In this state, idles are transmitted to the<br />
RocketIO serial transceiver.<br />
48 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Table 2-18: Physical Interface Attributes (Cont’d)<br />
Attribute Type Description<br />
<strong>Ethernet</strong> <strong>MAC</strong> Attributes<br />
Attribute to Configure Auto-negotiation Parameters See the following sections for details on attribute value<br />
settings for Physical interface settings of SGMII or 1000BASE-<br />
X:<br />
SGMII: “Auto-Negotiation Link Timer,” page 197.<br />
1000BASE-X: “Auto-Negotiation Link Timer,” page 175.<br />
E<strong>MAC</strong>#_LINKTIMERVAL[8:0] 9-bit<br />
Binary<br />
Table 2-19: Address Filter Attributes<br />
Programmable auto-negotiation link timer value.<br />
Attribute Type Description<br />
Attribute to Configure Default Register Value for<br />
the Unicast Address Register<br />
E<strong>MAC</strong>#_UNICASTADDR[47:0] 48-bit<br />
Binary<br />
Table 2-20: DCR Base Address Attributes<br />
This attribute sets the default value of the Unicast Address[47:0] in<br />
the Unicast Address (Word 0) and (Word 1) registers. See “Unicast<br />
Address (Word 0),” page 95 and “Unicast Address (Word 1),” page<br />
95 for register details.<br />
This 48-bit attribute is used to set the <strong>Ethernet</strong> <strong>MAC</strong> unicast<br />
address used by the address filter block to see if the incoming frame<br />
is destined for the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
The address is ordered for the least significant byte in the register<br />
to have the first byte transmitted or received; for example, an<br />
<strong>Ethernet</strong> <strong>MAC</strong> address of 06-05-04-03-02-01 is stored in bits [47:0] as<br />
0x010203040506.<br />
This default value for the unicast address can be overridden by<br />
software through the host interface.<br />
Attribute Type Description<br />
Attribute to Configure Default Value for DCR<br />
Base Address<br />
E<strong>MAC</strong>#_DCRBASEADDR[7:0] 8-bit<br />
Binary<br />
See “Using the DCR Bus,” page 101 for a description of how the<br />
DCR Base Addresses are used to access different registers.<br />
This attribute allows separate DCR base addresses to be used for<br />
each <strong>Ethernet</strong> <strong>MAC</strong>.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 49<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 2: <strong>Ethernet</strong> <strong>MAC</strong> Overview<br />
50 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Client Interface<br />
Chapter 3<br />
This chapter provides useful design information for the <strong>Virtex</strong>®-5 <strong>Ethernet</strong> <strong>MAC</strong>. It<br />
contains the following sections:<br />
“Transmit (TX) Client: 8-Bit Interface (without Clock Enables)”<br />
“Transmit (TX) Client: 8-Bit Interface (with Clock Enables)”<br />
“Transmit (TX) Client: 16-Bit Interface”<br />
“Receive (RX) Client: 8-Bit Interface (without Clock Enables)”<br />
“Receive (RX) Client: 8-Bit Interface (with Clock Enables)”<br />
“Receive (RX) Client: 16-Bit Interface”<br />
“Address Filtering”<br />
“Flow Control Block”<br />
“Statistics Vectors”<br />
The client interface is designed for maximum flexibility for matching the client switching<br />
logic or network processor interface.<br />
The transmit and receive client interfaces can be configured to handle either 8-bit data<br />
transfers or 16-bit data transfers, where the default is 8 bits.<br />
The 8-bit client operation supports all physical interfaces and is offered in two alterative<br />
clocking modes: the standard clocking scheme without clock enables or an alternative<br />
clock enable scheme. “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205 introduces these two clocking<br />
models and describes how the clock enable scheme can be used to reduce the number of<br />
global clock buffers required for the design. Table 2-1, page 30 illustrates the physical<br />
interface configurations that can use the advanced clock enable scheme.<br />
The 16-bit client operation is enabled by setting the E<strong>MAC</strong>#_RX16BITCLIENT_ENABLE<br />
and E<strong>MAC</strong>#_TX16BITCLIENT_ENABLE attributes to TRUE. This mode of operation is<br />
only available with the 1000BASE-X PCS/PMA physical interface. Using this scheme, the<br />
<strong>Ethernet</strong> <strong>MAC</strong> can be over-clocked to provide operation above 1 Gb/s. “16-Bit Data<br />
Client,” page 170 provides a description of the clocking scheme for this mode.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 51<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
Table 3-1 defines the abbreviations used throughout this chapter.<br />
Table 3-1: Abbreviations Used in this Chapter<br />
Abbreviation Definition Length<br />
DA Destination address 6 bytes<br />
SA Source address 6 bytes<br />
L/T Length/Type field 2 bytes<br />
FCS Frame check sequences 4 bytes<br />
Transmit (TX) Client: 8-Bit Interface (without Clock Enables)<br />
This section covers the client transmit interface when it is configured to be eight bits wide<br />
and when the default clocking scheme is used. “<strong>Ethernet</strong> <strong>MAC</strong> Attributes,” page 42<br />
describes the E<strong>MAC</strong>#_USECLKEN attribute, which is set to FALSE for this configuration.<br />
In this configuration, CLIENTE<strong>MAC</strong>#TXD[15:8] and CLIENTE<strong>MAC</strong>#TXDVLDMSW must be tied<br />
to ground because the upper eight bits of the data bus are not necessary.<br />
See “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205 for some general information on this standard<br />
clocking scheme. More details are available for specific physical interface configurations in<br />
the following sections:<br />
MII<br />
“MII Standard Clock Management”<br />
GMII<br />
“GMII Clock Management for 1 Gb/s Only”<br />
“GMII Standard Clock Management for <strong>Tri</strong>-Speed Operation”<br />
“GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Byte PHY”<br />
RGMII<br />
“RGMII Clock Management for 1 Gb/s Only”<br />
“RGMII Standard Clock Management for <strong>Tri</strong>-Speed Operation”<br />
SGMII<br />
“SGMII Clock Management (LXT and SXT Devices)”<br />
“SGMII Clock Management (TXT and FXT Devices)”<br />
1000BASE-X<br />
“1000BASE-X PCS/PMA Clock Management (LXT and SXT Devices)”<br />
“1000BASE-X PCS/PMA Clock Management (TXT and FXT Devices)”<br />
52 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Normal Frame Transmission<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
Transmit (TX) Client: 8-Bit Interface (without Clock Enables)<br />
The timing of a normal outbound frame transfer is shown in Figure 3-1. When the client<br />
transmits a frame, the first column of data is placed on the CLIENTE<strong>MAC</strong>#TXD[7:0] port,<br />
and CLIENTE<strong>MAC</strong>#TXDVLD is asserted High. After the <strong>Ethernet</strong> <strong>MAC</strong> reads the first byte of<br />
data, it asserts the E<strong>MAC</strong>#CLIENTTXACK signal. On subsequent rising clock edges, the client<br />
must provide the rest of the frame data. CLIENTE<strong>MAC</strong>#TXDVLD is deasserted Low to signal<br />
an end-of-frame to the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
In-Band Parameter Encoding<br />
Padding<br />
Figure 3-1: Normal Frame Transmission Across Client Interface<br />
The <strong>Ethernet</strong> <strong>MAC</strong> frame parameters, destination address, source address, length/type,<br />
and the FCS are encoded within the same data stream used to transfer the frame payload<br />
instead of separate ports. This provides the maximum flexibility in switching applications.<br />
The preamble, and optionally the FCS, are added to the frame by the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
When fewer than 46 bytes of data are supplied by the client to the <strong>Ethernet</strong> <strong>MAC</strong>, the<br />
transmitter module adds padding – up to the minimum frame length. However, if the<br />
<strong>Ethernet</strong> <strong>MAC</strong> is configured for client-passed FCS, the client must also supply the padding<br />
to maintain the minimum frame length (see “Client-Supplied FCS Passing,” page 53).<br />
Client-Supplied FCS Passing<br />
DA SA L/T<br />
DATA<br />
<strong>UG194</strong>_3_01_072206<br />
In the transmission timing case shown in Figure 3-2, an <strong>Ethernet</strong> <strong>MAC</strong> is configured to<br />
have the FCS field passed in by the client (see “Configuration Registers,” page 88). The<br />
client must ensure that the frame meets the <strong>Ethernet</strong> minimum frame length requirements.<br />
If the frame does not meet these requirements, the <strong>Ethernet</strong> <strong>MAC</strong> pads the frame to the<br />
minimum frame length. Although this does not cause the transmitter statistics vector to<br />
indicate a bad frame, it will result in an errored frame as received by the link partner<br />
<strong>Ethernet</strong> <strong>MAC</strong>.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 53<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
Client Underrun<br />
DA SA L/T DATA FCS<br />
Figure 3-2: Frame Transmission with Client-Supplied FCS<br />
<strong>UG194</strong>_3_02_072206<br />
The timing of an aborted transfer is shown in Figure 3-3. An aborted transfer can occur if a<br />
FIFO connected to the client interface empties before a frame is completed. The<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN signal on the client interface is used to signal to the <strong>MAC</strong> that an<br />
underrun condition exists.<br />
When the client asserts CLIENTE<strong>MAC</strong>#TXUNDERRUN during a frame transmission, the<br />
E<strong>MAC</strong>#PHYTXER output is asserted for one clock cycle to notify the external GMII, RGMII, or<br />
MII PHY that the frame is corrupted.<br />
If 1000BASE-X PCS/PMA or SGMII mode is operational, the <strong>MAC</strong> inserts an error code<br />
into the current frame to signal corruption. The <strong>Ethernet</strong> <strong>MAC</strong> then falls back to idle<br />
transmission. The client must requeue the aborted frame for transmission.<br />
After an underrun occurs, CLIENTE<strong>MAC</strong>#TXDVLD must be deasserted for at least one clock<br />
cycle before transmission can recommence. CLIENTE<strong>MAC</strong>#TXDVLD can be deasserted on the<br />
same cycle as underrun is asserted. There is no requirement to deassert<br />
CLIENTE<strong>MAC</strong>#TXDVLD when underrun is asserted; it can be deasserted later.<br />
54 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
E<strong>MAC</strong>#PHYTXER<br />
Back-to-Back Transfers<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
Transmit (TX) Client: 8-Bit Interface (without Clock Enables)<br />
DA SA L/T DATA<br />
Figure 3-3: Frame Transmission with Underrun<br />
<strong>UG194</strong>_3_03_072206<br />
Back-to-back transfers can occur when the <strong>Ethernet</strong> <strong>MAC</strong> client is ready to transmit a<br />
second frame of data immediately following completion of the first frame. In Figure 3-4,<br />
the end of the first frame is shown on the left. At the clock cycle immediately following the<br />
final byte of the first frame, CLIENTE<strong>MAC</strong>#TXDVLD is deasserted by the client. One clock<br />
cycle later, CLIENTE<strong>MAC</strong>#TXDVLD is asserted High, indicating that the first byte of the<br />
destination address of the second frame is awaiting transmission on CLIENTE<strong>MAC</strong>#TXD.<br />
Figure 3-4: Back-to-Back Frame Transmission<br />
DA SA<br />
<strong>UG194</strong>_3_04_072206<br />
When the <strong>Ethernet</strong> <strong>MAC</strong> is ready to accept data, E<strong>MAC</strong>#CLIENTTXACK is asserted and the<br />
transmission continues in the same manner as the single frame case. The <strong>Ethernet</strong> <strong>MAC</strong><br />
defers the assertion of E<strong>MAC</strong>#CLIENTTXACK to comply with inter-packet gap requirements<br />
and flow control requests.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 55<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
Virtual LAN (VLAN) Tagged Frames<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
Figure 3-5 shows the transmission of a VLAN tagged frame (if enabled). The handshaking<br />
signals across the interface do not change. However, the VLAN type tag 0x8100 must be<br />
supplied by the client to show the frame as VLAN tagged. The client also supplies the two<br />
bytes of tag control information, V1 and V2, at the appropriate positions in the data stream.<br />
More information on the contents of these two bytes can be found in the IEEE Std 802.3-<br />
2002 specification.<br />
81 00 V1 V2<br />
DA SA VLAN L/T DATA<br />
Tag<br />
Figure 3-5: Transmission of a VLAN Tagged Frame<br />
Maximum Permitted Frame Length/Jumbo Frames<br />
The maximum length of a frame specified in the IEEE Std 802.3-2002 specification is<br />
1518 bytes for non-VLAN tagged frames. VLAN tagged frames can be extended to<br />
1522 bytes. When jumbo frame handling is disabled and the client attempts to transmit a<br />
frame that exceeds the maximum legal length, the <strong>Ethernet</strong> <strong>MAC</strong> inserts an error code to<br />
corrupt the current frame and the frame is truncated to the maximum legal length. When<br />
jumbo frame handling is enabled, frames longer than the legal maximum are transmitted<br />
error free.<br />
For more information on enabling and disabling jumbo frame handling, see<br />
“Configuration Registers,” page 88.<br />
Frame Collisions - Half-Duplex 10/100 Mb/s Operation Only<br />
<strong>UG194</strong>_3_05_072206<br />
In half-duplex <strong>Ethernet</strong> operation, collisions occur on the medium. This is how the<br />
arbitration algorithm is fulfilled. When there is a collision, the <strong>Ethernet</strong> <strong>MAC</strong> signals to the<br />
client a need to have data resupplied as follows:<br />
If there is a collision, the E<strong>MAC</strong>#CLIENTTXCOLLISION signal is set High by the <strong>Ethernet</strong><br />
<strong>MAC</strong>. If a frame is in progress, the client must abort the transfer, and<br />
CLIENTE<strong>MAC</strong>#TXDVLD is deasserted Low.<br />
If the E<strong>MAC</strong>#CLIENTTXRETRANSMIT signal is High in the same clock cycle that the<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION signal is High, the client must resubmit the previous<br />
frame to the <strong>Ethernet</strong> <strong>MAC</strong> for retransmission; CLIENTE<strong>MAC</strong>#TXDVLD must be asserted<br />
56 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
Transmit (TX) Client: 8-Bit Interface (without Clock Enables)<br />
to the <strong>Ethernet</strong> <strong>MAC</strong> within eight clock cycles of the E<strong>MAC</strong>#CLIENTTXCOLLISION signal<br />
to meet <strong>Ethernet</strong> timing requirements. This operation is shown in Figure 3-6. If the<br />
frame presented to the client interface is shorter than the collision window (slot time)<br />
defined in IEEE Std 802.3-2002, a retransmission request can occur after the end of the<br />
frame on the client interface. This can also occur on slightly longer frames due to the<br />
latency of the transmit section of the <strong>Ethernet</strong> <strong>MAC</strong>. In half duplex mode, the client<br />
should wait until the collision window has passed before submitting a new frame.<br />
8 Clocks<br />
Maximum<br />
Figure 3-6: Collision Handling - Frame Retransmission Required<br />
CLIENTE<strong>MAC</strong>#TXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
<strong>UG194</strong>_3_06_072206<br />
If the E<strong>MAC</strong>#CLIENTTXRETRANSMIT signal is Low in the same clock cycle that the<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION signal is High, the number of retries for this frame has<br />
exceeded the <strong>Ethernet</strong> specification, and the frame should be dropped by the client.<br />
The user must drop TXDVLD the cycle after TXCOLLISION is asserted. The client can<br />
then make any new frame available to the <strong>Ethernet</strong> <strong>MAC</strong> for transmission without<br />
timing restriction. This process is shown in Figure 3-7.<br />
Figure 3-7: Collision Handling - No Frame Retransmission Required<br />
<strong>UG194</strong>_3_07_072206<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 57<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
IFG Adjustment<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXIFGDELAY<br />
The length of the IFG can be varied in full-duplex mode. If this function is selected (using<br />
a configuration bit in the transmitter control register, see “Configuration Registers,” page<br />
88), then the <strong>Ethernet</strong> <strong>MAC</strong> exerts back pressure to delay the transmission of the next<br />
frame until the requested number of idle cycles has elapsed. The number of idle cycles can<br />
be increased. The number of cycles is controlled by the value on the<br />
CLIENTE<strong>MAC</strong>#TXIFGDELAY port at the start-of-frame transmission if the IFG Adjustment<br />
Enable bit in the Transmitter Configuration Register is set. If IFG adjustment is disabled or<br />
the value on CLIENTE<strong>MAC</strong>#TXIFGDELAY is less than the minimum IFG specified in<br />
IEEE 802.3, the minimum IFG (12 idles) is used. Figure 3-8 shows the <strong>Ethernet</strong> <strong>MAC</strong><br />
operating in this mode.<br />
0x0D<br />
IFG ADJUST VALUE<br />
DA SA<br />
Figure 3-8: IFG Adjustment<br />
Transmit (TX) Client: 8-Bit Interface (with Clock Enables)<br />
This section covers the client transmit interface when it is configured to be 8 bits wide and<br />
when the optional clock enable clocking scheme is used. This optional configuration can be<br />
used when the <strong>Ethernet</strong> <strong>MAC</strong> is configured in MII/GMII or RGMII mode. “<strong>Ethernet</strong> <strong>MAC</strong><br />
Attributes,” page 42 describes the E<strong>MAC</strong>#_USECLKEN attribute, which is set to TRUE for<br />
this configuration.<br />
In this mode, the client interface is synchronous to the physical interface clock. This<br />
configuration reduces the number of BUFGs that are used to implement the <strong>Ethernet</strong> <strong>MAC</strong><br />
design. See “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205 for some general information on this<br />
clocking scheme. More details are available for specific physical interface configurations in<br />
the following sections:<br />
“MII Clock Management using Clock Enables”<br />
13 Idles Inserted<br />
“GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Clock Enables”<br />
“RGMII Clock Management for <strong>Tri</strong>-Speed Operation Using Clock Enables”<br />
For the transmit interface, the PHYE<strong>MAC</strong>#GMIIMIICLKIN signal is used as the clock and<br />
the E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT signal is used as the clock enable.<br />
58 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
DA<br />
Next IFG<br />
ADJUST VALUE<br />
<strong>UG194</strong>_3_08_072506<br />
R
R<br />
Normal Frame Transmission<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#TXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
Transmit (TX) Client: 8-Bit Interface (with Clock Enables)<br />
Figure 3-9 shows the transmission of a normal frame at 1 Gb/s. At 1 Gb/s, no clock enable<br />
is required, and the clock enable signal E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT is held High. The<br />
data is input on the rising edge of the 125 MHz PHYE<strong>MAC</strong>#GMIIMIICLKIN clock.<br />
DA SA L/T DATA<br />
Figure 3-9: Normal Frame Transmission at 1 Gb/s with E<strong>MAC</strong>#_USECLKEN Set to TRUE<br />
<strong>UG194</strong>_3_09_072206<br />
At speeds slower than 1 Gb/s, the physical interface clock runs twice as fast as the client<br />
interface clock. The data is still synchronous to PHYE<strong>MAC</strong>#GMIIMIICLKIN, but to maintain<br />
the correct data rate, the E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT clock signal is used as an enable<br />
rather than a clock. The E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT signal is asserted every second<br />
cycle of PHYE<strong>MAC</strong>#GMIIMIICLKIN. Data is presented to the transmitter interface only when<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT is High. This is illustrated in Figure 3-10.<br />
Note: Due to the timing relationship between the internal and external clocks, the<br />
E<strong>MAC</strong>#CLIENTTXACK signal should be registered at the output of the E<strong>MAC</strong> at speed lower than<br />
1Gb/s.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 59<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#TXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
E<strong>MAC</strong>#CLIENTTXACK (Registered)<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
Figure 3-10: Normal Frame Transmission at 10/100 Mb/s with E<strong>MAC</strong>#_USECLKEN Set to TRUE<br />
Transmit (TX) Client: 16-Bit Interface<br />
DA SA L/T DATA<br />
<strong>UG194</strong>_3_10_072206<br />
This optional configuration can only be used when the <strong>Ethernet</strong> <strong>MAC</strong> physical interface is<br />
configured in 1000BASE-X PCS/PMA mode.<br />
When a 16-bit client interface is selected, the input clock for the <strong>Ethernet</strong> <strong>MAC</strong> TX client<br />
logic (CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN) should be twice the frequency of the clock used for<br />
the TX client logic in the <strong>FPGA</strong> logic. Figure 6-22, page 170 illustrates how this clocking<br />
scheme is achieved for this mode of operation.<br />
This mode can operate with the <strong>Ethernet</strong> <strong>MAC</strong> TX client logic clocked at 125 MHz and the<br />
logic in the <strong>FPGA</strong> logic clocked at 62.5 MHz. However, this mode allows the <strong>Ethernet</strong><br />
<strong>MAC</strong> TX client logic to operate at up to 250 MHz while the logic in the <strong>FPGA</strong> logic is<br />
clocked at 125 MHz. By using the faster clock speeds, a line rate of up to 2.5 Gb/s can be<br />
achieved. This is greater than 1 Gb/s, as specified in IEEE Std 802.3. Therefore, this<br />
interface should not be used for <strong>Ethernet</strong> compliant designs, but it can be useful for<br />
backplane applications.<br />
“<strong>Ethernet</strong> <strong>MAC</strong> Attributes,” page 42 describes the E<strong>MAC</strong>#_TX16BITCLIENT_ENABLE<br />
attribute, which is set to TRUE for this configuration.<br />
Figure 3-11 shows the timing of a normal outbound frame transfer for the case with an<br />
even number of bytes in the frame. The CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN clock is used as an<br />
input to the <strong>Ethernet</strong> <strong>MAC</strong> and the PHYE<strong>MAC</strong>#MIITXCLK clock<br />
(CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN/2) is used to clock the TX client logic in the <strong>FPGA</strong> logic.<br />
60 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
(CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN/2)<br />
CLIENTE<strong>MAC</strong>#TXD[15:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
CLIENTE<strong>MAC</strong>#TXDVLDMSW<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
(CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN/2)<br />
DA SA DATA<br />
Figure 3-11: 16-Bit Transmit (Even Byte Case)<br />
Transmit (TX) Client: 16-Bit Interface<br />
<strong>UG194</strong>_3_11_072206<br />
Figure 3-12 shows the timing of a normal outbound frame transfer for the case with an odd<br />
number of bytes in the frame.<br />
CLIENTE<strong>MAC</strong>#TXD[15:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
CLIENTE<strong>MAC</strong>#TXDVLDMSW<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
DA SA DATA<br />
Figure 3-12: 16-Bit Transmit (Odd Byte Case)<br />
<strong>UG194</strong>_3_12_072206<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 61<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
As shown in Figure 3-12, CLIENTE<strong>MAC</strong>#TXDVLDMSW denotes an odd number of bytes in the<br />
frame. In the odd byte case, CLIENTE<strong>MAC</strong>#TXDVLDMSW is deasserted one clock cycle earlier<br />
than the CLIENTE<strong>MAC</strong>#TXDVLD signal, after the transmission of the frame. Otherwise, these<br />
data valid signals are the same as shown in the even byte case (Figure 3-11).<br />
Back-to-Back Transfers<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
(CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN/2)<br />
CLIENTE<strong>MAC</strong>#TXD[15:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
CLIENTE<strong>MAC</strong>#TXDVLDMSW<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
For back-to-back transfers, both CLIENTE<strong>MAC</strong>#TXDVLD and CLIENTE<strong>MAC</strong>#TXDVLDMSW must<br />
be deasserted for one PHYE<strong>MAC</strong>#MIITXCLK (half the clock frequency of<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN) clock cycle after the first frame. In the following<br />
PHYE<strong>MAC</strong>#MIITXCLK clock cycle, both CLIENTE<strong>MAC</strong>#TXDLVD and CLIENTE<strong>MAC</strong>#TXDVLDMSW<br />
are asserted High to indicate that the first two bytes of the destination address of the<br />
second frame is ready for transmission on CLIENTE<strong>MAC</strong>#TXD[15:0]. In 16-bit mode, this<br />
one PHYE<strong>MAC</strong>#MIITXCLK clock cycle IFG corresponds to a 2-byte gap (versus a 1-byte gap in<br />
8-bit mode) between frames in the back-to-back transfer.<br />
Figure 3-13 shows the timing diagram for 16-bit transmit for an even-byte case, and<br />
Figure 3-14 shows the timing diagram for an odd-byte case.<br />
D(n-2), D(n-3) D(n), D(n-1) DA1, DA0 DA3, DA2 DA5, DA4<br />
1st Frame IFG 2nd Frame<br />
Figure 3-13: 16-Bit Transmit Back-to-Back Transfer (Even Byte Case)<br />
<strong>UG194</strong>_3_13_072206<br />
62 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
(CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN/2)<br />
CLIENTE<strong>MAC</strong>#TXD[15:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
CLIENTE<strong>MAC</strong>#TXDVLDMSW<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
CLIENTE<strong>MAC</strong>#TXUNDERRUN<br />
E<strong>MAC</strong>#CLIENTTXCOLLISION<br />
E<strong>MAC</strong>#CLIENTTXRETRANSMIT<br />
Receive (RX) Client: 8-Bit Interface (without Clock Enables)<br />
D(n-1), D(n-2) 0xXX, D(n)<br />
DA1, DA0 DA3, DA2 DA5, DA4<br />
1st Frame IFG 2nd Frame<br />
Figure 3-14: 16-Bit Transmit Back-to-Back Transfer (Odd Byte Case)<br />
Receive (RX) Client: 8-Bit Interface (without Clock Enables)<br />
This section covers the client receive interface when it is configured to be 8 bits wide and<br />
when the default clocking scheme is used. “<strong>Ethernet</strong> <strong>MAC</strong> Attributes,” page 42 describes<br />
the E<strong>MAC</strong>#_USECLKEN attribute, which is set to FALSE for this configuration. In this<br />
configuration, E<strong>MAC</strong>#CLIENTRXD[15:8] and E<strong>MAC</strong>#CLIENTRXDVLDMSW are left unconnected<br />
because the upper eight bits of the data bus are not required.<br />
See “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205 for some general information on this standard<br />
clocking scheme. More details are available for specific physical interface configurations in<br />
the following sections:<br />
MII<br />
“MII Standard Clock Management”<br />
GMII<br />
“GMII Clock Management for 1 Gb/s Only”<br />
“GMII Standard Clock Management for <strong>Tri</strong>-Speed Operation”<br />
“GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Byte PHY”<br />
RGMII<br />
“RGMII Clock Management for 1 Gb/s Only”<br />
“RGMII Standard Clock Management for <strong>Tri</strong>-Speed Operation”<br />
SGMII<br />
“SGMII Clock Management (LXT and SXT Devices)”<br />
“SGMII Clock Management (TXT and FXT Devices)”<br />
1000BASE-X<br />
“1000BASE-X PCS/PMA Clock Management (LXT and SXT Devices)”<br />
“1000BASE-X PCS/PMA Clock Management (TXT and FXT Devices)”<br />
<strong>UG194</strong>_3_14_072206<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 63<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
Normal Frame Reception<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
The timing of a normal inbound frame transfer is shown in Figure 3-15. The client must<br />
accept data at any time; there is no buffering within the <strong>Ethernet</strong> <strong>MAC</strong> to allow for receive<br />
client latency. After frame reception begins, data is transferred on consecutive clock cycles<br />
to the receive client until the frame is complete. The <strong>Ethernet</strong> <strong>MAC</strong> asserts the<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME signal to indicate successful receipt of the frame and the ability<br />
to analyze the frame by the client.<br />
E<strong>MAC</strong>#CLIENTRXD[7:0]<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXBADFRAME<br />
Figure 3-15: Normal Frame Reception<br />
Frame parameters (destination address, source address, LT, data, and optionally FCS) are<br />
supplied on the data bus as shown in the timing diagram. The abbreviations are the same<br />
as those described in Table 3-1, page 52.<br />
If the LT field has a length interpretation, the inbound frame could be padded to meet the<br />
<strong>Ethernet</strong> minimum frame size specification. This padding is not passed to the client in the<br />
data payload; an exception is when FCS passing is enabled. See “Client-Supplied FCS<br />
Passing,” page 66.<br />
Therefore, when client-supplied FCS passing is disabled, E<strong>MAC</strong>#CLIENTRXDVLD is Low<br />
between frames for the duration of the padding field (if present), the FCS field, carrier<br />
extension (if present), the IFG following the frame, and the preamble field of the next<br />
frame. When client-supplied FCS passing is enabled, E<strong>MAC</strong>#CLIENTRXDVLD is Low between<br />
frames for the duration of carrier extension (if present), the IFG, and the preamble field of<br />
the following frame.<br />
Signal Timing of Good/Bad Frame Pulses<br />
DA SA L/T DATA<br />
<strong>UG194</strong>_3_15_072106<br />
Although the timing diagram in Figure 3-15 shows the E<strong>MAC</strong>#CLIENTRXGOODFRAME signal<br />
asserted shortly after the last valid data on E<strong>MAC</strong>#CLIENTRXD[7:0], this is not always the<br />
case. The E<strong>MAC</strong>#CLIENTRXGOODFRAME or E<strong>MAC</strong>#CLIENTRXBADFRAME signals are asserted only<br />
after completing all the frame checks. These frame checks occur only after receipt of any<br />
padding (if present), followed by the FCS and any carrier extension (if present). Therefore,<br />
either E<strong>MAC</strong>#CLIENTRXGOODFRAME or E<strong>MAC</strong>#CLIENTRXBADFRAME is asserted following frame<br />
reception at the beginning of the IFG.<br />
64 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Frame Reception with Errors<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
Receive (RX) Client: 8-Bit Interface (without Clock Enables)<br />
An unsuccessful frame reception (for example, a fragment frame or a frame with an<br />
incorrect FCS) is shown in Figure 3-16. In this case, the E<strong>MAC</strong>#CLIENTRXBADFRAME signal is<br />
asserted to the client after the end of the frame. The client is responsible for dropping the<br />
data already transferred for this frame.<br />
E<strong>MAC</strong>#CLIENTRXD[7:0]<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXBADFRAME<br />
The following conditions cause the assertion of BAD_FRAME:<br />
Standard Conditions<br />
Figure 3-16: Frame Reception with Error<br />
FCS errors occur.<br />
Packets are shorter than 64 bytes (undersize or fragment frames).<br />
Jumbo frames are received when jumbo frames are not enabled.<br />
The length/type field is length, but the real length of the received frame does not<br />
match the value in the length/type field (when length/type checking is enabled).<br />
The length/type field is length, in which the length value is less than 46. In this<br />
situation, the frame should be padded to minimum length. If it is not padded to<br />
exactly minimum frame length, the frame is marked as bad (when length/type<br />
checking is enabled).<br />
Any control frame that is received is not exactly the minimum frame length.<br />
PHYE<strong>MAC</strong>#RXER is asserted at any point during frame reception.<br />
An error code is received in the 1-Gigabit frame extension field.<br />
A valid pause frame, addressed to the <strong>MAC</strong>, is received when flow control is enabled.<br />
Please see “Flow Control Block” for more information.<br />
1000BASE-X/SGMII Specific Conditions<br />
DA SA L/T DATA<br />
<strong>UG194</strong>_3_16_072106<br />
When in 1000BASE-X mode or SGMII mode, the following errors can also cause a frame to<br />
be marked as bad:<br />
Unrecognized 8B/10B code group received during the packet.<br />
8B/10B running disparity errors occur during the packet.<br />
Unexpected K characters or sequences appearing in the wrong order/byte position.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 65<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
Client-Supplied FCS Passing<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXD[7:0]<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXBADFRAME<br />
Figure 3-17 shows how the <strong>Ethernet</strong> <strong>MAC</strong> is configured to pass the FCS field to the client<br />
(see “Configuration Registers,” page 88). In this case, any padding inserted into the frame<br />
to meet <strong>Ethernet</strong> minimum frame length specifications is left intact and passed to the<br />
client. Even though the FCS is passed up to the client, it is also verified by the <strong>Ethernet</strong><br />
<strong>MAC</strong>, and E<strong>MAC</strong>#CLIENTRXBADFRAME is asserted if the FCS check fails.<br />
VLAN Tagged Frames<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXD[7:0]<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXBADFRAME<br />
DA SA L/T DATA FCS<br />
Figure 3-17: Frame Reception with In-Band FCS Field<br />
The reception of a VLAN tagged frame (if enabled) is shown in Figure 3-18. The VLAN<br />
frame is passed to the client to identify the frame as VLAN tagged. This is followed by the<br />
tag control information bytes, V1 and V2. The length/type field after the tag control<br />
information bytes is not checked for errors. More information on the interpretation of these<br />
bytes is described in the IEEE Std 802.3-2002 standard.<br />
81 00 V1V2<br />
DA SA VLAN<br />
Tag<br />
L/T DATA<br />
Figure 3-18: Reception of a VLAN Tagged Frame<br />
Maximum Permitted Frame Length/Jumbo Frames<br />
<strong>UG194</strong>_3_17_072106<br />
<strong>UG194</strong>_3_18_072106<br />
The maximum length of a frame specified in the IEEE Std 802.3-2002 standard is 1518 bytes<br />
for non-VLAN tagged frames. VLAN tagged frames can be extended to 1522 bytes. When<br />
jumbo frame handling is disabled and the <strong>Ethernet</strong> <strong>MAC</strong> receives a frame exceeding the<br />
66 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Receive (RX) Client: 8-Bit Interface (with Clock Enables)<br />
maximum legal length, E<strong>MAC</strong>#CLIENTRXBADFRAME is asserted. When jumbo frame<br />
handling is enabled, frames longer than the legal maximum are received in the same way<br />
as shorter frames.<br />
For more information on enabling and disabling jumbo frame handling, see<br />
“Configuration Registers,” page 88.<br />
Length/Type Field Error Checks<br />
Enabled<br />
Length/Type Field Error checking is specified in IEEE Std 802.3. This functionality must be<br />
enabled to comply with this specification. Disabling Length/Type checking is intended<br />
only for specific applications, such as when using over a proprietary backplane.<br />
When length/type error checking is enabled (see “Receiver Configuration Register (Word<br />
1),” page 89), the following checks are made on all frames received. (If either of these<br />
checks fails, E<strong>MAC</strong>#CLIENTRXBADFRAME is asserted):<br />
A value greater than or equal to decimal 46 but less than decimal 1500 (a length<br />
interpretation) in the length/type field is checked against the actual data length<br />
received.<br />
A value less than decimal 46 in the length/type field is checked to ensure the data<br />
field is padded to exactly 46 bytes. The resultant frame is now the minimum frame<br />
size of 64 bytes total in length.<br />
Furthermore, if padding is indicated (the length/type field is less than decimal 46) and<br />
client-supplied FCS passing is disabled, then the length value in the length/type field is<br />
used to deassert E<strong>MAC</strong>#CLIENTRXDVLD after the indicated number of data bytes removing<br />
the padding bytes from the frame.<br />
When a frame is a VLAN frame, only the initial length/type field containing the VLAN<br />
type 0x8100 is checked and interpreted as a type. The subsequent length/type field in the<br />
VLAN frame is not checked.<br />
Disabled<br />
When the length/type error checking is disabled (see “Receiver Configuration Register<br />
(Word 1),” page 89), the length/type error checks previously described are not performed.<br />
A frame containing only these errors causes E<strong>MAC</strong>#CLIENTRXGOODFRAME to be asserted.<br />
Furthermore, if padding is indicated and client-supplied FCS passing is disabled, then a<br />
length value in the length/type field is not used to deassert E<strong>MAC</strong>#CLIENTRXDVLD.<br />
Instead E<strong>MAC</strong>#CLIENTRXDVLD is deasserted before the start of the FCS field; in this way,<br />
any padding is not removed from the frame.<br />
It should be noted that an illegal length frame, e.g., a frame of less than 64 bytes in total<br />
length, is still marked as bad. In addition, the disabling of Length/Type checks has no<br />
effect on control frames. If a control frame is received that is not 64 bytes in total length, it<br />
is still marked as a bad frame.<br />
Receive (RX) Client: 8-Bit Interface (with Clock Enables)<br />
This section covers the client receive interface when it is configured to be 8 bits wide and<br />
when the optional clock enable clocking scheme is used. This optional configuration can be<br />
used when the <strong>Ethernet</strong> <strong>MAC</strong> is configured in MII/GMII or RGMII mode. “<strong>Ethernet</strong> <strong>MAC</strong><br />
TE<strong>MAC</strong> User Guide www.xilinx.com 67<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
Attributes,” page 42 describes the E<strong>MAC</strong>#_USECLKEN attribute, which is set to TRUE for<br />
this configuration.<br />
In this mode, the client interface is synchronous to the physical interface clock. This<br />
configuration reduces the number of BUFGs that are used to implement the <strong>Ethernet</strong> <strong>MAC</strong><br />
design. See “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205 for some general information on this<br />
clocking scheme. More details are available for specific physical interface configurations in<br />
the following sections:<br />
“MII Clock Management using Clock Enables”<br />
“GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Clock Enables”<br />
“RGMII Clock Management for <strong>Tri</strong>-Speed Operation Using Clock Enables”<br />
For the receive interface, the PHYE<strong>MAC</strong>#RXCLK signal is used as the clock, and the<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT signal is used as the clock enable.<br />
Figure 3-19 shows the timing of a normal inbound frame transfer at 1 Gb/s. Data is<br />
transferred to the client on the rising edge of PHYE<strong>MAC</strong>#RXCLK. The output clock enable,<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT, is held High.<br />
PHYE<strong>MAC</strong>#RXCLK<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
E<strong>MAC</strong>#CLIENTRXD[7:0]<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXBADFRAME<br />
DA SA L/T DATA<br />
<strong>UG194</strong>_3_19_072106<br />
Figure 3-19: Normal Frame Reception at 1 Gb/s with E<strong>MAC</strong>#_USECLKEN Set to TRUE<br />
Figure 3-20 shows the reception of a frame at speeds below 1 Gb/s. The physical interface<br />
clock runs at twice the speed of the client interface clock and so the output clock enable,<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT, is only asserted on every second cycle of<br />
68 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Receive (RX) Client: 16-Bit Interface<br />
PHYE<strong>MAC</strong>#RXCLK. Data is written into the client on the rising edge of PHYE<strong>MAC</strong>#RXCLK<br />
when E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT is High.<br />
PHYE<strong>MAC</strong>#RXCLK<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
E<strong>MAC</strong>#CLIENTRXD[7:0]<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXBADFRAME<br />
Figure 3-20: Normal Frame Reception at 10/100 Mb/s with E<strong>MAC</strong>#_USECLKEN Set to TRUE<br />
Receive (RX) Client: 16-Bit Interface<br />
DA SA L/T DATA<br />
<strong>UG194</strong>_3_20_072106<br />
This optional configuration can only be used when the <strong>Ethernet</strong> <strong>MAC</strong> physical interface is<br />
configured in 1000BASE-X PCS/PMA mode.<br />
When a 16-bit client interface is selected, the input clock for the <strong>Ethernet</strong> <strong>MAC</strong> RX client<br />
logic (CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN) should be twice the frequency of the clock used for<br />
the RX client logic in the <strong>FPGA</strong> logic. Figure 6-22, page 170 illustrates how this clocking<br />
scheme is achieved for this mode of operation.<br />
This mode can operate with the <strong>Ethernet</strong> <strong>MAC</strong> RX client logic clocked at 125 MHz and the<br />
logic in the <strong>FPGA</strong> logic clocked at 62.5 MHz. However, this mode allows the <strong>Ethernet</strong><br />
<strong>MAC</strong> RX client logic to operate at up to 250 MHz while the logic in the <strong>FPGA</strong> logic is<br />
clocked at 125 MHz. By using the faster clock speeds, a line rate of up to 2.5 Gb/s can be<br />
achieved. This is greater than 1 Gb/s as specified in IEEE Std 802.3. Therefore, this<br />
interface should not be used for <strong>Ethernet</strong>-compliant designs, but it can be useful for<br />
backplane applications.<br />
“<strong>Ethernet</strong> <strong>MAC</strong> Attributes,” page 42 describes the E<strong>MAC</strong>#_RX16BITCLIENT_ENABLE<br />
attribute, which is set to TRUE for this configuration.<br />
Figure 3-21 shows the timing of a normal inbound frame transfer for the case with an even<br />
number of bytes in the frame. The CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN clock is used as an<br />
input to the <strong>Ethernet</strong> <strong>MAC</strong> and the PHYE<strong>MAC</strong>#RXCLK clock<br />
(CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN/2) is used to clock the RX client logic in the <strong>FPGA</strong> logic.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 69<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#RXCLK<br />
(CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN/2)<br />
E<strong>MAC</strong>#CLIENTRXD[15:0]<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXDVLDMSW<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXBADFRAME<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#RXCLK<br />
(CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN/2)<br />
DA SA DATA<br />
Figure 3-21: 16-Bit Receive (Even Byte Case)<br />
Figure 3-22 shows the timing of a normal inbound frame transfer for the case with an odd<br />
number of bytes in the frame.<br />
E<strong>MAC</strong>#CLIENTRXD[15:0]<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXDVLD MSW<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXBADFRAME<br />
DA SA DATA<br />
Figure 3-22: 16-Bit Receive (Odd Byte Case)<br />
<strong>UG194</strong>_3_21_072106<br />
<strong>UG194</strong>_3_22_072106<br />
As shown in Figure 3-21 and Figure 3-22, E<strong>MAC</strong>#CLIENTRXDVLDMSW is used to denote an<br />
odd number of bytes in the frame. The data valid signals are shown in the even byte case<br />
(Figure 3-21). In the odd byte case (Figure 3-22), E<strong>MAC</strong>#CLIENTRXDVLDMSW is deasserted<br />
one clock cycle earlier compared to the E<strong>MAC</strong>#CLIENTRXDVLD signal, after the reception of<br />
the frame. E<strong>MAC</strong>#CLIENTRXD[7:0] contains the data in this odd byte case.<br />
70 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Address Filtering<br />
Address Filtering<br />
The address filtering block accepts or rejects frames by examining the destination address<br />
of an incoming frame. This block includes:<br />
Matching of programmable unicast destination address<br />
Matching of four additional programmable general addresses<br />
Broadcast address recognition (0xFFFF_FFFF_FFFF)<br />
Optional pass-through mode with address filter disabled (promiscuous mode)<br />
Pause control frame address recognition (0x0100_00C2_8001)<br />
The Address Filter (AF) protects the client from extraneous traffic. With this technique, the<br />
hardware matches the Destination Address (DA) field of the <strong>Ethernet</strong> <strong>MAC</strong> frame. This<br />
relieves the task from the bus and software.<br />
The AF is programmed in software through the host interface. Pause-frame addresses and<br />
broadcast address are hardwired; they do not need to be programmed. The AF can be<br />
enabled and disabled under software control, using an enable bit in the control register. See<br />
“Address Filter Registers,” page 94 for the control register.<br />
When the function is enabled, <strong>Ethernet</strong> frames are passed to the client interface only if they<br />
pass the filter. When the AF function is disabled, all incoming RX frames are passed to the<br />
client interface.<br />
For system monitoring, the event of a frame failing the filter is signaled. Equally, when a<br />
frame passes the filter, a match is indicated to the client by using the output pins<br />
E<strong>MAC</strong>#CLIENTRXDVLD and E<strong>MAC</strong>#CLIENTRXFRAMEDROP together. Table 3-2 shows the<br />
values of the two signals for possible outcomes of an incoming RX frame when the AF is<br />
enabled.<br />
When the AF is enabled, it is impossible to determine if there is an incoming RX frame or<br />
if the AF has rejected incoming RX frames (using only E<strong>MAC</strong>#CLIENTRXDVLD) because in<br />
both cases, E<strong>MAC</strong>#CLIENTRXDVLD is deasserted. However, using the<br />
E<strong>MAC</strong>#CLIENTRXFRAMEDROP signal, the nature of an incoming RX frame can be<br />
distinguished for system monitoring. See Table 3-2.<br />
Table 3-2: E<strong>MAC</strong>#CLIENTRXDVLD and E<strong>MAC</strong>#CLIENTRXFRAMEDROP Values<br />
Result of an Incoming RX Frame E<strong>MAC</strong>#CLIENTRXDVLD E<strong>MAC</strong>#CLIENTRXFRAMEDROP<br />
No frame received 0 0<br />
Frame received and AF address match 1 0<br />
Frame received and no AF address match 0 1<br />
Frame received and no AF address match but AF<br />
disabled<br />
Address Filter Attributes<br />
1 1<br />
Frame received and AF address match but AF disabled 1 0<br />
The unicast address register, pause frame source address, and address filter promiscuous<br />
mode bit are set by attributes when the <strong>FPGA</strong> is configured. In this way, the address filter<br />
performs functions with the unicast address without using the host interface. The four<br />
general address register values are not included as attributes.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 71<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
When the host interface is used, all the address filter registers are accessible by software,<br />
using either the DCR bus or the generic host bus. The attribute settings of the registers can<br />
be overridden by the software through the host interface. Also, the four general address<br />
registers are programmed through the host interface.<br />
Client RX Data/Control Interface<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
The AF generates the E<strong>MAC</strong>#CLIENTRXFRAMEDROP signal to inform the client that the<br />
destination <strong>MAC</strong> address of an incoming receive <strong>Ethernet</strong> frame does not match any of the<br />
acceptable addresses stored in the AF. This control signal is asserted regardless of whether<br />
the AF is enabled or disabled (promiscuous mode).<br />
Figure 3-23 shows the timing diagram when a frame matches a valid location in the AF<br />
(8-bit mode).<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXD[7:0]<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXFRAMEDROP<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
Previous Frame<br />
Dropped<br />
n–2 n–1 n n+1 n+2 n+3 n+4 n+5 n+6 n+7<br />
Figure 3-23: Frame Matching Timing Diagram (8-Bit <strong>Mode</strong>)<br />
DA SA<br />
Current Frame<br />
Passed<br />
<strong>UG194</strong>_3_23_081806<br />
Figure 3-24 shows the timing diagram when a frame matches a valid location in the AF<br />
(16-bit mode).<br />
PHYE<strong>MAC</strong>#RXCLK<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXDVLDMSW<br />
E<strong>MAC</strong>#CLIENTRXD[15:0]<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXFRAMEDROP<br />
Previous Frame<br />
Dropped<br />
n–5 n–4 n–3 n–2 n–1 n n+1 n+2 n+3 n+4 n+5 n+6<br />
Figure 3-24: Frame Matching Timing Diagram (16-Bit <strong>Mode</strong>)<br />
DA1, DA0 DA3, DA2 DA5, DA4<br />
Current Frame<br />
Passed<br />
72 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
DA<br />
<strong>UG194</strong>_3_24_081806<br />
R
R<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
Flow Control Block<br />
Flow Control Block<br />
Figure 3-25 shows the timing diagram when a frame fails to match a valid location in the<br />
AF (8-bit mode) and the frame drop signal is generated.<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXD[7:0]<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXFRAMEDROP<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
Previous Frame<br />
Passed<br />
n–2 n–1 n n+1 n+2 n+3 n+4 n+5 n+6 n+7<br />
Figure 3-25: Frame Matching Failed Timing Diagram (8-Bit <strong>Mode</strong>)<br />
DA SA<br />
Current Frame<br />
Dropped<br />
<strong>UG194</strong>_3_25_081006<br />
Figure 3-26 shows the timing diagram when a frame fails to match a valid location in the<br />
AF (16-bit mode) and the frame drop signal is generated.<br />
PHYE<strong>MAC</strong>#RXCLK<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXDVLDMSW<br />
E<strong>MAC</strong>#CLIENTRXD[15:0]<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXFRAMEDROP<br />
Previous Frame<br />
Passed<br />
n–5 n–4 n–3 n–2 n–1 n n+1 n+2 n+3 n+4 n+5 n+6<br />
Figure 3-26: Frame Matching Failed Timing Diagram (16-Bit <strong>Mode</strong>)<br />
DA1, DA0 DA3, DA2 DA5, DA4<br />
Current Frame<br />
Dropped<br />
The flow control block is designed to clause 31 of the IEEE Std 802.3-2005 standard. The<br />
<strong>Ethernet</strong> <strong>MAC</strong> can be configured to send PAUSE frames and to act upon the PAUSE<br />
frame's reception during full-duplex operation. These two behaviors can be configured<br />
asymmetrically (see “Configuration Registers,” page 88).<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 73<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
DA<br />
<strong>UG194</strong>_3_26_081806
Chapter 3: Client Interface<br />
Requirement for Flow Control<br />
Figure 3-27 illustrates the requirement for flow control. The <strong>Ethernet</strong> <strong>MAC</strong> on the right<br />
side of the figure has a reference clock slightly faster than the nominal 125 MHz. The<br />
<strong>Ethernet</strong> <strong>MAC</strong> on the left side of the figure has a reference clock slightly slower than the<br />
nominal 125 MHz. This results in the <strong>Ethernet</strong> <strong>MAC</strong> on the left side of the figure not being<br />
able to match the full line rate of the <strong>Ethernet</strong> <strong>MAC</strong> on the right side (due to clock<br />
tolerances). The left <strong>Ethernet</strong> <strong>MAC</strong> is illustrated as performing a loopback<br />
implementation; this results in the FIFO filling up over time. Without flow control, this<br />
FIFO eventually fills and overflows, resulting in the corruption or loss of <strong>Ethernet</strong> frames.<br />
Application<br />
Flow Control Basics<br />
Client Logic<br />
FIFO<br />
Figure 3-27: Requirement for Flow Control<br />
An <strong>Ethernet</strong> <strong>MAC</strong> transmits a pause control frame for the link partner to cease<br />
transmission for a defined period of time. For example, the left <strong>Ethernet</strong> <strong>MAC</strong> of<br />
Figure 3-27 initiates a pause request when the client FIFO (illustrated) reaches a nearly full<br />
state.<br />
An <strong>Ethernet</strong> <strong>MAC</strong> responds to received pause control frames by ceasing transmission of<br />
frames for the period of time defined in the received pause control frame. For example, the<br />
right <strong>Ethernet</strong> <strong>MAC</strong> of Figure 3-27 ceases transmission after receiving the pause control<br />
frame transmitted by the left <strong>Ethernet</strong> <strong>MAC</strong>. In a well-designed system, the right <strong>Ethernet</strong><br />
<strong>MAC</strong> ceases transmission before the client FIFO of the left <strong>Ethernet</strong> <strong>MAC</strong> overflows. This<br />
provides time to empty the FIFO to a safe level before normal operation resumes. It also<br />
safeguards the system against FIFO overflow conditions and frame loss.<br />
74 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
<strong>MAC</strong><br />
TX<br />
RX<br />
125 MHz –100 ppm<br />
125 MHz +100 ppm<br />
<strong>MAC</strong><br />
RX<br />
TX<br />
<strong>UG194</strong>_3_27_072606<br />
R
R<br />
Transmitting a PAUSE Control Frame<br />
Flow Control Block<br />
The client initiates a flow control frame by asserting CLIENTE<strong>MAC</strong>#PAUSEREQ when the<br />
pause value is on the CLIENTE<strong>MAC</strong>#PAUSEVAL[15:0] bus. When the optional clock<br />
enables are not used, these signals are synchronous to CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN.<br />
The timing is shown in Figure 3-28.<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#PAUSEVAL[15:0]<br />
When the optional clock enable clocking scheme is used, the signals are synchronous to<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN. These signals are written into the <strong>Ethernet</strong> <strong>MAC</strong> when the<br />
enable signal, E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT, is High.<br />
When the <strong>Ethernet</strong> <strong>MAC</strong> is configured to support transmit flow control, a PAUSE control<br />
frame is transmitted on the link. When CLIENTE<strong>MAC</strong>#PAUSEREQ is asserted, the PAUSE<br />
parameter is set to the CLIENTE<strong>MAC</strong>#PAUSEVAL[15:0] value. This does not disrupt any<br />
frame transmission in progress, but it takes priority over any pending frame transmission.<br />
The PAUSE control frame is transmitted even if the transmitter is in a paused state. An<br />
example of a PAUSE frame (not drawn to scale) is shown in Figure 3-29.<br />
Pause Destination<br />
Address<br />
01-80-C2-00-00-01<br />
CLIENTE<strong>MAC</strong>#PAUSEREQ<br />
The pause source address can be configured using the “Configuration Registers,” page 88.<br />
The pause time transmitted in the PAUSE frame is the current sampled<br />
CLIENTE<strong>MAC</strong>#PAUSEVAL[15:0] value.<br />
Because only a single pause control frame request is stored by the transmitter, if<br />
CLIENTE<strong>MAC</strong>#PAUSEREQ is asserted multiple times prior to the transmission of a control<br />
pause frame (i.e., while the previous frame transmission is still in progress), only a single<br />
pause frame is transmitted.<br />
Receiving a PAUSE Control Frame<br />
Figure 3-28: Pause Request Timing<br />
Source<br />
Address<br />
<strong>MAC</strong><br />
Control<br />
Type<br />
0x8808<br />
64-Byte Data Field<br />
<strong>MAC</strong><br />
Control<br />
OPCODE<br />
0x0001<br />
Figure 3-29: Pause Frame Example<br />
<strong>UG194</strong>_3_28_072106<br />
When an error-free frame is received by the <strong>Ethernet</strong> <strong>MAC</strong>, it examines the following<br />
information:<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 75<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
Pause<br />
Time<br />
46-Byte Data Field<br />
FCS<br />
<strong>UG194</strong>_3_29_072106
Chapter 3: Client Interface<br />
The destination address field is matched against the <strong>Ethernet</strong> <strong>MAC</strong> control multicast<br />
address (01-80-C2-00-00-01) and the configured address for the <strong>Ethernet</strong> <strong>MAC</strong><br />
(see “Address Filter Registers,” page 94).<br />
The LT field is matched against the <strong>Ethernet</strong> <strong>MAC</strong> control type code.<br />
If the second match is TRUE, the OPCODE field contents are matched against the<br />
<strong>Ethernet</strong> <strong>MAC</strong> control OPCODE for pause frames.<br />
If the frame passes all of the previous checks, is of minimum legal size, and the <strong>Ethernet</strong><br />
<strong>MAC</strong> flow control logic for the receiver is enabled, then the pause value parameter in the<br />
frame is used to inhibit transmitter operation for a time defined in the IEEE Std 802.3-2002<br />
specification. This inhibit is implemented by delaying the assertion of<br />
E<strong>MAC</strong>#CLIENTTXACK at the transmitter client interface until the requested pause duration<br />
has expired. Because the received pause frame has been acted upon, it is passed to the<br />
client with E<strong>MAC</strong>#CLIENTRXBADFRAME asserted, indicating to the client that the frame<br />
should be dropped.<br />
If the second match is TRUE and the frame is not exactly 64 bytes in length, the reception<br />
of any frame is considered to be an invalid control frame. This frame is ignored by the flow<br />
control logic and passed to the client with E<strong>MAC</strong>#CLIENTRXBADFRAME asserted.<br />
E<strong>MAC</strong>#CLIENTRXBADFRAME will be asserted even if flow control is not enabled.<br />
If any of the previous matches are FALSE or if the <strong>Ethernet</strong> <strong>MAC</strong> flow control logic for the<br />
receiver is disabled, the frame is ignored by the flow control logic and is passed on to the<br />
client. It is the responsibility of the receiver client logic to drop any frames where the LT<br />
field matches the <strong>Ethernet</strong> <strong>MAC</strong> control type code. The receiver statistics vector (bit 19)<br />
indicates if the previous frame is a control frame. See “Receiver Statistics Vector” for more<br />
information.<br />
Flow Control Implementation Example<br />
Method<br />
In the system illustrated in Figure 3-27, the <strong>Ethernet</strong> <strong>MAC</strong> on the left side of the figure<br />
cannot match the full line rate of the right <strong>Ethernet</strong> <strong>MAC</strong> due to clock tolerances. Over<br />
time, the FIFO fills and overflows.<br />
This example implements a flow control method to reduce, over a long time period, the full<br />
line rate of the right <strong>Ethernet</strong> <strong>MAC</strong> to less than the full line rate capability of the left<br />
<strong>Ethernet</strong> <strong>MAC</strong>.<br />
1. Choose a FIFO with a nearly full occupancy threshold. A 7/8 occupancy is used in this<br />
description, but the choice of threshold is implementation specific. When the<br />
occupancy of the FIFO exceeds this occupancy, initiate a single pause control frame<br />
with 0xFFFF used as the pause_quantum duration (0xFFFF is placed on<br />
pause_val[15:0]). This is the maximum pause duration and causes the right<br />
<strong>Ethernet</strong> <strong>MAC</strong> to cease transmission and the FIFO of the left <strong>Ethernet</strong> <strong>MAC</strong> to start<br />
emptying.<br />
2. Choose a second FIFO with an occupancy threshold of 1/2 (the choice of threshold is<br />
implementation specific). When the occupancy of the FIFO falls below this occupancy,<br />
initiate a second pause control frame with 0x0000 used as the pause_quantum duration<br />
(0x0000 is placed on pause_val[15:0]). This indicates a zero pause duration, and<br />
upon receiving this pause control frame, the right <strong>Ethernet</strong> <strong>MAC</strong> immediately resumes<br />
transmission (there is no wait for the original requested pause duration to expire). This<br />
PAUSE control frame can, therefore, be considered a Pause Cancel command.<br />
76 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Operation<br />
Figure 3-30 illustrates the FIFO occupancy over time.<br />
FIFO Occupancy<br />
Full<br />
7/8<br />
1/2<br />
Empty<br />
Flow Control Block<br />
Figure 3-30: Flow Control Implementation <strong>Tri</strong>ggered from FIFO Occupancy<br />
The FIFO occupancy of the left <strong>Ethernet</strong> <strong>MAC</strong> gradually increases over time due to<br />
the clock tolerances. At point A, the occupancy has reached the threshold of 7/8 full,<br />
triggering the maximum duration pause control frame request.<br />
Upon receiving the pause control frame, the right <strong>Ethernet</strong> <strong>MAC</strong> ceases transmission<br />
at point B. The system designer should ensure sufficient space in the FIFO above the<br />
threshold (point A) to allow the transmitter to stop.<br />
After the right <strong>Ethernet</strong> <strong>MAC</strong> ceases transmission, the occupancy of the FIFO attached<br />
to the left <strong>Ethernet</strong> <strong>MAC</strong> empties. The occupancy falls to the second threshold of 1/2<br />
occupancy at point C, triggering the zero duration pause control frame request (the<br />
pause cancel command).<br />
Upon receiving this second pause control frame, the right hand <strong>Ethernet</strong> <strong>MAC</strong><br />
resumes transmission. To create an efficient system with the maximum possible line<br />
rate, the system designer should ensure sufficient space in the FIFO, below the<br />
threshold (point C), to prevent the FIFO emptying before transmission starts at point<br />
D.<br />
Normal operation resumes, and the FIFO occupancy again gradually increases over<br />
time. At point E, the flow control cycle repeats.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 77<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
A<br />
C<br />
B<br />
D<br />
E<br />
Time<br />
<strong>UG194</strong>_3_30_072106
Chapter 3: Client Interface<br />
Statistics Vectors<br />
Transmitter Statistics Vector<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
TX_STATISTICS_VALID<br />
(internal signal)<br />
TX_STATISTICS_VECTOR[31:0]<br />
(internal signal)<br />
E<strong>MAC</strong>#CLIENTTXSTATSVLD<br />
E<strong>MAC</strong>#CLIENTTXSTATS<br />
TX_STATISTICS_VECTOR contains the statistics for the frame transmitted. The<br />
TX_STATISTICS_VECTOR is a 32-bit vector and an internal signal. This vector is muxed<br />
out to a one-bit signal, E<strong>MAC</strong>#CLIENTTXSTATS, as shown in Figure 3-31 , following frame<br />
transmission. For standard clock management, the vector is driven synchronously by the<br />
transmitter clock, CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN. For alternative clock management,<br />
including the use of clock enables, the vector is driven synchronously to other TX client<br />
logic signals. See Chapter 6, “Physical Interface,” for relevant clocking networks.<br />
The bit-field definition for the transmitter statistics vector is defined in Table 3-3, page 80.<br />
0 1 2 3 4 5 28 29 30 31<br />
Figure 3-31: Transmitter Statistics Mux Timing<br />
<strong>UG194</strong>_03_31_072106<br />
The block diagram for the transmitter statistics MUX in the <strong>Ethernet</strong> <strong>MAC</strong> is shown in<br />
Figure 3-32.<br />
78 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
<strong>Ethernet</strong> <strong>MAC</strong> Block<br />
E<strong>MAC</strong>#CLIENTTXSTATSBYTEVLD<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
TX_STATISTICS_VECTOR[31:0]<br />
(Internal Signal)<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
TXSTATSMUX<br />
TXSTATSDEMUX<br />
User-Defined<br />
Statistics Processing Block<br />
Figure 3-32: Transmitter Statistics MUX Block Diagram<br />
Statistics Vectors<br />
TX_STATISTICS_VALID<br />
(Internal Signal)<br />
<strong>UG194</strong>_3_32_071509<br />
All bit fields in E<strong>MAC</strong>#CLIENTTXSTATS are only valid when E<strong>MAC</strong>#CLIENTTXSTATSVLD<br />
is asserted as illustrated in Figure 3-33. E<strong>MAC</strong>#CLIENTTXSTATSBYTEVLD is asserted if an<br />
<strong>Ethernet</strong> <strong>MAC</strong> frame byte (DA to FCS inclusive) is being transmitted. The signal is valid on<br />
every CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN cycle.<br />
TX_STATISTICS_VECTOR (bits 28 down to 20 inclusive) are only for half-duplex mode.<br />
When operating in full-duplex mode, these bits are reset to a logic 0.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 79<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
[31:0]<br />
E<strong>MAC</strong>#CLIENTTXSTATS<br />
RESET<br />
TXSTATSVEC [31:0]<br />
E<strong>MAC</strong>#CLIENTTXSTATSVLD<br />
TXSTATSVLD<br />
<strong>FPGA</strong> Logic
Chapter 3: Client Interface<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXDVLD<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
E<strong>MAC</strong>#CLIENTTXSTATSBYTEVLD<br />
E<strong>MAC</strong>#CLIENTTXSTATSVLD<br />
E<strong>MAC</strong>#CLIENTTXSTATS<br />
DA SA L/T DATA<br />
Figure 3-33: Transmitter Statistics Vector Timing<br />
Table 3-3: Bit Definitions for the Transmitter Statistics Vector<br />
TX_STATISTICS_VECTOR Name Description<br />
0 1 31<br />
<strong>UG194</strong>_3_33_081006<br />
31 PAUSE_FRAME_TRANSMITTED Asserted if the previous frame was a pause frame<br />
initiated by the <strong>Ethernet</strong> <strong>MAC</strong> in response to<br />
asserting CLIENTE<strong>MAC</strong>#PAUSEREQ.<br />
30 Reserved Undefined.<br />
29 Reserved Returns a logic 0.<br />
[28:25] (1) TX_ATTEMPTS[3:0] The number of attempts made to transmit the<br />
previous frame. A 4-bit number where 0 is one<br />
attempt; 1 is two attempts...up to 15 to describe 16<br />
attempts.<br />
24 (1) Reserved Returns a logic 0.<br />
23 (1) EXCESSIVE_COLLISION Asserted if a collision is detected on each of the last<br />
16 attempts to transmit the previous frame.<br />
22 (1) LATE_COLLISION Asserted if a late collision occurred during frame<br />
transmission.<br />
21 (1) EXCESSIVE_DEFERRAL Asserted if the previous frame was deferred for an<br />
excessive amount of time as defined by the<br />
maxDeferTime constant in the IEEE Std 802.3-2002<br />
specification.<br />
20 (1) TX_DEFERRED Asserted if transmission of the frame was deferred.<br />
19 VLAN_FRAME Asserted if the previous frame contains a VLAN<br />
identifier in the LT field when transmitter VLAN<br />
operation is enabled.<br />
[18:5] FRAME_LENGTH_COUNT The length of the previous frame in number of bytes.<br />
The count sticks at 16383 for jumbo frames larger<br />
than this value. Stops at 16383.<br />
80 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Table 3-3: Bit Definitions for the Transmitter Statistics Vector (Cont’d)<br />
TX_STATISTICS_VECTOR Name Description<br />
Receiver Statistics Vector<br />
Statistics Vectors<br />
4 CONTROL_FRAME Asserted if the previous frame has the special<br />
<strong>Ethernet</strong> <strong>MAC</strong> control type code 88-08 in the LT<br />
field.<br />
3 UNDERRUN_FRAME Asserted if the previous frame contains an underrun<br />
error.<br />
2 MULTICAST_FRAME Asserted if the previous frame contains a multicast<br />
address in the destination address field.<br />
1 BROADCAST_FRAME Asserted if the previous frame contains a broadcast<br />
address in the destination address field.<br />
0 SUCCESSFUL_FRAME Asserted if the previous frame is transmitted<br />
without error.<br />
Notes:<br />
1. Bits 28:20 of TX_STATISTICS_VECTOR are valid for half-duplex mode only.<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
RX_STATISTICS_VALID<br />
(internal signal)<br />
RX_STATISTICS_VECTOR[26:0]<br />
(internal signal)<br />
E<strong>MAC</strong>#CLIENTRXSTATSVLD<br />
E<strong>MAC</strong>#CLIENTRXSTATS[6:0]<br />
RX_STATISTICS_VECTOR contains the statistics for the frame received. It is a 27-bit vector<br />
and an internal signal. This vector is muxed out to a 7-bit signal<br />
E<strong>MAC</strong>#CLIENTRXSTATS[6:0], as shown in Figure 3-34 , following frame reception. For<br />
standard clock management, the vector is driven synchronously by the receiver clock,<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN. For alternative clock management, including the use of<br />
clock enables, the vector is driven synchronously to other RX client logic signals. See<br />
Chapter 6, “Physical Interface,” for relevant clocking networks.<br />
The bit-field definition for the receiver statistics vector is defined in Table 3-4.<br />
[6:0] [13:7] [20:14] [26:21]<br />
Figure 3-34: Receiver Statistics MUX Timing<br />
<strong>UG194</strong>_3_34_071509<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 81<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
The block diagram for the receiver statistics MUX in the <strong>Ethernet</strong> <strong>MAC</strong> is shown in<br />
Figure 3-35.<br />
<strong>Ethernet</strong> <strong>MAC</strong> Block<br />
E<strong>MAC</strong>#CLIENTRXSTATSBYTEVLD<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
RX_STATISTICS_VECTOR[26:0]<br />
(Internal Signal)<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
RXSTATSMUX<br />
RXSTATSDEMUX<br />
User-Defined<br />
Statistics Processing Block<br />
Figure 3-35: Receiver Statistics MUX Block Diagram<br />
RX_STATISTICS_VALID<br />
(Internal Signal)<br />
<strong>UG194</strong>_3_35_071509<br />
82 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
[26:0]<br />
E<strong>MAC</strong>#CLIENTRXSTATS[6:0]<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
RESET<br />
RXSTATSVEC[26:0] RXSTATSVLD<br />
<strong>FPGA</strong> Logic<br />
E<strong>MAC</strong>#CLIENTRXSTATSVLD<br />
R
R<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXD[7:0]<br />
E<strong>MAC</strong>#CLIENTRXDVLD<br />
E<strong>MAC</strong>#CLIENTRXDVLDMSW<br />
E<strong>MAC</strong>#CLIENTRXGOODFRAME<br />
E<strong>MAC</strong>#CLIENTRXSTATSBYTEVLD<br />
E<strong>MAC</strong>#CLIENTRXSTATSVLD<br />
E<strong>MAC</strong>#CLIENTRXSTATS[6:0]<br />
Statistics Vectors<br />
All bit-fields for E<strong>MAC</strong>#CLIENTRXSTATS[6:0] are valid only when<br />
E<strong>MAC</strong>#CLIENTRXSTATSVLD is asserted as illustrated in Figure 3-36.<br />
E<strong>MAC</strong>#CLIENTRXSTATSBYTEVLD is asserted if an <strong>Ethernet</strong> <strong>MAC</strong> frame byte (DA to FCS<br />
inclusive) is received. This is valid on every CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN cycle.<br />
DA SA L/T DATA<br />
Figure 3-36: Receiver Statistics Vector Timing<br />
Table 3-4: Bit Definitions for the Receiver Statistics Vector<br />
RX_STATISTICS_VECTOR Name Description<br />
[6:0] [26:21]<br />
<strong>UG194</strong>_3_36_072106<br />
26 ALIGNMENT_ERROR Used in 10/100 MII mode. Asserted if the previous frame<br />
received has an incorrect FCS value and a misalignment<br />
occurs when the 4-bit MII data bus is converted to the 8-bit<br />
GMII data bus.<br />
25 Length/Type Out of Range Asserted if the LT field contains a length value that does<br />
not match the number of <strong>Ethernet</strong> <strong>MAC</strong> client data bytes<br />
received. Also asserted High if the LT field indicates that<br />
the frame contains padding but the number of <strong>Ethernet</strong><br />
<strong>MAC</strong> client data bytes received is not equal to 64 bytes<br />
(minimum frame size).<br />
'This bit is not defined when LT field error-checks are<br />
disabled.<br />
24 BAD_OPCODE Asserted if the previous frame is error free, contains the<br />
special control frame identifier in the LT field, but contains<br />
an OPCODE unsupported by the <strong>Ethernet</strong> <strong>MAC</strong> (any<br />
OPCODE other than PAUSE).<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 83<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 3: Client Interface<br />
Table 3-4: Bit Definitions for the Receiver Statistics Vector (Cont’d)<br />
RX_STATISTICS_VECTOR Name Description<br />
23 FLOW_CONTROL_FRAME Asserted if the previous frame is error-free. Contains the<br />
special control frame identifier in the LT field. Contains a<br />
destination address matching either the <strong>Ethernet</strong> <strong>MAC</strong><br />
control multicast address or the configured source address<br />
of the <strong>Ethernet</strong> <strong>MAC</strong>. Contains the supported PAUSE<br />
OPCODE and is acted upon by the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
22 Reserved. Undefined.<br />
21 VLAN_FRAME Asserted if the previous frame contains a VLAN identifier<br />
in the LT field when receiver VLAN operation is enabled.<br />
20 OUT_OF_BOUNDS Asserted if the previous frame exceeded the specified<br />
IEEE Std 802.3-2002 maximum legal length (see<br />
“Maximum Permitted Frame Length/Jumbo Frames,”<br />
page 66). This is only valid if jumbo frames are disabled.<br />
19 CONTROL_FRAME Asserted if the previous frame contains the special control<br />
frame identifier in the LT field.<br />
[18:5] FRAME_LENGTH_COUNT The length of the previous frame in number of bytes. The<br />
count sticks at 16383 for any jumbo frames larger than this<br />
value.<br />
4 MULTICAST_FRAME Asserted if the previous frame contains a multicast<br />
address in the destination address field.<br />
3 BROADCAST_FRAME Asserted if the previous frame contained the broadcast<br />
address in the destination address field.<br />
2 FCS_ERROR Asserted if the previous frame received has an incorrect<br />
FCS value or the <strong>Ethernet</strong> <strong>MAC</strong> detects error codes during<br />
frame reception.<br />
1 BAD_FRAME (1) Asserted if the previous frame received contains errors.<br />
0 GOOD_FRAME (1) Asserted if the previous frame received is error-free.<br />
Notes:<br />
1. If the length/type field error checks are disabled, then a frame containing this type of error is marked as a GOOD_FRAME,<br />
providing no additional errors were detected.<br />
Statistics Registers/Counters<br />
The <strong>Ethernet</strong> <strong>MAC</strong> does not collect statistics on the success and failure of various<br />
operations. A custom statistics counter can be implemented in the <strong>FPGA</strong> logic to collect the<br />
statistics. A parameterizable <strong>Ethernet</strong> statistics core is available from the LogiCORE<br />
libraries. For more information, see:<br />
http://www.xilinx.com/products/ipcenter/ETHERNET_STATS.htm.<br />
When the DCR is used, it can access the statistics counter registers in the <strong>FPGA</strong> logic<br />
through the DCR bridge in the host interface. Chapter 7, “Interfacing to a Statistics Block,”<br />
describes how to integrate <strong>Ethernet</strong> Statistics LogiCORE core into a design, as well as how<br />
to access the statistics registers using either the host bus or the DCR bus.<br />
84 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Host/DCR Bus Interfaces<br />
This chapter contains the following sections:<br />
“Introduction to the <strong>Ethernet</strong> <strong>MAC</strong> Host Interface”<br />
“<strong>Ethernet</strong> <strong>MAC</strong> Register Descriptions”<br />
“Using the Host Bus”<br />
“Using the DCR Bus”<br />
Introduction to the <strong>Ethernet</strong> <strong>MAC</strong> Host Interface<br />
Chapter 4<br />
Access to the <strong>Ethernet</strong> <strong>MAC</strong> in the <strong>Virtex</strong>®-5 <strong>FPGA</strong> through the host interface allows the<br />
user to:<br />
Read and write <strong>Ethernet</strong> <strong>MAC</strong> configuration registers<br />
Read and write <strong>Ethernet</strong> <strong>MAC</strong> address filter registers<br />
Read and write the PCS/PMA sublayer registers<br />
Drive the Management Data I/O (MDIO) interface to control an external device<br />
The <strong>Ethernet</strong> <strong>MAC</strong> host interface can be accessed using either the host bus or the DCR bus.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> should be configured to use the required bus by setting the<br />
DCRE<strong>MAC</strong>ENABLE input bit accordingly, see “DCR Bus Signals,” page 37.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 85<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 4: Host/DCR Bus Interfaces<br />
PLB v4.6<br />
to DCR<br />
Bridge<br />
Processor<br />
System<br />
DCRE<strong>MAC</strong>ENABLE<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong><br />
Figure 4-1 shows the internal structure of the host interface. The two <strong>Ethernet</strong> <strong>MAC</strong>s<br />
within the same block share a single host interface.<br />
DCRHOSTDONEIR<br />
DCR Bus<br />
DCR<br />
Bridge<br />
Host Interface<br />
<strong>Ethernet</strong> <strong>MAC</strong> Block<br />
Host Bus<br />
1 0<br />
Figure 4-1: Host Interface<br />
E<strong>MAC</strong>1SEL<br />
E<strong>MAC</strong>1<br />
E<strong>MAC</strong>0<br />
1 0<br />
<strong>UG194</strong>_4_01_071509<br />
E<strong>MAC</strong>1SEL (internal signal) is driven by the HOSTE<strong>MAC</strong>1SEL input signal when using the<br />
host bus or decoded by the DCR bridge when using the DCR bus.<br />
The XPS_LL_TE<strong>MAC</strong> soft core delivered through the XPS tool controls the <strong>Ethernet</strong> <strong>MAC</strong><br />
via the processor local bus (PLB) v4.6 interface. A bridge is provided to convert between<br />
the PLB v4.6 and DCR bus standards. For more information on the PLB v4.6 interface, see<br />
DS531, Processor Local Bus (PLB) v4.6 (v1.00a).<br />
86 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
HOSTCLK<br />
HOSTMIIMSEL<br />
HOSTREQ<br />
HOSTOPCODE[1:0]<br />
HOSTE<strong>MAC</strong>1SEL<br />
HOSTADDR[9:0]<br />
HOSTWRDATA[31:0]<br />
HOSTMIIMRDY<br />
HOSTRDDATA[31:0]<br />
DCRE<strong>MAC</strong>ENABLE<br />
DCRHOSTDONEIR<br />
R<br />
Figure 4-2 shows the block diagram of the host interface.<br />
DCR Bus<br />
<strong>Ethernet</strong> <strong>MAC</strong> Block<br />
<strong>FPGA</strong> Logic<br />
Host<br />
Interface<br />
Figure 4-2: <strong>Ethernet</strong> <strong>MAC</strong> Host Interface Block Diagram<br />
<strong>Ethernet</strong> <strong>MAC</strong> Register Descriptions<br />
To access management registers in the PCS/PMA sublayer, the MDIO interface is used.<br />
The MDIO interface is described in detail in Chapter 5, “MDIO Interface,” and access to the<br />
MDIO through the host interface is discussed later in this chapter.<br />
<strong>Ethernet</strong> <strong>MAC</strong> Register Descriptions<br />
MIIMSEL0<br />
REQ0<br />
OPCODE0<br />
ADDR0<br />
WRD0<br />
MIIMRDY0<br />
RDD0<br />
(All internal signals)<br />
MIIMSEL1<br />
REQ1<br />
OPCODE1<br />
ADDR1<br />
WRD1<br />
MIIMRDY1<br />
RDD1<br />
E<strong>MAC</strong>0<br />
E<strong>MAC</strong>1<br />
<strong>UG194</strong>_4_02_0080409<br />
Each <strong>Ethernet</strong> <strong>MAC</strong> has twelve configuration and address filter registers. These registers<br />
are accessed through the host interface and can be written to at any time. Both the receiver<br />
and transmitter logic only responds to configuration changes during Inter Frame gaps. The<br />
configurable resets are the only exception that take effect immediately. Writes made to<br />
address filter registers take effect immediately. To avoid corruption of incoming frames,<br />
writing to these registers should be made only while frame reception is not in progress.<br />
Table 4-1: <strong>Ethernet</strong> <strong>MAC</strong> Register Addresses<br />
Configuration<br />
and<br />
Address Filter<br />
Configuration<br />
and<br />
Address Filter<br />
PCS/ PMA0<br />
Management<br />
Registers<br />
PCS/ PMA1<br />
Management<br />
Registers<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 87<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
MDIO<br />
MDIO<br />
ADDRESS[9:0] Register Description<br />
0x200 Receiver Configuration (Word 0)<br />
0x240 Receiver Configuration (Word 1)<br />
0x280 Transmitter Configuration<br />
0x2C0 Flow Control Configuration<br />
0x300 <strong>Ethernet</strong> <strong>MAC</strong> <strong>Mode</strong> Configuration<br />
0x320 RGMII/SGMII Configuration
Chapter 4: Host/DCR Bus Interfaces<br />
Table 4-1: <strong>Ethernet</strong> <strong>MAC</strong> Register Addresses (Cont’d)<br />
Configuration Registers<br />
ADDRESS[9:0] Register Description<br />
0x340 Management Configuration<br />
0x380 Unicast Address (Word 0)<br />
0x384 Unicast Address (Word 1)<br />
0x388 Additional Address Table Access (Word 0)<br />
0x38C Additional Address Table Access (Word 1)<br />
0x390 Address Filter <strong>Mode</strong><br />
The <strong>Ethernet</strong> <strong>MAC</strong> configuration registers and the contents of the registers are shown in<br />
Table 4-2 through Table 4-8.<br />
Table 4-2: Receiver Configuration Register (Word 0)<br />
MSB<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
0x200 PAUSE_FRAME_ADDRESS[31:0]<br />
Bit Description Default Value R/W<br />
[31:0] Pause Frame <strong>Ethernet</strong> <strong>MAC</strong> Address [31:0]. This address is used<br />
to match the <strong>Ethernet</strong> <strong>MAC</strong> against the destination address of<br />
any incoming flow control frames. It is also used by the flow<br />
control block as the source address for any outbound flow<br />
control frames.<br />
The address is ordered so the first byte transmitted/received<br />
is the lowest positioned byte in the register; for example, a<br />
<strong>MAC</strong> address of AA-BB-CC-DD-EE-FF is stored in address<br />
[47:0] as 0xFFEEDDCCBBAA.<br />
Tie to the same value as E<strong>MAC</strong>#_UNICASTADDR[31:0].<br />
88 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
LSB<br />
E<strong>MAC</strong>#_PAUSEADDR[31:0] R/W<br />
R
R<br />
Table 4-3: Receiver Configuration Register (Word 1)<br />
0x240<br />
MSB<br />
<strong>Ethernet</strong> <strong>MAC</strong> Register Descriptions<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RST<br />
JUM<br />
FCS<br />
RX<br />
VLAN<br />
HD<br />
LT_DIS<br />
RESERVED PAUSE_FRAME_ADDRESS[47:32]<br />
Bit Description Default Value R/W<br />
[15:0] Pause frame <strong>Ethernet</strong> <strong>MAC</strong> Address [47:32]. Tie to the same<br />
value as E<strong>MAC</strong>#_UNICASTADDR[47:32].<br />
[24:16] Reserved. –<br />
[25] Length/Type Check disable. When this bit is 1, it disables<br />
the Length/Type field check on the frame.<br />
[26] Half-duplex mode. When this bit is 1, the receiver operates<br />
in half-duplex mode. When the bit is 0, the receiver operates<br />
in full-duplex mode.<br />
[27] VLAN enable. When this bit is 1, the receiver accepts VLAN<br />
tagged frames. The maximum payload length increases by<br />
four bytes.<br />
[28] Receive enable. When this bit is 1, the receiver block is<br />
enabled to operate. When the bit is 0, the receiver ignores<br />
activity on the physical interface receive port.<br />
[29] In-band FCS enable. When this bit is 1, the receiver passes<br />
the FCS field up to the client. When this bit is 0, the FCS field<br />
is not passed to the client. In either case, the FCS is verified<br />
on the frame.<br />
[30] Jumbo frame enable. When this bit is 1, the <strong>Ethernet</strong> <strong>MAC</strong><br />
receiver accepts frames over the maximum length specified<br />
in IEEE Std 802.3-2002 specification. When this bit is 0, the<br />
receiver only accepts frames up to the specified maximum.<br />
[31] Reset. When this bit is 1, the receiver is reset. The bit<br />
automatically reverts to 0. This reset also sets all of the<br />
receiver configuration registers to their default values.<br />
E<strong>MAC</strong>#_PAUSEADDR[47:32] R/W<br />
E<strong>MAC</strong>#_LTCHECK_DISABLE R/W<br />
E<strong>MAC</strong>#_RXHALFDUPLEX R/W<br />
E<strong>MAC</strong>#_RXVLAN_ENABLE R/W<br />
E<strong>MAC</strong>#_RX_ENABLE R/W<br />
E<strong>MAC</strong>#_RXINBANDFCS_ENABLE R/W<br />
E<strong>MAC</strong>#_RXJUMBOFRAME_ENABLE R/W<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 89<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
LSB<br />
E<strong>MAC</strong>#_RXRESET R/W
Chapter 4: Host/DCR Bus Interfaces<br />
Table 4-4: Transmitter Configuration Register<br />
0x280<br />
MSB<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RST<br />
JUM<br />
FCS<br />
TX<br />
VLAN<br />
HD<br />
IFG<br />
RESERVED<br />
Bit Description Default Value R/W<br />
[24:0] Reserved. –<br />
[25] IFG adjustment enable. When this bit is 1, the transmitter<br />
reads the value of CLIENTE<strong>MAC</strong>#TXIFGDELAY at the<br />
start of frame transmission and adjusts the IFG.<br />
[26] Half-duplex mode (applicable in 10/100 Mb/s mode only).<br />
When this bit is 1, the transmitter operates in half-duplex<br />
mode. When this bit is 0, the transmitter operates in fullduplex<br />
mode.<br />
[27] VLAN enable. When this bit is 1, the transmitter allows<br />
transmission of the VLAN tagged frames.<br />
[28] Transmit enable. When this bit is 1, the transmitter is<br />
enabled for operation.<br />
[29] In-band FCS enable. When this bit is 1, the <strong>Ethernet</strong> <strong>MAC</strong><br />
transmitter is ready for the FCS field from the client.<br />
[30] Jumbo frame enable. When this bit is 1, the transmitter<br />
sends frames greater than the maximum length specified in<br />
IEEE Std 802.3-2002. When this bit is 0, it only sends frames<br />
less than the specified maximum length.<br />
[31] Reset. When this bit is 1, the transmitter is reset. The bit<br />
automatically reverts to 0. This reset also sets all of the<br />
transmitter configuration registers to their default values.<br />
E<strong>MAC</strong>#_TXIFGADJUST_ENABLE R/W<br />
E<strong>MAC</strong>#_TXHALFDUPLEX R/W<br />
E<strong>MAC</strong>#_TXVLAN_ENABLE R/W<br />
E<strong>MAC</strong>#_TX_ENABLE R/W<br />
E<strong>MAC</strong>#_TXINBANDFCS_ENABLE R/W<br />
E<strong>MAC</strong>#_TXJUMBOFRAME_ENABLE R/W<br />
90 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
LSB<br />
E<strong>MAC</strong>#_TXRESET R/W<br />
R
R<br />
Table 4-5: Flow Control Configuration Register<br />
0x2C0<br />
MSB<br />
<strong>Ethernet</strong> <strong>MAC</strong> Register Descriptions<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
FCTX<br />
FCRX<br />
RESERVED<br />
Bit Description Default Value R/W<br />
[28:0] Reserved. –<br />
[29] Flow control enable (RX). When this bit is 1, the received<br />
flow control frames inhibit transmitter operation. When<br />
this bit is 0, the flow control frame is passed to the client.<br />
[30] Flow control enable (TX). When this bit is 1, the<br />
CLIENTE<strong>MAC</strong>#PAUSEREQ signal is asserted and a flow<br />
control frame is sent from the transmitter. When this bit is<br />
0, the CLIENTE<strong>MAC</strong>#PAUSEREQ signal has no effect.<br />
[31] Reserved. –<br />
E<strong>MAC</strong>#_RXFLOWCTRL_ENABLE R/W<br />
E<strong>MAC</strong>#_TXFLOWCTRL_ENABLE R/W<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 91<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
LSB
Chapter 4: Host/DCR Bus Interfaces<br />
Table 4-6: <strong>Ethernet</strong> <strong>MAC</strong> <strong>Mode</strong> Configuration Register<br />
0x300<br />
MSB<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
LINK<br />
SPEED<br />
RGMII<br />
SGMII<br />
GPCS<br />
HOST<br />
TX16<br />
RX16<br />
RESERVED<br />
Bit Description Default Value R/W<br />
[23:0] Reserved. –<br />
[24] Receive 16-bit Client Interface enable. When this bit is 1, the<br />
receive data client interface is 16 bits wide. When this bit is<br />
0, the receive data client interface is 8 bits wide. This bit is<br />
valid only when using 1000BASE-X PCS/PMA mode.<br />
[25] Transmit 16-bit Client Interface enable. When this bit is 1,<br />
the transmit data client interface is 16 bits wide. When this<br />
bit is 0, the transmit data client interface is 8 bits wide. This<br />
bit is valid only when using 1000BASE-X PCS/PMA mode.<br />
[26] Host Interface enable. When this bit is 1, the host interface<br />
is enabled. When this bit is 0, the host interface is disabled.<br />
See "<strong>Ethernet</strong> <strong>MAC</strong> Attributes" on page 42.<br />
[27] 1000BASE-X mode enable. When this bit is 1, the <strong>Ethernet</strong><br />
<strong>MAC</strong> is configured in 1000BASE-X mode.<br />
[28] SGMII mode enable. When this bit is 1, the <strong>Ethernet</strong> <strong>MAC</strong><br />
is configured in SGMII mode.<br />
[29] RGMII mode enable. When this bit is 1, the <strong>Ethernet</strong> <strong>MAC</strong><br />
is configured in RGMII mode.<br />
[31:30] Speed selection. The speed of the <strong>Ethernet</strong> <strong>MAC</strong> is defined<br />
by the following values:<br />
10 = 1000 Mb/s<br />
01 = 100 Mb/s<br />
00 = 10 Mb/s<br />
11 = N/A<br />
E<strong>MAC</strong>#_RX16BITCLIENT_ENABLE R<br />
E<strong>MAC</strong>#_TX16BITCLIENT_ENABLE R<br />
E<strong>MAC</strong>#_HOST_ENABLE R<br />
E<strong>MAC</strong>#_1000BASEX_ENABLE R<br />
E<strong>MAC</strong>#_SGMII_ENABLE R<br />
E<strong>MAC</strong>#_RGMII_ENABLE R<br />
{E<strong>MAC</strong>#_SPEED_MSB,<br />
E<strong>MAC</strong>#_SPEED_LSB}<br />
92 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
LSB<br />
R/W<br />
R
R<br />
Table 4-7: RGMII/SGMII Configuration Register<br />
MSB<br />
0x320 SGMII<br />
LINK<br />
SPEED<br />
<strong>Ethernet</strong> <strong>MAC</strong> Register Descriptions<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
RGMII<br />
LINK<br />
SPEED RGMII<br />
Bit Description Default Value R/W<br />
[0] RGMII link. Valid in RGMII mode configuration only. When this<br />
bit is 1, the link is up. When this bit is 0, the link is down. This<br />
displays the link information from the PHY to the <strong>Ethernet</strong><br />
<strong>MAC</strong>, encoded by GMII_RX_DV and GMII_RX_ER during the<br />
IFG.<br />
[1] RGMII duplex status. Valid in RGMII mode configuration only.<br />
This bit is 0 for half-duplex and 1 for full-duplex. This displays<br />
the duplex information from the PHY to the <strong>Ethernet</strong> <strong>MAC</strong>,<br />
encoded by GMII_RX_DV and GMII_RX_ER during the IFG.<br />
[3:2] RGMII speed. Valid in RGMII mode configuration only. Link<br />
information from the PHY to the <strong>Ethernet</strong> <strong>MAC</strong> as encoded by<br />
GMII_RX_DV and GMII_RX_ER during the IFG. This two-bit<br />
vector is defined with the following values:<br />
10 = 1000 Mb/s<br />
01 = 100 Mb/s<br />
00 = 10 Mb/s<br />
11 = N/A<br />
[29:4] Reserved –<br />
[31:30] SGMII speed. Valid in SGMII mode configuration only. This<br />
displays the SGMII speed information, as received by<br />
TX_CONFIG_REG[11:10] in the PCS/PMA register. See<br />
Table 5-19, page 133. This two-bit vector is defined with the<br />
following values:<br />
10 = 1000 Mb/s<br />
01 = 100 Mb/s<br />
00 = 10 Mb/s<br />
11 = N/A<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 93<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
LSB<br />
HD<br />
RGMII<br />
Link<br />
0 R<br />
0 R<br />
All 0s R<br />
All 0s R
Chapter 4: Host/DCR Bus Interfaces<br />
Table 4-8: Management Configuration Register<br />
0x340<br />
MSB<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Address Filter Registers<br />
RESERVED<br />
The <strong>Ethernet</strong> <strong>MAC</strong> Address filter has five address filter registers accessible through the<br />
host interface. One unicast address can be written into the unicast address register and four<br />
additional addresses can be written into the general address table, which is accessed<br />
indirectly through the General Address access registers. Figure 4-3 describes the General<br />
Address table access.<br />
94 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
MDIOEN<br />
LSB<br />
CLOCK_DIVIDE[5:0]<br />
Bit Description Default Value R/W<br />
[5:0] Clock divide [5:0]. This value is used to derive the<br />
E<strong>MAC</strong>#PHYMCLKOUT for external devices. See Chapter 5,<br />
“MDIO Interface.”<br />
[6] MDIO enable. When this bit is 1, the MDIO interface is used to<br />
access the PHY. This bit can only be asserted when clock divide<br />
is also loaded with a non-zero value. When this bit is 0, the<br />
MDIO interface is disabled, and the MDIO signals remain<br />
inactive. See Chapter 5, “MDIO Interface.”<br />
[31:7] Reserved. –<br />
00<br />
01<br />
10<br />
11<br />
General Address Table Access (Word 1)<br />
General Address Register 0<br />
General Address Register 2<br />
Figure 4-3: General Address Table Memory Diagram<br />
All 0s R/W<br />
0 R/W<br />
HOST_ADDR 31 23<br />
17 16 15<br />
0<br />
0x38C<br />
ADDR<br />
MSB<br />
MSB<br />
RNW<br />
ADDR<br />
47 General Address Table<br />
0<br />
General Address Register 1<br />
General Address Register 3<br />
GENERAL_ADDRESS[47:32]<br />
LSB<br />
<strong>UG194</strong>_4_03_072106<br />
LSB<br />
R
R<br />
Table 4-9: Unicast Address (Word 0)<br />
0x380<br />
MSB<br />
<strong>Ethernet</strong> <strong>MAC</strong> Register Descriptions<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
UNICAST_ADDRESS[31:0]<br />
Bit Description Default Value R/W<br />
[31:0] Unicast Address [31:0]. This address is used to match the<br />
<strong>Ethernet</strong> <strong>MAC</strong> against the destination address of any<br />
incoming frames.<br />
The address is ordered so the first byte transmitted/received<br />
is the lowest positioned byte in the register; for example, a<br />
<strong>MAC</strong> address of AA-BB-CC-DD-EE-FF is stored in address<br />
[47:0] as 0xFFEEDDCCBBAA.<br />
Table 4-10: Unicast Address (Word 1)<br />
0x384<br />
MSB<br />
E<strong>MAC</strong>#_UNICASTADDR[31:0] R/W<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED UNICAST_ADDRESS[47:32]<br />
Bit Description Default Value R/W<br />
[15:0] Unicast Address [47:32] E<strong>MAC</strong>#_UNICASTADDR[47:32] R/W<br />
[31:16] Reserved. –<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 95<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
LSB<br />
LSB
Chapter 4: Host/DCR Bus Interfaces<br />
Table 4-11: Address Table Access (Word 0)<br />
0x388<br />
MSB<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
GENERAL_ADDRESS[31:0]<br />
Bit Description Default Value R/W<br />
[31:0] General Address [31:0]. The general address bits [31:0] are temporarily<br />
deposited into this register for writing into a general address register.<br />
When a read from an address register has been performed, the address bits<br />
[31:0] are accessible from this register.<br />
The address is ordered so the first byte transmitted/received is the lowest<br />
positioned byte in the register; for example, a <strong>MAC</strong> address of AA-BB-CC-<br />
DD-EE-FF is stored in address [47:0] as 0xFFEEDDCCBBAA.<br />
Table 4-12: Address Table Access (Word 1)<br />
0x38c<br />
MSB<br />
96 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
LSB<br />
All 0s R/W<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
RNW<br />
RESERVED<br />
ADDR<br />
GENERAL_ADDRESS[47:32]<br />
Bit Description Default Value R/W<br />
General Address (Word 1)<br />
[15:0] General Address [47:32]. The general address bits [47:32] are temporarily<br />
deposited into this register for writing into a general address register.<br />
[17:16] Address Table address. This two-bit vector is used to choose the general<br />
address register to access.<br />
00 = General Address Register 0<br />
01 = General Address Register 1<br />
10 = General Address Register 2<br />
11 = General Address Register 3<br />
[22:18] Reserved. –<br />
[23] Address Table read enable (RNW). When this bit is 1, a general address<br />
register is read. When this bit is 0, a general address register is written with<br />
the address set in the general address table register.<br />
[31:24] Reserved. –<br />
LSB<br />
All 0s R/W<br />
All 0s R/W<br />
0 R/W<br />
R
R<br />
Table 4-13: Address Filter <strong>Mode</strong><br />
0x390<br />
MSB<br />
Using the Host Bus<br />
Using the Host Bus<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
PM<br />
To access the host interface using the host bus, the DCRE<strong>MAC</strong>ENABLE signal should be tied<br />
to logic 0.<br />
When using the host bus, the type of transaction initiated is dependant on the host bus<br />
signals HOSTMIIMSEL, HOSTADDR[9], and HOSTE<strong>MAC</strong>1SEL. Table 4-14 shows the access<br />
method required for each transaction type.<br />
Clocking Requirements<br />
RESERVED<br />
Bit Description Default Value R/W<br />
Address Filter <strong>Mode</strong><br />
[30:0] Reserved. –<br />
[31] Promiscuous <strong>Mode</strong> enable. When this bit is 1, the<br />
Address Filter block is disabled. When this bit is 0, the<br />
Address Filter block is enabled.<br />
Table 4-14: Host Bus Transaction Types<br />
1: When E<strong>MAC</strong>#_ADDRFILTERENABLE<br />
is FALSE<br />
0: When E<strong>MAC</strong>#_ADDRFILTERENABLE<br />
is TRUE<br />
Transaction R/W HOSTE<strong>MAC</strong>1SEL HOSTMIIMSEL HOSTADDR[9] HOSTOPCODE[1]HOSTOPCODE[0]<br />
E<strong>MAC</strong>0<br />
Configuration/Address<br />
Filter<br />
Read 0 0 1 1 X<br />
Write 0 0 1 0 X<br />
E<strong>MAC</strong>0 MDIO access Read 0 1 X 1 0<br />
E<strong>MAC</strong>1<br />
Configuration/Address<br />
Filter<br />
Write 0 1 X 0 1<br />
Read 1 0 1 1 X<br />
Write 1 0 1 0 X<br />
E<strong>MAC</strong>1 MDIO access Read 1 1 X 1 0<br />
Write 1 1 X 0 1<br />
The HOSTCLK can operate at speeds of up to 125 MHz. This clock can be tied to a usersupplied,<br />
125 MHz input clock to save on clock resources, such as the 125 MHz clock<br />
provided into the PHYE<strong>MAC</strong>#GTXCLK port (see Appendix C, “<strong>Virtex</strong>-4 to <strong>Virtex</strong>-5 <strong>FPGA</strong><br />
Enhancements”).<br />
The host clock (HOSTCLK) is used to derive the MDIO clock, MDC. Configuring the <strong>Ethernet</strong><br />
<strong>MAC</strong> to derive MDC is detailed in “Accessing MDIO through the Host Interface,” page 119.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 97<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
LSB<br />
R/W
Chapter 4: Host/DCR Bus Interfaces<br />
Reading and Writing <strong>MAC</strong> Configuration Registers<br />
Figure 4-4 shows the write timing for the configuration registers using the host bus. When<br />
accessing the configuration registers (i.e., when HOSTADDR[9] =1 and<br />
HOSTMIIMSEL= 0), HOSTOPCODE[1] functions as an active-Low write enable signal, and<br />
HOSTOPCODE[0] is a don’t care.<br />
HOSTADDR[9:0] takes the address of the configuration register to be accessed, as<br />
described in Table 4-1.<br />
The HOSTE<strong>MAC</strong>1SEL signal selects between the host access of E<strong>MAC</strong>0 or E<strong>MAC</strong>1. When<br />
HOSTE<strong>MAC</strong>1SEL is asserted, the host accesses E<strong>MAC</strong>1. If only one <strong>Ethernet</strong> <strong>MAC</strong> is used,<br />
this signal can be tied-off to use either of the <strong>Ethernet</strong> <strong>MAC</strong>s.<br />
HOSTCLK<br />
HOSTMIIMSEL<br />
HOSTOPCODE[1]<br />
HOSTADDR[8:0]<br />
HOSTADDR[9]<br />
HOSTWRDATA[31:0]<br />
HOSTE<strong>MAC</strong>1SEL<br />
<strong>UG194</strong>_4_04_051208<br />
Figure 4-4: Configuration Register Write Timing<br />
Figure 4-5 shows the read timing from the configuration registers. A High on<br />
HOSTOPCODE[1] indicates a read transaction on the bus. The contents of the register<br />
appear on HOSTRDDATA[31:0] on the HOSTCLK edge after the register address is asserted<br />
onto HOSTADDR. A Low on HOSTMIIMSEL indicates a configuration access. It must be held<br />
Low for an even number of clock cycles during a read operation.<br />
98 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
HOSTCLK<br />
HOSTMIIMSEL<br />
HOSTOPCODE[1]<br />
HOSTADDR[8:0]<br />
HOSTADDR[9]<br />
HOSTRDDATA[31:0]<br />
HOSTE<strong>MAC</strong>1SEL<br />
Figure 4-5: Configuration Register Read Timing<br />
Reading and Writing Address Filter Registers<br />
<strong>UG194</strong>_4_05_051308<br />
Using the Host Bus<br />
Writing to registers in the Address Filter is the same as writing to configuration registers.<br />
The timing diagram shown for writing to the <strong>Ethernet</strong> <strong>MAC</strong> Configuration Registers<br />
(Figure 4-4) holds for Address Filter registers. HOSTADDR[9:0] takes the address of the<br />
address filter register to be accessed, as described in Table 4-1.<br />
To write a general address register, two write operations are required. First bits [31:0] of the<br />
general address must be written into the General Address Table Access Word 0 register.<br />
The upper bits [47:32] of the general address must then be written into the General<br />
Address Table Access Word 1 register, along with the Address Table address and the RNW<br />
bit at logic 0.<br />
Reading the Unicast Address registers and the Address <strong>Mode</strong> register is also the same as<br />
reading from configuration registers. The timing diagram shown for reading the <strong>Ethernet</strong><br />
<strong>MAC</strong> configuration registers (Figure 4-5) applies to accesses for these registers.<br />
Figure 4-6 shows the timing diagram for reading the general address from one of the four<br />
general address registers in the Address Table.<br />
To read a general address register, a write must first be made to the General Address Table<br />
Access Word 1 register. The RNW field is set to 1, and the Address Table address field<br />
should be set with the register number to be read. The general address register data is<br />
returned in HOSTRDDATA[31:0] as shown in Figure 4-6. The LSW is the general address<br />
[31:0]. The MSW contains 0x0000 and the general address [47:32].<br />
A Low on HOSTMIIMSEL indicates a configuration access. It must be held Low for an even<br />
number of clock cycles during a read operation.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 99<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 4: Host/DCR Bus Interfaces<br />
HOSTCLK<br />
HOSTMIIMSEL<br />
HOSTOPCODE[1]<br />
HOSTADDR[9:0]<br />
HOSTWRDATA[31:0]<br />
HOSTRDDATA[31:0]<br />
HOSTE<strong>MAC</strong>1SEL<br />
Figure 4-6: Address Filter General Address Register Read<br />
PCS/PMA Sublayer or External Device Access via MDIO<br />
Access to the MDIO interface through the management interface is shown in the Figure 4-7<br />
timing diagram. See Chapter 5, “MDIO Interface,” for a full description of the MDIO<br />
interface and PCS/PMA sublayer management registers. The MDIO interface must be<br />
enabled using the Management Configuration Register (see Table 4-8). If the MDIO<br />
interface is not enabled, accesses complete in a single cycle (MIIMRDY remains High) but<br />
are ignored.<br />
In MDIO transactions, the following applies:<br />
HOSTMIIMSEL is held High to indicate an MDIO transaction.<br />
HOSTOPCODE maps to the OPCODE field of the MDIO frame.<br />
HOSTADDR maps to the two address fields of the MDIO frame. PHYAD (the physical<br />
address) is HOSTADDR[9:5], and REGAD (the register address) is HOSTADDR[4:0].<br />
HOSTWRDATA[15:0] maps into the data field of the MDIO frame during a write<br />
operation.<br />
The data field of the MDIO frame maps into HOSTRDDATA[15:0] during a read<br />
operation.<br />
A read or write transaction on the MDIO is initiated by a pulse on the HOSTREQ signal.<br />
This pulse is ignored if the MDIO interface already has a transaction in progress. The<br />
<strong>Ethernet</strong> <strong>MAC</strong> deasserts the HOSTMIIMRDY signal while the transaction across the MDIO<br />
is in progress. When the transaction across the MDIO interface is completed, the<br />
HOSTMIIMRDY signal is asserted by the <strong>Ethernet</strong> <strong>MAC</strong>. If the transaction is a read, the data<br />
is also available on the HOSTRDATA[15:0] bus.<br />
100 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
0x38C<br />
LSW<br />
MSW<br />
<strong>UG194</strong>_4_06_101308<br />
R
R<br />
HOSTCLK<br />
HOSTMIIMSEL<br />
HOSTREQ<br />
HOSTOPCODE[1:0]<br />
HOSTADDR[9:0]<br />
HOSTWRDATA[15:0]<br />
HOSTMIIMRDY<br />
HOSTRDDATA[15:0]<br />
HOSTE<strong>MAC</strong>1SEL<br />
Using the DCR Bus<br />
Using the DCR Bus<br />
As noted in Figure 4-7, if a read transaction is initiated, the HOSTRDDATA bus is valid at the<br />
point indicated. If a write transaction is initiated, the HOSTWRDATA bus must be valid at the<br />
point indicated. The bus is locked until the transfer completes.<br />
The DCRE<strong>MAC</strong>ENABLE signal selects between the DCR bus or the host bus during the <strong>FPGA</strong><br />
power-up configuration. To access the host interface through the DCR bus, the<br />
DCRE<strong>MAC</strong>ENABLE signal must be asserted by tying the signal High in the <strong>FPGA</strong> logic.<br />
The address space available on the DCR bus is limited. The host interface is accessed<br />
indirectly using only four registers per E<strong>MAC</strong> in the DCR address space. Accessing the<br />
host interface though the DCR bus requires more software complexity than though the<br />
host bus. For further information, see the example software routines in “Interfacing to a<br />
Processor,” page 107.<br />
When the DCR bus is used to access the internal registers of the <strong>Ethernet</strong> <strong>MAC</strong>, the DCR<br />
bus bridge in the host interface translates commands carried over the DCR bus into<br />
<strong>Ethernet</strong> <strong>MAC</strong> host bus signals. These signals then configure one of the <strong>Ethernet</strong> <strong>MAC</strong>s.<br />
Clocking Requirements<br />
Figure 4-7: MDIO Access Through the Host Bus<br />
<strong>UG194</strong>_4_07_100708<br />
The HOSTCLK frequency must be an integer divide of the DCR clock frequency, and the<br />
two clocks must be phase-aligned.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 101<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 4: Host/DCR Bus Interfaces<br />
Device Control Registers<br />
The DCR bus bridge contains four registers directly addressable through the DCR bus for<br />
each <strong>Ethernet</strong> <strong>MAC</strong>. Of these registers, three are shared but are addressable from either<br />
<strong>Ethernet</strong> <strong>MAC</strong>. The upper bits of the DCR address for these registers are user assigned<br />
through the E<strong>MAC</strong>0_DCBASEADDR and E<strong>MAC</strong>1_DCRBASEADDR attributes.<br />
Figure 4-8 shows how the DCR bridge manages access to the registers within the DCR bus<br />
and to the <strong>FPGA</strong> logic.<br />
0x3FF<br />
E<strong>MAC</strong>1_DCRBASEADDR + 3<br />
E<strong>MAC</strong>1_DCRBASEADDR + 2<br />
E<strong>MAC</strong>1_DCRBASEADDR + 1<br />
E<strong>MAC</strong>1_DCRBASEADDR + 0<br />
E<strong>MAC</strong>0_DCRBASEADDR + 3<br />
E<strong>MAC</strong>0_DCRBASEADDR + 2<br />
E<strong>MAC</strong>0_DCRBASEADDR + 1<br />
E<strong>MAC</strong>0_DCRBASEADDR + 0<br />
0x000<br />
DCR Bus Address Map<br />
RDYstatus_e1<br />
cntlReg<br />
dataRegLSW<br />
dataRegMSW<br />
RDYstatus_e0<br />
cntlReg<br />
dataRegLSW<br />
dataRegMSW<br />
The DCR interface provides<br />
indirect access to the E<strong>MAC</strong><br />
registers on the right.<br />
Note:<br />
The cntlReg, dataRegLSW, dataRegMSW, MDIO Command, and MMIMWRDATA<br />
registers in E<strong>MAC</strong>0 and E<strong>MAC</strong>1 share physical registers. The data in E<strong>MAC</strong>0 can<br />
be overwritten by accessing E<strong>MAC</strong>1 and vice versa. The user should take care to<br />
perform a complete transaction on one E<strong>MAC</strong> before attempting to access the other.<br />
Figure 4-8: DCR Bridge Registers<br />
E<strong>MAC</strong>1 Address Map (cntlReg Address Code)<br />
MDIO Command Register<br />
MIIMWRDATA<br />
IRENABLE_e1<br />
IRSTATUS_e1<br />
E<strong>MAC</strong>1 Configuration Registers<br />
E<strong>MAC</strong>1 Logic Access Registers<br />
E<strong>MAC</strong>1 Logic Access Registers<br />
MDIO Command Register<br />
MIIMWRDATA<br />
IRENABLE_e0<br />
IRSTATUS_e0<br />
E<strong>MAC</strong>0 Configuration Registers<br />
E<strong>MAC</strong>0 Logic Access Registers<br />
E<strong>MAC</strong>0 Logic Access Registers<br />
102 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
0x3FF<br />
0x3B4<br />
0x3B0<br />
0x3A4<br />
0x3A0<br />
0x39F<br />
0x200<br />
0x04F<br />
0x040<br />
0x02F<br />
0x000<br />
E<strong>MAC</strong>0 Address Map (cntlReg Address Code)<br />
0x3FF<br />
0x3B4<br />
0x3B0<br />
0x3A4<br />
0x3A0<br />
0x39F<br />
0x200<br />
0x04F<br />
0x040<br />
0x02F<br />
0x000<br />
<strong>UG194</strong>_4_08_081806<br />
R
R<br />
Using the DCR Bus<br />
The directly addressable dataRegMSW, dataRegLSW, cntlReg, and RDYstatus_e# registers,<br />
can be read or written to using the appropriate DCR address. By writing to the cntlReg<br />
register with a particular address code, the DCR bridge can access the indirect address<br />
registers within the DCR bus, such as IRSTATUS_e#, the <strong>Ethernet</strong> <strong>MAC</strong> configuration<br />
registers, <strong>FPGA</strong> logic-based registers, or perform an MDIO transaction. Data is read and<br />
written to indirect registers through the dataRegLSW register. The dataRegMSW register is<br />
also used for transactions with an MSW of data. Selection between the E<strong>MAC</strong>0 and<br />
E<strong>MAC</strong>1 indirect register address space is determined by writing to the cntlReg register at<br />
either E<strong>MAC</strong>0_DCRBASEADDR[0:7]_10 for an E<strong>MAC</strong>0 access and<br />
E<strong>MAC</strong>1_DCRBASEADDR[0:7]_10 for an E<strong>MAC</strong>1 access.<br />
Address codes for each transaction type are summarized in Table 4-15.<br />
Table 4-15: DCR Address Code Transaction Types<br />
Address Code[9:0] Transaction Description<br />
0x000:0x02F<br />
0x040:0x04F<br />
0x200:0x390<br />
0x3A0<br />
0x3A4<br />
0x3B0<br />
0x3B4<br />
Read from <strong>FPGA</strong> logic through<br />
unused host pins. See<br />
“Accessing <strong>FPGA</strong> Logic via<br />
Unused Host Bus Pins.”<br />
Read from <strong>FPGA</strong> logic through<br />
unused host pins. See<br />
“Accessing <strong>FPGA</strong> Logic via<br />
Unused Host Bus Pins.”<br />
<strong>MAC</strong> configuration or address<br />
filter register access. See<br />
“<strong>Ethernet</strong> <strong>MAC</strong> Configuration<br />
and Address Filter Access.”<br />
Interrupt Status. See “DCR<br />
Interrupts.”<br />
Interrupt Configuration. See<br />
“DCR Interrupts.”<br />
MDIO write. See “PCS/PMA<br />
Sublayer or External Device<br />
Access via MDIO.”<br />
MDIO access. See “PCS/PMA<br />
Sublayer or External Device<br />
Access via MDIO.”<br />
Register Accessible<br />
Through dataRegLSW<br />
User-defined <strong>FPGA</strong> logic<br />
register.<br />
User-defined <strong>FPGA</strong> logic<br />
register.<br />
<strong>MAC</strong> configuration or<br />
address filter register.<br />
Address codes correlate to<br />
<strong>MAC</strong> register addresses in<br />
Table 4-1.<br />
IRSTATUS_e#<br />
IRENABLE_e#<br />
MIIMWRDATA_e#<br />
Registers in PCS/PMA<br />
sublayer or from an external<br />
device via MDIO.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 103<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 4: Host/DCR Bus Interfaces<br />
The register definitions for the DCR bridge registers are shown in Table 4-16 to Table 4-19.<br />
The DCR registers (dataRegMSW, dataRegLSW, cntlReg, and RDYstatus_e#) and the DCR<br />
bridge registers (IRSTATUS_e#, IRENABLE_e#, and MIIMWRDATA) use the big-endian<br />
bit numbering convention. The <strong>Ethernet</strong> <strong>MAC</strong> host registers, such as Receiver<br />
Configuration (Word 0) (host address 0x200) register, use the little-endian bit numbering<br />
convention. In the DCR bridge implementation, there is no conversion to or from big<br />
endian to little endian. The bit positions are mapped directly in a one-to-one<br />
correspondence (big-endian bit [0] is mapped directly to little-endian bit [31], bit [1] is<br />
mapped directly to little endian bit [30], and so forth).<br />
Table 4-16: DCR Data Register dataRegMSW<br />
MSB<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />
dataRegMSW<br />
Bit Description Default Value<br />
[0:31] Data. Data input from the DCR bus for the <strong>Ethernet</strong> <strong>MAC</strong> registers or other accessible<br />
registers is written into this register. The most significant word of data is read out from the<br />
<strong>Ethernet</strong> <strong>MAC</strong> registers or other registers and deposited into this register. Because<br />
dataRegMSW is shared between E<strong>MAC</strong>0 and E<strong>MAC</strong>1, data is overwritten by a read/write<br />
operation to the other <strong>Ethernet</strong> <strong>MAC</strong>.<br />
The MSW data register is used when reading from the General Address table and for a read<br />
from <strong>FPGA</strong> logic registers. For all other transactions, only the LSW data register is used.<br />
Table 4-17: DCR Data Register dataRegLSW<br />
MSB<br />
Undefined<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />
dataRegLSW<br />
Bit Description Default Value<br />
DCR Data Register (dataRegLSW)<br />
[0:31] Data. Data input from the DCR bus for the <strong>Ethernet</strong> <strong>MAC</strong> registers or other registers is<br />
written into this register. The least significant word of data is read out from the <strong>Ethernet</strong><br />
<strong>MAC</strong> registers or other registers is deposited into this register. Because dataRegLSW is<br />
shared between E<strong>MAC</strong>0 and E<strong>MAC</strong>1, data is overwritten by a read/write operation to the<br />
other <strong>Ethernet</strong> <strong>MAC</strong>.<br />
Undefined<br />
104 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
LSB<br />
LSB<br />
R
R<br />
Table 4-18: DCR Control Register cntlReg<br />
MSB<br />
.<br />
Using the DCR Bus<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />
RESERVED<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 105<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
WEN<br />
RESERVED ADDRESS_CODE<br />
Bit Description Default Value<br />
[0:15] Reserved. All 0s<br />
[16] Write Enable. When this bit is asserted, the data in either dataRegLSW or dataRegMSW is<br />
written to the <strong>Ethernet</strong> <strong>MAC</strong> host interface. When this bit is deasserted, the operation to be<br />
performed is read.<br />
[17:21] Reserved. All 0s<br />
[22:31] Address Code. The DCR bus bridge translates the address code for this transaction into the<br />
appropriate signals on the <strong>Ethernet</strong> <strong>MAC</strong> host interface. See Table 4-15, page 103 for a<br />
description of address codes.<br />
Table 4-19: DCR Ready Status Register RDYstatus_e# (Read Only)<br />
MSB<br />
0<br />
All 0s<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />
RESERVED<br />
DCR RDY<br />
RESERVED<br />
Bit Description Default Value<br />
[0:14] Reserved. All 0s<br />
[15] DCR Bridge Ready bit. High when all of the bits in RDYstatus_e0 or RDYstatus_e1 are High. 1<br />
[16:24] Reserved. All 0s<br />
[25] Configuration Write-Ready bit. 1<br />
[26] Configuration Read-Ready bit. 1<br />
[27] Address Filter Write-Ready bit. 1<br />
[28] Address Filter Read-Ready bit. 1<br />
[29] MDIO Write-Ready bit. 1<br />
[30] MDIO Read-Ready bit. 1<br />
[31] <strong>FPGA</strong> Logic Read-Ready bit. 1<br />
CFG WR<br />
CFG RR<br />
AF WR<br />
AF RR<br />
MIIM WR<br />
MIIM RR<br />
LSB<br />
LSB<br />
FABR RR
Chapter 4: Host/DCR Bus Interfaces<br />
The bits in the Ready Status register are set to 1 when there is no access in progress. When<br />
an access is in progress, a bit corresponding to the type of access is automatically cleared.<br />
The bit is automatically set again when the access is complete.<br />
Table 4-20: Interrupt Status Register IRSTATUS_e#<br />
Address Code<br />
0x3A0<br />
MSB<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />
RESERVED<br />
Bit Description Default Value<br />
[0:24] Reserved. 0<br />
[25] Configuration Write Interrupt Request bit. 0<br />
[26] Configuration Read Interrupt Request bit. 0<br />
[27] Address Filter Write Interrupt Request bit. 0<br />
[28] Address Filter Read Interrupt Request bit. 0<br />
[29] MDIO Write Interrupt Request bit. 0<br />
[30] MDIO Read Interrupt Request bit. 0<br />
[31] <strong>FPGA</strong> Logic Read Interrupt Request bit. 0<br />
Table 4-21: Interrupt Enable Register IRENABLE_e#<br />
Address Code<br />
0x3A4<br />
MSB<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />
RESERVED<br />
Bit Description Default Value<br />
[0:24] Reserved. 0<br />
[25] Configuration Write IR-enable bit. 0<br />
[26] Configuration Read IR-enable bit. 0<br />
[27] Address Filter Write IR-enable bit. 0<br />
[28] Address Filter Read IR-enable bit. 0<br />
[29] MDIO Write IR-enable bit. 0<br />
[30] MDIO Read IR-enable bit. 0<br />
[31] <strong>FPGA</strong> Logic Read IR enable bit. 0<br />
106 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
CFG WST<br />
CFG WEN<br />
CFG RST<br />
CFG REN<br />
AF WST<br />
AF WEN<br />
AF RST<br />
AF REN<br />
MIIM WST<br />
MIIM WEN<br />
MIIM RST<br />
MIIM REN<br />
LSB<br />
FABR RST<br />
LSB<br />
FABR REN<br />
R
R<br />
Using the DCR Bus<br />
The IRENABLE_e# register is programmed to allow updating of the interrupt request in<br />
the IRSTATUS_e# register. When an enable bit is cleared, the corresponding bit in the<br />
IRSTATUS_e# register is not updated.<br />
Table 4-22: Host Interface MDIO Write Data Register (MIIMWRDATA)<br />
Address Code<br />
0x3B0<br />
MSB<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />
Interfacing to a Processor<br />
DCR Interrupts<br />
RESERVED MIIMWRDATA<br />
Bit Description Default Value<br />
[0:15] Reserved. All 0s<br />
[16:31] Data. Temporarily holds MDIO write data for output onto the host write data bus. Undefined<br />
The DCR bridge ignores any new DCR command for host access until the current host<br />
access is complete. Therefore, it is essential to determine when the host access is complete<br />
before issuing a new DCR command. While some commands complete within one clock<br />
cycle on the DCR bus, others such as MDIO accesses require multiple clock cycles.<br />
There are two ways to use the DCR bus with the host processor. The user can select either<br />
polling or interrupts as a method of informing the host processor of access status. The<br />
interrupt method is more efficient as it frees the processor to operate while waiting for the<br />
DCR transaction to finish.<br />
Interrupt request informs the host processor when the host interface completes a DCR<br />
host access command. The interrupt request signal, DCRHOSTDONEIR, is only active<br />
when the DCR bus is used, and the host interface register IRENABLE_e# is<br />
programmed to enable interrupt. This signal is active High and level sensitive. When<br />
a host access through the DCR bus is completed, the DCRHOSTDONEIR signal is<br />
asserted. The host processor needs to service the interrupt request and clear the host<br />
interface register (IRSTATUS_e#) to deassert this signal. See “DCR Interrupts” for a<br />
description of the DCR Interrupts.<br />
Polling of the DCR status register RDYstatus_e#. The processor polls this register to<br />
determine access completion status. The bits in this register are asserted when there is<br />
no access in progress. When an access is in progress, a bit corresponding to the type of<br />
access is automatically deasserted. This bit is automatically reasserted when the<br />
access is complete. RDYstatus_e#[15] is asserted only when there are no DCR<br />
transactions in progress, allowing the polling process to check this one bit for all<br />
transaction types, across both E<strong>MAC</strong>s.<br />
The DCRHOSTDONEIR interrupt can be used to manage processor DCR access. The<br />
operation and status of the interrupt can be accessed through the IRSTATUS_e# and<br />
IRENABLE_e# registers.<br />
The IRSTATUS_e# register indicates which transaction type has triggered the interrupt.<br />
This allows the host to read this register to determine the type of host access completed.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 107<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
LSB
Chapter 4: Host/DCR Bus Interfaces<br />
Before exiting the interrupt service routine, the host should write to this register to clear the<br />
interrupt request bit.<br />
To read and clear the IRSTATUS_e# register, the following operations must be performed<br />
on the DCR bus:<br />
1. To access the IRSTATUS_e# register, write an address code of 0x3A0 to the cntlReg<br />
register, addressing cntlReg using E<strong>MAC</strong>0_DCRBASEADDR for IRSTATUS_e0, and<br />
E<strong>MAC</strong>1_DCRBASEADDR for IRSTATUS_e1. The write enable bit should be cleared to<br />
indicate a read.<br />
2. The register information for IRSTATUS_e# is loaded into dataRegLSW. Read this<br />
register to access the data.<br />
3. To clear the interrupt, the contents of the IRSTATUS_e# register should be written to<br />
zero. Write a value of all zeros into the dataRegLSW.<br />
4. Write the cntlReg with the address 0x3A0 to load the data from dataRegLSW into the<br />
register IRSTATUS_e# and clear the interrupt. The write enable bit should be set to 1 to<br />
indicate a write.<br />
To read from the E<strong>MAC</strong>0 IRSTATUS_e0 register and then clear the register:<br />
// Write the address of IRStatus_e0 register 0x3A0 to the<br />
// cntlReg_e0 register. Ensure that the write enable bit is not asserted<br />
dcr_write(E<strong>MAC</strong>0_DCRBASEADDR + 2, 0x000003A0);<br />
// Read the IRSTATUS_e0 data from the dataRegLSW<br />
dcr_read (E<strong>MAC</strong>0_DCRBASEADDR + 1);<br />
// Write a value of all zeros to the dataRegLSW<br />
dcr_write(E<strong>MAC</strong>0_DCRBASEADDR + 1, 0x00000000);<br />
// Write to the cntlReg_e0 register to load the data into the<br />
// IRStatus_e0 register to clear the interrupt<br />
dcr_write(E<strong>MAC</strong>0_DCRBASEADDR + 2, 0x000083A0);<br />
The IRENABLE_e# register is programmed to enable the different interrupt types to<br />
trigger the DCRHOSTDONEIR interrupt. When an enable bit is set, the corresponding bit<br />
in the IRSTATUS_e# register is updated when an interrupt of that type occurs. To read from<br />
this register and then write back, the following steps are required.<br />
1. To read the IRENABLE_e# register, write an address code 0x3A4 to the cntlReg,<br />
addressing the cntlReg using E<strong>MAC</strong>0_DCRBASEADDR for IRENABLE_e0, and<br />
E<strong>MAC</strong>1_DCRBASEADDR for IRENABLE_e1, the write enable bit should be cleared to<br />
indicate a read operation.<br />
2. The register information for IRENABLE_e# is loaded into the dataRegLSW register.<br />
Read this register to access the data.<br />
3. To enable specific interrupts, write the required bitmask value to the dataRegLSW<br />
register.<br />
4. Write to the cntlReg with the address code 0x3A4 to load the data from datRegLSW<br />
into the IRENABLE_e# register. The write enable bit should be set to 1 to indicate a<br />
write operation.<br />
To read from the E<strong>MAC</strong>1 IRENABLE_e1 register and then enable all interrupts:<br />
// Write the address of IRENABLE_e1 register 0x3A4 to the<br />
// cntlReg_e1 register. Ensure that the write enable bit is not asserted<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 2, 0x000003A4);<br />
// Read the IRENABLE_e1 data from the dataRegLSW<br />
dcr_read (E<strong>MAC</strong>1_DCRBASEADDR + 1);<br />
// Write a value of all ones to the dataRegLSW<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 1, 0x0000007F);<br />
108 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
// Write to the cntlReg_e1 register to load the data into the<br />
// IRENABLE_e1 register and enable all interrupts<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 2, 0x000083A4);<br />
<strong>Ethernet</strong> <strong>MAC</strong> Configuration and Address Filter Access<br />
Reading from an <strong>Ethernet</strong> <strong>MAC</strong> Configuration Register<br />
Using the DCR Bus<br />
To read from an <strong>Ethernet</strong> <strong>MAC</strong> configuration register, the user must perform the following<br />
sequence of operations on the DCR bus:<br />
1. To access E<strong>MAC</strong>0, use E<strong>MAC</strong>0_DCRBASEADDR. To access E<strong>MAC</strong>1, use<br />
E<strong>MAC</strong>1_DCRBASEADDR. Write to the cntlReg register, with the write enable bit<br />
cleared to 0, to indicate a read operation and set the address code to the desired<br />
address of the <strong>Ethernet</strong> <strong>MAC</strong> configuration register to be accessed. The address code<br />
maps directly to the <strong>Ethernet</strong> <strong>MAC</strong> address codes given in Table 4-1.<br />
2. Poll the RDYstatus_e# register until the configuration Read-Ready bit is set to 1 or wait<br />
until the DCRHOSTDONEIR interrupt is asserted.<br />
3. Read from the dataRegLSW register to access data from the <strong>Ethernet</strong> <strong>MAC</strong><br />
configuration register.<br />
The following code demonstrates a processor routine to read from an <strong>Ethernet</strong> <strong>MAC</strong><br />
configuration register. To read from the E<strong>MAC</strong>0 transmitter configuration register:<br />
// E<strong>MAC</strong> Configuration Register 0x280 (E<strong>MAC</strong>0 Transmitter Configuration)<br />
// Write the address of E<strong>MAC</strong>0 Transmitter Configuration register to the<br />
// cntlReg_e0 register<br />
dcr_write(E<strong>MAC</strong>0_DCRBASEADDR + 2, 0x00000280);<br />
// Poll the RDYstatus_e0 register<br />
while ( !(dcr_read(E<strong>MAC</strong>0_DCRBASEADDR + 3) & 0x00010000) );<br />
// Read the dataRegLSW with the values returned from the E<strong>MAC</strong>0<br />
// Transmitter Configuration register<br />
dcr_read (E<strong>MAC</strong>0_DCRBASEADDR + 1);<br />
Writing to an <strong>Ethernet</strong> <strong>MAC</strong> Configuration Register<br />
To write to an <strong>Ethernet</strong> <strong>MAC</strong> configuration register, the user must perform the following<br />
sequence of operations on the DCR bus:<br />
1. Write to the dataRegLSW register with the desired value for the <strong>Ethernet</strong> <strong>MAC</strong><br />
configuration register. This value is mapped to the host configuration register.<br />
2. Write to the cntlReg register with the desired address of the <strong>Ethernet</strong> <strong>MAC</strong><br />
configuration register and the write enable bit to logic 1. Use<br />
E<strong>MAC</strong>0_DCRBASEADDR to access E<strong>MAC</strong>0 and E<strong>MAC</strong>1_DCRBASEADDR to access<br />
E<strong>MAC</strong>1.<br />
3. Poll the RDYstatus_e# register until the configuration Write-Ready bit is set to 1 or<br />
wait until the DCRHOSTDONEIR interrupt is asserted.<br />
To write to the E<strong>MAC</strong>1 flow control register:<br />
// E<strong>MAC</strong> Configuration Register 0x2C0 (E<strong>MAC</strong> Flow Control)<br />
// Write to enable the flow control on both the transmit and receive<br />
// side of E<strong>MAC</strong>1, set bits 29 and 30 to 1<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 1, 0x60000000);<br />
// Write the address of Flow Control register to the cntlReg_e1<br />
// register, with the write enable bit asserted<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 2, 0x000082C0);<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 109<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 4: Host/DCR Bus Interfaces<br />
// Poll the RDYstatus_e1 register<br />
while ( !(dcr_read(E<strong>MAC</strong>1_DCRBASEADDR + 3) & 0x00010000) );<br />
Reading from the General Address Table Register of the Address Filter Block<br />
The same methods used in reading and writing to the <strong>Ethernet</strong> <strong>MAC</strong> configuration<br />
registers through the DCR apply to the address filter configuration registers. The only<br />
operations that differ are reading and writing from the general address table.<br />
To read the desired general address table register of the address filter, a DCR write<br />
operation must be performed.<br />
1. Write to the dataRegLSW register, setting the two-bit address of the general address<br />
table of the register to be accessed (four general address table registers are in the<br />
address filter block) and the RNW bit to 1.<br />
2. Write to the cntlReg register with the address register of general address (Word 1) to<br />
0x38C. Set the Write enable bit to write to the general address (Word 1) (see<br />
Table 4-12). Use E<strong>MAC</strong>0_DCRBASEADDR to access E<strong>MAC</strong>0 and<br />
E<strong>MAC</strong>1_DCRBASEADDR to access E<strong>MAC</strong>1.<br />
3. Poll the RDYstatus_e# register until the address filter Read-Ready bit is set to 1 or wait<br />
until the DCRHOSTDONEIR interrupt is asserted.<br />
4. Read from the dataRegMSW to read the general address [47:32] and dataRegLSW to<br />
read general address [31:0].<br />
To read from the general address table register (2) of E<strong>MAC</strong>0:<br />
// MULTI_ADDR Register 2 of AF Block<br />
// Set the enable bit of the MULTI_ADDR RNW and MULTI_ADDR Register 2<br />
dcr_write(E<strong>MAC</strong>0_DCRBASEADDR + 1, 0x00820000);<br />
// Write the address of E<strong>MAC</strong>0 General Address register to the cntlReg<br />
// register, with the write enable bit asserted<br />
dcr_write(E<strong>MAC</strong>0_DCRBASEADDR + 2, 0x0000838C);<br />
// Poll the RDYstatus_e0 register<br />
while ( !(dcr_read(E<strong>MAC</strong>0_DCRBASEADDR + 3) & 0x00010000) );<br />
// Read the values returned of the General Address Word0 and Word1<br />
// registers (48-bit value)<br />
// from the dataRegMSW and dataRegLSW registers<br />
gen_addr_msw = dcr_read(E<strong>MAC</strong>0_DCRBASEADDR + 0);<br />
gen_addr_lsw = dcr_read(E<strong>MAC</strong>0_DCRBASEADDR + 1);<br />
Writing to the General Address Table Register of the Address Filter Block<br />
The same methods used in reading and writing to the <strong>Ethernet</strong> <strong>MAC</strong> configuration<br />
registers through the DCR apply to the address filter configuration registers. The only<br />
operations that differ are reading and writing from the general address table.<br />
For writing to the desired general address table register of the AF block, two write<br />
operations must be performed:<br />
1. Write to the dataRegLSW register the general address [31:0] to be stored on the desired<br />
general address table register.<br />
2. Write to the cntlReg# register with the address for general address word 0 (0x388),<br />
setting the write enable bit. Use E<strong>MAC</strong>0_DCRBASEADDR to access E<strong>MAC</strong>0 and<br />
E<strong>MAC</strong>1_DCRBASEADDR to access E<strong>MAC</strong>1.<br />
3. Poll the RDYstatus_e# register until the address configuration write bit is set to 1.<br />
110 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
DCR Offset<br />
0x1<br />
MSB<br />
R<br />
Using the DCR Bus<br />
4. Write to the dataRegLSW register the general address [47:32] with the write mask bit<br />
and the value of the general address table register to be accessed.<br />
5. Write to cntlReg register with the address for general address word 1 (0x38C). Set the<br />
write enable bit.<br />
6. Poll the RDYstatus_e# register until the address configuration write bit is set or wait<br />
until the DCRHOSTDONEIR interrupt is asserted.<br />
To write the general address 0xFACEDEAFCAFE to the general address table register 0x1 of<br />
E<strong>MAC</strong>1:<br />
// Write the general address[31:0] to the dataRegLSW register<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 1, 0xDEAFCAFE);<br />
// Write the address of E<strong>MAC</strong>1 General Address Word 0 register to the<br />
// cntlReg_e1 register<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 2, 0x00008388);<br />
// Poll the RDYstatus_e1 register<br />
while ( !(dcr_read(E<strong>MAC</strong>1_DCRBASEADDR + 3) & 0x00010000) );<br />
// MULTI_ADDR Register 1 of AF Block<br />
// Write the general address [47:32] with the MULTI_ADDR RNW<br />
// write mask bit deasserted to the dataRegLSW register<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 1, 0x0001FACE);<br />
// Write the address of E<strong>MAC</strong>1 General Address Word 1 register to the<br />
// cntlReg_e1 register<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 2, 0x0000838C);<br />
// Poll the RDYstatus_e1 register<br />
while ( !(dcr_read(E<strong>MAC</strong>1_DCRBASEADDR + 3) & 0x00010000) );<br />
PCS/PMA Sublayer or External Device Access via MDIO<br />
MDIO register reads take a multiple number of host clock cycles depending on the<br />
physical interface device. To write to any of the PCS layer registers (“1000BASE-X<br />
PCS/PMA Management Registers,” page 122), the data must be written to the<br />
MIIMWRDATA register. The physical address (PHYAD) and PCS register number<br />
(REGAD) are written to the DCR dataRegLSW register for both read and write operations.<br />
Writing the address code 0x3B4 to the control register indicates a request for an MDIO<br />
transaction. The format for writing the PHYAD and REGAD into the dataRegLSW register<br />
is shown in Figure 4-9. To access the internal PCS/PMA sublayer registers, the PHYAD<br />
should match that set on the PHYE<strong>MAC</strong>#PHYAD[4:0] input port. The MDIO interface is<br />
described in detail in Chapter 5.<br />
0 22 26 27 31<br />
PHYAD<br />
LSB<br />
REGAD<br />
15 PCS Sublayer Managed Register Block 0<br />
Control Register<br />
PHY Identifier Register<br />
Auto-Negotiation Advertisement Register<br />
Figure 4-9: MDIO Address Register to Access PCS Sublayer Register Block<br />
<strong>UG194</strong>_4_09_072306<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 111<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
REGAD<br />
0<br />
1<br />
2<br />
3<br />
4<br />
MSB<br />
Status Register<br />
PHY Identifier Register<br />
LSB
Chapter 4: Host/DCR Bus Interfaces<br />
Reading the PHY Registers using MDIO<br />
To read from a configuration register either in the <strong>Ethernet</strong> <strong>MAC</strong> PCS/PMA layer or from<br />
an external PHY, the user must perform the following sequence of operations on the DCR<br />
bus:<br />
1. Write to the dataRegLSW register with the PHYAD and register to be accessed. This<br />
value should be formatted as shown in Figure 4-9.<br />
2. Write to the cntlReg register with the decode address for MDIO transaction (0x3B4)<br />
and the write enable bit cleared to indicate a read operation. Use<br />
E<strong>MAC</strong>0_DCRBASEADDR to perform the transaction on the E<strong>MAC</strong>0 MDIO interface<br />
and E<strong>MAC</strong>1_DCRBASEADDR to perform the transaction on the E<strong>MAC</strong>1 MDIO<br />
interface.<br />
3. Poll the RDYstatus_e# register until the MDIO Write-Ready bit is set or wait until the<br />
DCRHOSTDONEIR interrupt is asserted.<br />
4. Read the PHY register contents from the dataRegLSW.<br />
To read PHYAD 0x1 and PHY register 0x4 through the E<strong>MAC</strong>0 MDIO interface, MDIO<br />
must be enabled by writing to the management configuration register with the clock<br />
divider for MDC, as described in “Writing to an <strong>Ethernet</strong> <strong>MAC</strong> Configuration Register.”<br />
// Write the PHY address and PHY register to be accessed to the<br />
// dataRegLSW register<br />
dcr_write(E<strong>MAC</strong>0_DCRBASEADDR + 1, (0x1
R<br />
Using the DCR Bus<br />
// E<strong>MAC</strong> Management Register 0x340 (E<strong>MAC</strong>1 Management Configuration)<br />
// Write the PHY data to the dataRegLSW<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 1, 0x00001140);<br />
// Write the address for MIIMWRDATA to the cntlReg_e1<br />
// register to load the write data to MIIMWRDATA<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 2, 0x000083B0);<br />
// Write the PHY address and PHY register to be accessed to the<br />
// dataRegLSW register<br />
dcr_write(E<strong>MAC</strong>1_DCRBASEADDR + 1, (0x2
Chapter 4: Host/DCR Bus Interfaces<br />
E<strong>MAC</strong> I/O Pin Equivalent stand-alone<br />
host bus signal<br />
host_clk<br />
HOSTMIIMRDY<br />
HOSTRDDATA[15]<br />
HOSTRDDATA[8:0]<br />
HOSTRDDATA[9]<br />
HOSTRDDATA[10]<br />
6 Clocks<br />
HOSTWRDATA[31:0] LSW<br />
Figure 4-10: <strong>FPGA</strong>-Logic Based Register Read Timing<br />
<strong>UG194</strong>_4_10_012907<br />
To read from the <strong>FPGA</strong> logic, the following operations should take place on the DCR bus.<br />
Which <strong>Ethernet</strong> <strong>MAC</strong> registers are used only affects the encoding of the I/O pin<br />
HOSTRDDATA[10], the E<strong>MAC</strong>1SEL encoding. Otherwise output signals are identical.<br />
1. Write to the cntlReg register with the address code in the range 0x000 to 0x02F or<br />
0x040 to 0x04F. This address is encoded onto the HOSTRDDATA[9:0] I/O pins. The<br />
write enable bit is cleared to indicate a read operation.<br />
2. Poll the RDYstatus_e# register until the Statistics IP Read-Ready bit is set or wait until<br />
the DCRHOSTDONEIR interrupt is asserted.<br />
3. Read the dataRegMSW and dataRegLSW registers to get the contents of the <strong>FPGA</strong><br />
logic-based registers.<br />
To read a logic-based register addressed 0x020:<br />
// <strong>FPGA</strong> Logic Register at 0x020 (User defined)<br />
// Write the decode address for <strong>FPGA</strong> logic access to the cntlReg_e0<br />
register<br />
dcr_write(E<strong>MAC</strong>0_DCRBASEADDR + 2, 0x00000020);<br />
// Poll the RDYstatus_e0 register<br />
while ( !(dcr_read(E<strong>MAC</strong>0_DCRBASEADDR + 3) & 0x00010000) );<br />
// Read the value from MSW and LSW registers<br />
fabric_msw = dcr_read(E<strong>MAC</strong>0_DCRBASEADDR + 0);<br />
fabric_lsw = dcr_read(E<strong>MAC</strong>0_DCRBASEADDR + 1);<br />
This method can be used to connect the <strong>Ethernet</strong> <strong>MAC</strong> to the statistics counters as<br />
described in Chapter 7, “Interfacing to a Statistics Block.”<br />
114 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
MSW<br />
HOSTMIIMSEL<br />
HOSTREQ<br />
HOSTADDR[8:0]<br />
HOSTADDR[9]<br />
HOSTE<strong>MAC</strong>1SEL<br />
HOSTRDDATA[31:0]<br />
R
R<br />
MDIO Interface<br />
Chapter 5<br />
This chapter describes the Management Data Input/Output (MDIO) interface that is used<br />
to access physical device registers, both external to the <strong>Ethernet</strong> <strong>MAC</strong> (for example an<br />
external PHY device) and internal to the <strong>Ethernet</strong> <strong>MAC</strong> (the physical device registers<br />
present in the PCS/PMA sublayer block).<br />
The internal physical device (i.e., the PCS/PMA sublayer block), is capable of 1000BASE-X<br />
PCS/PMA and SGMII operation (see Chapter 6, “Physical Interface”). These two modes of<br />
operation each have associated management registers.<br />
This chapter contains the following sections:<br />
“Introduction to MDIO”<br />
“MDIO Implementation in the <strong>Ethernet</strong> <strong>MAC</strong>”<br />
“1000BASE-X PCS/PMA Management Registers”<br />
“SGMII Management Registers”<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 115<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 5: MDIO Interface<br />
Introduction to MDIO<br />
MDIO Bus System<br />
The MDIO interface for 1 Gb/s operation (and slower speeds) is defined in IEEE Std 802.3,<br />
clause 22. This two-wire interface consists of a clock (MDC) and a shared serial data line<br />
(MDIO). The maximum permitted frequency of MDC is set at 2.5 MHz.<br />
Figure 5-1 illustrates an example MDIO bus system.<br />
An <strong>Ethernet</strong> <strong>MAC</strong> is shown as the MDIO bus master (the Station Management (STA)<br />
entity).<br />
Two PHY devices are shown connected to the same bus, both are MDIO slaves (MDIO<br />
Managed Device (MMD) entities).<br />
<strong>MAC</strong> (STA)<br />
Host Bus<br />
Interface<br />
MDIO<br />
Master<br />
MDIO<br />
MDC<br />
PHY1 (MMD)<br />
Configuration<br />
Registers 0 to 31<br />
(REGAD)<br />
MDIO Slave<br />
PHY2 (MMD)<br />
Configuration<br />
Registers 0 to 31<br />
(REGAD)<br />
MDIO Slave<br />
Figure 5-1: Typical MDIO-Managed System<br />
Physical<br />
Address<br />
(PHYAD)<br />
= 1<br />
Physical<br />
Address<br />
(PHYAD)<br />
= 2<br />
<strong>UG194</strong>_5_01_072306<br />
Described simply, the MDIO bus system is a standardized interface for accessing the<br />
configuration and status registers of <strong>Ethernet</strong> PHY devices. In the example illustrated, the<br />
Management Host Bus Interface of the <strong>Ethernet</strong> <strong>MAC</strong> is able to access the configuration<br />
and status registers of two PHY devices via the MDIO bus.<br />
116 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
MDC<br />
MDIO<br />
R<br />
MDIO Transactions<br />
Introduction to MDIO<br />
All transactions, read or write, are initiated by the MDIO master. All MDIO slave devices,<br />
when addressed, must respond. MDIO transactions take the form of an MDIO frame,<br />
containing fields for transaction type, address and data. This MDIO frame is transferred<br />
across the MDIO wire synchronously to MDC. The following abbreviations are used in this<br />
chapter:<br />
Table 5-1: Abbreviations Used in this Chapter<br />
Abbreviation Definition<br />
Write Transaction<br />
Figure 5-2 shows a write transaction frame across the MDIO, as defined by OP = 0b01. The<br />
addressed PHY device (with physical address PHYAD) takes the 16-bit word in the Data<br />
field and writes it to the register at REGAD.<br />
Read Transaction<br />
OP Operation code (read or write)<br />
PHYAD Physical address<br />
PRE Preamble<br />
REGAD Register address<br />
ST Start of frame<br />
TA Turnaround<br />
STA Drives MDIO<br />
Z Z 1 1 1 0 1 0 1 P4 P3 P2 P1 P0 R4 R3 R2 R1 R0 1 0 D15 D13 D11 D9 D7 D5 D3 D1 Z Z<br />
D14 D12 D10 D8 D6 D4 D2 D0<br />
IDLE 32 bits<br />
PRE<br />
ST OP PHYAD REGAD TA 16-Bit WRITE DATA<br />
IDLE<br />
Figure 5-2: MDIO Write Transaction<br />
<strong>UG194</strong>_5_02_032406<br />
Figure 5-3 shows a read transaction as defined by OP = 0b10. The addressed PHY device<br />
(with physical address PHYAD) takes control of the MDIO wire during the turnaround<br />
cycle and then returns the 16-bit word from the register at REGAD.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 117<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 5: MDIO Interface<br />
MDC<br />
MDIO<br />
Z Z 1 1 1 0 1 1 0 P4 P3 P2 P1 P0 R4 R3 R2 R1 R0 Z 0 D15 D13 D11 D9 D7 D5 D3 D1 Z Z<br />
D14 D12 D10 D8 D6 D4 D2 D0<br />
IDLE 32 bits<br />
PRE<br />
ST OP PRTAD REGAD TA 16-Bit READ DATA<br />
IDLE<br />
MDIO Addressing<br />
STA Drives MDIO MMD Drives MDIO<br />
MDIO addresses consists of two stages: physical address (PHYAD) and register address<br />
(REGAD).<br />
Physical Address (PHYAD)<br />
As shown in Figure 5-1, two PHY devices are attached to the MDIO bus. Each of these has<br />
a different physical address. To address the intended PHY, its physical address should be<br />
known by the MDIO master (in this case an <strong>Ethernet</strong> <strong>MAC</strong>) and placed into the PHYAD<br />
field of the MDIO frame (see “MDIO Transactions”).<br />
The PHYAD field for an MDIO frame is a 5-bit binary value capable of addressing 32<br />
unique addresses. However, every MDIO slave must respond to physical address 0. This<br />
requirement dictates that the physical address for any particular PHY must not be set to 0<br />
to avoid MDIO contention. Physical Addresses 1 through to 31, therefore, can be used to<br />
connect up to 31 PHY devices onto a single MDIO bus.<br />
Physical Address 0 can be used to write a single command that is obeyed by all attached<br />
PHYs, such as a reset or power-down command.<br />
Register Address (REGAD)<br />
Figure 5-3: MDIO Read Transaction<br />
<strong>UG194</strong>_5_03_032406<br />
Having targeted a particular PHY using PHYAD, the individual configuration or status<br />
register within that particular PHY must now be addressed by placing the individual<br />
register address into the REGAD field of the MDIO frame (see “MDIO Transactions”).<br />
The REGAD field for an MDIO frame is a 5-bit binary value capable of addressing 32<br />
unique addresses. The first 16 of these registers (0 to 15) are defined by the IEEE 802.3. The<br />
remaining 16 registers (16 to 31) are reserved for PHY vendors’ own register definitions.<br />
118 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
MDIO Implementation in the <strong>Ethernet</strong> <strong>MAC</strong><br />
Generic<br />
Host Bus<br />
DCR Bus<br />
Host<br />
Interface<br />
DCR Bridge<br />
MDIO Implementation in the <strong>Ethernet</strong> <strong>MAC</strong><br />
Figure 5-4 shows the functional block diagram of the <strong>Ethernet</strong> <strong>MAC</strong> with the host<br />
interface, DCR bridge, MDIO interface, PCS management, and MDIO intersection blocks<br />
highlighted.<br />
E<strong>MAC</strong>#<br />
TX<br />
RX<br />
16- or 8-Bit Client Interface<br />
Transmit Engine<br />
Flow Control<br />
Receive Engine<br />
Address Filter<br />
Registers<br />
MDIO Interface<br />
<strong>MAC</strong> Configuration<br />
Registers<br />
TX RX<br />
Statistics<br />
Figure 5-4: MDIO Implementation of the <strong>Ethernet</strong> <strong>MAC</strong><br />
Accessing MDIO through the Host Interface<br />
Clock Management<br />
MII/GMII/RGMII<br />
Interface to<br />
External PHY<br />
GTP/GTX Transceiver<br />
Interface<br />
MDIO Interface<br />
to External PHY<br />
<strong>UG194</strong>_5_04_071709<br />
The <strong>Ethernet</strong> <strong>MAC</strong> contains an MDIO interface block which is an MDIO master. This can<br />
initiate MDIO transactions when accessed through either the generic host bus or the DCR<br />
bus. See “PCS/PMA Sublayer or External Device Access via MDIO,” page 100, for<br />
reference.<br />
The MDIO interface supplies a clock, E<strong>MAC</strong>#PHYMCLKOUT, to the external devices when<br />
the host interface is enabled. This clock is derived from the HOSTCLK signal using the value<br />
in the Clock Divide[5:0] configuration register. The frequency of the MDIO clock is given<br />
by Equation 5-1:<br />
fHOSTCLK fMDC =<br />
-------------------------------------------------------------------------------------<br />
Equation 5-1<br />
( ( 1 + CLOCK_DIVIDE[5:0] ) × 2)<br />
To comply with the IEEE Std 802.3-2002 specification for this interface, the frequency of<br />
E<strong>MAC</strong>#PHYMCLKOUT should not exceed 2.5 MHz. To prevent E<strong>MAC</strong>#PHYMCLKOUT from<br />
being out of specification, the Clock Divide[5:0] value powers up at 000000. While this<br />
value is in the register, it is impossible to enable the MDIO interface. Upon reset, the MDIO<br />
port is disabled until a non-zero value has been written into the clock divide bits.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 119<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
MII/GMII/RGMII Interface<br />
TX<br />
RX<br />
TX<br />
RX<br />
PCS/PMA Sublayer<br />
PCS Management<br />
Registers<br />
MDIO Intersection
Chapter 5: MDIO Interface<br />
From the MDIO Interface block, the MDIO bus is internally connected within the <strong>Ethernet</strong><br />
<strong>MAC</strong> to the MDIO Intersection block. Here the MDIO bus is split. It is internally connected<br />
to the 1000BASE-X PCS/PMA sublayer logic and connected to the <strong>Ethernet</strong> <strong>MAC</strong> MDIO<br />
ports (see “Management Data Input/Output (MDIO) Signals,” page 37), which can<br />
provide MDIO access to and from an external PHY device. See Table 2-16, page 43. The<br />
E<strong>MAC</strong>#_MDIO_ENABLE attribute must be set (or MDIO Enable must be set in the<br />
Management Configuration Register) to allow access to the internal MDIO registers and<br />
the external MDIO bus.<br />
Accessing the Internal PCS/PMA Sublayer Management Registers<br />
The PCS/PMA sublayer logic, illustrated as a block in Figure 5-4, contains an MDIO slave,<br />
allowing access to its configuration and status registers. All connections are internal and<br />
active whenever MDIO operation is enabled.<br />
The PHYAD of the internal PCS/PMA sublayer registers can be set with the<br />
PHYE<strong>MAC</strong>#PHYAD[4:0] port. To access the PCS/PMA sublayer registers, simply initiate<br />
an MDIO transaction using the matching physical address. The PCS/PMA sublayer also<br />
responds to Physical Address 0 (see “MDIO Addressing,” page 118).<br />
The PCS/PMA Management registers have different definitions depending on the mode of<br />
operation. See as appropriate:<br />
“1000BASE-X PCS/PMA Management Registers”<br />
“SGMII Management Registers”<br />
When no external PHY is present, the PHYE<strong>MAC</strong>#MDIN port should be tied High and the<br />
PHYE<strong>MAC</strong>#MCLKIN port tied Low.<br />
Accessing the Management Registers of an External PHY using MDIO<br />
Whenever an MDIO operation is enabled (see Table 2-16, page 43), connections can be<br />
made to the <strong>Ethernet</strong> <strong>MAC</strong> MDIO ports (see “Management Data Input/Output (MDIO)<br />
Signals,” page 37), which can provide MDIO access to and from an external PHY device.<br />
PHYE<strong>MAC</strong>#MDIN, E<strong>MAC</strong>#PHYMDOUT, and E<strong>MAC</strong>#PHYMDTRI must be connected to a threestate<br />
buffer to create the bidirectional wire, MDIO. This three-state buffer can be either<br />
external to the <strong>FPGA</strong> or internally integrated using an IOBUF with an appropriate I/O<br />
standard for the external PHY. This is illustrated in Figure 5-5.<br />
In this mode of operation, the MDC clock is generated by the <strong>Ethernet</strong> <strong>MAC</strong> and obtained<br />
from the output port E<strong>MAC</strong>#PHYMCLKOUT; the input PHYE<strong>MAC</strong>#MCLKIN port is unused and<br />
should be connected to logic 0.<br />
To access the external PHY registers, simply initiate an MDIO transaction using the<br />
appropriate physical address. The PCS/PMA sublayer, even if it is not the physical<br />
interface, is still connected and responds to physical addresses 0 and the address matching<br />
the value of the PHYE<strong>MAC</strong>#PHYAD[4:0] port.<br />
120 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
Generic<br />
Host Bus<br />
DCR Bus<br />
R<br />
PHYE<strong>MAC</strong>#MCLKIN<br />
E<strong>MAC</strong>#PHYMCLKOUT<br />
PHYE<strong>MAC</strong>#MDIN<br />
E<strong>MAC</strong>#PHYMDOUT<br />
E<strong>MAC</strong>#PHYMDTRI<br />
MDIO Implementation in the <strong>Ethernet</strong> <strong>MAC</strong><br />
Figure 5-5: MDIO Access to External PHY<br />
Connect to<br />
External PHY<br />
Accessing PCS/PMA Sublayer Management Registers using MDIO<br />
Host<br />
Interface<br />
DCR Bridge<br />
Figure 5-6 shows the functional block diagram of the <strong>Ethernet</strong> <strong>MAC</strong> with the PCS<br />
management register, MDIO intersection, and MDIO master blocks highlighted. This<br />
figure shows that the PCS/PMA sublayer registers can still be accessed via MDIO when<br />
the host interface is not in use.<br />
E<strong>MAC</strong>#<br />
TX<br />
RX<br />
16- or 8-Bit Client Interface<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
Transmit Engine<br />
Flow Control<br />
Receive Engine<br />
Address Filter<br />
Registers<br />
MDIO Interface<br />
<strong>MAC</strong> Configuration<br />
Registers<br />
TX RX<br />
Statistics<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 121<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
GND<br />
I<br />
O<br />
I<br />
T<br />
OBUF<br />
O<br />
IOBUF<br />
Clock Management<br />
OPAD<br />
MDC<br />
IOPAD MDIO<br />
IO<br />
<strong>UG194</strong>_5_05_072306<br />
MII/GMII/RGMII<br />
Interface to<br />
External PHY<br />
GTP/GTX Transceiver<br />
Interface<br />
Figure 5-6: Accessing PCS/PMA Sublayer Management Registers in the <strong>Ethernet</strong> <strong>MAC</strong><br />
MII/GMII/RGMII Interface<br />
TX<br />
RX<br />
TX<br />
RX<br />
PCS/PMA Sublayer<br />
PCS Management<br />
Registers<br />
MDIO Intersection<br />
MDIO<br />
Master<br />
<strong>UG194</strong>_5_06_071709
Chapter 5: MDIO Interface<br />
To enable this functionality, the host interface should be disabled, and MDIO operation<br />
should be enabled (see Table 2-16, page 43).<br />
In this situation, an MDIO master external to the <strong>Ethernet</strong> <strong>MAC</strong> must initiate the “MDIO<br />
Transactions.” This MDIO master can exist in <strong>FPGA</strong> logic or as an external device. In this<br />
situation, the MDC clock must be provided to the <strong>Ethernet</strong> <strong>MAC</strong> through the<br />
PHYE<strong>MAC</strong>#MCKIN port. The output signal E<strong>MAC</strong>#PHYMCLKOUT should be left unconnected.<br />
The PCS/PMA Management registers have different definitions depending on the mode of<br />
operation. See as appropriate:<br />
“1000BASE-X PCS/PMA Management Registers”<br />
“SGMII Management Registers”<br />
1000BASE-X PCS/PMA Management Registers<br />
<strong>FPGA</strong><br />
PCS/PMA Sublayer<br />
<strong>MAC</strong> TX<br />
Interface<br />
<strong>MAC</strong> RX<br />
Interface<br />
MDIO<br />
Interface<br />
The PCS/PMA sublayer block, shown in Figure 5-7, is contained within the <strong>Ethernet</strong><br />
<strong>MAC</strong>. The PCS/PMA sublayer contains PCS Management registers, as listed in Table 5-2.<br />
These registers are described in further detail in Table 5-3 through to Table 5-13.<br />
PCS Transmit<br />
Engine<br />
Auto-Negotiation<br />
PCS Receive Engine<br />
and<br />
Synchronization<br />
PCS Management<br />
Registers<br />
Figure 5-7: 1000BASE-X PCS/PMA Sublayer Logic and Physical Connections<br />
<strong>UG194</strong>_5_07_090809<br />
Registers 0 through to 15, shown in Figure 5-7, are defined in IEEE Std 802.3. These contain<br />
information relating to the operation of the 1000BASE-X PCS/PMA sublayer, including the<br />
status of the physical <strong>Ethernet</strong> link (PHY link). Additionally, these registers are directly<br />
122 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
GTP/GTX Transceiver<br />
TX+<br />
TX-<br />
RX+<br />
RX-<br />
GBIC<br />
or<br />
SFP<br />
Optical<br />
Transceiver<br />
PHY<br />
Link<br />
TX<br />
Optical<br />
Fiber<br />
RX<br />
R
R<br />
1000BASE-X PCS/PMA Management Registers<br />
involved in the operation of the 1000BASE-X Auto-Negotiation function that occurs<br />
between the <strong>Ethernet</strong> <strong>MAC</strong> and its link partner, which is the <strong>Ethernet</strong> device connected at<br />
the far end of the PHY link (see “1000BASE-X Auto-Negotiation,” page 174).<br />
Registers 16 and 17 are vendor-specific registers, defined by <strong>Xilinx</strong>.<br />
Table 5-2: Configuration Registers for 1000BASE-X PCS/PMA<br />
Register Address<br />
Register Name<br />
(REGAD)<br />
0 “Control Register (Register 0)”<br />
1 “Status Register (Register 1)”<br />
2,3 “PHY Identifier (Registers 2 and 3)”<br />
4 “Auto-Negotiation Advertisement Register (Register 4)”<br />
5 “Auto-Negotiation Link Partner Ability Base Register (Register 5)”<br />
6 “Auto-Negotiation Expansion Register (Register 6)”<br />
7 “Auto-Negotiation Next Page Transmit Register (Register 7)”<br />
8 “Auto-Negotiation Next Page Receive Register (Register 8)”<br />
15 “Extended Status Register (Register 15)”<br />
16<br />
Table 5-3: Control Register (Register 0)<br />
“Vendor-Specific Register: Auto-Negotiation Interrupt Control Register<br />
(Register 16)”<br />
17 “Vendor-Specific Register: Loopback Control Register (Register 17)”<br />
Bit(s) Name Description Type Default Value<br />
0.15 Reset 1 = PCS/PMA reset.<br />
0 = Normal operation.<br />
0.14 Loopback 1 = Enable loopback mode.<br />
0 = Disable loopback mode.<br />
0.13 Speed<br />
Selection<br />
(LSB)<br />
0.12 Auto-<br />
Negotiation<br />
Enable<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a<br />
0 for this bit. Along with bit 0.6,<br />
speed selection of 1000 Mb/s is<br />
identified.<br />
1 = Enable Auto-Negotiation<br />
process.<br />
0 = Disable Auto-Negotiation<br />
process.<br />
0.11 Power Down 1 = Power down.<br />
0 = Normal operation.<br />
When set to 1, the RocketIO serial<br />
transceiver is placed in a Low power<br />
state. This bit requires a reset (see bit<br />
0.15) to clear.<br />
Read/Write<br />
Self Clearing<br />
E<strong>MAC</strong>#_PHYRESET<br />
“Physical Interface Attributes”<br />
Read/Write E<strong>MAC</strong>#_PHYLOOPBACKMSB<br />
“Physical Interface Attributes”<br />
Returns 0 0<br />
Read/Write E<strong>MAC</strong>#_PHYINITAUTONEG_ENABLE<br />
“Physical Interface Attributes”<br />
Read/ Write E<strong>MAC</strong>#_PHYPOWERDOWN<br />
“Physical Interface Attributes”<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 123<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 5: MDIO Interface<br />
Table 5-3: Control Register (Register 0) (Cont’d)<br />
Bit(s) Name Description Type Default Value<br />
0.10 Isolate 1 = Electrically isolate the PHY from<br />
GMII.<br />
0 = Normal operation.<br />
0.9 Restart Auto-<br />
Negotiation<br />
1 = Restart Auto-Negotiation<br />
process.<br />
0 = Normal operation.<br />
0.8 Duplex <strong>Mode</strong> The <strong>Ethernet</strong> <strong>MAC</strong> always returns a<br />
1 for this bit to signal full-duplex<br />
mode.<br />
0.7 Collision Test The <strong>Ethernet</strong> <strong>MAC</strong> always returns a<br />
0 for this bit to disable COL test.<br />
0.6 Speed<br />
Selection<br />
(MSB)<br />
0.5 Unidirection<br />
al Enable<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a<br />
1 for this bit. Together with bit 0.13,<br />
speed selection of 1000 Mb/s is<br />
identified.<br />
Enable transmit regardless of<br />
whether a valid link has been<br />
established.<br />
0.4:0 Reserved Always returns zeros, writes<br />
ignored.<br />
Table 5-4: Status Register (Register 1)<br />
Read/Write E<strong>MAC</strong>#_PHYISOLATE<br />
“Physical Interface Attributes”<br />
Read/Write<br />
Self Clearing<br />
124 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
0<br />
Returns 1 1<br />
Returns 0 0<br />
Returns 1 1<br />
Read/Write E<strong>MAC</strong>#_UNIDIRECTION_ENABLE<br />
“Physical Interface Attributes”<br />
Returns 0s 00000<br />
Bit(s) Name Description Type Default Value<br />
1.15 100BASE-T4 The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 100BASE-T4 is not supported.<br />
1.14 100BASE-X<br />
Full Duplex<br />
1.13 100BASE-X<br />
Half Duplex<br />
1.12 10 Mb/s<br />
Full Duplex<br />
1.11 10 Mb/s<br />
Half Duplex<br />
1.10 100BASE-T2<br />
Full Duplex<br />
1.9 100BASE-T2<br />
Half Duplex<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 100BASE-X full duplex is not supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 100BASE-X half duplex is not supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 10 Mb/s full duplex is not supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 10 Mb/s half duplex is not supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 100BASE-T2 full duplex is not supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 100BASE-T2 half duplex is not<br />
supported.<br />
1.8 Extended Status The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1 for this bit,<br />
indicating the presence of the extended register<br />
(Register 15).<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 1 1<br />
R
R<br />
Table 5-4: Status Register (Register 1) (Cont’d)<br />
1.7 Unidirectional<br />
Ability<br />
Link Status<br />
1000BASE-X PCS/PMA Management Registers<br />
Bit(s) Name Description Type Default Value<br />
1.6 MF Preamble<br />
Suppression<br />
1.5 Auto-<br />
Negotiation<br />
Complete<br />
Always returns a 1, writes ignored. Returns 1 1<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1 for this bit<br />
to indicate the support of management frame<br />
preamble suppression.<br />
1 = Auto-Negotiation process completed.<br />
0 = Auto-Negotiation process not completed.<br />
1.4 Remote Fault 1 = Remote fault condition detected.<br />
0 = No remote fault condition detected.<br />
1.3 Auto-<br />
Negotiation<br />
Ability<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1 for this bit,<br />
indicating that the PHY is capable of autonegotiation.<br />
1.2 Link Status 1 = Link is up<br />
0 = Link is down (or has been down)<br />
Latches 0 if Link Status goes down.<br />
Clears to current Link Status on read.<br />
See the following Link Status section for<br />
further details.<br />
1.1 Jabber Detect The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because jabber detect is not supported.<br />
1.0 Extended<br />
Capability<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because no extended register set is supported.<br />
Returns 1 1<br />
Read Only 0<br />
Read Only<br />
Self Clearing on<br />
read<br />
Returns 1 1<br />
Read Only<br />
Self clearing on<br />
read<br />
Returns 0 0<br />
Returns 0 0<br />
When Link Status is High, the link is valid and has remained valid since this register was<br />
last read. Synchronization of the link has been obtained and Auto Negotiation (if enabled)<br />
has completed.<br />
When Low, either:<br />
A valid link has not been established. Link synchronization has failed or Auto<br />
Negotiation (if enabled) has failed to complete.<br />
Link synchronization was lost at some point because this register was previously<br />
read. However, the current link status can be valid. Read this register a second time to<br />
get confirmation of the current link status.<br />
Regardless of whether Auto Negotiation is enabled or disabled, there can be some delay to<br />
the deassertion of Link Status following the loss of synchronization of a previously<br />
successful link. This is due to the Auto Negotiation state machine, which requires that<br />
synchronization is lost for an entire link timer duration before changing state. For more<br />
information, see the IEEE Std 802.3 specification (the an_sync_status variable).<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 125<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
0<br />
0
Chapter 5: MDIO Interface<br />
Table 5-5: PHY Identifier (Registers 2 and 3)<br />
Bit(s) Name Description Type Default Value<br />
2.15:0 Organizationally<br />
Unique Identifier<br />
3.15:10 Organizationally<br />
Unique Identifier<br />
3.9:4 Manufacturer’s<br />
<strong>Mode</strong>l Number<br />
Organizationally Unique Identifier<br />
(OUI) from IEEE is 0x000A35.<br />
Organizationally Unique Identifier<br />
(OUI) from IEEE is 0x000A35.<br />
Returns OUI (3-18) 0000000000101000<br />
Returns OUI (19-24) 110101<br />
Always returns 0s. Returns 0s 000000<br />
3.3:0 Revision Number Always returns 0s. Returns 0s 0000<br />
Table 5-6: Auto-Negotiation Advertisement Register (Register 4)<br />
Bit(s) Name Description Type Default Value<br />
4.15 Next Page 1 = Next page functionality is advertised.<br />
0 = Next page functionality is not advertised.<br />
Read/Write 0<br />
4.14 Reserved Always returns 0, writes ignored. Returns 0 0<br />
4.13:12 Remote Fault 00 = No error.<br />
01 = Offline.<br />
10 = Link failure.<br />
11 = Auto-negotiation error.<br />
Read/Write<br />
Self clearing to 00 after<br />
auto-negotiation<br />
4.11:9 Reserved Always return 0, writes ignored. Returns 0 0<br />
4.8:7 Pause 00 = No PAUSE.<br />
01 = Symmetric PAUSE.<br />
10 = Asymmetric PAUSE towards link partner.<br />
11 = Both symmetric PAUSE and asymmetric<br />
PAUSE towards link partner.<br />
4.6 Half Duplex The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this<br />
bit because half-duplex mode is not supported.<br />
4.5 Full Duplex 1 = Full-duplex mode is advertised.<br />
0 = Full-duplex mode is not advertised.<br />
126 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
00<br />
Read/Write 11<br />
Returns 0 0<br />
Read/Write 1<br />
4.4:0 Reserved Always returns 0s, writes ignored. Returns 0s 00000<br />
Table 5-7: Auto-Negotiation Link Partner Ability Base Register (Register 5)<br />
Bit(s) Name Description Type Default Value<br />
5.15 Next Page 1 = Next page functionality is supported.<br />
0 = Next page functionality is not supported.<br />
5.14 Acknowledge Used by the Auto-Negotiation function to<br />
indicate reception of a link partner’s base or<br />
next page.<br />
5.13:12 Remote Fault 00 = No Error.<br />
01 = Offline.<br />
10 = Link Failure.<br />
11 = Auto-Negotiation Error.<br />
Read Only 0<br />
Read Only 0<br />
Read Only 00<br />
5.11:9 Reserved Always returns 0s. Returns 0s 000<br />
R
R<br />
1000BASE-X PCS/PMA Management Registers<br />
Table 5-7: Auto-Negotiation Link Partner Ability Base Register (Register 5) (Cont’d)<br />
Bit(s) Name Description Type Default Value<br />
5.8:7 Pause 00 = No PAUSE.<br />
01 = Symmetric PAUSE supported.<br />
10 = Asymmetric PAUSE supported.<br />
11 = Both symmetric PAUSE and asymmetric<br />
PAUSE supported.<br />
5.6 Half Duplex 1 = Half-duplex mode is supported.<br />
0 = Half-duplex mode is not supported.<br />
5.5 Full Duplex 1 = Full-duplex mode is supported.<br />
0 = Full-duplex mode is not supported.<br />
Read Only 00<br />
Read Only 0<br />
Read Only 0<br />
5.4:0 Reserved Always returns 0s. Returns 0s 00000<br />
Table 5-8: Auto-Negotiation Expansion Register (Register 6)<br />
Bit(s) Name Description Type Default Value<br />
6.15:3 Reserved Always returns 0s. Returns 0s 0000000000000<br />
6.2 Next Page Able The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1 for this<br />
bit because the device is Next Page Able.<br />
6.1 Page Received 1 = A new page is received.<br />
0 = A new page is not received.<br />
Returns 1 1<br />
Read only. Self<br />
clearing on read.<br />
6.0 Reserved Always returns 0s. Returns 0s 0000000<br />
Table 5-9: Auto-Negotiation Next Page Transmit Register (Register 7)<br />
Bit(s) Name Description Type Default Value<br />
7.15 Next Page 1 = Additional next page(s) will follow.<br />
0 = Last page.<br />
Read/Write 0<br />
7.14 Reserved Always returns 0. Returns 0 0<br />
7.13 Message Page 1 = Message Page.<br />
0 = Unformatted Page.<br />
7.12 Acknowledge 2 1 = Complies with message.<br />
0 = Cannot comply with message.<br />
Read/Write 1<br />
Read/Write 0<br />
7.11 Toggle Value toggles between subsequent pages. Read Only 0<br />
7.10:0 Message or<br />
Unformatted<br />
Code Field<br />
Message code field or unformatted page<br />
encoding as dictated by 7.13.<br />
Table 5-10: Auto-Negotiation Next Page Receive Register (Register 8)<br />
Read/Write 00000000001<br />
(Null Message<br />
Code)<br />
Bit(s) Name Description Type Default Value<br />
8.15 Next Page 1 = Additional Next Page(s) will follow.<br />
0 = Last page.<br />
8.14 Acknowledge Used by Auto-Negotiation function to indicate<br />
reception of a link partner’s base or next page.<br />
Read Only 0<br />
Read Only 0<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 127<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
0
Chapter 5: MDIO Interface<br />
Table 5-10: Auto-Negotiation Next Page Receive Register (Register 8) (Cont’d)<br />
Bit(s) Name Description Type Default Value<br />
8.13 Message Page 1 = Message Page.<br />
0 = Unformatted Page.<br />
8.12 Acknowledge 2 1 = Complies with message.<br />
0 = Cannot comply with message.<br />
Read Only 0<br />
Read Only 0<br />
8.11 Toggle Value toggles between subsequent next pages. Read Only 0<br />
8.10:0 Message /<br />
Unformatted<br />
Code Field<br />
Message code field or unformatted page<br />
encoding as dictated by 8.13.<br />
Table 5-11: Extended Status Register (Register 15)<br />
Read Only 00000000000<br />
Bit(s) Name Description Type Default Value<br />
15.15 1000BASE-X<br />
Full Duplex<br />
15.14 1000BASE-X<br />
Half Duplex<br />
15.13 1000BASE-T<br />
Full Duplex<br />
15.12 1000BASE-T<br />
Half Duplex<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1 for this bit<br />
because 1000BASE-X full duplex is supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 1000BASE-X half duplex is not<br />
supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 1000BASE-T full duplex is not<br />
supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 1000BASE-T half duplex is not<br />
supported.<br />
Returns 1 1<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
15.11:0 Reserved Always returns 0s. Returns 0s 000000000000<br />
Table 5-12: Vendor-Specific Register: Auto-Negotiation Interrupt Control Register (Register 16)<br />
Bit(s) Name Description Type Default Value<br />
16.15:2 Reserved Always returns 0s. Returns 0s 00000000000000<br />
16.1 Interrupt Status 1 = Interrupt is asserted.<br />
0 = Interrupt is not asserted.<br />
If the interrupt is enabled, this bit is set upon<br />
the completion of an auto-negotiation cycle; it<br />
is cleared only by writing 0 to this bit.<br />
If the interrupt is disabled, this bit is reset to 0.<br />
The E<strong>MAC</strong>#CLIENTANINTERRUPT port is<br />
wired to this bit.<br />
16.0 Interrupt Enable 1 = Interrupt is enabled.<br />
0 = Interrupt is disabled.<br />
Read/Write 0<br />
Read/Write 1<br />
128 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Table 5-13: Vendor-Specific Register: Loopback Control Register (Register 17)<br />
1000BASE-X PCS/PMA Management Registers<br />
Bit(s) Name Description Type Default Value<br />
17.15:1 Reserved Always returns 0s. Returns 0s 000000000000000<br />
17.0 Loopback<br />
Position<br />
0 = Loopback (when enabled) occurs in<br />
the <strong>Ethernet</strong> <strong>MAC</strong> directly before the<br />
interface to the RocketIO serial<br />
transceiver.<br />
1 = Loopback (when enabled) occurs in<br />
the RocketIO serial transceiver.<br />
Note: Loopback is enabled or disabled<br />
using 0.14 (see “Control Register<br />
(Register 0)”).<br />
Read/Write E<strong>MAC</strong>#_GTLOOPBACK<br />
“Physical Interface Attributes”<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 129<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 5: MDIO Interface<br />
SGMII Management Registers<br />
<strong>FPGA</strong><br />
PCS/PMA Sublayer<br />
<strong>MAC</strong> TX<br />
Interface<br />
<strong>MAC</strong> RX<br />
Interface<br />
MDIO<br />
Interface<br />
Figure 5-8 shows the PCS/PMA sublayer block in an SGMII implementation. The<br />
PCS/PMA sublayer of the <strong>Ethernet</strong> <strong>MAC</strong>, when performing the SGMII standard, contains<br />
PCS Management registers as listed in Table 5-14. These registers are described in further<br />
detail in Table 5-15 through Table 5-25.<br />
PCS Transmit<br />
Engine<br />
Auto-Negotiation<br />
PCS Receive Engine<br />
and<br />
Synchronization<br />
PCS Management<br />
Registers<br />
Figure 5-8: SGMII Logic and Physical Connections<br />
10BASE-T<br />
100BASE-T<br />
1000BASE-T<br />
<strong>UG194</strong>_5_08_072809<br />
These registers contain information relating to the operation of the system, including the<br />
status of both the SGMII link and the physical <strong>Ethernet</strong> link (PHY link). Refer to Figure 5-8.<br />
Additionally, these registers are directly involved in the operation of the SGMII Auto-<br />
Negotiation function which occurs between the <strong>Ethernet</strong> <strong>MAC</strong> and the external PHY<br />
device, illustrated as a <strong>Tri</strong>-speed BASE-T PHY in Figure 5-8. (see “SGMII Auto-<br />
Negotiation,” page 196).<br />
130 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
GTP/GTX Transceiver<br />
TX+<br />
TX-<br />
RX+<br />
RX-<br />
SGMII<br />
Link<br />
PHY<br />
Table 5-14: SGMII Configuration Registers for 1000BASE-X PCS/PMA<br />
Register<br />
Address<br />
(REGAD)<br />
0 “SGMII Control Register (Register 0)”<br />
1 “SGMII Status Register (Register 1)”<br />
Register Name<br />
PHY<br />
Link<br />
TX<br />
Twisted<br />
Copper<br />
Pair<br />
RX<br />
R
R<br />
2, 3 “PHY Identifier (Registers 2 and 3)”<br />
SGMII Management Registers<br />
Table 5-14: SGMII Configuration Registers for 1000BASE-X PCS/PMA (Cont’d)<br />
Register<br />
Address<br />
(REGAD)<br />
Table 5-15: SGMII Control Register (Register 0)<br />
4 “SGMII Auto-Negotiation Advertisement Register (Register 4)”<br />
5 “SGMII Auto-Negotiation Link Partner Ability Base Register (Register 5)”<br />
6 “SGMII Auto-Negotiation Expansion Register (Register 6)”<br />
7 “SGMII Auto-Negotiation Next Page Transmit Register (Register 7)”<br />
8 “SGMII Auto-Negotiation Next Page Receive Register (Register 8)”<br />
15 “SGMII Extended Status Register (Register 15)”<br />
16<br />
Register Name<br />
“SGMII Vendor-Specific Register: Auto-Negotiation Interrupt Control<br />
Register (Register 16)”<br />
17 “SGMII Vendor Specific Register: Loopback Control Register (Register 17)”<br />
Bit(s) Name Description Type Default Value<br />
0.15 Reset 1 = PCS/PMA reset.<br />
0 = Normal operation.<br />
0.14 Loopback 1 = Enable loopback mode.<br />
0 = Disable loopback mode.<br />
0.13 Speed Selection<br />
(LSB)<br />
0.12 Auto-Negotiation<br />
Enable<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0<br />
for this bit. Along with bit 0.6, speed<br />
selection of 1000 Mb/s is identified.<br />
1 = Enable SGMII Auto-Negotiation<br />
process.<br />
0 = Disable SGMII Auto-Negotiation<br />
process.<br />
0.11 Power Down 1 = Power down.<br />
0 = Normal operation.<br />
When set to 1, the RocketIO serial<br />
transceiver is placed in a Low power<br />
state. This bit requires a reset (see bit<br />
0.15) to clear.<br />
0.10 Isolate 1 = Isolate the SGMII logic<br />
from GMII.<br />
0 = Normal operation.<br />
0.9 Restart<br />
Auto-Negotiation<br />
1 = Restart Auto-Negotiation process<br />
across the SGMII link.<br />
0 = Normal operation.<br />
0.8 Duplex <strong>Mode</strong> The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1<br />
for this bit to signal full-duplex mode.<br />
0.7 Collision Test The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0<br />
for this bit to disable COL test.<br />
Read/Write<br />
Self Clearing<br />
E<strong>MAC</strong>#_PHYRESET<br />
“Physical Interface Attributes”<br />
Read/Write E<strong>MAC</strong>#_PHYLOOPBACKMSB<br />
“Physical Interface Attributes”<br />
Returns 0 0<br />
Read/Write E<strong>MAC</strong>#_PHYINITAUTONEG_<br />
ENABLE<br />
“Physical Interface Attributes”<br />
Read/ Write E<strong>MAC</strong>#_PHYPOWERDOWN<br />
“Physical Interface Attributes”<br />
Read/Write E<strong>MAC</strong>#_PHYISOLATE<br />
“Physical Interface Attributes”<br />
Read/Write<br />
Self Clearing<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 131<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
0<br />
Returns 1 1<br />
Returns 0 0
Chapter 5: MDIO Interface<br />
Table 5-15: SGMII Control Register (Register 0) (Cont’d)<br />
Bit(s) Name Description Type Default Value<br />
0.6 Speed Selection<br />
(MSB)<br />
0.5 Unidirectional<br />
Enable<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1<br />
for this bit. Together with bit 0.13,<br />
speed selection of 1000 Mb/s is<br />
identified.<br />
Enable transmit regardless of whether<br />
a valid link has been established<br />
Returns 1 1<br />
0.4:0 Reserved Always returns zeros, writes ignored. Returns 0s 00000<br />
Table 5-16: SGMII Status Register (Register 1)<br />
Read/Write E<strong>MAC</strong>#_UNIDIRECTION_ENABLE<br />
“Physical Interface Attributes”<br />
Bit(s) Name Description Type Default Value<br />
1.15 100BASE-T4 The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 100BASE-T4 is not supported.<br />
1.14 100BASE-X<br />
Full Duplex<br />
1.13 100BASE-X<br />
Half Duplex<br />
1.12 10 Mb/s<br />
Full Duplex<br />
1.11 10 Mb/s<br />
Half Duplex<br />
1.10 100BASE-T2<br />
Full Duplex<br />
1.9 100BASE-T2<br />
Half Duplex<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 100BASE-X full duplex is not supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 100BASE-X half duplex is not supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 10 Mb/s full duplex is not supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 10 Mb/s half duplex is not supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 100BASE-T2 full duplex is not supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because 100BASE-T2 half duplex is not<br />
supported.<br />
1.8 Extended Status The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1 for this bit,<br />
indicating the presence of the extended register<br />
(Register 15).<br />
1.7 Unidirectional<br />
Ability<br />
1.6 MF Preamble<br />
Suppression<br />
1.5 Auto-<br />
Negotiation<br />
Complete<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 1 1<br />
Always returns a 1, writes ignored. Returns 1 1<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1 for this bit<br />
to indicate the support of management frame<br />
preamble suppression.<br />
1 = Auto-Negotiation process completed.<br />
0 = Auto-Negotiation process not completed.<br />
1.4 Remote Fault 1 = Remote fault condition detected.<br />
0 = No remote fault condition detected.<br />
1.3 Auto-<br />
Negotiation<br />
Ability<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1 for this bit,<br />
indicating that the PHY is capable of autonegotiation.<br />
Returns 1 1<br />
Read Only 0<br />
Read Only<br />
Self clearing on<br />
read<br />
132 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
0<br />
Returns 1 1<br />
R
1.2 SGMII Link<br />
Status<br />
R<br />
Table 5-16: SGMII Status Register (Register 1) (Cont’d)<br />
The link status of the <strong>Ethernet</strong> <strong>MAC</strong> with its<br />
external PHY across the SGMII link (see<br />
Figure 5-8).<br />
1 = SGMII link is up.<br />
0 = SGMII link is down.<br />
1.1 Jabber Detect The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because jabber detect is not supported.<br />
SGMII Management Registers<br />
Bit(s) Name Description Type Default Value<br />
1.0 Extended<br />
Capability<br />
Table 5-17: PHY Identifier (Registers 2 and 3)<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this bit<br />
because no extended register set is supported.<br />
Read Only<br />
Self clearing on<br />
read<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 133<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
0<br />
Returns 0 0<br />
Returns 0 0<br />
Bit(s) Name Description Type Default Value<br />
2.15:0 Organizationally<br />
Unique Identifier<br />
3.15:10 Organizationally<br />
Unique Identifier<br />
3.9:4 Manufacturer’s<br />
<strong>Mode</strong>l Number<br />
Organizationally Unique Identifier<br />
(OUI) from IEEE is 0x000A35.<br />
Organizationally Unique Identifier<br />
(OUI) from IEEE is 0x000A35.<br />
Returns OUI(3-18) 0000000000101000<br />
Returns OUI(19-24) 110101<br />
Always returns 0s. Returns 0s 000000<br />
3.3:0 Revision Number Always returns 0s. Returns 0s 0000<br />
Table 5-18: SGMII Auto-Negotiation Advertisement Register (Register 4)<br />
Bit(s) Name Description Type Default Value<br />
4.15:0 All bits SGMII defined value sent from the <strong>MAC</strong><br />
to the PHY.<br />
Table 5-19: SGMII Auto-Negotiation Link Partner Ability Base Register (Register 5)<br />
Read Only 000000000000001<br />
Bit(s) Name Description Type Default Value<br />
5.15 PHY Link Status This refers to the link status of the external<br />
PHY device with its link partner across the<br />
PHY link (see Figure 5-8).<br />
1 = Link up.<br />
0 = Link down.<br />
5.14 Acknowledge Used by the Auto-Negotiation function to<br />
indicate reception of a link partner’s base or<br />
next page.<br />
Read only 1<br />
Read only 0<br />
5.13 Reserved Always return 0. Returns 0 0<br />
5.12 Duplex mode The resolved duplex mode that the external<br />
PHY device has auto-negotiated with its link<br />
partner across the PHY link (see Figure 5-8).<br />
1 = Full Duplex.<br />
0 = Half Duplex.<br />
Read only 00
Chapter 5: MDIO Interface<br />
Table 5-19: SGMII Auto-Negotiation Link Partner Ability Base Register (Register 5) (Cont’d)<br />
Bit(s) Name Description Type Default Value<br />
5.11:10 Speed The resolved operating speed that the external<br />
PHY device has auto-negotiated with its link<br />
partner across the PHY link (see Figure 5-8).<br />
00 = 10 Mb/s.<br />
01 = 100 Mb/s.<br />
10 = 1000 Mb/s.<br />
11 = Reserved.<br />
Read only 00<br />
5.9:1 Reserved Always returns 0s. Returns 0s 000000000<br />
5.0 Reserved Always returns 1. Returns 1 1<br />
Table 5-20: SGMII Auto-Negotiation Expansion Register (Register 6)<br />
Bit(s) Name Description Type Default Value<br />
6.15:3 Reserved Always returns 0s. Returns 0s 0000000000000<br />
6.2 Next Page Able The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1 for this<br />
bit because the device is Next Page Able.<br />
6.1 Page Received 1 = A new page is received.<br />
0 = A new page is not received.<br />
Returns 1 1<br />
Read only. Self<br />
clearing on read.<br />
6.0 Reserved Always returns 0s. Returns 0s 0000000<br />
Table 5-21: SGMII Auto-Negotiation Next Page Transmit Register (Register 7)<br />
Bit(s) Name Description Type Default Value<br />
7.15 Next Page 1 = Additional next page(s) will follow<br />
0 = Last page.<br />
Read/Write 0<br />
7.14 Reserved Always returns 0. Returns 0 0<br />
7.13 Message Page 1 = Message Page.<br />
0 = Unformatted Page.<br />
7.12 Acknowledge 2 1 = Complies with message.<br />
0 = Cannot comply with message.<br />
Read/Write 1<br />
Read/Write 0<br />
7.11 Toggle Value toggles between subsequent pages. Read Only 0<br />
7.10:0 Message or<br />
Unformatted<br />
Code Field<br />
Message code field or unformatted page<br />
encoding as dictated by 7.13.<br />
Table 5-22: SGMII Auto-Negotiation Next Page Receive Register (Register 8)<br />
Read/Write 00000000001<br />
(Null Message<br />
Code)<br />
Bit(s) Name Description Type Default Value<br />
8.15 Next Page 1 = Additional Next Page(s) will follow.<br />
0 = Last page.<br />
8.14 Acknowledge Used by Auto-Negotiation function to indicate<br />
reception of a link partner’s base or next page.<br />
8.13 Message Page 1 = Message Page.<br />
0 = Unformatted Page.<br />
Read Only 0<br />
Read Only 0<br />
Read Only 0<br />
134 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
0<br />
R
R<br />
Table 5-22: SGMII Auto-Negotiation Next Page Receive Register (Register 8) (Cont’d)<br />
8.12 Acknowledge 2 1 = Complies with message.<br />
0 = Cannot comply with message.<br />
SGMII Management Registers<br />
Bit(s) Name Description Type Default Value<br />
Read Only 0<br />
8.11 Toggle Value toggles between subsequent next pages. Read Only 0<br />
8.10:0 Message /<br />
Unformatted<br />
Code Field<br />
Message code field or unformatted page<br />
encoding as dictated by 8.13.<br />
Table 5-23: SGMII Extended Status Register (Register 15)<br />
Read Only 00000000000<br />
Bit(s) Name Description Type Default Value<br />
15.15 1000BASE-X<br />
Full Duplex<br />
15.14 1000BASE-X<br />
Half Duplex<br />
15.13 1000BASE-T<br />
Full Duplex<br />
15.12 1000BASE-T<br />
Half Duplex<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 1 for this<br />
bit because 1000BASE-X full duplex is<br />
supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this<br />
bit because 1000BASE-X half duplex is not<br />
supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this<br />
bit because 1000BASE-T full duplex is not<br />
supported.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> always returns a 0 for this<br />
bit because 1000BASE-T half duplex is not<br />
supported.<br />
Returns 1 1<br />
Returns 0 0<br />
Returns 0 0<br />
Returns 0 0<br />
15.11:0 Reserved Always returns 0s. Returns 0s 000000000000<br />
Table 5-24: SGMII Vendor-Specific Register: Auto-Negotiation Interrupt Control Register (Register 16)<br />
Bit(s) Name Description Type Default Value<br />
16.15:2 Reserved Always returns 0s. Returns 0s 00000000000000<br />
16.1 Interrupt Status 1 = Interrupt is asserted.<br />
0 = Interrupt is not asserted.<br />
If the interrupt is enabled, this bit is set upon<br />
the completion of an auto-negotiation cycle.<br />
Writing 0 to this bit is the only way to clear it.<br />
If the interrupt is disabled, this bit is cleared to<br />
0.<br />
The E<strong>MAC</strong>#CLIENTANINTERRUPT port is<br />
wired to this bit.<br />
16.0 Interrupt Enable 1 = Interrupt is enabled.<br />
0 = Interrupt is disabled.<br />
Read/Write 0<br />
Read/Write 1<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 135<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 5: MDIO Interface<br />
Table 5-25: SGMII Vendor Specific Register: Loopback Control Register (Register 17)<br />
Bit(s) Name Description Type Default Value<br />
17.15:1 Reserved Always returns 0s. Returns 0s 000000000000000<br />
17.0 Loopback<br />
Position<br />
0 = Loopback (when enabled) occurs in<br />
the <strong>Ethernet</strong> <strong>MAC</strong> directly before the<br />
interface to the RocketIO serial<br />
transceiver.<br />
1 = Loopback (when enabled) occurs in<br />
the RocketIO serial transceiver.<br />
Note: Loopback is enabled or disabled<br />
using 0.14 (see “Control Register<br />
(Register 0)”).<br />
Read/Write E<strong>MAC</strong>#_GTLOOPBACK<br />
“Physical Interface Attributes”<br />
136 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Physical Interface<br />
Chapter 6<br />
This chapter describes the physical interface options provided by the <strong>Ethernet</strong> <strong>MAC</strong>. This<br />
chapter contains the following sections:<br />
“Introduction to the Physical Interfaces”<br />
“Media Independent Interface (MII)”<br />
“Gigabit Media Independent Interface (GMII)”<br />
“Reduced Gigabit Media Independent Interface (RGMII)”<br />
“1000BASE-X PCS/PMA”<br />
“Serial Gigabit Media Independent Interface (SGMII)”<br />
For each physical interface, there can be more than one possible clocking scheme. The<br />
following sections describe the different optimized clocking schemes for the individual<br />
<strong>Ethernet</strong> <strong>MAC</strong> configurations.<br />
<strong>Ethernet</strong> <strong>MAC</strong> wrappers and example designs are provided for each of the different<br />
physical interfaces via the CORE Generator tool. The generated designs exactly match<br />
the descriptions in this chapter and are available in both VHDL and Verilog. By using the<br />
CORE Generator tool, the time required to instantiate the <strong>Ethernet</strong> <strong>MAC</strong> into a usable<br />
design is greatly reduced. See “Accessing the <strong>Ethernet</strong> <strong>MAC</strong> from the CORE Generator<br />
Tool,” page 25.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 137<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
Introduction to the Physical Interfaces<br />
OSI<br />
Reference<br />
<strong>Mode</strong>l<br />
Layers<br />
Application<br />
Presentation<br />
Session<br />
Transport<br />
Network<br />
Data Link<br />
PHY - Physical<br />
PCS - Physical Coding Sublayer<br />
PMA - Physical Medium Attachment<br />
PMD - Physical Medium Dependent<br />
Figure 6-1 illustrates the position of the <strong>Ethernet</strong> <strong>MAC</strong> sublayers and physical interface<br />
options within the OSI model.<br />
PCS<br />
PMA<br />
PMD<br />
MEDIUM<br />
1000BASE-X<br />
(eg optical fiber medium)<br />
LAN<br />
CSMA/CD<br />
Layers<br />
Higher Layers<br />
LLC - Logical Link Control<br />
<strong>MAC</strong> Control (Optional)<br />
<strong>MAC</strong> - Media Access Control<br />
Reconciliation<br />
MII - Media Independent Interface<br />
Figure 6-1: <strong>MAC</strong> Sublayer Partitioning, Relationship to the ISO/IEC OSI Reference <strong>Mode</strong>l<br />
The <strong>Ethernet</strong> <strong>MAC</strong> sublayer itself is independent of, and can connect to, any type of<br />
physical layer device. In Figure 6-1, two alternative physical sublayer standards are<br />
shown:<br />
BASE-T PHYs provide a link between the <strong>MAC</strong> and copper mediums. This<br />
functionality is not offered within the <strong>Ethernet</strong> <strong>MAC</strong>. However, external BASE-T PHY<br />
devices are readily available on the market. These can connect to the <strong>Ethernet</strong> <strong>MAC</strong><br />
using GMII/MII, RGMII, or SGMII interfaces.<br />
BASE-X PHYs provide a link between the <strong>MAC</strong> and (usually) fiber optic mediums.<br />
The <strong>Ethernet</strong> <strong>MAC</strong> itself can support the 1 Gb/s BASE-X standard. 1000BASE-X can<br />
be offered by connecting the <strong>Ethernet</strong> <strong>MAC</strong> to a RocketIO serial transceiver.<br />
The interface type and 1000BASE-X sublayer functionalities are summarized in the<br />
following subsections.<br />
138 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
PCS<br />
PMA<br />
PMD<br />
MEDIUM<br />
1000BASE-T<br />
100BASE-T<br />
10BASE-T<br />
(eg copper medium)<br />
GMII - Gigabit Media Independent Interface<br />
RGMII - Reduced Gigabit Media Independent Interface<br />
SGMII - Serial Gigabit Media Independent Interface<br />
Note:<br />
The functions shown<br />
in gray are performed<br />
by the <strong>Ethernet</strong> <strong>MAC</strong> block<br />
GMII/MII<br />
RGMII<br />
SGMII<br />
<strong>UG194</strong>_6_01_072606<br />
R
R<br />
GMII / MII<br />
RGMII<br />
SGMII<br />
Introduction to the Physical Interfaces<br />
The Media Independent Interface (MII), defined in IEEE 802.3, clause 22 is a parallel<br />
interface that connects a 10-Mb/s and/or 100-Mb/s capable <strong>MAC</strong> to the physical<br />
sublayers.<br />
The Gigabit Media Independent Interface (GMII), defined in IEEE 802.3, clause 35 is an<br />
extension of the MII used to connect a 1-Gb/s capable <strong>MAC</strong> to the physical sublayers.<br />
MII can be considered a subset of GMII, and as a result, GMII/MII together can carry<br />
<strong>Ethernet</strong> traffic at 10 Mb/s, 100 Mb/s, and 1 Gb/s.<br />
The Reduced Gigabit Media Independent Interface (RGMII) is an alternative to the<br />
GMII/MII. RGMII achieves a 50% reduction in the pin count compared with GMII, and<br />
therefore, is favored over GMII/MII by PCB designers. This configuration is achieved with<br />
the use of double-data-rate (DDR) flip-flops.<br />
RGMII can carry <strong>Ethernet</strong> traffic at 10 Mb/s, 100 Mb/s, and 1 Gb/s.<br />
The Serial-GMII (SGMII) is an alternative interface to the GMII/MII that converts the<br />
parallel interface of the GMII into a serial format. It radically reduces the I/O count and is,<br />
therefore, often favored by PCB designers. This configuration is achieved by connecting<br />
the <strong>Ethernet</strong> <strong>MAC</strong> to a RocketIO serial transceiver.<br />
SGMII can carry <strong>Ethernet</strong> traffic at 10 Mb/s, 100 Mb/s, and 1 Gb/s.<br />
1000BASE-X Sublayers<br />
PCS/PMA<br />
The Physical Coding Sublayer (PCS) for 1000BASE-X operation is defined in IEEE 802.3,<br />
clauses 36 and 37, and performs the following:<br />
Encoding (and decoding) of GMII data octets to form a sequence of ordered sets<br />
8B/10B encoding (and decoding) of the sequence ordered sets<br />
1000BASE-X auto-negotiation for information exchange with the link partner<br />
The Physical Medium Attachment (PMA) for 1000BASE-X operation is defined in<br />
IEEE 802.3, clause 36 and performs the following:<br />
Serialization (and deserialization) of code-groups for transmission (and reception) on<br />
the underlying serial PMD<br />
Recovery of clock from the 8B/10B-coded data supplied by the PMD<br />
1000BASE-X PCS/PMA functionality is provided by connecting the <strong>Ethernet</strong> <strong>MAC</strong> to a<br />
RocketIO serial transceiver.<br />
PMD<br />
The Physical Medium Dependent (PMD) sublayer is defined in IEEE 802.3, clause 38 for<br />
1000BASE-LX and 1000BASE-SX (long and short wavelength laser). This type of PMD is<br />
provided by the external GBIC or SFP optical transceiver, which should be connected<br />
directly to the ports of the RocketIO serial transceiver.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 139<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
Media Independent Interface (MII)<br />
The Media Independent Interface (MII), defined in IEEE 802.3, clause 22, is a parallel<br />
interface that connects a 10-Mb/s and/or 100-Mb/s capable <strong>MAC</strong> to the physical<br />
sublayers.<br />
Figure 6-2 shows the <strong>Ethernet</strong> <strong>MAC</strong> configured for MII. The physical signals of the<br />
<strong>Ethernet</strong> <strong>MAC</strong> are connected through IOBs to the external interface. The “logic cloud”<br />
indicates that alternative implementations are possible.<br />
<strong>Ethernet</strong><br />
<strong>MAC</strong><br />
Figure 6-2: <strong>Ethernet</strong> <strong>MAC</strong> Configured in MII <strong>Mode</strong><br />
There are two alternative implementations available that use different clocking schemes:<br />
the standard clocking scheme without clock enables or an alternative clock enable scheme<br />
that saves on global clock resources. “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205 introduces these<br />
two clocking models, which are described in detail in the following sections:<br />
“MII Standard Clock Management”<br />
<strong>Virtex</strong>-5 Device<br />
IOBs<br />
and<br />
Clock Logic<br />
MII_RX_CLK<br />
MII_RXD[3:0]<br />
MII_RX_DV<br />
MII_RX_ER<br />
MII_TX_CLK<br />
MII_TXD[3:0]<br />
MII_TX_EN<br />
MII_TX_ER<br />
MII_COL<br />
MII_CRS<br />
“MII Clock Management using Clock Enables”<br />
If the CORE Generator tool is used, the wrapper files for the <strong>Ethernet</strong> <strong>MAC</strong> that are created<br />
will contain the logic described in these sections. By using the CORE Generator tool, the<br />
time required to instantiate the <strong>Ethernet</strong> <strong>MAC</strong> into a usable design is greatly reduced. See<br />
“Accessing the <strong>Ethernet</strong> <strong>MAC</strong> from the CORE Generator Tool,” page 25.<br />
140 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
MII Physical Interface<br />
<strong>UG194</strong>_6_02_072106<br />
R
TX CLIENT<br />
LOGIC<br />
RX CLIENT<br />
LOGIC<br />
R<br />
MII Standard Clock Management<br />
Media Independent Interface (MII)<br />
Figure 6-3 shows the standard clock management scheme when the MII interface is<br />
selected. Both the MII_TX_CLK and MII_RX_CLK, generated from the PHY, have a<br />
frequency of either 2.5 MHz or 25 MHz, depending on the operating speed of the <strong>Ethernet</strong><br />
<strong>MAC</strong>s. E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT connects to E<strong>MAC</strong>#CLIENTTXCLIENTCLKIN<br />
through a BUFG. Its frequency is either 12.5 MHz or 1.25 MHz, depending on the<br />
operating speed of the <strong>Ethernet</strong> <strong>MAC</strong>. MII_TX_CLK_# connects to<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN and the MII_TXD registers through a BUFG. Its frequency is<br />
either 12.5 MHz or 1.25 MHz, depending on the operating speed of the <strong>Ethernet</strong> <strong>MAC</strong>. The<br />
RX client clocking is similar.<br />
BUFG<br />
BUFG<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#PHYTXD[3:0]<br />
E<strong>MAC</strong>#PHYTXD[7:4]<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#RXCLK<br />
PHYE<strong>MAC</strong>#RXD[3:0]<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
PHYE<strong>MAC</strong>#RXD[7:4]<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IFD can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
Figure 6-3: MII Clock Management<br />
The CLIENTE<strong>MAC</strong>#DCMLOCKED port must be tied High.<br />
<strong>UG194</strong>_6_03_081409<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 141<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
X<br />
IFD<br />
Q<br />
D<br />
BUFG (1)<br />
OFD<br />
D Q<br />
BUFG (1)<br />
IBUFG<br />
OBUF<br />
IBUFG<br />
IBUF<br />
MII_TX_CLK<br />
MII_TXD[3:0]<br />
MII_RX_CLK<br />
MII_RXD[3:0]
Chapter 6: Physical Interface<br />
MII Clock Management using Clock Enables<br />
TX CLIENT<br />
LOGIC<br />
CE<br />
ACK<br />
RX CLIENT<br />
LOGIC<br />
CE<br />
FDE<br />
Q D<br />
It is possible to use only two BUFGs by setting the E<strong>MAC</strong>#_USECLKEN attribute;<br />
however, the client and MII logic must be constrained to run at 125 MHz. Figure 6-4 shows<br />
the MII clock management scheme when operating in this mode.<br />
CE<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
E<strong>MAC</strong>#PHYTXD[3:0]<br />
E<strong>MAC</strong>#PHYTXD[7:4]<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
PHYE<strong>MAC</strong>#RXCLK<br />
PHYE<strong>MAC</strong>#RXD[3:0]<br />
PHYE<strong>MAC</strong>#RXD[7:4]<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IFD can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
Figure 6-4: MII Clock Management with Clock Enable<br />
BUFG (1)<br />
<strong>UG194</strong>_6_04_091409<br />
Using the example in Figure 6-4, all logic is clocked on the MII interface clocks. The<br />
frequencies of these clocks are 25 MHz at 100 Mb/s and 2.5 MHz at 10 Mb/s, or twice as<br />
fast as the client clock requires. To produce the correct clock frequency at the client, the<br />
client logic must be clock enabled to achieve the correct data rate. The clock enables for the<br />
client logic are provided by the E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT and<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT outputs.<br />
142 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
X<br />
IFD<br />
Q<br />
D<br />
BUFG<br />
OFD<br />
D Q<br />
IBUFG<br />
OBUF<br />
IBUFG<br />
IBUF<br />
MII_TX_CLK<br />
MII_TXD[3:0]<br />
MII_RX_CLK<br />
MII_RXD[3:0]<br />
R
R<br />
Gigabit Media Independent Interface (GMII)<br />
Due to the timing relationship between the MII transmit clock and the internal client clock<br />
signals, the TX_ACK signal (CLIENTE<strong>MAC</strong>#TXACK) is registered at the output of the<br />
<strong>Ethernet</strong> <strong>MAC</strong>.<br />
Gigabit Media Independent Interface (GMII)<br />
The Media Independent Interface (MII), defined in IEEE 802.3, clause 22, is a parallel<br />
interface that connects a 10-Mb/s and/or 100-Mb/s capable <strong>MAC</strong> to the physical<br />
sublayers. The Gigabit Media Independent Interface (GMII), defined in IEEE 802.3, clause<br />
35, is an extension of the MII used to connect a 1-Gb/s capable <strong>MAC</strong> to the physical<br />
sublayers. MII can be considered a subset of GMII, and as a result, GMII/MII can carry<br />
<strong>Ethernet</strong> traffic at 10 Mb/s, 100 Mb/s, and 1 Gb/s.<br />
Figure 6-5 shows the <strong>Ethernet</strong> <strong>MAC</strong> configured for GMII. The physical signals of the<br />
<strong>Ethernet</strong> <strong>MAC</strong> are connected through IOBs to the external interface. The “logic cloud”<br />
indicates that alternative implementations are possible.<br />
<strong>Ethernet</strong><br />
<strong>MAC</strong><br />
IOBs<br />
and<br />
Clock Logic<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong><br />
GMII_RX_CLK<br />
GMII_RXD[7:0]<br />
GMII_RX_DV<br />
GMII_RX_ER<br />
GMII_COL<br />
GMII_CRS<br />
MII_TX_CLK<br />
GMII_TX_CLK<br />
GTX_CLK<br />
GMII_TXD[7:0]<br />
GMII_TX_EN<br />
GMII_TX_ER<br />
Figure 6-5: <strong>Ethernet</strong> <strong>MAC</strong> Configured in GMII <strong>Mode</strong><br />
There are several implementations available using different clocking schemes. “<strong>Ethernet</strong><br />
<strong>MAC</strong> Clocks,” page 205 introduces these clocking models. They are described in detail in<br />
the following sections:<br />
“GMII Clock Management for 1 Gb/s Only”<br />
At 1 Gb/s speeds only, client interface and physical interface clocks always run at the<br />
same frequency (125 MHz). This enables efficient clock logic implementations.<br />
“GMII Standard Clock Management for <strong>Tri</strong>-Speed Operation”<br />
The standard clocking scheme for tri-speed operation.<br />
“GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Byte PHY”<br />
An advanced clocking scheme for tri-speed operation, which saves on global clock<br />
resources.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 143<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
GMII Physical Interface<br />
<strong>UG194</strong>_6_05_073009
Chapter 6: Physical Interface<br />
“GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Clock Enables”<br />
An alternative advanced clocking scheme for tri-speed operation, which saves on<br />
global clock resources.<br />
The advanced clocking schemes, Byte PHY and Clock Enables, both provide the same<br />
saving on global clocking resources and can be used interchangeably for GMII, based on<br />
user preference.<br />
If the CORE Generator tool is used, the wrapper files for the <strong>Ethernet</strong> <strong>MAC</strong> that are created<br />
will contain the logic described in these sections. By using the CORE Generator tool, the<br />
time required to instantiate the <strong>Ethernet</strong> <strong>MAC</strong> into a usable design is greatly reduced. See<br />
“Accessing the <strong>Ethernet</strong> <strong>MAC</strong> from the CORE Generator Tool,” page 25.<br />
GMII Clock Management for 1 Gb/s Only<br />
Figure 6-6 shows GMII clock management when using a single <strong>Ethernet</strong> <strong>MAC</strong>.<br />
144 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
GTX_CLK<br />
R<br />
IBUFG<br />
TX CLIENT<br />
LOGIC<br />
RX CLIENT<br />
LOGIC<br />
BUFG<br />
x<br />
x<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#PHYTXD[7:0]<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#RXCLK<br />
PHYE<strong>MAC</strong>#RXD[7:0]<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IFD can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
Figure 6-6: 1 Gb/s GMII Clock Management<br />
Gigabit Media Independent Interface (GMII)<br />
GTX_CLK must be provided to the <strong>Ethernet</strong> <strong>MAC</strong>. This high-quality, 125 MHz clock<br />
satisfies the IEEE Std 802.3-2002 requirements.<br />
The GTX_CLK input is routed onto the global clock network via an IBUFG and BUFG. The<br />
output of the BUFG connects to:<br />
GMII_TXD registers in the <strong>FPGA</strong> logic<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN input port<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
TX client logic<br />
GMII_TX_CLK is forwarded along with the GMII data signals from the <strong>FPGA</strong> to the PHY.<br />
An IOB DDR output register is used; this is a predictable way to produce the clock because<br />
the clock-to-pad delay is the same as that for the GMII_TXD signals. This forwarded clock<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 145<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
x<br />
0<br />
1<br />
BUFG (1)<br />
IFD<br />
Q D<br />
D<br />
OFD<br />
Q<br />
ODDR<br />
D1<br />
D2<br />
IDELAY<br />
IDELAY<br />
OBUF<br />
OBUF<br />
IBUFG<br />
IBUF<br />
GMII_TXD[7:0]<br />
GMII_TX_CLK<br />
GMII_RX_CLK<br />
GMII_RXD[7:0]<br />
<strong>UG194</strong>_6_06_091409
Chapter 6: Physical Interface<br />
is inverted with respect to PHYE<strong>MAC</strong>#TXGMIIMIICLKIN so that its rising edge occurs in<br />
the centre of the GMII_TXD data valid window. This produces the best possible setup and<br />
hold times for driving the external interface.<br />
PHYE<strong>MAC</strong>#MIITXCLK is unused and must be tied to ground. The GMII_RX_CLK is<br />
generated from the PHY and connected to PHYE<strong>MAC</strong>#RXCLK through an IBUFG and<br />
BUFG. This is also used to clock all <strong>FPGA</strong> receiver logic, including the receiver client.<br />
Fixed-mode IDELAYs are used on the GMII_RX_CLK and GMII_RXD inputs to align the<br />
clock and data. These are set to sample a 2 ns setup, 0 ns hold window at the device pads<br />
The CLIENTE<strong>MAC</strong>#DCMLOCKED port must be tied High.<br />
Figure 6-7 shows the GMII clocking scheme with two <strong>Ethernet</strong> <strong>MAC</strong>s enabled. It is similar<br />
to the single <strong>Ethernet</strong> <strong>MAC</strong> clocking scheme; however, the same GTX_CLK input signal is<br />
used for all (both <strong>Ethernet</strong> <strong>MAC</strong>s) transmitter logic.<br />
146 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
GTX_CLK<br />
R<br />
IBUFG<br />
BUFG<br />
TX Client<br />
Logic<br />
RX Client<br />
Logic<br />
TX Client<br />
Logic<br />
RX Client<br />
Logic<br />
X<br />
E<strong>MAC</strong>0<br />
PHYE<strong>MAC</strong>0GTXCLK<br />
PHYE<strong>MAC</strong>0TXGMIIMIICLKIN<br />
E<strong>MAC</strong>0PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>0TXCLIENTCLKIN<br />
E<strong>MAC</strong>0CLIENTTXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>0RXCLIENTCLKIN<br />
E<strong>MAC</strong>0CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>0RXCLK<br />
CLIENTE<strong>MAC</strong>0DCMLOCKED<br />
PHYE<strong>MAC</strong>0RXD[7:0]<br />
E<strong>MAC</strong>1<br />
PHYE<strong>MAC</strong>1GTXCLK<br />
E<strong>MAC</strong>0PHYTXD[7:0]<br />
PHYE<strong>MAC</strong>0MIITXCLK<br />
PHYE<strong>MAC</strong>1TXGMIIMIICLKIN<br />
E<strong>MAC</strong>1PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>1TXCLIENTCLKIN<br />
E<strong>MAC</strong>1CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>1PHYTXD[7:0]<br />
PHYE<strong>MAC</strong>0MIITXCLK<br />
CLIENTE<strong>MAC</strong>1RXCLIENTCLKIN<br />
E<strong>MAC</strong>1CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>1RXCLK<br />
CLIENTE<strong>MAC</strong>1DCMLOCKED<br />
PHYE<strong>MAC</strong>1RXD[7:0]<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IFD can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
X<br />
X<br />
X<br />
Gigabit Media Independent Interface (GMII)<br />
BUFG (1)<br />
Figure 6-7: 1 Gb/s GMII Clock Management with Two <strong>Ethernet</strong> <strong>MAC</strong>s Enabled<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 147<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
X<br />
0<br />
1<br />
BUFG (1)<br />
IFD<br />
Q D<br />
0<br />
1<br />
IFD<br />
Q D<br />
ODDR<br />
D1<br />
D2<br />
Q<br />
OFD<br />
D Q<br />
IDELAY<br />
IDELAY<br />
ODDR<br />
D1<br />
D2<br />
Q<br />
OFD<br />
D Q<br />
IDELAY<br />
IDELAY<br />
OBUF<br />
OBUF<br />
OBUF<br />
OBUF<br />
IBUFG<br />
IBUF<br />
IBUFG<br />
IBUF<br />
GMII_TX_CLK_0<br />
GMII_TXD_0[7:0]<br />
GMII_RX_CLK_0<br />
GMII_RXD_0[7:0]<br />
GMII_TX_CLK_1<br />
GMII_TXD_1[7:0]<br />
GMII_RX_CLK_1<br />
GMII_RXD_1[7:0]<br />
<strong>UG194</strong>_6_07_080409
Chapter 6: Physical Interface<br />
TX CLIENT<br />
LOGIC<br />
RX CLIENT<br />
LOGIC<br />
GMII Standard Clock Management for <strong>Tri</strong>-Speed Operation<br />
BUFG<br />
BUFG<br />
Figure 6-8 shows the clock management used with the tri-speed GMII interface. GTX_CLK<br />
must be provided to the <strong>Ethernet</strong> <strong>MAC</strong> with a high-quality, 125 MHz clock that satisfies<br />
the IEEE Std 802.3-2002 requirements.<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
E<strong>MAC</strong>#PHYTXD[7:0]<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#SPEEEDIS10100<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#RXCLK<br />
PHYE<strong>MAC</strong>#RXD[7:0]<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IFD can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
BUFG (1)<br />
BUFG (1)<br />
Figure 6-8: GMII <strong>Tri</strong>-<strong>Mode</strong> Operation Clock Management<br />
The E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT output port connects to the GMII logic in the <strong>FPGA</strong><br />
logic and the PHYE<strong>MAC</strong>#TXGMIIMIICLKIN input port through a BUFG.<br />
The E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT output port connects to the<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN input port and transmit client logic in the <strong>FPGA</strong> logic<br />
through a BUFG. The receive client clocking is similar.<br />
The MII_TX_CLK signal generated from the PHY has a frequency of either 2.5 MHz or<br />
25 MHz, depending on the operating speed of the <strong>Ethernet</strong> <strong>MAC</strong>. MII_TX_CLK connects<br />
148 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
IFD<br />
Q<br />
D<br />
0<br />
1<br />
OFD<br />
D Q<br />
ODDR<br />
D1<br />
D2<br />
1<br />
0<br />
BUFGMUX<br />
OBUF<br />
OBUF<br />
IDELAY<br />
IDELAY<br />
IBUF<br />
IBUF<br />
BUFG<br />
IBUF<br />
GMII_TXD[7:0]<br />
GMII_TX_CLK<br />
GTX_CLK<br />
MII_TX_CLK<br />
GMII_RX_CLK<br />
GMII_RXD[7:0]<br />
<strong>UG194</strong>_6_08_080309<br />
R
R<br />
Gigabit Media Independent Interface (GMII)<br />
to PHYE<strong>MAC</strong>#MIITXCLK through an IBUF. The frequency of GMII_RX_CLK, generated<br />
from the PHY, is 2.5 MHz, 25 MHz, or 125 MHz, depending on the operating speed of the<br />
<strong>Ethernet</strong> <strong>MAC</strong>. Fixed-mode IDELAYs are used on the GMII_RX_CLK and GMII_RXD<br />
inputs to align the clock and data. These are set to sample a 2 ns setup, 0 ns hold window<br />
at the device pads.The CLIENTE<strong>MAC</strong>#DCMLOCKED port must be tied High.<br />
The GMII_TX_CLK is derived from the <strong>Ethernet</strong> <strong>MAC</strong>, routed through an OBUF, and then<br />
connected to the PHY. Because GMII_TX_CLK is derived from<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT, its frequency automatically changes between 125 MHz,<br />
25 MHz, or 2.5 MHz, depending on the speed setting of the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Byte PHY<br />
Figure 6-9 shows an alternative clock management scheme for the tri-speed GMII<br />
interface. This clock management scheme is used when the E<strong>MAC</strong>#_BYTEPHY attribute is<br />
set to TRUE. In this scheme, the E<strong>MAC</strong> datapath is 8 bits wide at both the client and the<br />
physical interfaces at all speeds. At 1 Gb/s, all external logic is clocked at 125 MHz. At<br />
100 Mb/s and 10 Mb/s, the logic is clocked at 12.5 MHz and 1.25 MHz, respectively. DDR<br />
input and output registers are used to achieve the 25 MHz and 2.5 MHz 4-bit data rate at<br />
speeds below 1 Gb/s, resulting in a scheme that utilizes two clock buffers less than<br />
Figure 6-8. Alignment logic must be provided on the receiver side to align the start of<br />
frame delimiter in the 8-bit data input to the E<strong>MAC</strong>.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 149<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
TX Client<br />
Logic<br />
GTX_CLK<br />
RX Client<br />
Logic<br />
X<br />
IBUFG<br />
X<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
E<strong>MAC</strong>#PHYTXD[3:0]<br />
E<strong>MAC</strong>#PHYTXD[7:4]<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
E<strong>MAC</strong>#SPEEEDIS10100<br />
PHYE<strong>MAC</strong>#RXD[3:0]<br />
PHYE<strong>MAC</strong>#RXD[7:4]<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
PHYE<strong>MAC</strong>#RXCLK<br />
BUFGMUX<br />
BUFGMUX<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
Figure 6-9: <strong>Tri</strong>-<strong>Mode</strong> GMII Clock Management with Byte PHY Enabled<br />
GMII_TX_CLK<br />
MII_TX_CLK<br />
GMII_RXD[3:0]<br />
IBUFG<br />
IDELAY GMII_RX_CLK<br />
<strong>UG194</strong>_6_09_080309<br />
GTX_CLK must be provided to the <strong>Ethernet</strong> <strong>MAC</strong> with a high-quality, 125 MHz clock that<br />
satisfies the IEEE Std 802.3-2002 requirements.<br />
The PHYE<strong>MAC</strong>#TXGMIIMIICLKIN and CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN ports are<br />
supplied by the output of a BUFGMUX. At 1 Gb/s, the BUFGMUX routes through the<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT signal. At 100 Mb/s and 10 Mb/s, the BUFGMUX is<br />
switched to supply tx_clk_div2 to the E<strong>MAC</strong>. This signal is the MII_TX_CLK input<br />
150 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
I1<br />
I0<br />
I1<br />
I0<br />
tx_clk_div2<br />
I0<br />
I1<br />
MUX<br />
4-Bit to 8-Bit<br />
Realignment<br />
Logic<br />
rx_clk_div2<br />
0<br />
1<br />
ODDR<br />
D1 Q<br />
D2<br />
IDDR<br />
Q1 D<br />
Q2<br />
D1 Q<br />
D2<br />
ODDR<br />
D1 Q<br />
D2<br />
IDDR<br />
Q1 D<br />
Q2<br />
D<br />
D<br />
FD<br />
FD<br />
Q<br />
Q<br />
OBUF<br />
IBUFG<br />
ODDR OBUF<br />
OBUF<br />
IDELAY<br />
IDELAY<br />
GMII_TXD[3:0]<br />
GMII_TXD[7:4]<br />
IBUF<br />
IBUF<br />
GMII_RXD[7:4]<br />
R
R<br />
Gigabit Media Independent Interface (GMII)<br />
divided by two in frequency. The output of the BUFGMUX also clocks all the transmit<br />
client and GMII logic.<br />
The receiver side clocking is similar. At 1 Gb/s, a BUFGMUX supplies the GMII_RX_CLK<br />
signal to the PHYE<strong>MAC</strong>#RXCLK and CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN ports. At 100 Mb/s<br />
and 10 Mb/s, the BUFGMUX is switched to provide rx_clk_div2 to the E<strong>MAC</strong>. This clock<br />
is the GMII_RX_CLK input divided by two in frequency. The output of the BUFGMUX also<br />
clocks all the receiver client and GMII logic. Fixed-mode IDELAYs are used on the<br />
GMII_RX_CLK and GMII_RXD inputs to align the clock and data. These are set to sample<br />
a 2 ns setup, 0 ns hold window at the device pads.<br />
The GMII_TX_CLK is derived from the <strong>Ethernet</strong> <strong>MAC</strong>, routed through an OBUF and then<br />
connected to the PHY. Because GMII_TX_CLK is derived from<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT, its frequency automatically changes between 125 MHz,<br />
25 MHz, or 2.5 MHz, depending on the speed setting of the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Clock Enables<br />
Figure 6-10 shows the clock management scheme for tri-speed operation when the<br />
E<strong>MAC</strong>#_USECLKEN attribute is set. In this mode of operation, the transmitter signals are<br />
synchronous to PHYE<strong>MAC</strong>#TXGMIIMIICLKIN and the receiver signals are synchronous to<br />
PHYE<strong>MAC</strong>#RXCLK.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 151<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
IBUFG BUFGMUX<br />
MII_TX_CLK<br />
I1<br />
GTX_CLK<br />
TX Client<br />
Logic<br />
RX Client<br />
Logic<br />
CE<br />
ACK<br />
CE<br />
IBUFG<br />
I0<br />
I1<br />
I0<br />
FDE<br />
Q D<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
E<strong>MAC</strong>#PHYTXD[7:0]<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
E<strong>MAC</strong>#SPEEEDIS10100<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#RXCLK<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
E<strong>MAC</strong>#PHYRXD[7:0]<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IFD can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
Figure 6-10: <strong>Tri</strong>-<strong>Mode</strong> GMII Clock Management with Clock Enable<br />
GMII_TX_CLK<br />
GMII_RX_CLK<br />
<strong>UG194</strong>_6_10_080409<br />
At 1 Gb/s, all external logic is clocked at 125 MHz. At 100 Mb/s and 10 Mb/s, the logic is<br />
clocked at 25 MHz and 2.5 MHz, respectively. To maintain the correct data rate at the<br />
client, interface clock enable signals are output on E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT for<br />
the transmitter logic and on E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT for the receiver logic. These<br />
signals are High during 1 Gb/s operation and toggle on each clock edge at slower speeds.<br />
These are used to enable the client interface logic.<br />
Due to the timing relationship between the GMII transmit clock and the internal client<br />
clock signals, the TX_ACK signal (CLIENTE<strong>MAC</strong>#TXACK) is registered at the output of the<br />
<strong>Ethernet</strong> <strong>MAC</strong> when operating at speeds below 1 Gb/s. At 1 G b/s, the register is<br />
bypassed.<br />
The GMII_TX_CLK is derived from the GTX_CLK input when the <strong>MAC</strong> is operating at<br />
1 Gb/s and from the MII_TX_CLK input when the <strong>MAC</strong> is operating at a lower speed. It is<br />
152 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
0<br />
1<br />
ODDR<br />
D1 Q<br />
D2<br />
OFD<br />
BUFG (1)<br />
IFD<br />
OBUF<br />
OBUF<br />
D Q<br />
GMII_TXD[7:0]<br />
IDELAY<br />
Q D IDELAY<br />
IBUFG<br />
IBUF<br />
GMII_RXD[7:0]<br />
R
R<br />
Reduced Gigabit Media Independent Interface (RGMII)<br />
routed through an OBUF and then connected to the PHY. Its frequency changes between<br />
125 MHz, 25 MHz, or 2.5 MHz depending on the speed setting of the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
This clocking scheme requires two fewer BUFGs than the default scheme detailed in<br />
Figure 6-8.<br />
Reduced Gigabit Media Independent Interface (RGMII)<br />
Reduced GMII (RGMII), defined by Hewlett-Packard, is an alternative to GMII. It reduces<br />
the number of pins required to connect the <strong>Ethernet</strong> <strong>MAC</strong> to the PHY from 24 to 12, when<br />
compared with GMII. RGMII achieves this 50% pin count reduction in the interface by<br />
using DDR flip-flops. For this reason, RGMII is preferred over GMII by PCB designers.<br />
RGMII can carry <strong>Ethernet</strong> traffic at 10 Mb/s, 100 Mb/s, and 1 Gb/s. For more information<br />
on RGMII, refer to the Hewlett-Packard RGMII Specification, version 1.3 and 2.0.<br />
Figure 6-11 shows the <strong>Ethernet</strong> <strong>MAC</strong> configured for RGMII. The physical signals of the<br />
<strong>Ethernet</strong> <strong>MAC</strong> are connected through IOBs to the external interface. The “logic cloud”<br />
indicates that alternative implementations are possible.<br />
<strong>Ethernet</strong><br />
<strong>MAC</strong><br />
IOBs<br />
and<br />
Clock Logic<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong><br />
RGMII_RXC<br />
RGMII_RXD[3:0]<br />
RGMII_RX_CTL<br />
RGMII_TXC<br />
RGMII_TXD[3:0]<br />
RGMII_TX_CTL<br />
GTX_CLK<br />
Figure 6-11: <strong>Ethernet</strong> <strong>MAC</strong> Configured in RGMII <strong>Mode</strong><br />
There are several implementations for both RGMII v1.3 and v2.0, which use alternative<br />
clocking schemes. “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205 introduces these clocking models.<br />
They are described in detail in the following sections:<br />
“RGMII Clock Management for 1 Gb/s Only”<br />
At 1 Gb/s speeds only, client interface and physical interface clocks always run at the<br />
same frequency (125 MHz). This enables efficient clock logic implementations.<br />
“RGMII Standard Clock Management for <strong>Tri</strong>-Speed Operation”<br />
The standard clocking scheme for tri-speed operation.<br />
“RGMII Clock Management for <strong>Tri</strong>-Speed Operation Using Clock Enables”<br />
An advanced clocking scheme for tri-speed operation that saves global clock<br />
resources.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 153<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
RGMII Physical Interface<br />
<strong>UG194</strong>_6_11_0080409
Chapter 6: Physical Interface<br />
GTX_CLK<br />
If the CORE Generator tool is used, then the wrapper files for the <strong>Ethernet</strong> <strong>MAC</strong> that are<br />
created contain the logic described in these sections. By using the CORE Generator tool,<br />
the time required to instantiate the <strong>Ethernet</strong> <strong>MAC</strong> into a usable design is greatly reduced.<br />
See “Accessing the <strong>Ethernet</strong> <strong>MAC</strong> from the CORE Generator Tool,” page 25.<br />
RGMII Clock Management for 1 Gb/s Only<br />
IBUFG<br />
TX Client<br />
Logic<br />
RX Client<br />
Logic<br />
RGMII Version 1.3<br />
BUFG<br />
Figure 6-12 shows the clock management used with the RGMII interface when using the<br />
Hewlett Packard RGMII Specification v1.3. GTX_CLK must be provided to the <strong>Ethernet</strong> <strong>MAC</strong><br />
with a high-quality, 125 MHz clock that satisfies the IEEE Std 802.3-2002 requirements. The<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT output port drives all transmitter logic through a BUFG.<br />
X<br />
X<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#PHYTXD[3:0]<br />
E<strong>MAC</strong>#PHYTXD[7:4]<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#RXCLK<br />
PHYE<strong>MAC</strong>#RXD[3:0]<br />
PHYE<strong>MAC</strong>#RXD[7:4]<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IDDR can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
Figure 6-12: 1 Gb/s RGMII Hewlett Packard v1.3 Clock Management<br />
154 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
1<br />
0<br />
ODDR<br />
D1<br />
Q<br />
IDELAY<br />
OBUF<br />
IBUFG<br />
RGMII_RXC<br />
IDDR<br />
Q1 D IDELAY<br />
RGMII_RXD[3:0]<br />
Q2<br />
ODDR<br />
D1<br />
D2<br />
D2<br />
BUFG (1)<br />
Q<br />
OBUF<br />
IBUF<br />
RGMII_TXC<br />
RGMII_TXD[3:0]<br />
<strong>UG194</strong>_6_12_080409<br />
R
R<br />
Reduced Gigabit Media Independent Interface (RGMII)<br />
RGMII_TXC is derived from GTX_CLK by routing to an IOB DDR output register followed<br />
by an OBUF (which is then connected to the PHY). The use of the DDR register ensures that<br />
the forwarded clock is exactly in line with the RGMII transmitter data, as specified in the<br />
Hewlett Packard RGMII Specification, v1.3.<br />
RGMII_RXC is generated by the PHY and connected to PHYE<strong>MAC</strong>#RXCLK via an IBUFG<br />
and a BUFG. Fixed-mode IDELAYs are instantiated on the RGMII clock and data lines.<br />
These are set to sample a 1 ns setup, 1 ns hold window at the device pads. RGMII_RXC is<br />
used to derive the clocks for all receive logic.<br />
The CLIENTE<strong>MAC</strong>#DCMLOCKED port must be tied High.<br />
RGMII Version 2.0<br />
Figure 6-13 shows the clock management used with the RGMII interface when following<br />
the Hewlett Packard RGMII specification v2.0. GTX_CLK must be provided to the<br />
<strong>Ethernet</strong> <strong>MAC</strong> with a high-quality, 125 MHz clock that satisfies the IEEE Std 802.3-2002<br />
requirements. The E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT output port connects to a BUFG, which<br />
in turn drives the RGMII transmitter logic in the <strong>FPGA</strong> logic and the<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN input port.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 155<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
GTX_CLK<br />
IBUFG<br />
TX Client<br />
Logic<br />
RX Client<br />
Logic<br />
BUFG<br />
X<br />
X<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#PHYTXD[3:0]<br />
E<strong>MAC</strong>#PHYTXD[7:4]<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#RXCLK<br />
PHYE<strong>MAC</strong>#RXD[3:0]<br />
PHYE<strong>MAC</strong>#RXD[7:4]<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IDDR can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
Figure 6-13: 1 Gb/s RGMII Hewlett Packard v2.0 Clock Management<br />
RGMII_TXC is derived from the <strong>Ethernet</strong> <strong>MAC</strong> by routing GTX_CLK to an IOB DDR<br />
output register, followed by an ODELAY element and an OBUF (which is then connected<br />
to the PHY). The ODELAY element is used to generate 2 ns of skew required between<br />
RGMII_TXC and RGMII_TXD at the <strong>FPGA</strong> device pads. This delay is specified in the<br />
Hewlett Packard RGMII Specification, v2.0 to provide setup and hold times on the external<br />
interface.<br />
RGMII_RXC is generated by the PHY and connected to PHYE<strong>MAC</strong>#RXCLK via an IBUFG<br />
and a BUFG. Fixed-mode IDELAYs are instantiated on the RGMII clock and data lines.<br />
These are set to sample a 1 ns setup, 1 ns hold window at the device pads. RGMII_RXC<br />
drives all receive logic.<br />
The CLIENTE<strong>MAC</strong>#DCMLOCKED port must be tied High.<br />
156 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
1<br />
0<br />
ODDR<br />
D1<br />
D2<br />
Q<br />
OBUF<br />
BUFG (1) IBUFG<br />
IDELAY<br />
RGMII_TXC<br />
RGMII_TXD[3:0]<br />
RGMII_RXC<br />
IDDR<br />
Q1 D IDELAY<br />
RGMII_RXD[3:0]<br />
Q2<br />
ODDR<br />
D1<br />
D2<br />
Q<br />
ODELAY<br />
IBUF<br />
OBUF<br />
<strong>UG194</strong>_6_13_080409<br />
R
GTX_CLK<br />
TX Client<br />
Logic<br />
RX Client<br />
Logic<br />
R<br />
Reduced Gigabit Media Independent Interface (RGMII)<br />
RGMII Standard Clock Management for <strong>Tri</strong>-Speed Operation<br />
IBUF<br />
RGMII Version 1.3<br />
BUFG<br />
BUFG<br />
Figure 6-14 shows the tri-speed clock management following the Hewlett Packard RGMII<br />
specification v1.3. GTX_CLK must be provided to the <strong>Ethernet</strong> <strong>MAC</strong> with a high-quality,<br />
125 MHz clock that satisfies the IEEE Std 802.3-2002 requirements. The<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT port generates the appropriate frequency derived from<br />
GTX_CLK and depending on the operating frequency of the link. It clocks directly the<br />
RGMII_TXD ODDR registers.<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
E<strong>MAC</strong>#PHYTXD[3:0]<br />
E<strong>MAC</strong>#PHYTXD[7:4]<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
PHYE<strong>MAC</strong>#RXCLK<br />
PHYE<strong>MAC</strong>#RXD[3:0]<br />
PHYE<strong>MAC</strong>#RXD[7:4]<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IFD can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
Figure 6-14: <strong>Tri</strong>-<strong>Mode</strong> RGMII v1.3 Clock Management<br />
The E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT output port connects to the<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN input port and transmitter client logic in the <strong>FPGA</strong> logic<br />
through a BUFG. The receiver client clocking is similar.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 157<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
'1'<br />
'0'<br />
BUFG (1)<br />
D1<br />
D2<br />
D1<br />
D2<br />
ODDR<br />
Q<br />
ODDR<br />
Q<br />
OBUF<br />
OBUF<br />
IBUFG<br />
RGMII_TXC<br />
RGMII_TXD[3:0]<br />
RGMII_RXC<br />
IDDR<br />
Q1 D IDELAY<br />
RGMII_RXD[3:0]<br />
Q2<br />
BUFG (1)<br />
IDELAY<br />
IBUF<br />
<strong>UG194</strong>_6_14_080409
Chapter 6: Physical Interface<br />
RGMII_TXC is derived from the <strong>Ethernet</strong> <strong>MAC</strong> by routing to an IOB DDR output register<br />
followed by an OBUF (which is then connected to the PHY). The use of the DDR register<br />
ensures that the forwarded clock is exactly in line with the RGMII transmitter data, as<br />
specified in the Hewlett Packard RGMII Specification, v1.3.<br />
RGMII_RXC is generated by the PHY and connected to PHYE<strong>MAC</strong>#RXCLK via an IBUFG<br />
and a BUFG. Fixed-mode IDELAYs are instantiated on the RGMII clock and data lines.<br />
These are set to sample a 1 ns setup, 1 ns hold window at the device pads. The<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED port must be tied High.<br />
RGMII Version 2.0<br />
Figure 6-15 shows the tri-speed clock management following the Hewlett Packard RGMII<br />
specification v2.0. GTX_CLK must be provided to the <strong>Ethernet</strong> <strong>MAC</strong> with a high-quality,<br />
125 MHz clock that satisfies the IEEE Std 802.3-2002 requirements. The<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT port generates the appropriate frequency deriving from<br />
GTX_CLK and the operating frequency of the link. It clocks directly to the RGMII_TXD<br />
ODDR registers.<br />
158 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
GTX_CLK<br />
TX Client<br />
Logic<br />
RX Client<br />
Logic<br />
R<br />
IBUF<br />
BUFG<br />
BUFG<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
E<strong>MAC</strong>#PHYTXD[3:0]<br />
E<strong>MAC</strong>#PHYTXD[7:4]<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#RXCLK<br />
PHYE<strong>MAC</strong>#RXD[3:0]<br />
PHYE<strong>MAC</strong>#RXD[7:4]<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IDDR can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
Reduced Gigabit Media Independent Interface (RGMII)<br />
BUFG (1)<br />
Figure 6-15: <strong>Tri</strong>-<strong>Mode</strong> RGMII v2.0 Clock Management<br />
RGMII_TXC is derived from the <strong>Ethernet</strong> <strong>MAC</strong> by routing the<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT port to an IOB DDR output register, followed by an<br />
ODELAY element and an OBUF (which is then connected to the PHY). The ODELAY<br />
element is used to generate 2 ns of skew required between RGMII_TXC and RGMII_TXD at<br />
the <strong>FPGA</strong> device pads. This delay is specified in the Hewlett Packard RGMII Specification,<br />
v2.0 to provide setup and hold times on the external interface.<br />
The E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT output port connects to the<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN input port and transmitter client logic in the <strong>FPGA</strong> logic<br />
through a BUFG. The receiver client clocking is similar.<br />
RGMII_RXC is generated by the PHY and connected to PHYE<strong>MAC</strong>#RXCLK via an IBUFG<br />
and a BUFG. Fixed-mode IDELAYs are instantiated on the RGMII clock and data lines.<br />
These are set to sample a 1 ns setup, 1 ns hold window at the device pads. The<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED port must be tied High.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 159<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
1<br />
0<br />
ODDR<br />
D1<br />
D2<br />
Q<br />
OBUF<br />
RGMII_TXD[3:0]<br />
(1)<br />
BUFG IBUFG<br />
IDELAY<br />
RGMII_RXC<br />
IDDR<br />
Q1 D IDELAY<br />
RGMII_RXD[3:0]<br />
Q2<br />
ODDR<br />
D1<br />
D2<br />
Q<br />
ODELAY<br />
IBUF<br />
OBUF<br />
RGMII_TXC<br />
<strong>UG194</strong>_6_15_080409
Chapter 6: Physical Interface<br />
TX Client<br />
Logic<br />
CE<br />
ACK<br />
RX Client<br />
Logic<br />
CE<br />
RGMII Clock Management for <strong>Tri</strong>-Speed Operation Using Clock Enables<br />
RGMII Version 1.3<br />
IBUF<br />
GTX_CLK<br />
I0<br />
I1<br />
Figure 6-16 shows the clock management scheme for tri-speed RGMII v1.3 operation when<br />
the E<strong>MAC</strong>#_USECLKEN attribute is set.<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
Q D<br />
E<strong>MAC</strong>#PHYTXD[3:0]<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
E<strong>MAC</strong>#PHYTXD[7:4]<br />
E<strong>MAC</strong>#SPEEDIS10100<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#RXCLK<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
PHYE<strong>MAC</strong>#RXD[3:0]<br />
PHYE<strong>MAC</strong>#RXD[7:4]<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IDDR can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
Figure 6-16: <strong>Tri</strong>-<strong>Mode</strong> RGMII with Clock Enables<br />
In this mode of operation, the transmitter signals are synchronous to<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN, and the receiver signals are synchronous to<br />
PHYE<strong>MAC</strong>#RXCLK.<br />
At 1 Gb/s, all external logic is clocked at 125 MHz. At 100 Mb/s and 10 Mb/s, the logic is<br />
clocked at 25 MHz and 2.5 MHz, respectively. To maintain the correct data rate at the client<br />
interface, clock enable signals are output on E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT for the<br />
transmitter logic, and E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT for the receiver logic. These<br />
160 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
'1'<br />
'0'<br />
BUFG<br />
D1<br />
D2<br />
D1<br />
D2<br />
ODDR<br />
Q<br />
ODDR<br />
Q<br />
OBUF<br />
OBUF<br />
BUFG (1) IBUFG<br />
RGMII_TXC<br />
RGMII_TXD[3:0]<br />
RGMII_RXC<br />
IDDR<br />
Q1 D IDELAY<br />
RGMII_RXD[3:0]<br />
Q2<br />
IDELAY<br />
IBUF<br />
<strong>UG194</strong>_6_16_080409<br />
R
R<br />
Reduced Gigabit Media Independent Interface (RGMII)<br />
signals are High during 1 Gb/s operation and toggle on each clock edge at slower speeds.<br />
These are used to enable the client interface logic.<br />
Due to the timing relationship between the RGMII transmit clock and the internal client<br />
clock signals, the TX_ACK signal (CLIENTE<strong>MAC</strong>#TXACK) is registered at the output of the<br />
<strong>Ethernet</strong> <strong>MAC</strong> when operating at speeds below 1 Gb/s. At 1 Gb/s, the register is<br />
bypassed.<br />
RGMII_TXC is derived from the <strong>Ethernet</strong> <strong>MAC</strong> by routing to an IOB DDR output register<br />
followed by an OBUF (which is then connected to the PHY). The use of the DDR register<br />
ensures that the forwarded clock is exactly in line with the RGMII transmitter data, as<br />
specified in the Hewlett Packard RGMII Specification, v1.3.<br />
RGMII_RXC is generated by the PHY and connected and connected to PHYE<strong>MAC</strong>#RXCLK<br />
via an IBUFG and a BUFG. Fixed-mode IDELAYs are instantiated on the RGMII clock and<br />
data lines. These are set to sample a 1 ns setup, 1 ns hold window at the device pads.<br />
RGMII_RXC drives all receive logic. The CLIENTE<strong>MAC</strong>#DCMLOCKED port must be tied<br />
High.<br />
This clocking scheme requires two fewer BUFGs than the default scheme detailed in<br />
Figure 6-14.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 161<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
TX Client<br />
Logic<br />
CE<br />
ACK<br />
RX Client<br />
Logic<br />
CE<br />
RGMII Version 2.0<br />
GTX_CLK<br />
I0<br />
I1<br />
Figure 6-17 shows the clock management scheme for tri-speed RGMII v2.0 operation when<br />
the E<strong>MAC</strong>#_USECLKEN attribute is set.<br />
Q D<br />
CE<br />
IBUF<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
E<strong>MAC</strong>#<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#PHYTXD[3:0]<br />
E<strong>MAC</strong>#CLIENTTXACK<br />
E<strong>MAC</strong>#PHYTXD[7:4]<br />
E<strong>MAC</strong>#SPEEDIS10100<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#RXCLK<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
Notes:<br />
1) A regional buffer (BUFR) can replace this BUFG.<br />
In addition, the clock input of IDDR can be driven by a BUFIO.<br />
Refer to UG190, <strong>Virtex</strong>-5 <strong>FPGA</strong> User Guide for BUFR usage guidelines.<br />
PHYE<strong>MAC</strong>#RXD[3:0]<br />
PHYE<strong>MAC</strong>#RXD[7:4]<br />
Figure 6-17: <strong>Tri</strong>-<strong>Mode</strong> RGMII with Clock Enables<br />
In this mode of operation, the transmitter signals are synchronous to<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN, and the receiver signals are synchronous to<br />
PHYE<strong>MAC</strong>#RXCLK.<br />
162 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
1<br />
0<br />
BUFG<br />
D1<br />
D2<br />
ODDR<br />
Q<br />
OBUF<br />
BUFG (1) IBUFG<br />
IDELAY<br />
RGMII_TXD[3:0]<br />
RGMII_RXC<br />
IDDR<br />
Q1 D IDELAY RGMII_RXD[3:0]<br />
Q2<br />
ODDR<br />
D1<br />
D2<br />
Q<br />
ODELAY<br />
IBUF<br />
OBUF<br />
RGMII_TXC<br />
<strong>UG194</strong>_6_17_080409<br />
R
R<br />
Reduced Gigabit Media Independent Interface (RGMII)<br />
At 1 Gb/s, all external logic is clocked at 125 MHz. At 100 Mb/s and 10 Mb/s, the logic is<br />
clocked at 25 MHz and 2.5 MHz, respectively. To maintain the correct data rate at the client<br />
interface, clock enable signals are output on E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT for the<br />
transmitter logic, and E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT for the receiver logic. These<br />
signals are High during 1 Gb/s operation and toggle on each clock edge at slower speeds.<br />
These are used to enable the client interface logic.<br />
Due to the timing relationship between the RGMII transmit clock and the internal client<br />
clock signals, the TX_ACK signal (CLIENTE<strong>MAC</strong>#TXACK) is registered at the output of the<br />
<strong>Ethernet</strong> <strong>MAC</strong> when operating at speeds below 1 Gb/s. At 1 Gb/s, the register is<br />
bypassed.<br />
RGMII_TXC is derived from the <strong>Ethernet</strong> <strong>MAC</strong> by routing the<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT port to an IOB DDR output register, followed by an<br />
ODELAY element and an OBUF (which is then connected to the PHY). The ODELAY<br />
element is used to generate 2 ns of skew required between RGMII_TXC and RGMII_TXD at<br />
the <strong>FPGA</strong> device pads. This delay is specified in the<br />
Hewlett Packard RGMII Specification, v2.0 to provide setup and hold times on the external<br />
interface.<br />
RGMII_RXC is generated by the PHY and connected to PHYE<strong>MAC</strong>#RXCLK via an IBUFG<br />
and a BUFG. Fixed-mode IDELAYs are instantiated on the RGMII clock and data lines.<br />
These are set to sample a 1 ns setup, 1 ns hold window at the device pads. RGMII_RXC<br />
drives all receive logic. The CLIENTE<strong>MAC</strong>#DCMLOCKED port must be tied High.<br />
This clocking scheme requires two fewer BUFGs than the default scheme detailed in<br />
Figure 6-15.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 163<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
1000BASE-X PCS/PMA<br />
Generic<br />
Host Bus<br />
DCR Bus<br />
<strong>Ethernet</strong> <strong>MAC</strong> PCS/PMA Sublayer<br />
Flow Control<br />
Interface<br />
Host<br />
Interface<br />
DCR Bridge<br />
Figure 6-18 shows the functional block diagram of the <strong>Ethernet</strong> <strong>MAC</strong> with the PCS/PMA<br />
sublayer block highlighted.<br />
E<strong>MAC</strong>#<br />
TX<br />
RX<br />
16- or 8-Bit Client Interface<br />
Transmit Engine<br />
Flow Control<br />
Receive Engine<br />
Address Filter<br />
Registers<br />
MDIO Interface<br />
<strong>MAC</strong> Configuration<br />
Registers<br />
Figure 6-18: Functional Block Diagram of the <strong>Ethernet</strong> <strong>MAC</strong><br />
The PCS/PMA sublayer extends the functionality of the <strong>Ethernet</strong> <strong>MAC</strong>, replacing the<br />
GMII/MII or RGMII parallel interfaces with an interface to a RocketIO serial transceiver.<br />
The connected RocketIO serial transceiver then provides the remaining functionality to<br />
accommodate the following two standards, both of which require the high-speed serial<br />
interface provided by the RocketIO serial transceiver:<br />
“Serial Gigabit Media Independent Interface (SGMII)”<br />
“1000BASE-X PCS/PMA”<br />
TX RX<br />
Statistics<br />
Clock Management<br />
Introduction to the 1000BASE-X PCS/PMA Implementation<br />
MII/GMII/RGMII<br />
Interface to<br />
External PHY<br />
GTP/GTX Transceiver<br />
Interface<br />
MDIO Interface<br />
to External PHY<br />
<strong>UG194</strong>_6_18_071709<br />
The 1000BASE-X physical standard, described in IEEE 802.3, clauses 36 and 37, defines a<br />
physical sublayer that is usually connected to an optical fibre medium. Two common<br />
implementations currently exist: 1000BASE-LX and 1000BASE-SX (long and short<br />
wavelength laser), which can both be obtained by connecting the RocketIO serial<br />
transceiver to a suitable GBIC or SFP optical transceiver.<br />
164 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
MII/GMII/RGMII Interface<br />
TX<br />
RX<br />
TX<br />
RX<br />
PCS/PMA Sublayer<br />
PCS Management<br />
Registers<br />
MDIO Intersection<br />
R
<strong>FPGA</strong><br />
R<br />
PCS/PMA Sublayer<br />
<strong>MAC</strong> TX<br />
Interface<br />
<strong>MAC</strong> RX<br />
Interface<br />
MDIO<br />
Interface<br />
1000BASE-X PCS/PMA<br />
Figure 6-19 shows an expanded diagram of the PCS/PMA sublayer block. The PCS/PMA<br />
sublayer contains its own functional blocks, which are illustrated and summarized in the<br />
following subsections. The RocketIO serial transceiver is shown connected to an external<br />
optical transceiver to complete the 1000BASE-X optical link.<br />
Figure 6-19: <strong>Ethernet</strong> PCS/PMA Sublayer Extension<br />
PCS Transmit Engine<br />
PCS Transmit<br />
Engine<br />
Auto-Negotiation<br />
PCS Receive<br />
Engine and<br />
Synchronization<br />
PCS<br />
Management<br />
Registers<br />
The PCS Transmit Engine encodes the datastream received from the <strong>MAC</strong> into a sequence<br />
of ordered sets as defined by the standard. The data is transmitted to the RocketIO serial<br />
transceiver using an 8-bit datapath that then provides 8B/10B encoding of this data and<br />
parallel to serial conversion. The output from the RocketIO serial transceiver is a<br />
differential pair operating at a rate of 1.25 Gb/s.<br />
For more information on the PCS Transmit Engine, refer to the state diagrams of IEEE 802.3<br />
(Figures 36-5 and 36-6).<br />
PCS Receive Engine and Synchronization<br />
The RocketIO serial transceiver receives a serial differential pair operating at a rate of<br />
1.25 Gb/s from the optical transceiver. The RocketIO serial transceiver, using CDR,<br />
performs word alignment on this serial datastream and then converts this to a parallel<br />
interface. This data is then 8B/10B decoded by the RocketIO serial transceiver before<br />
presenting this to the PCS/PMA sublayer using an 8-bit datapath.<br />
Within the PCS/PMA sublayer, the synchronization process performs analysis of<br />
valid/invalid received sequence ordered sets to determine if the link is in good order. The<br />
PCS receive engine then decodes these sequence ordered sets into a format that can then be<br />
presented to the standard receiver datapath within the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 165<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
GTP/GTX Serial Transceiver<br />
TX+<br />
TX-<br />
RX+<br />
RX-<br />
GBIC<br />
or<br />
SFP<br />
Optical<br />
Transceiver<br />
PHY<br />
Link<br />
TX<br />
Optical<br />
Fiber<br />
RX<br />
<strong>UG194</strong>_6_19_00084089
Chapter 6: Physical Interface<br />
For more information on the synchronization process, refer to IEEE 802.3 (Figure 36-9). For<br />
the PCS Receive Engine, refer to IEEE 802.3 (Figures 36-7a and 36-7b).<br />
Auto-Negotiation<br />
The 1000BASE-X Auto-Negotiation function allows a device to advertise the supported<br />
modes of operation to a device at the remote end of the optical fibre (the link partner) and<br />
to detect corresponding operational modes that the link partner can be advertising. Autonegotiation<br />
is controlled and monitored using a software function through the PCS<br />
Management Registers. See “1000BASE-X Auto-Negotiation,” page 174.<br />
PCS Management Registers<br />
Configuration and status of the PCS/PMA sublayer, including access to and from the<br />
Auto-Negotiation function, is via the PCS Management Registers. These registers are<br />
accessed through the serial Management Data Input/Output Interface (MDIO), as shown<br />
in Chapter 5, “MDIO Interface.”<br />
For the 1000BASE-X standard, the configuration and status registers available are listed in<br />
“1000BASE-X PCS/PMA Management Registers,” page 122.<br />
166 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
<strong>Ethernet</strong> <strong>MAC</strong> to RocketIO Serial Transceiver Connections<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
(PCS/PMA Sublayer)<br />
E<strong>MAC</strong>#PHYSYNCACQSTATUS<br />
E<strong>MAC</strong>#PHYTXD[7:0]<br />
E<strong>MAC</strong>#PHYLOOPBACKMSB<br />
E<strong>MAC</strong>#PHYMGTTXRESET<br />
E<strong>MAC</strong>#PHYPOWERDOWN<br />
E<strong>MAC</strong>#PHYTXCHARDISPMODE<br />
E<strong>MAC</strong>#PHYTXCHARDISPVAL<br />
E<strong>MAC</strong>#PHYTXCHARISK<br />
PHYE<strong>MAC</strong>#TXBUFERR<br />
PHYE<strong>MAC</strong>#COL<br />
PHYE<strong>MAC</strong>#RXCHARISCOMMA<br />
PHYE<strong>MAC</strong>#RXBUFSTATUS[1]<br />
PHYE<strong>MAC</strong>#DISPERR<br />
PHYE<strong>MAC</strong>#RXNOTINTABLE<br />
PHYE<strong>MAC</strong>#RXCLKCORCNT[2:0]<br />
E<strong>MAC</strong>#PHYMGTRXRESET<br />
PHYE<strong>MAC</strong>#RXCHECKINGCRC<br />
PHYE<strong>MAC</strong>#RXLOSSOFSYNC[1:0]<br />
PHYE<strong>MAC</strong>#RXCOMMADET<br />
PHYE<strong>MAC</strong>#RXBUFSTATUS[0]<br />
PHYE<strong>MAC</strong>#RXBUFFERR<br />
1000BASE-X PCS/PMA<br />
Figure 6-20 shows the <strong>Ethernet</strong> <strong>MAC</strong> configured with 1000BASE-X PCS/PMA as the<br />
physical interface. Connections to the <strong>Virtex</strong>®-5 <strong>FPGA</strong> RocketIO serial transceiver are<br />
illustrated.<br />
PHYE<strong>MAC</strong>#RXD[7:0]<br />
PHYE<strong>MAC</strong>#RXRUNDISP<br />
PHYE<strong>MAC</strong>#RXCHARISK<br />
GND<br />
Status<br />
Only<br />
Shim<br />
RocketIO<br />
Serial Transceiver<br />
TXDATA#[7:0]<br />
LOOPBACK#[0]<br />
TXRESET#<br />
TXPOWERDOWN#<br />
TXCHARDISPMODE#[0]<br />
TXCHARDISPVAL#[0]<br />
TXCHARISK#[0]<br />
TXBUFSTATUS#[1]<br />
TXRUNDISP#[0]<br />
RXDATA#[7:0]<br />
RXRUNDISP#[0]<br />
RXCHARISK#[0]<br />
RXCHARISCOMMA#[0]<br />
RXBUFERR<br />
RXDISPERR#[0]<br />
RXNOTINABLE#[0]<br />
RXCLKCORCNT#[2:0]<br />
RXBUFRESET#<br />
RXRESET#<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED PLLLKDET<br />
Figure 6-20: <strong>Ethernet</strong> <strong>MAC</strong> Configured in 1000BASE-X PCS/PMA <strong>Mode</strong><br />
MGTCLK_P<br />
MGTCLK_N<br />
TXN_#<br />
TXP_#<br />
RXN_#<br />
RXP_#<br />
<strong>UG194</strong>_6_20_031908<br />
These connections and the shim are created by the CORE Generator tool when the physical<br />
interface is selected to be either SGMII or 1000BASE-X PCS/PMA. By using the<br />
CORE Generator tool, the time required to instantiate the <strong>Ethernet</strong> <strong>MAC</strong> into a usable<br />
design is greatly reduced. See “Accessing the <strong>Ethernet</strong> <strong>MAC</strong> from the CORE Generator<br />
Tool,” page 25.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 167<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
Shim<br />
Because of differences in the way the <strong>Virtex</strong>-II Pro <strong>FPGA</strong> MGTs, <strong>Virtex</strong>-4 <strong>FPGA</strong> MGTs, and<br />
the <strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO serial transceivers output the undecoded 8B/10B code group<br />
when RXNOTINTABLE is asserted, a shim is needed. The shim modifies the received data<br />
from the <strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO serial transceiver to the format that the <strong>Ethernet</strong> <strong>MAC</strong> is<br />
expecting. Table 6-1 describes the functionality of this shim.<br />
The shim created by the CORE Generator tool is combinatorial. If this logic is pipelined, all<br />
of the signals originating from the RocketIO serial transceiver highlighted with gray<br />
shading in Figure 6-20 must be pipelined with an equal latency.<br />
Table 6-1: Shim Functionality<br />
Connection to RocketIO Serial Transceiver Port Name<br />
<strong>Ethernet</strong> <strong>MAC</strong> Port Name<br />
When RXNOTINTABLE#[0] = 0 When RXNOTINTABLE#[0] = 1<br />
PHYE<strong>MAC</strong>#RXD[7]<br />
PHYE<strong>MAC</strong>#RXD[6]<br />
PHYE<strong>MAC</strong>#RXD[5]<br />
PHYE<strong>MAC</strong>#RXD[4]<br />
PHYE<strong>MAC</strong>#RXD[3]<br />
PHYE<strong>MAC</strong>#RXD[2]<br />
PHYE<strong>MAC</strong>#RXD[1]<br />
PHYE<strong>MAC</strong>#RXD[0]<br />
RXDATA#[7]<br />
RXDATA#[6]<br />
RXDATA#[5]<br />
RXDATA#[4]<br />
RXDATA#[3]<br />
RXDATA#[2]<br />
RXDATA#[1]<br />
RXDATA#[0]<br />
RXDATA#[2]<br />
RXDATA#[3]<br />
RXDATA#[4]<br />
RXDATA#[5]<br />
RXDATA#[6]<br />
RXDATA#[7]<br />
RXCHARISK#[0]<br />
RXDISPERR#[0]<br />
PHYE<strong>MAC</strong>#RXRUNDISP RXRUNDISP#[0] RXDATA#[1]<br />
PHYE<strong>MAC</strong>#RXCHARISK RXCHARISK#[0] RXDATA#[0]<br />
168 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
TX<br />
and<br />
RX<br />
Client<br />
Logic<br />
R<br />
1000BASE-X PCS/PMA<br />
1000BASE-X PCS/PMA Clock Management (LXT and SXT Devices)<br />
X<br />
X<br />
8-Bit Data Client<br />
Figure 6-21 shows the clock management used with the 1000BASE-X PCS/PMA interface<br />
when the <strong>Ethernet</strong> <strong>MAC</strong> client is used with a 8-bit data client in LXT and SXT devices.<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
PHYE<strong>MAC</strong>#RXCLK<br />
125 MHz<br />
GTP Transceiver<br />
TXUSRCLK<br />
TXUSRCLK2<br />
RXUSRCLK<br />
RXUSRCLK2<br />
Figure 6-21: 1000BASE-X PCS/PMA (8-Bit Data Client) Clock Management in an LXT or SXT Device<br />
The CLKIN inputs to the RocketIO serial transceiver must be connected to an external,<br />
high-quality differential reference clock of frequency of 125 MHz. A 125 MHz clock source<br />
is then provided to the <strong>FPGA</strong> logic from the REFCLKOUT output port of the RocketIO serial<br />
transceiver. This is connected to global clock routing using a BUFG as illustrated. This<br />
clock should then be routed to the PHYE<strong>MAC</strong>#GTXCLK of the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
Additionally, this global clock can be used for both receiver and transmitter client logic as<br />
illustrated, and it, therefore, must be routed back to the <strong>Ethernet</strong> <strong>MAC</strong> through the<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN and CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN input ports.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 169<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
BUFG<br />
IBUFDS<br />
CLKIN<br />
REFCLKOUT<br />
PLLLKDET<br />
<strong>UG194</strong>_6_21_008099
Chapter 6: Physical Interface<br />
DCM<br />
CLKFB CLK0<br />
CLKIN CLKFX<br />
Locked<br />
CLKFX_MULTIPLY = 2<br />
CLKFX_DIVIDE = 1<br />
Tx<br />
Client<br />
Logic<br />
The PLLLKDET signal from the RocketIO serial transceiver (indicating that its internal<br />
PLLs have locked) is routed to the CLIENTE<strong>MAC</strong>#DCMLOCKED input port of the <strong>Ethernet</strong><br />
<strong>MAC</strong>. This ensures that the state machines of the <strong>Ethernet</strong> <strong>MAC</strong> are held in reset until the<br />
RocketIO serial transceiver has locked and its clocks are running cleanly.<br />
As described in “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205, the following clock signals are unused:<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
PHYE<strong>MAC</strong>#RXCLK<br />
The outputs can be left unconnected, and inputs should be tied to Low.<br />
16-Bit Data Client<br />
BUFG<br />
BUFG<br />
Figure 6-22 shows the clock management used with the 1000BASE-X PCS/PMA interface<br />
and a 16-bit data client in an LXT or SXT device. This mode supports 2.5 Gb/s line rates.<br />
AND<br />
X<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#RXCLK<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
125 MHz<br />
IBUFDS<br />
GTP Transceiver<br />
TXUSRCLK<br />
TXUSRCLK2<br />
RXUSRCLK<br />
RXUSRCLK2<br />
Figure 6-22: 1000BASE-X PCS/PMA (16-Bit Data Client) Clock Management in an LXT or SXT Device<br />
The CLKIN inputs to the RocketIO serial transceiver must be connected to an external,<br />
high-quality differential reference clock with a frequency of 125 MHz. A clock source<br />
matching the reference clock frequency is then provided to the <strong>FPGA</strong> logic from the<br />
170 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
BUFG<br />
CLKIN<br />
REFCLKOUT<br />
PLLLKDET<br />
<strong>UG194</strong>_6_22_080409<br />
R
R<br />
1000BASE-X PCS/PMA<br />
REFCLKOUT output port of the RocketIO serial transceiver. This clock is then routed to<br />
the CLKIN input of a DCM. CLK0 of the DCM is connected to global clock routing using a<br />
BUFG, as illustrated in Figure 6-22. The 125 MHz output of the BUFG is connected to the<br />
PHYE<strong>MAC</strong>#MIITXCLK and PHYE<strong>MAC</strong>#RXCLK ports of the <strong>Ethernet</strong> <strong>MAC</strong>. It is also<br />
used to clock both receiver and transmitter logic for the 16-bit <strong>Ethernet</strong> <strong>MAC</strong> client<br />
interface.<br />
The global clock sourced from DCM CLKFX, running at 250 MHz, must be routed back to<br />
the <strong>Ethernet</strong> <strong>MAC</strong> through the input ports CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN and<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN. This clock is also connected to the<br />
PHYE<strong>MAC</strong>#GTXCLK input of the <strong>Ethernet</strong> <strong>MAC</strong> and the USRCLK inputs of the<br />
transceiver.<br />
The PLLLKDET signal from the RocketIO serial transceiver (indicating that its internal<br />
PLLs have locked) is ANDed with the locked signal from the DCM and routed to the<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED input port of the <strong>Ethernet</strong> <strong>MAC</strong>. This ensures that the state<br />
machines of the <strong>Ethernet</strong> <strong>MAC</strong> are held in reset until the RocketIO serial transceiver has<br />
locked and all clocks are running cleanly.<br />
As described in “<strong>Ethernet</strong> <strong>MAC</strong> Clock Generation,” page 206, the following clock signals<br />
are unused and can be left unconnected:<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
1000BASE-X PCS/PMA Clock Management (TXT and FXT Devices)<br />
8-Bit Data Client<br />
Figure 6-23 shows the clock management used with the 1000BASE-X PCS/PMA interface<br />
when the <strong>Ethernet</strong> <strong>MAC</strong> client is used with a 8-bit data client in a TXT and FXT device.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 171<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
CLKFB<br />
CLKIN<br />
DCM<br />
Tx<br />
and<br />
Rx<br />
Client<br />
Logic<br />
CLK0<br />
CLKDV<br />
CLKDV_DIVIDE = 2.0<br />
BUFG<br />
BUFG<br />
X<br />
X<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#RXCLK<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
125 MHz<br />
IBUFDS<br />
GTX Transceiver<br />
TXUSRCLK<br />
TXUSRCLK2<br />
RXUSRCLK<br />
RXUSRCLK2<br />
<strong>UG194</strong>_6_23_031109<br />
Figure 6-23: 1000BASE-X PCS/PMA (8-Bit Data Client) Clock Management in a TXT and FXT Device<br />
The CLKIN inputs to the RocketIO serial transceiver must be connected to an external,<br />
high-quality differential reference clock of frequency of 125 MHz. A 125 MHz clock source<br />
is then provided to the <strong>FPGA</strong> logic from the REFCLKOUT output port of the<br />
RocketIO serial transceiver. This is connected to the CLKIN input of a DCM, as illustrated<br />
in Figure 6-23. The CLK0 output of the DCM should then be routed to the<br />
PHYE<strong>MAC</strong>#GTXCLK of the <strong>Ethernet</strong> <strong>MAC</strong> via a BUFG. The clock is also routed to the<br />
TXUSRCLK2 and RXUSRCLK2 inputs of the GTX transceiver.<br />
Additionally, this global clock can be used for both receiver and transmitter client logic,<br />
and it, therefore, must be routed back to the <strong>Ethernet</strong> <strong>MAC</strong> through the<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN and CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN input ports. A<br />
second 62.5 MHz clock is output from the DCM on the CLKDV port. This should be used<br />
to clock the TXUSRCLK and RXUSRCLK inputs of the GTX transceiver.<br />
The PLLLKDET signal from the RocketIO serial transceiver (indicating that its internal<br />
PLLs have locked) is routed to the CLIENTE<strong>MAC</strong>#DCMLOCKED input port of the<br />
<strong>Ethernet</strong> <strong>MAC</strong>. This ensures that the state machines of the <strong>Ethernet</strong> <strong>MAC</strong> are held in reset<br />
until the RocketIO serial transceiver has locked, and its clocks are running cleanly.<br />
172 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
BUFG<br />
CLKIN<br />
REFCLKOUT<br />
PLLLKDET<br />
R
R<br />
DCM BUFG<br />
CLKFB CLK0<br />
CLKIN CLKFX<br />
BUFG<br />
Locked<br />
= 2XCLKFX_MULTIPLY<br />
CLKFX_DIVIDE = 1<br />
Tx<br />
and<br />
Rx<br />
Client<br />
Logic<br />
1000BASE-X PCS/PMA<br />
As described in Appendix B, “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” the following clock signals are<br />
unused:<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
PHYE<strong>MAC</strong>#RXCLK<br />
The outputs can be left unconnected, and inputs should be tied to Low.<br />
16-Bit Data Client<br />
Figure 6-24 shows the clock management used with the 1000BASE-X PCS/PMA interface<br />
and a 16-bit data client in a TXT and FXT device. This mode supports 2.5 Gb/s line rates.<br />
AND<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#RXCLK<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
125 MHz<br />
IBUFDS<br />
REFCLKOUT<br />
PLLLOCK<br />
TXUSRCLK<br />
TXUSRCLK2<br />
RXUSRCLK<br />
RXUSRCLK2<br />
Figure 6-24: 1000BASE-X PCS/PMA (16-Bit Data Client) Clock Management in a TXT and FXT Device<br />
The CLKIN inputs to the RocketIO serial transceiver must be connected to an external,<br />
high-quality, differential reference clock with a frequency of 125 MHz. A clock source<br />
matching the reference clock frequency is then provided to the <strong>FPGA</strong> logic from the<br />
REFCLKOUT output port of the RocketIO serial transceiver. This clock is then routed to<br />
the CLKIN input of a DCM. CLK0 of the DCM is connected to global clock routing using a<br />
BUFG, as illustrated in Figure 6-24. The 125 MHz output of the BUFG is connected to the<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 173<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
BUFG<br />
GTX Transceiver<br />
CLKIN<br />
<strong>UG194</strong>_6_24_080409
Chapter 6: Physical Interface<br />
PHYE<strong>MAC</strong>#MIITXCLK and PHYE<strong>MAC</strong>#RXCLK ports of the <strong>Ethernet</strong> <strong>MAC</strong>. It is also<br />
used to clock both receiver and transmitter logic for the 16-bit <strong>Ethernet</strong> <strong>MAC</strong> client<br />
interface and the RXUSRCLK and TXUSRCLK inputs of the GTX transceiver.<br />
The global clock sourced from DCM CLKFX, running at 250 MHz, must be routed back to<br />
the <strong>Ethernet</strong> <strong>MAC</strong> through the input ports CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN and<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN. This clock is also connected to the<br />
PHYE<strong>MAC</strong>#GTXCLK input of the <strong>Ethernet</strong> <strong>MAC</strong> and the RXUSRCLK2 and TXUSRCLK2<br />
inputs of the transceiver.<br />
The PLLLKDET signal from the RocketIO serial transceiver (indicating that its internal<br />
PLLs have locked) is ANDed with the locked signal from the DCM and routed to the<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED input port of the <strong>Ethernet</strong> <strong>MAC</strong>. This ensures that the state<br />
machines of the <strong>Ethernet</strong> <strong>MAC</strong> are held in reset until the RocketIO serial transceiver has<br />
locked and all clocks are running cleanly.<br />
As described in “<strong>Ethernet</strong> <strong>MAC</strong> Clock Generation,” page 206, the following clock signals<br />
are unused and can be left unconnected:<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
1000BASE-X Auto-Negotiation<br />
Overview of Operation<br />
Figure 6-25 illustrates a simplified diagram of the <strong>Ethernet</strong> <strong>MAC</strong> instantiated within a<br />
<strong>Virtex</strong>-5 device. The only components shown are two of the PCS Management Registers<br />
that are directly involved in the Auto-Negotiation process (see “1000BASE-X PCS/PMA<br />
Management Registers,” page 122). The corresponding registers of the connected device is<br />
also shown.<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong><br />
<strong>Ethernet</strong><br />
<strong>MAC</strong><br />
Processor<br />
Host Interface<br />
PCS/PMA Management<br />
Registers<br />
Auto-Neg Adv<br />
(Reg 4)<br />
Link Partner Ability<br />
Base (Reg 5)<br />
E<strong>MAC</strong>#CLIENTANINTERRUPT<br />
Figure 6-25: 1000BASE-X Auto-Negotiation Overview<br />
174 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
Optical<br />
Fibre<br />
Link Partner<br />
Auto-Neg Adv<br />
(Reg 4)<br />
Link Partner Ability<br />
Base (Reg 5)<br />
<strong>UG194</strong>_6_25_032508<br />
R
R<br />
1000BASE-X PCS/PMA<br />
IEEE Std 802.3, clause 37 describes the 1000BASE-X Auto-Negotiation function. This<br />
function allows a device to advertise the supported modes of operation to a device at the<br />
remote end of a link segment (the link partner) and to detect corresponding operational<br />
modes advertised by the link partner. The operation of the 1000BASE-X auto-negotiation is<br />
summarized below:<br />
To enable auto-negotiation, both auto-negotiation (see “Control Register (Register 0),”<br />
page 123) and MDIO (see “Management Configuration Register,” page 94) must be<br />
enabled. If enabled, auto-negotiation starts automatically:<br />
After power-up/reset<br />
Upon loss of synchronization<br />
Whenever the link partner initiates auto-negotiation<br />
Whenever an auto-negotiation restart is requested (see “Control Register<br />
(Register 0)”)<br />
When the PHY Reset bit is set in the PCS control register (see “Control Register<br />
(Register 0)”)<br />
During auto-negotiation, the contents of the “Auto-Negotiation Advertisement<br />
Register (Register 4)” are transferred to the link partner. This register can be written to<br />
through the management interface, and enables software control of the systems<br />
advertised abilities. Information provided in this register includes:<br />
Fault condition signalling<br />
Duplex mode<br />
Flow control capabilities for the <strong>Ethernet</strong> <strong>MAC</strong><br />
At the same time, the advertised abilities of the link partner are transferred into the<br />
“Auto-Negotiation Link Partner Ability Base Register (Register 5).” This includes the<br />
same information fields as in the “Auto-Negotiation Advertisement Register (Register<br />
4).”<br />
Under normal conditions, this completes the Auto-Negotiation information exchange.<br />
The results can be read from the “Auto-Negotiation Link Partner Ability Base Register<br />
(Register 5).” The mode of the <strong>Ethernet</strong> <strong>MAC</strong> should then be configured by a software<br />
routine to match; this does not happen automatically within the <strong>Ethernet</strong> <strong>MAC</strong>. The<br />
two methods by which a host processor can learn of the completion of an Auto-<br />
Negotiation cycle are:<br />
By polling the Auto-Negotiation completion bit 1.5 in “Status Register (Register<br />
1).”<br />
By using the Auto-Negotiation interrupt port (see “Auto-Negotiation Interrupt”).<br />
Auto-Negotiation Link Timer<br />
The Auto-Negotiation Link Timer is used to time three phases of the Auto-Negotiation<br />
procedure. For the 1000BASE-X standard, this link timer is defined as having a duration of<br />
between 10 and 20 ms. Both link partners wait until their own link timer and the partner’s<br />
link timer expire before moving on to the next phase of the auto negotiation process. The<br />
complete process takes a minimum of three times the values of the biggest link timer value.<br />
The duration of the link timer used by the <strong>Ethernet</strong> <strong>MAC</strong> can be configured with the<br />
E<strong>MAC</strong>#_LINKTIMERVAL[8:0] attribute (see “Physical Interface Attributes,” page 48). The<br />
duration of the timer is approximately equal to the binary value placed onto this attribute<br />
multiplied by 32.768 µs (4096 clock periods of the 125 MHz clock provided to the <strong>Ethernet</strong><br />
<strong>MAC</strong> on PHYE<strong>MAC</strong>#GTXCLK). The accuracy of this link timer is within the range:<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 175<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
+0 to -32.768 µs<br />
Therefore, for the 1000BASE-X standard, the attribute E<strong>MAC</strong>#_LINKTIMERVAL[8:0] is set<br />
to:<br />
100111101 = 317 decimal<br />
This setting corresponds to a timer duration of between 10.354 and 10.387 ms. This value<br />
can be reduced for simulation.<br />
Auto-Negotiation Interrupt<br />
The Auto-Negotiation function has an E<strong>MAC</strong>#CLIENTANINTERRUPT port. This port is<br />
designed to be used with common microprocessor bus architectures.<br />
The operation of this port is enabled or disabled and cleared via the “Vendor-Specific<br />
Register: Auto-Negotiation Interrupt Control Register (Register 16).”<br />
When disabled, this port is permanently driven Low.<br />
When enabled, this port is set to logic 1 following the completion of an Auto-<br />
Negotiation cycle. It remains High until cleared after a zero is written to bit 16.1<br />
(Interrupt Status bit) of the “Vendor-Specific Register: Auto-Negotiation Interrupt<br />
Control Register (Register 16).”<br />
Use of Clock Correction Sequences<br />
The RocketIO serial transceiver is configured by the appropriate Transceiver Wizard to<br />
perform clock correction. The output of the Transceiver Wizard is provided as part of the<br />
<strong>Ethernet</strong> <strong>MAC</strong> wrapper generated using the CORE Generator tool. Two different clock<br />
correction sequences can be employed:<br />
The mandatory clock correction sequence is the /I2/ ordered set; this is a two-byte<br />
code-group sequence formed from /K28.5/ and /D16.2/ characters. The /I2/<br />
ordered set is present in the interframe gap. These sequences can therefore be<br />
removed or inserted by the transceiver’s receiver elastic buffer without causing frame<br />
corruption.<br />
The default Transceiver Wizard configuration enables the CLK_COR_SEQ_2_USE<br />
attribute. In this case, the transceiver is also configured to perform clock correction on<br />
the /K28.5/D21.5/ sequence; these are the first two code-groups from the /C1/<br />
ordered set (the /C1/ ordered set is four code-groups in length). Because there are no<br />
/I2/ ordered sets present during much of the auto-negotiation cycle, this provides a<br />
method of allowing clock correction to be performed during auto-negotiation.<br />
Because this form of clock correction inserts or removes two code groups into or from<br />
a four code-group sequence, this causes ordered-set fragments to be seen by the<br />
<strong>Ethernet</strong> <strong>MAC</strong>’s auto-negotiation state machine. It is therefore important that the<br />
transceiver’s RXCLKCORCNT[2:0] port be correctly connected to the <strong>Ethernet</strong> <strong>MAC</strong>;<br />
this indicates a clock correction event (and type) to the <strong>Ethernet</strong> <strong>MAC</strong>. Using this<br />
signal, the <strong>Ethernet</strong> <strong>MAC</strong>’s state machine can interpret the clock-correction fragments,<br />
and the auto-negotiation function can complete cleanly.<br />
When the transceiver’s CLK_COR_SEQ_2_USE attribute is not enabled, no clock<br />
correction can be performed during much of the auto-negotiation cycle. When this is<br />
the case, it is possible that the transceiver’s receiver elastic buffer could underflow or<br />
overflow as asynchronous clock tolerances accumulate. This results in an elastic buffer<br />
error. It is therefore important that the transceiver’s RXBUFSTATUS[2:0]port is<br />
correctly connected to the <strong>Ethernet</strong> <strong>MAC</strong>; this indicates a buffer error event to the<br />
176 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
1000BASE-X PCS/PMA<br />
<strong>Ethernet</strong> <strong>MAC</strong>. Using this signal, the <strong>Ethernet</strong> <strong>MAC</strong>’s state machine can interpret the<br />
buffer error and the auto-negotiation function can complete cleanly.<br />
The RocketIO serial transceiver is by default configured to perform clock correction during<br />
the auto-negotiation cycle. If correctly connected as per the example design, the <strong>Ethernet</strong><br />
<strong>MAC</strong>’s state machine can correctly determine the transceiver’s elastic buffer behavior, and<br />
auto-negotiation can complete cleanly.<br />
Loopback When Using the PCS/PMA Sublayer<br />
Figure 6-26 illustrates the loopback options when using the PCS/PMA sublayer. Two<br />
possible loopback positions are shown:<br />
Loopback in the <strong>Ethernet</strong> <strong>MAC</strong>. When placed into loopback, data is routed from the<br />
transmitter to the receiver path at the last possible point in the PCS/PMA sublayer.<br />
This is immediately before the RocketIO serial transceiver interface. When placed into<br />
loopback, a constant stream of Idle code groups are transmitted through the RocketIO<br />
serial transceiver.<br />
Loopback in this position allows test frames to be looped back within the <strong>Ethernet</strong><br />
<strong>MAC</strong> without allowing them to be received by the link partner (the device connected<br />
at the other end of the optical link). The transmitting of idles allows the link partner to<br />
remain in synchronization so that no fault is reported.<br />
Loopback in the RocketIO serial transceiver. The RocketIO serial transceiver can<br />
alternatively be switched into loopback by connecting the E<strong>MAC</strong>#PHYLOOPBACKMSB<br />
port of the <strong>Ethernet</strong> <strong>MAC</strong> to the loopback port of the RocketIO serial transceiver as<br />
illustrated. The RocketIO serial transceiver loopback routes data from the transmitter<br />
path to the receiver path within the RocketIO serial transceiver. However, this data is<br />
also transmitted out of the RocketIO serial transceiver and so any test frames used for<br />
a loopback test are received by the link partner.<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong><br />
<strong>Ethernet</strong><br />
PCS/PMA Sublayer<br />
PCS Transmit<br />
Engine<br />
PCS Receive<br />
Engine<br />
Loopback Control<br />
Idle Stream 1<br />
RocketIO Serial<br />
Transceiver<br />
Figure 6-26: Loopback When Using the PCS/PMA Sublayer<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 177<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
1<br />
0<br />
E<strong>MAC</strong>#PHYLOOPBACKMSB<br />
0<br />
LOOPBACK#[0]<br />
Loopback in <strong>Ethernet</strong> <strong>MAC</strong> Loopback in RocketIO Serial Transceiver<br />
TX<br />
RX<br />
<strong>UG194</strong>_6_26_032508
Chapter 6: Physical Interface<br />
Loopback itself can be enabled or disabled by writing to the PCS/PMA Sublayer Control<br />
Register (Register 0). The loopback position can be controlled through the Loopback<br />
Control Register (Register 17). See “1000BASE-X PCS/PMA Management Registers,” page<br />
122 for details. Alternatively, loopback can be controlled by setting the<br />
E<strong>MAC</strong>#_PHYLOOPBACKMSB and E<strong>MAC</strong>#_GTLOOPBACK attributes. See Chapter 2 for<br />
details.<br />
Serial Gigabit Media Independent Interface (SGMII)<br />
Generic<br />
Host Bus<br />
DCR Bus<br />
<strong>Ethernet</strong> <strong>MAC</strong> PCS/PMA Sublayer<br />
Flow Control<br />
Interface<br />
Host<br />
Interface<br />
DCR Bridge<br />
Figure 6-27 shows the functional block diagram of the <strong>Ethernet</strong> <strong>MAC</strong> with the PCS/PMA<br />
sublayer block highlighted.<br />
E<strong>MAC</strong>#<br />
TX<br />
RX<br />
16- or 8-Bit Client Interface<br />
Transmit Engine<br />
Flow Control<br />
Receive Engine<br />
Address Filter<br />
Registers<br />
MDIO Interface<br />
<strong>MAC</strong> Configuration<br />
Registers<br />
Figure 6-27: PCS/PMA Sublayer Block Diagram in the <strong>Ethernet</strong> <strong>MAC</strong><br />
The PCS/PMA sublayer extends the functionality of the <strong>Ethernet</strong> <strong>MAC</strong>, replacing the<br />
GMII/MII or RGMII parallel interfaces with an interface to a RocketIO serial transceiver.<br />
The connected RocketIO serial transceiver then provides the remaining functionality to<br />
accommodate the following two standards, both of which require the high-speed serial<br />
interface provided by the RocketIO serial transceiver:<br />
“Serial Gigabit Media Independent Interface (SGMII)”<br />
“1000BASE-X PCS/PMA”<br />
TX RX<br />
Statistics<br />
Clock Management<br />
MII/GMII/RGMII<br />
Interface to<br />
External PHY<br />
GTP/GTX Transceiver<br />
Interface<br />
MDIO Interface<br />
to External PHY<br />
<strong>UG194</strong>_6_27_071709<br />
178 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
MII/GMII/RGMII Interface<br />
TX<br />
RX<br />
TX<br />
RX<br />
PCS/PMA Sublayer<br />
PCS Management<br />
Registers<br />
MDIO Intersection<br />
R
<strong>FPGA</strong><br />
R<br />
Introduction to the SGMII Implementation<br />
PCS/PMA Sublayer<br />
Serial Gigabit Media Independent Interface (SGMII)<br />
The Serial GMII (SGMII) is an alternative interface to the GMII/MII that converts the<br />
parallel interface of the GMII/MII into a serial format that is capable of carrying traffic at<br />
speeds of 10 Mb/s, 100 Mb/s, and 1 Gb/s. It radically reduces the I/O count and is,<br />
therefore, often favored by PCB designers.<br />
The SGMII physical interface was defined by Cisco Systems. The data signals operate at a<br />
rate of 1.25 Gb/s. Due to the speed of these signals, differential pairs are used to provide<br />
signal integrity and minimize noise.<br />
The sideband clock signals defined in the specification are not implemented in the<br />
<strong>Ethernet</strong> <strong>MAC</strong>. Instead, the RocketIO serial transceiver is used to transmit and receive the<br />
differential data at the required rate using clock data recovery (CDR). For more<br />
information on SGMII, refer to the Serial GMII specification v1.7.<br />
Figure 6-28 shows an expanded diagram of the PCS/PMA sublayer block. The<br />
<strong>Ethernet</strong> <strong>MAC</strong> is connected to a RocketIO serial transceiver, which in turn connects to a<br />
<strong>Tri</strong>-Speed <strong>Ethernet</strong> BASE-T PHY device via SGMII.<br />
<strong>MAC</strong> TX<br />
Interface<br />
<strong>MAC</strong> RX<br />
Interface<br />
MDIO<br />
Interface<br />
PCS Transmit<br />
Engine<br />
Auto-Negotiation<br />
PCS Receive<br />
Engine and<br />
Synchronization<br />
PCS<br />
Management<br />
Registers<br />
Figure 6-28: <strong>Ethernet</strong> PCS/PMA Sublayer Extension<br />
<strong>UG194</strong>_6_28_080409<br />
The PCS/PMA sublayer contains its own functional blocks, which are illustrated and<br />
summarized in the following subsections.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 179<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
GTP/GTX Transceiver<br />
TX+<br />
TX-<br />
RX+<br />
RX-<br />
SGMII<br />
Link<br />
10BASE-T<br />
100BASE-T<br />
1000BASE-T<br />
PHY<br />
PHY<br />
Link<br />
TX<br />
Copper<br />
Medium<br />
RX
Chapter 6: Physical Interface<br />
PCS Transmit Engine<br />
The PCS Transmit Engine encodes the datastream received from the <strong>Ethernet</strong> <strong>MAC</strong> into a<br />
sequence of ordered sets. The data is then transmitted to the RocketIO serial transceiver,<br />
using an 8-bit datapath, which then provides 8B/10B encoding of this data and parallel to<br />
serial conversion. The output from the RocketIO serial transceiver is a differential pair<br />
operating at a rate of 1.25 Gb/s.<br />
PCS Receive Engine and Synchronization<br />
The RocketIO serial transceiver receives a serial differential pair operating at a rate of<br />
1.25 Gb/s from the SGMII PHY. The RocketIO serial transceiver, using CDR, performs<br />
word alignment on this serial datastream and then converts this to a parallel interface. This<br />
data is then 8B/10B decoded by the RocketIO serial transceiver before presenting this to<br />
the PCS/PMA sublayer using an 8-bit datapath.<br />
Within the PCS/PMA sublayer, the synchronization process performs analysis of<br />
valid/invalid received sequence ordered sets to determine if the link is in good order. The<br />
PCS receive engine then decodes these sequence ordered sets into a format that can then be<br />
presented to the standard receiver datapath within the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
Auto-Negotiation<br />
The SGMII Auto-Negotiation function allows the <strong>Ethernet</strong> <strong>MAC</strong> to communicate with the<br />
attached PHY device. Auto-negotiation is controlled and monitored using a software<br />
function through the PCS Management Registers. See “SGMII Auto-Negotiation,” page<br />
196.<br />
PCS Management Registers<br />
Configuration and status of the PCS/PMA sublayer, including access to and from the<br />
Auto-Negotiation function, is via the PCS Management Registers. These registers are<br />
accessed through the serial MDIO, see Chapter 5, “MDIO Interface.”<br />
For the SGMII standard, the configuration and status registers available are listed in<br />
“SGMII Management Registers,” page 130.<br />
SGMII RX Elastic Buffer<br />
The RX elastic buffer can be implemented in one of two ways:<br />
Using the buffer present in the RocketIO serial transceivers<br />
Using a larger buffer that is implemented in the <strong>FPGA</strong> logic<br />
This section describes the selection and implementation of two options in the following<br />
subsections:<br />
“RocketIO Serial Transceiver Logic Using the RX Elastic Buffer”<br />
“RocketIO Serial Transceiver Logic Using the RX Elastic Buffer in <strong>FPGA</strong> Logic”<br />
180 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
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
Chapter 6: Physical Interface<br />
<strong>FPGA</strong><br />
<strong>Ethernet</strong> <strong>MAC</strong> GTP/GTX Transceiver<br />
RX<br />
Elastic<br />
Buffer<br />
125 MHz - 100 ppm<br />
Figure 6-29: SGMII Implementation Using Separate Clock Sources<br />
Assuming separate clock sources, each with 100 ppm tolerance, the maximum frequency<br />
difference between the two devices can be 200 ppm, which translates into a full clock<br />
period difference every 5000 clock periods.<br />
Relating this information to an <strong>Ethernet</strong> frame, there is a single byte of difference every<br />
5000 bytes of received frame data, causing the RX elastic buffer to either fill or empty by an<br />
occupancy of one.<br />
The maximum <strong>Ethernet</strong> frame (non-jumbo) has a 1522-byte size for a VLAN frame:<br />
At 1 Gb/s operation, this size translates into 1522 clock cycles<br />
At 100 Mb/s operation, this size translates into 15220 clock cycles (because each byte<br />
is repeated 10 times<br />
At 10 Mb/s operation, this size translates into 152200 clock cycles (because each byte<br />
is repeated 100 times)<br />
Considering the 10 Mb/s case, 152200/5000 = 31 FIFO entries are needed in the elastic<br />
buffer above and below the halfway point to ensure that the buffer does not underflow or<br />
overflow during frame reception. This assumes that frame reception begins when the<br />
buffer is exactly half full.<br />
RocketIO Serial Transceiver Elastic Buffer<br />
TXP/TXN<br />
RXP/RXN<br />
125 MHz + 100 ppm<br />
SGMII Link<br />
10BASE-T<br />
100BASE-T<br />
1000BASE-T<br />
Twisted<br />
Copper<br />
Pair<br />
The RX elastic buffer in the RocketIO serial transceivers has 64 entries. However, the buffer<br />
cannot be assumed to be exactly half full at the start of frame reception. Additionally, the<br />
underflow and overflow thresholds are not exact.<br />
Figure 6-30 illustrates the elastic buffer depths and thresholds of RocketIO serial<br />
transceivers in <strong>Virtex</strong>-5 devices. Each FIFO word corresponds to a single character of data<br />
(equivalent to a single byte of data following 8B/10B decoding).<br />
182 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
PHY<br />
<strong>UG194</strong>_6_29_080409<br />
R
R<br />
Serial Gigabit Media Independent Interface (SGMII)<br />
The shaded area represents the usable buffer for the duration of frame reception.<br />
If the buffer is filling during frame reception, then 52 – 34 = 18 FIFO locations are<br />
available before the buffer hits the overflow mark.<br />
If the buffer is emptying during reception, then 30 – 12 = 18 FIFO locations are<br />
available before the buffer hits the underflow mark.<br />
This analysis assumes that the buffer is approximately at the half-full level at the start of<br />
the frame reception. There are, as illustrated, two locations of uncertainty above and below<br />
the exact half-full mark of 32. The uncertainty is a result of the clock correction decision,<br />
which is performed in a different clock domain.<br />
Since there is a worst case scenario of one clock edge difference every 5000 clock periods,<br />
the maximum number of clock cycles (bytes) that can exist in a single frame passing<br />
through the buffer before an error occurs is 5000 x 18 = 90000 bytes.<br />
Table 6-2 translates this into maximum frame lengths at different <strong>Ethernet</strong> <strong>MAC</strong> speeds.<br />
The situation is worse at SGMII speeds lower than 1 Gb/s because bytes are repeated<br />
multiple times.<br />
<strong>FPGA</strong> Logic Elastic Buffer<br />
RocketIO Serial Transceiver RX Elastic Buffer<br />
64<br />
52 - Overflow Mark<br />
Figure 6-30: Elastic Buffer Size for RocketIO Serial Transceivers<br />
Table 6-2: Maximum Frame Sizes for RocketIO Serial Transceiver RX Elastic<br />
Buffers (100 ppm Clock Tolerance)<br />
Standard Speed Maximum Frame Size<br />
SGMII 1 Gb/s 90000<br />
SGMII 100 Mb/s 9000<br />
SGMII 10 Mb/s 900<br />
For reliable SGMII operation at 10 Mb/s (non-jumbo frames), the RocketIO serial<br />
transceiver RX elastic buffer must be bypassed and a larger buffer implemented in the<br />
<strong>FPGA</strong> logic. The RX elastic buffer in <strong>FPGA</strong> logic, provided by the example design, is twice<br />
the size and nominally provides 64 entries above and below the half-full threshold. This<br />
configuration can manage standard (non-jumbo) <strong>Ethernet</strong> frames at all three SGMII<br />
speeds.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 183<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
34<br />
30<br />
12 - Underflow Mark<br />
ug194_c6_30_032508
Chapter 6: Physical Interface<br />
Figure 6-31 illustrates alternative <strong>FPGA</strong> logic RX elastic buffer depth and thresholds. Each<br />
FIFO word corresponds to a single character of data (equivalent to a single byte of data<br />
following 8B/10B decoding). This buffer can optionally be used to replace the RX elastic<br />
buffers of the RocketIO serial transceiver. See “RocketIO Serial Transceiver Logic Using the<br />
RX Elastic Buffer in <strong>FPGA</strong> Logic,” page 188.<br />
128<br />
SGMII <strong>FPGA</strong><br />
RX Elastic Buffer<br />
122 - Overflow Mark<br />
Figure 6-31: Elastic Buffer Size for <strong>FPGA</strong> Logic Buffer<br />
The shaded area in Figure 6-31 represents the usable buffer availability for the duration of<br />
frame reception.<br />
If the buffer is filling during frame reception, then 122 – 66 = 56 FIFO locations are<br />
available before the buffer hits the overflow mark.<br />
If the buffer is emptying during reception, then 62–6=56 FIFO locations are<br />
available before the buffer hits the underflow mark.<br />
This analysis assumes that the buffer is approximately at the half-full level at the start of<br />
the frame reception. As illustrated in Figure 6-31, there are two locations of uncertainty<br />
above and below the exact half-full mark of 64 as a result of the clock correction decision,<br />
which is based across an asynchronous boundary.<br />
Since there is a worst-case scenario of one clock edge difference every 5000 clock periods,<br />
the maximum number of clock cycles (bytes) that can exist in a single frame passing<br />
through the buffer before an error occurs is 5000 x 56 = 280000 bytes.<br />
Table 6-3 translates this into maximum frame lengths at different <strong>Ethernet</strong> <strong>MAC</strong> speeds.<br />
The situation is worse at SGMII speeds lower than 1 Gb/s because bytes are repeated<br />
multiple times.<br />
Table 6-3: Maximum Frame Sizes for RocketIO Serial Transceiver RX Elastic<br />
Buffers (100 ppm Clock Tolerance)<br />
Standard Speed Maximum Frame Size<br />
SGMII 1 Gb/s 280000<br />
SGMII 100 Mb/s 28000<br />
SGMII 10 Mb/s 2800<br />
184 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
66<br />
62<br />
6 - Underflow Mark<br />
ug194_c6_31_032508<br />
R
R<br />
Serial Gigabit Media Independent Interface (SGMII)<br />
Using the RocketIO Serial Transceiver RX Elastic Buffer<br />
The RX elastic buffer implemented in the RocketIO serial transceiver can be used reliably<br />
when:<br />
10 Mb/s operation is not required. Both 1 Gb/s and 100 Mb/s operate on standard<br />
<strong>Ethernet</strong> <strong>MAC</strong> frame sizes only.<br />
When the clocks are closely related (see “Closely Related Clock Sources”).<br />
Designers are recommended to select the <strong>FPGA</strong> Logic RX elastic buffer implementation if<br />
they have any doubts to reliable operation.<br />
Closely Related Clock Sources<br />
Two cases are described with closely related clocks in SGMII mode:<br />
Case 1<br />
Figure 6-32 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. A common<br />
oscillator source is used for both the <strong>FPGA</strong> and the external PHY.<br />
<strong>FPGA</strong><br />
<strong>Ethernet</strong> <strong>MAC</strong> RocketIO Serial<br />
Transceiver<br />
RX<br />
Elastic<br />
Buffer<br />
125 MHz - 100 ppm<br />
TXP/TXN<br />
RXP/RXN<br />
SGMII Link<br />
10BASE-T<br />
100BASE-T<br />
1000BASE-T<br />
Figure 6-32: SGMII Implementation Using Shared Clock Sources<br />
Twisted<br />
Copper<br />
Pair<br />
If the PHY device sources the receiver SGMII stream synchronously from the shared<br />
oscillator (refer to the PHY data sheet), the RocketIO serial transceiver receives data at<br />
exactly the same rate as that used by the core. That is, the RX elastic buffer neither<br />
empties nor fills because the same frequency clock is on either side.<br />
In this situation, the RX elastic buffer does not underflow or overflow, and the RX<br />
elastic buffer implementation in the RocketIO serial transceiver is recommended to<br />
save logic resources.<br />
Case 2<br />
Using the case illustrated by Figure 6-29, assume that both clock sources used are<br />
50 ppm. The maximum frequency difference between the two devices is 100 ppm,<br />
translating into a full clock period difference every 10000 clock periods and resulting<br />
in a requirement for 16 FIFO entries above and below the half-full point. This case<br />
provides reliable operation with the RocketIO serial transceiver RX elastic buffers.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 185<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
PHY<br />
<strong>UG194</strong>_6_32_080409
Chapter 6: Physical Interface<br />
<strong>FPGA</strong><br />
However, the designer must check the PHY data sheet to ensure that the PHY device<br />
sources the receiver SGMII stream synchronously to its reference oscillator.<br />
Using the <strong>FPGA</strong> Logic Elastic Buffer<br />
Figure 6-33 illustrates a simplified diagram of a situation where the <strong>Ethernet</strong> <strong>MAC</strong> in<br />
SGMII mode is interfaced to an external PHY device with an independent clock. The<br />
RocketIO serial transceiver’s elastic buffer has been bypassed and the <strong>FPGA</strong> elastic buffer<br />
is used.<br />
<strong>Ethernet</strong> <strong>MAC</strong> GTP/GTX<br />
Transceiver<br />
125 MHz –100 ppm<br />
RX<br />
Elastic<br />
Buffer<br />
GTP/GTX<br />
Elastic<br />
Buffer<br />
TXP/TXN<br />
RXP/RXN<br />
Figure 6-33: SGMII Implementation Using a Logic Buffer<br />
SGMII Link<br />
10 BASE-T<br />
100 BASE-T<br />
1000 BASE-T<br />
Twisted<br />
Copper<br />
Pair<br />
Using the SGMII in this configuration eliminates the possibility of buffer error if the clocks<br />
are not tightly controlled enough to use the RocketIO serial transceiver elastic buffer.<br />
186 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
PHY<br />
125 MHz +100 ppm<br />
ug194_6_33_080409<br />
R
R<br />
Serial Gigabit Media Independent Interface (SGMII)<br />
RocketIO Serial Transceiver Logic Using the RX Elastic Buffer<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
(PCS/PMA Sublayer)<br />
E<strong>MAC</strong>#PHYSYNCACQSTATUS<br />
E<strong>MAC</strong>#PHYTXD[7:0]<br />
E<strong>MAC</strong>#PHYLOOPBACKMSB<br />
E<strong>MAC</strong>#PHYMGTTXRESET<br />
E<strong>MAC</strong>#PHYPOWERDOWN<br />
E<strong>MAC</strong>#PHYTXCHARDISPMODE<br />
E<strong>MAC</strong>#PHYTXCHARDISPVAL<br />
E<strong>MAC</strong>#PHYTXCHARISK<br />
PHYE<strong>MAC</strong>#TXBUFERR<br />
PHYE<strong>MAC</strong>#COL<br />
PHYE<strong>MAC</strong>#RXCHARISCOMMA<br />
PHYE<strong>MAC</strong>#RXBUFSTATUS[1]<br />
PHYE<strong>MAC</strong>#DISPERR<br />
PHYE<strong>MAC</strong>#RXNOTINTABLE<br />
PHYE<strong>MAC</strong>#RXCLKCORCNT[2:0]<br />
E<strong>MAC</strong>#PHYMGTRXRESET<br />
PHYE<strong>MAC</strong>#RXCHECKINGCRC<br />
PHYE<strong>MAC</strong>#RXLOSSOFSYNC[1:0]<br />
PHYE<strong>MAC</strong>#RXCOMMADET<br />
PHYE<strong>MAC</strong>#RXBUFSTATUS[0]<br />
PHYE<strong>MAC</strong>#RXBUFFERR<br />
Figure 6-34 shows the <strong>Ethernet</strong> <strong>MAC</strong> configured with SGMII as the physical interface.<br />
Connections to the <strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO serial transceiver are illustrated.<br />
PHYE<strong>MAC</strong>#RXD[7:0]<br />
PHYE<strong>MAC</strong>#RXRUNDISP<br />
PHYE<strong>MAC</strong>#RXCHARISK<br />
GND<br />
Status<br />
Only<br />
Shim<br />
RocketIO Serial<br />
Transceiver<br />
TXDATA#[7:0]<br />
LOOPBACK#[0]<br />
TXRESET#<br />
TXPOWERDOWN#<br />
TXCHARDISPMODE#[0]<br />
TXCHARDISPVAL#[0]<br />
TXCHARISK#[0]<br />
TXBUFSTATUS#[1]<br />
TXRUNDISP#[0]<br />
RXDATA#[7:0]<br />
RXRUNDISP#[0]<br />
RXCHARISK#[0]<br />
RXCHARISCOMMA#[0]<br />
RXBUFERR<br />
RXDISPERR#[0]<br />
RXNOTINABLE#[0]<br />
RXCLKCORCNT#[2:0]<br />
RXBUFRESET#<br />
RXRESET#<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED PLLLKDET<br />
Figure 6-34: <strong>Ethernet</strong> <strong>MAC</strong> Configured in SGMII <strong>Mode</strong><br />
MGTCLK_P<br />
MGTCLK_N<br />
TXN_#<br />
TXP_#<br />
RXN_#<br />
RXP_#<br />
<strong>UG194</strong>_6_34_032508<br />
These connections and the shim are created by the CORE Generator tool when the physical<br />
interface is selected to be either SGMII or 1000BASE-X PCS/PMA. By using the<br />
CORE Generator tool, the time required to instantiate the <strong>Ethernet</strong> <strong>MAC</strong> into a usable<br />
design is greatly reduced. See “Accessing the <strong>Ethernet</strong> <strong>MAC</strong> from the CORE Generator<br />
Tool,” page 25.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 187<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
RocketIO Serial Transceiver Logic Using the RX Elastic Buffer in <strong>FPGA</strong> Logic<br />
The example design, delivered with the core in the CORE Generator tool, is split between<br />
two different hierarchical layers. The block level is designed so that it can be instantiated<br />
directly into customer designs. It provides the following functionality:<br />
Instantiates the core from HDL<br />
Connects the physical-side interface of the core to a <strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO serial<br />
transceiver via the RX elastic buffer in <strong>FPGA</strong> logic<br />
The <strong>Ethernet</strong> <strong>MAC</strong> is designed to integrate with the <strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO serial<br />
transceiver. The connections and logic required between the <strong>Ethernet</strong> <strong>MAC</strong> and RocketIO<br />
serial transceiver are illustrated in Figure 6-35. The signal names and logic shown in<br />
Figure 6-35 exactly match those delivered with the example design when the RocketIO<br />
serial transceiver is used.<br />
A RocketIO tile consists of a pair of transceivers. For this reason, the RocketIO serial<br />
transceiver wrapper delivered with the core always contains two transceiver<br />
instantiations, even if only a single transceiver is in use. Figure 6-35 illustrates a single<br />
transceiver for clarity.<br />
188 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
(PCS/PMA Sublayer)<br />
E<strong>MAC</strong>#PHYSYNCACQSTATUS<br />
E<strong>MAC</strong>#PHYTXD[7:0]<br />
E<strong>MAC</strong>#PHYLOOPBACKMSB<br />
E<strong>MAC</strong>#PHYMGTTXRESET<br />
E<strong>MAC</strong>#PHYPOWERDOWN<br />
E<strong>MAC</strong>#PHYTXCHARDISPMODE<br />
E<strong>MAC</strong>#PHYTXCHARDISPVAL<br />
E<strong>MAC</strong>#PHYTXCHARISK<br />
PHYE<strong>MAC</strong>#TXBUFERR<br />
PHYE<strong>MAC</strong>#COL<br />
PHYE<strong>MAC</strong>#RXD[7:0]<br />
PHYE<strong>MAC</strong>#RXRUNDISP<br />
PHYE<strong>MAC</strong>#RXCHARISK<br />
PHYE<strong>MAC</strong>#RXCHARISCOMMA<br />
PHYE<strong>MAC</strong>#RXBUFSTATUS[1]<br />
PHYE<strong>MAC</strong>#DISPERR<br />
PHYE<strong>MAC</strong>#RXNOTINTABLE<br />
PHYE<strong>MAC</strong>#RXCLKCORCNT[2:0]<br />
E<strong>MAC</strong>#PHYMGTRXRESET<br />
PHYE<strong>MAC</strong>#RXCHECKINGCRC<br />
PHYE<strong>MAC</strong>#RXLOSSOFSYNC[1:0]<br />
PHYE<strong>MAC</strong>#RXCOMMADET<br />
PHYE<strong>MAC</strong>#RXBUFSTATUS[0]<br />
PHYE<strong>MAC</strong>#RXBUFFERR<br />
.<br />
GND<br />
Status<br />
Only<br />
Shim<br />
Serial Gigabit Media Independent Interface (SGMII)<br />
RX<br />
Elastic<br />
Buffer<br />
(<strong>FPGA</strong><br />
Logic)<br />
RocketIO Serial<br />
Transceiver<br />
TXDATA#[7:0]<br />
LOOPBACK#[0]<br />
TXRESET#<br />
TXPOWERDOWN#<br />
TXCHARDISPMODE#[0]<br />
TXCHARDISPVAL#[0]<br />
TXCHARISK#[0]<br />
TXBUFSTATUS#[1]<br />
TXRUNDISP#[0]<br />
RXDATA#[7:0]<br />
RXRUNDISP#[0]<br />
RXCHARISK#[0]<br />
RXBUFRESET#<br />
RXRESET#<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED PLLLKDET<br />
RXCHARISCOMMA#[0]<br />
RXBUFERR<br />
RXDISPERR#[0]<br />
RXNOTINABLE#[0]<br />
RXCLKCORCNT#[2:0]<br />
Figure 6-35: SGMII Connection to a <strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO Serial Transceiver<br />
MGTCLK_P<br />
MGTCLK_N<br />
TXN_#<br />
TXP_#<br />
RXN_#<br />
RXP_#<br />
<strong>UG194</strong>_6_35_032508<br />
Figure 6-35 shows that the RX elastic buffer is implemented in the <strong>FPGA</strong> logic between the<br />
RocketIO serial transceiver and the <strong>Ethernet</strong> <strong>MAC</strong> instead of in the RocketIO serial<br />
transceiver. 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. This<br />
configuration, therefore, can handle larger frame sizes before clock tolerances accumulate<br />
and result in emptying or filling of the buffer. This is necessary for SGMII operation at<br />
10 Mb/s, where each frame size is effectively 100 times larger than the same frame is at<br />
1 Gb/s due to each byte being repeated 100 times.<br />
In bypassing the RocketIO serial transceiver RX elastic buffer, data is clocked out of the<br />
RocketIO serial transceiver synchronously to RXRECCLK. This clock, placed on a BUFR<br />
component, is used to synchronize the transfer of data between the RocketIO serial<br />
transceiver and the RX elastic buffer as illustrated in Figure 6-37.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 189<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
Shim<br />
Because of differences in the way the <strong>Virtex</strong>-II Pro and <strong>Virtex</strong>-4 <strong>FPGA</strong> RocketIO<br />
transceivers and the <strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO serial transceivers output the undecoded<br />
8B/10B code group when RXNOTINTABLE is asserted, a shim is needed. This shim<br />
modifies the received data from the <strong>Virtex</strong>-5 <strong>FPGA</strong> RocketIO serial transceiver to the<br />
format that the <strong>Ethernet</strong> <strong>MAC</strong> is expecting. Table 6-4 describes the functionality of this<br />
shim.<br />
The shim created by the CORE Generator tool is combinatorial. If this logic is pipelined, all<br />
of the signals originating from the RocketIO serial transceiver highlighted with gray<br />
shading in Figure 6-34 must be pipelined with an equal latency.<br />
Table 6-4: Shim Functionality<br />
Connection to RocketIO Serial Transceiver Port Name<br />
<strong>Ethernet</strong> <strong>MAC</strong> Port Name<br />
When RXNOTINTABLE#[0] = 0 When RXNOTINTABLE#[0] = 1<br />
PHYE<strong>MAC</strong>#RXD[7]<br />
PHYE<strong>MAC</strong>#RXD[6]<br />
PHYE<strong>MAC</strong>#RXD[5]<br />
PHYE<strong>MAC</strong>#RXD[4]<br />
PHYE<strong>MAC</strong>#RXD[3]<br />
PHYE<strong>MAC</strong>#RXD[2]<br />
PHYE<strong>MAC</strong>#RXD[1]<br />
PHYE<strong>MAC</strong>#RXD[0]<br />
RXDATA#[7]<br />
RXDATA#[6]<br />
RXDATA#[5]<br />
RXDATA#[4]<br />
RXDATA#[3]<br />
RXDATA#[2]<br />
RXDATA#[1]<br />
RXDATA#[0]<br />
RXDATA#[2]<br />
RXDATA#[3]<br />
RXDATA#[4]<br />
RXDATA#[5]<br />
RXDATA#[6]<br />
RXDATA#[7]<br />
RXCHARISK#[0]<br />
RXDISPERR#[0]<br />
PHYE<strong>MAC</strong>#RXRUNDISP RXRUNDISP#[0] RXDATA#[1]<br />
PHYE<strong>MAC</strong>#RXCHARISK RXCHARISK#[0] RXDATA#[0]<br />
190 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
TX and<br />
RX<br />
Client<br />
Logic<br />
R<br />
SGMII Clock Management (LXT and SXT Devices)<br />
BUFG<br />
X<br />
<strong>Tri</strong>-Speed Operation<br />
Serial Gigabit Media Independent Interface (SGMII)<br />
Figure 6-36 shows the clock management used with the SGMII interface without the <strong>FPGA</strong><br />
logic elastic buffer. The CLKIN inputs to the RocketIO serial transceiver must be connected<br />
to an external, high-quality differential reference clock of frequency of 125 MHz. A<br />
125 MHz clock source is then provided to the <strong>FPGA</strong> logic from the REFCLKOUT output<br />
port of the RocketIO serial transceiver. This is connected to global clock routing using a<br />
BUFG as illustrated (Figure 6-36). This clock should then be routed to the<br />
PHYE<strong>MAC</strong>#GTXCLK of the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
PHYE<strong>MAC</strong>#RXCLK<br />
125 MHz<br />
RocketIO<br />
GTP Transceiver<br />
PLLLKDET<br />
TXUSRCLK<br />
TXUSRCLK2<br />
RXUSRCLK<br />
RXUSRCLK2<br />
Figure 6-36: SGMII Clock Management - RocketIO Serial Transceiver RX Elastic Buffer<br />
In bypassing the RocketIO serial transceiver RX elastic buffer, data is clocked out of the<br />
RocketIO serial transceiver synchronously to RXRECCLK. This clock, placed on a BUFR<br />
component, drives RXUSRCLK and RXUSRCLK2 and some of the logic in the RX elastic<br />
buffer as illustrated in Figure 6-37.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 191<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
BUFG<br />
IBUFDS<br />
CLKIN<br />
REFCLKOUT<br />
<strong>UG194</strong>_6_36_080409
Chapter 6: Physical Interface<br />
TX and<br />
RX<br />
Client<br />
Logic<br />
BUFG<br />
X<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
PHYE<strong>MAC</strong>#RXCLK<br />
Figure 6-37: SGMII Clock Management - <strong>FPGA</strong> Logic RX Elastic Buffer<br />
In both configurations, the PLLLKDET signal from the RocketIO serial transceiver<br />
(indicating that its internal PLLs have locked) is routed to the CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
input port of the <strong>Ethernet</strong> <strong>MAC</strong>, which ensures that the state machines of the <strong>Ethernet</strong><br />
<strong>MAC</strong> are held in reset until the RocketIO serial transceiver has locked and its clocks are<br />
running cleanly.<br />
Either of the E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT or E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
output ports can be used to obtain the clock used for the <strong>Ethernet</strong> <strong>MAC</strong> client logic (both<br />
receiver and transmitter logic can share the same clock) with the unused clock being left<br />
unconnected. E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT is used in the example and is connected to<br />
a BUFG, which then provides the client clock to <strong>FPGA</strong> logic. It must also be routed back to<br />
the <strong>Ethernet</strong> <strong>MAC</strong> through the CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN and<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN input ports.<br />
As described in “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” page 205, the following clock signals are unused:<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
RocketIO<br />
GTP Transceiver<br />
REFCLKOUT<br />
PLLLKDET<br />
TXUSRCLK<br />
TXUSRCLK2<br />
192 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
125 MHz<br />
BUFG<br />
IBUFDS<br />
RX<br />
Elastic<br />
Buffer<br />
CLKIN<br />
RXUSRCLK<br />
RXUSRCLK2<br />
RXRECCLK<br />
BUFR<br />
<strong>UG194</strong>_6_37_080409<br />
R
R<br />
Serial Gigabit Media Independent Interface (SGMII)<br />
PHYE<strong>MAC</strong>#RXCLK<br />
The outputs can be left unconnected, and the inputs should be tied Low.<br />
1 Gb/s Only Operation<br />
When the SGMII is used only for 1 Gb/s speeds, further clocking optimization can be<br />
performed. The clock logic is then identical to that described in “1000BASE-X PCS/PMA<br />
Clock Management (LXT and SXT Devices),” page 169.<br />
SGMII Clock Management (TXT and FXT Devices)<br />
<strong>Tri</strong>-Speed Operation<br />
Figure 6-38 shows the clock management used with the SGMII interface without the <strong>FPGA</strong><br />
logic elastic buffer in a TXT and FXT device. The CLKIN inputs to the RocketIO serial<br />
transceiver must be connected to an external, high-quality, differential reference clock with<br />
a frequency of 125 MHz. A 125 MHz clock source is then provided to the <strong>FPGA</strong> logic from<br />
the REFCLKOUT output port of the RocketIO serial transceiver. This is connected to the<br />
CLK0 input of a DCM. The CLK0 output of the DCM is connected to global clock routing<br />
using a BUFG, as illustrated in Figure 6-38. This clock should then be routed to the<br />
PHYE<strong>MAC</strong>#GTXCLK of the <strong>Ethernet</strong> <strong>MAC</strong> and the USRCLK2 inputs of the GTX<br />
transceiver. A second, 62.5 MHz, clock is output from the DCM on the CLKDV port. This<br />
should be used to clock the TXUSRCLK and RXUSRCLK inputs of the GTX transceiver.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 193<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
CLKFB<br />
DCM<br />
Tx<br />
and<br />
Rx<br />
Client<br />
Logic<br />
CLK0<br />
CLKIN CLKDV<br />
CLKDV_DIVIDE = 2.0<br />
BUFG<br />
BUFG<br />
BUFG<br />
X<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
PHYE<strong>MAC</strong>#RXCLK<br />
125 MHz<br />
IBUFDS<br />
GTX Transceiver<br />
TXUSRCLK<br />
TXUSRCLK2<br />
RXUSRCLK<br />
RXUSRCLK2<br />
Figure 6-38: SGMII Clock Management - RocketIO Serial Transceiver RX Elastic Buffer in a TXT and FXT<br />
Device<br />
In bypassing the RocketIO serial transceiver RX elastic buffer, data is clocked out of the<br />
RocketIO serial transceiver synchronously to RXRECCLK. This clock, placed on a BUFR<br />
component, drives RXUSRCLK, RXUSRCLK2, and some of the logic in the RX elastic<br />
buffer, as illustrated in Figure 6-39.<br />
194 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
BUFG<br />
CLKIN<br />
REFCLKOUT<br />
PLLLKDET<br />
<strong>UG194</strong>_6_38_031109<br />
R
DCM<br />
CLKFB CLK0<br />
CLKIN CLKDV<br />
CLKDV_DIVIDE = 2.0<br />
R<br />
Tx<br />
and<br />
Rx<br />
Client<br />
Logic<br />
BUFG<br />
BUFG<br />
BUFG<br />
X<br />
<strong>Ethernet</strong> <strong>MAC</strong><br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#RXCLK<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED<br />
Serial Gigabit Media Independent Interface (SGMII)<br />
125 MHz IBUFDS<br />
Figure 6-39: Bypassing the RocketIO Serial Transceiver RX Elastic Buffer<br />
GTX Transceiver<br />
TXUSRCLK<br />
TXUSRCLK2<br />
In both configurations, the PLLLKDET signal from the RocketIO serial transceiver<br />
(indicating that its internal PLLs have locked) is routed to the<br />
CLIENTE<strong>MAC</strong>#DCMLOCKED input port of the <strong>Ethernet</strong> <strong>MAC</strong>, which ensures that the<br />
state machines of the <strong>Ethernet</strong> <strong>MAC</strong> are held in reset until the RocketIO serial transceiver<br />
has locked and its clocks are running cleanly. Either of the<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT or E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT output<br />
ports can be used to obtain the clock used for the <strong>Ethernet</strong> <strong>MAC</strong> client logic (both receiver<br />
and transmitter logic can share the same clock) with the unused clock being left<br />
unconnected. E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT is used in our example and is<br />
connected to a BUFG, which then provides the client clock to <strong>FPGA</strong> logic. It must also be<br />
routed back to the <strong>Ethernet</strong> <strong>MAC</strong> through the CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN and<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN input ports.<br />
As described in Appendix B, “<strong>Ethernet</strong> <strong>MAC</strong> Clocks,” the following clock signals are<br />
unused:<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
PHYE<strong>MAC</strong>#RXCLK<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 195<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
X<br />
BUFG<br />
CLKIN<br />
REFCLKOUT<br />
PLLLKDET<br />
RXRECCLK<br />
RXUSRCLK<br />
RXUSRCLK2<br />
RX<br />
Elastic<br />
Buffer<br />
BUFR<br />
<strong>UG194</strong>_6_39_080409
Chapter 6: Physical Interface<br />
SGMII Auto-Negotiation<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong><br />
<strong>Ethernet</strong><br />
<strong>MAC</strong><br />
Processor<br />
Overview of Operation<br />
Host Interface<br />
Figure 6-40 illustrates a simplified diagram of the <strong>Ethernet</strong> <strong>MAC</strong> instantiated within a<br />
<strong>Virtex</strong>-5 device. The only components shown are two of the PCS Management Registers,<br />
which are directly involved in the Auto-Negotiation process (see “SGMII Management<br />
Registers,” page 130). The corresponding registers of the connected devices are also<br />
shown.<br />
PCS/PMA Management<br />
Registers<br />
Auto-Neg Adv<br />
(Reg 4)<br />
Link Partner Ability<br />
Base (Reg 5)<br />
E<strong>MAC</strong>#CLIENTANINTERRUPT<br />
SGMII<br />
SGMII<br />
Link<br />
SGMII Capable<br />
BASE-T PHY<br />
SGMII Side BASE-T Side<br />
Auto-Neg Adv<br />
(Reg 4)<br />
Link Partner Ability<br />
Base (Reg 5)<br />
Auto-Neg Adv<br />
(Reg 4)<br />
Link Partner Ability<br />
Base (Reg 5)<br />
Figure 6-40: SGMII Auto-Negotiation Overview<br />
Copper<br />
Medium<br />
Link Partner<br />
Auto-Neg Adv<br />
(Reg 4)<br />
Link Partner Ability<br />
Base (Reg 5)<br />
PHY<br />
Link <strong>UG194</strong>_6_40_080409<br />
The SGMII capable PHY has two distinctive sides to auto-negotiation as illustrated:<br />
The PHY initially performs auto-negotiation with its link partner across the PHY link<br />
using the relevant Auto-Negotiation standard for the chosen medium (BASE-T autonegotiation,<br />
illustrated in Figure 6-40, uses a copper medium). This resolves the<br />
operational speed and duplex mode with the link partner.<br />
The PHY then initiates a secondary Auto-Negotiation process with the <strong>Ethernet</strong> <strong>MAC</strong><br />
across the SGMII link. This leverages the 1000BASE-X Auto-Negotiation specification<br />
described in “1000BASE-X Auto-Negotiation” with only minor differences. This<br />
transfers the results of the initial PHY with link partner auto-negotiation across the<br />
SGMII, and this is the only Auto-Negotiation process observed by the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
The SGMII Auto-Negotiation function leverages the “1000BASE-X Auto-Negotiation”<br />
function with the exception of:<br />
The duration of the link timer of the SGMII auto-negotiation decreases from 10 ms to<br />
1.6 ms making the entire Auto-Negotiation cycle faster (see “Auto-Negotiation Link<br />
Timer”).<br />
The information exchanged now contains speed resolution in addition to duplex<br />
mode.<br />
196 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Serial Gigabit Media Independent Interface (SGMII)<br />
Under normal conditions, this completes the Auto-Negotiation information exchange. The<br />
results can be read from the “SGMII Auto-Negotiation Link Partner Ability Base Register<br />
(Register 5).” The duplex mode and speed of the <strong>Ethernet</strong> <strong>MAC</strong> should then be configured<br />
by a software routine to match. This does not happen automatically within the <strong>Ethernet</strong><br />
<strong>MAC</strong>. There are two methods by which a host processor can learn of the completion of an<br />
Auto-Negotiation cycle:<br />
By polling the Auto-Negotiation completion bit 1.5 in “SGMII Status Register<br />
(Register 1),” page 132.<br />
By using the Auto-Negotiation interrupt port (see “Auto-Negotiation Interrupt,”<br />
page 197).<br />
Auto-Negotiation Link Timer<br />
The Auto-Negotiation Link Timer is used to time three phases of the Auto-Negotiation<br />
procedure. For the SGMII standard, this link timer is defined as having a duration of<br />
1.6 ms.<br />
The duration of the link timer used by the <strong>Ethernet</strong> <strong>MAC</strong> can be configured with the<br />
E<strong>MAC</strong>#_LINKTIMERVAL[8:0] attribute (see “Physical Interface Attributes,” page 48). The<br />
duration of the timer is approximately equal to the binary value placed onto this attribute<br />
multiplied by 32.768 µs (4096 clock periods of the 125 MHz clock provided to the <strong>Ethernet</strong><br />
<strong>MAC</strong> on PHYE<strong>MAC</strong>#GTXCLK). The accuracy of this link timer is within the range:<br />
+0 to -32.768 µs<br />
Therefore, for the SGMII standard, set the E<strong>MAC</strong>#_LINKTIMERVAL[8:0] attribute to:<br />
000110010 = 50 decimal<br />
This corresponds to a timer duration of between 1.606 and 1.638 ms. This value can be<br />
reduced for simulation.<br />
Auto-Negotiation Interrupt<br />
The Auto-Negotiation function has an E<strong>MAC</strong>#CLIENTANINTERRUPT port. This port is<br />
designed to be used with common microprocessor bus architectures.<br />
The operation of this port is enabled or disabled and cleared via the “SGMII Vendor-<br />
Specific Register: Auto-Negotiation Interrupt Control Register (Register 16),” page 135.<br />
When disabled, this port is permanently driven Low.<br />
When enabled, this port is set to logic 1 following the completion of an Auto-<br />
Negotiation cycle. It remains High until cleared after a zero is written to bit 16.1<br />
(Interrupt Status bit) of the “SGMII Vendor-Specific Register: Auto-Negotiation<br />
Interrupt Control Register (Register 16).”<br />
Loopback When Using the PCS/PMA Sublayer<br />
Figure 6-41 illustrates the loopback options when using the PCS/PMA sublayer. Two<br />
possible loopback positions are illustrated:<br />
Loopback in the <strong>Ethernet</strong> <strong>MAC</strong>. When placed into loopback, data is routed from the<br />
transmitter to the receiver path at the last possible point in the PCS/PMA sublayer,<br />
immediately before the RocketIO serial transceiver interface. When placed into<br />
loopback, a constant stream of Idle code groups are transmitted through the RocketIO<br />
serial transceiver.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 197<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 6: Physical Interface<br />
Loopback in this position allows test frames to be looped back within the <strong>Ethernet</strong><br />
<strong>MAC</strong> without allowing them to be received by the link partner. The transmission of<br />
idles allows the link partner to remain in synchronization so that no fault is reported.<br />
Loopback in the RocketIO serial transceiver. The RocketIO serial transceiver can<br />
alternatively be switched into loopback by connecting the E<strong>MAC</strong>#PHYLOOPBACKMSB<br />
port of the <strong>Ethernet</strong> <strong>MAC</strong> to the loopback port of the RocketIO serial transceiver as<br />
illustrated. The RocketIO serial loopback routes data from the transmitter path to the<br />
receiver path within the RocketIO serial transceiver. However, this data is also<br />
transmitted out of the RocketIO serial transceiver, so any test frames used for a<br />
loopback test are received by the link partner.<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong><br />
<strong>Ethernet</strong><br />
PCS/PMA Sublayer<br />
PCS Transmit<br />
Engine<br />
PCS Receive<br />
Engine<br />
Loopback Control<br />
Idle Stream 1<br />
GTP/GTX<br />
Transceiver<br />
Figure 6-41: Loopback When Using the PCS/PMA Sublayer<br />
Loopback itself can be enabled or disabled by writing to the PCS/PMA Sublayer Control<br />
Register (Register 0). The loopback position can be controlled through the Loopback<br />
Control Register (Register 17). See “SGMII Management Registers,” page 130 for details.<br />
Alternatively, loopback can be controlled by setting the E<strong>MAC</strong>#_PHYLOOPBACKMSB<br />
and E<strong>MAC</strong>#_GTLOOPBACK attributes. See Chapter 2 for details.<br />
198 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
1<br />
0<br />
E<strong>MAC</strong>#PHYLOOPBACKMSB<br />
0<br />
LOOPBACK#[0]<br />
Loopback in <strong>Ethernet</strong> <strong>MAC</strong> Loopback in GTP/GTX Transceiver<br />
TX<br />
RX<br />
<strong>UG194</strong>_6_41_031109<br />
R
R<br />
Interfacing to a Statistics Block<br />
Chapter 7<br />
To collect statistics information from an individual <strong>Ethernet</strong> <strong>MAC</strong>, a custom statistics<br />
counter can be implemented in the <strong>FPGA</strong> logic. A parameterizable <strong>Ethernet</strong> Statistics<br />
LogiCORE solution that fulfills all the requirements for statistics information collection<br />
is available through the CORE Generator tool (DS323, LogiCORE <strong>Ethernet</strong> Statistics Data<br />
Sheet, which provides a full description of the <strong>Ethernet</strong> Statistics LogiCORE block). Each<br />
<strong>Ethernet</strong> <strong>MAC</strong> that is used requires its own instance of this Statistics IP, as shown in<br />
Figure 2-1, page 27.<br />
This chapter describes how to connect the <strong>Ethernet</strong> <strong>MAC</strong> block to a Statistics block to allow<br />
the statistics registers of each <strong>Ethernet</strong> <strong>MAC</strong> to be accessed by either the host or DCR bus<br />
interface. A description of the address space that can be used for the statistics registers is<br />
provided to avoid register access contentions.<br />
“Statistics Vectors,” page 78 provides details on the statistics interface of the <strong>Ethernet</strong> <strong>MAC</strong><br />
and how the output signals encode the statistics vector information.<br />
Using the Host Bus to Access Statistics Registers<br />
When the <strong>Ethernet</strong> <strong>MAC</strong> is used with the host bus, interfacing to an <strong>FPGA</strong> logic-based<br />
statistics block is straight-forward. The statistics values can be read via a host interface that<br />
is shared between the statistics counters and the <strong>Ethernet</strong> <strong>MAC</strong> block.<br />
To share the host bus without contention, statistics counters need to use a different address<br />
space than the <strong>Ethernet</strong> <strong>MAC</strong> configuration registers. Conflicts with MDIO register<br />
accesses are avoided by only accessing statistics counters when the HOSTMIIMSEL signal is<br />
at logic 0. Implementation of the addressing scheme shown in Table 7-1 ensures that the<br />
host bus can be shared without contention. This scheme provides space to address 512<br />
statistics counters per <strong>Ethernet</strong> <strong>MAC</strong>, using addresses 0x000 to 0x1FF.<br />
Table 7-1: Addressing Scheme<br />
Transaction Host_miim_sel Host_addr[9]<br />
Configuration 0 1<br />
MIIM Access 1 X<br />
Statistics Access 0 0<br />
Figure 7-1 shows how to integrate the <strong>Ethernet</strong> <strong>MAC</strong> with the LogiCORE <strong>Ethernet</strong><br />
Statistics block, where the <strong>Ethernet</strong> statistics counters are accessed via the host bus.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 199<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 7: Interfacing to a Statistics Block<br />
<strong>Virtex</strong>-5 <strong>Embedded</strong><br />
<strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong><br />
CLIENTE<strong>MAC</strong>0TXCLIENTCLKIN<br />
E<strong>MAC</strong>0CLIENTTXSTATS<br />
E<strong>MAC</strong>0CLIENTTXSTATSVLD<br />
E<strong>MAC</strong>0CLIENTTXSTATSBYTEVLD<br />
CLIENTE<strong>MAC</strong>0RXCLIENTCLKIN<br />
E<strong>MAC</strong>0CLIENTRXSTATS[6:0]<br />
E<strong>MAC</strong>0CLIENTRXSTATSVLD<br />
E<strong>MAC</strong>0CLIENTRXSTATSBYTEVLD<br />
E<strong>MAC</strong>0CLIENTRXDVLD<br />
CLIENTE<strong>MAC</strong>1TXCLIENTCLKIN<br />
E<strong>MAC</strong>1CLIENTTXSTATS<br />
E<strong>MAC</strong>1CLIENTTXSTATSVLD<br />
E<strong>MAC</strong>1CLIENTTXSTATSBYTEVLD<br />
CLIENTE<strong>MAC</strong>1RXCLIENTCLKIN<br />
E<strong>MAC</strong>1CLIENTRXSTATS[6:0]<br />
E<strong>MAC</strong>1CLIENTRXSTATSVLD<br />
E<strong>MAC</strong>1CLIENTRXSTATSBYTEVLD<br />
E<strong>MAC</strong>1CLIENTRXDVLD<br />
HOSTCLK<br />
HOSTMIIMSEL<br />
HOSTREQ<br />
HOSTADDR[8:0]<br />
HOSTADDR[9]<br />
HOSTRDDATA[31:0]<br />
HOSTE<strong>MAC</strong>1SEL<br />
HOSTWRDATA[31:0]<br />
HOSTMIIMRDY<br />
HOSTOPCODE<br />
LogiCORE <strong>Ethernet</strong> Statistics<br />
txclientclkin<br />
Example Design<br />
clienttxstats<br />
host_clk<br />
clienttxstatsvld<br />
host_miim_sel<br />
clienttxstatsbytevalid<br />
rxclientclkin<br />
clienttxstatsvld[6:0]<br />
clientrxstatsvld<br />
clientrxstatsbytevalid<br />
clientrxdvld<br />
host_req<br />
host_addr[8:0]<br />
host_addr[9]<br />
host_rd_data[31:0]<br />
LogiCORE <strong>Ethernet</strong> Statistics<br />
txclientclkin<br />
Example Design<br />
clienttxstats<br />
host_clk<br />
clienttxstatsvld<br />
host_miim_sel<br />
clienttxstatsbytevalid<br />
rxclientclkin<br />
clienttxstatsvld[6:0]<br />
clientrxstatsvld<br />
clientrxstatsbytevalid<br />
clientrxdvld<br />
host_stats_lsw_rdy<br />
host_stats_msw_rdy<br />
host_req<br />
host_addr[8:0]<br />
host_addr[9]<br />
host_rd_data[31:0]<br />
host_stats_lsw_rdy<br />
host_stats_msw_rdy<br />
Figure 7-1: Host Bus to <strong>Ethernet</strong> Statistics Connection<br />
The LogiCORE <strong>Ethernet</strong> Statistics block is used with the addressing scheme shown in<br />
Table 7-1. Figure 7-1 illustrates how to connect <strong>Ethernet</strong> Statistics blocks to both <strong>Ethernet</strong><br />
<strong>MAC</strong>s within the <strong>Ethernet</strong> <strong>MAC</strong> block. If statistics are required for only one <strong>Ethernet</strong><br />
<strong>MAC</strong>, then the multiplexing between the statistics cores is simply replaced with a straightthrough<br />
connection.<br />
200 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
OR<br />
1<br />
0<br />
1<br />
0<br />
<strong>UG194</strong>_7_01_100708<br />
R
R<br />
Using the DCR Bus to Access Statistics Registers<br />
Using the DCR Bus to Access Statistics Registers<br />
When the DCR bus interface of the <strong>Ethernet</strong> <strong>MAC</strong> is controlled by an embedded processor,<br />
the host interface and DCR bridge of the <strong>Ethernet</strong> <strong>MAC</strong> allow DCR bus accesses to control<br />
the unused host bus pins. The <strong>Ethernet</strong> <strong>MAC</strong> host bus interface can then access the<br />
statistics counters in the <strong>FPGA</strong> logic, controlled by register accesses on the DCR bus.<br />
The host bus I/O signals of the <strong>Ethernet</strong> <strong>MAC</strong> are enabled for statistics counter access<br />
when a DCR read operation is made to address codes 0x000 to 0x02F and 0x040 to<br />
0x04F inclusive (Table 4-15, page 103 describes the DCR address code space). This use of<br />
the host bus I/O signals provides a means of accessing the <strong>FPGA</strong> logic from the processor<br />
with space for 64 addresses.<br />
When the DCR bus is instructed to access registers in this address code region, the DCR<br />
bridge translates the DCR commands into generic host read signals on the host bus I/O<br />
signals. The DCR transaction is encoded on the host bus signals HOSTRDDATA[31:0] and<br />
HOSTMIIMRDY as described in Table 4-23 and Figure 4-10. These signals can access<br />
statistics counters in the same way as if a stand-alone host bus is used. The statistics values<br />
read from statistics counters are captured from the host bus signals HOSTWRDATA[31:0]<br />
as shown in Figure 4-10. The data read from the host bus can then be accessed by reading<br />
the DCR data registers.<br />
Figure 7-2 shows how to integrate the <strong>Ethernet</strong> <strong>MAC</strong> with the LogiCORE <strong>Ethernet</strong><br />
Statistics block, where the LogiCORE <strong>Ethernet</strong> statistics counters are accessed via the DCR<br />
bus. DS323, LogiCORE <strong>Ethernet</strong> Statistics Data Sheet, provides a full description of the<br />
<strong>Ethernet</strong> Statistics LogiCORE block. Figure 7-2 illustrates how to connect LogiCORE<br />
<strong>Ethernet</strong> Statistics blocks to both <strong>Ethernet</strong> <strong>MAC</strong>s within the <strong>Ethernet</strong> <strong>MAC</strong> block. If<br />
statistics are required for only one <strong>Ethernet</strong> <strong>MAC</strong>, then the multiplexing between the<br />
statistics cores is simply replaced with a straight-through connection.<br />
An example of how to read from the statistics counters through the DCR bus is provided in<br />
the example in “Accessing <strong>FPGA</strong> Logic via Unused Host Bus Pins,” page 113.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 201<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Chapter 7: Interfacing to a Statistics Block<br />
DCRABUS<br />
DCRWRITE<br />
DCRREAD<br />
DCRDINBUS<br />
DCRACK<br />
DCRRDBUS<br />
DCRCLK<br />
<strong>Virtex</strong>-5 <strong>Embedded</strong><br />
<strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong><br />
CLIENTE<strong>MAC</strong>0TXCLIENTCLKIN<br />
E<strong>MAC</strong>0CLIENTTXSTATS<br />
E<strong>MAC</strong>0CLIENTTXSTATSVLD<br />
E<strong>MAC</strong>0CLIENTTXSTATSBYTEVLD<br />
CLIENTE<strong>MAC</strong>0RXCLIENTCLKIN<br />
E<strong>MAC</strong>0CLIENTRXSTATS[6:0]<br />
E<strong>MAC</strong>0CLIENTRXSTATSVLD<br />
E<strong>MAC</strong>0CLIENTRXSTATSBYTEVLD<br />
E<strong>MAC</strong>0CLIENTRXDVLD<br />
CLIENTE<strong>MAC</strong>1TXCLIENTCLKIN<br />
E<strong>MAC</strong>1CLIENTTXSTATS<br />
E<strong>MAC</strong>1CLIENTTXSTATSVLD<br />
E<strong>MAC</strong>1CLIENTTXSTATSBYTEVLD<br />
CLIENTE<strong>MAC</strong>1RXCLIENTCLKIN<br />
E<strong>MAC</strong>1CLIENTRXSTATS[6:0]<br />
E<strong>MAC</strong>1CLIENTRXSTATSVLD<br />
E<strong>MAC</strong>1CLIENTRXSTATSBYTEVLD<br />
E<strong>MAC</strong>1CLIENTRXDVLD<br />
HOSTMIIMSEL<br />
HOSTMIIMRDY<br />
HOSTRDDATA[15]<br />
HOSTRDDATA[8:0]<br />
HOSTRDDATA[9]<br />
HOSTRDDATA[10]<br />
HOSTWRDATA[31:0]<br />
HOSTCLK<br />
OR<br />
LogiCORE <strong>Ethernet</strong> Statistics<br />
txclientclkin Example Design<br />
clienttxstats<br />
host_clk<br />
clienttxstatsvld<br />
host_miim_sel<br />
clienttxstatsbytevalid<br />
rxclientclkin<br />
clienttxstatsvld[6:0]<br />
clientrxstatsvld<br />
clientrxstatsbytevalid<br />
clientrxdvld<br />
host_req<br />
host_addr[8:0]<br />
host_addr[9]<br />
host_rd_data[31:0]<br />
LogiCORE <strong>Ethernet</strong> Statistics<br />
txclientclkin Example Design<br />
clienttxstats<br />
host_clk<br />
clienttxstatsvld<br />
host_miim_sel<br />
clienttxstatsbytevalid<br />
rxclientclkin<br />
clienttxstatsvld[6:0]<br />
clientrxstatsvld<br />
clientrxstatsbytevalid<br />
clientrxdvld<br />
host_stats_msw_rdy<br />
host_stats_lsw_rdy<br />
host_req<br />
host_addr[8:0]<br />
host_addr[9]<br />
host_rd_data[31:0]<br />
host_stats_msw_rdy<br />
host_stats_lsw_rdy<br />
Figure 7-2: DCR Bus to <strong>Ethernet</strong> Statistics Connection<br />
202 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
NOR<br />
D Q<br />
EN<br />
HOSTCLK<br />
1<br />
0<br />
OR<br />
OR<br />
<strong>UG194</strong>_7_02_072606<br />
R
R<br />
Pinout Guidelines<br />
Appendix A<br />
<strong>Xilinx</strong> recommends the following guidelines to improve design timing using the<br />
<strong>Virtex</strong>®-5 <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong>:<br />
If available, use dedicated global clock pins for the <strong>Ethernet</strong> <strong>MAC</strong> input clocks.<br />
Use the column of IOBs located closest to the <strong>Ethernet</strong> <strong>MAC</strong> block.<br />
Use the RocketIO serial transceivers located closest to the <strong>Ethernet</strong> <strong>MAC</strong> block.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 203<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Appendix A: Pinout Guidelines<br />
204 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
<strong>Ethernet</strong> <strong>MAC</strong> Clocks<br />
Appendix B<br />
This appendix provides an overview of the <strong>Ethernet</strong> <strong>MAC</strong> clocking schemes. The clocking<br />
schemes that are internal to the <strong>Ethernet</strong> <strong>MAC</strong> block are introduced, followed by the clock<br />
connections to and from the <strong>FPGA</strong> logic. Finally, all clock input and output frequencies<br />
and definitions are listed for reference, dependent on the mode of operation.<br />
<strong>Ethernet</strong> <strong>MAC</strong> Internal Clock Logic Overview<br />
<strong>Ethernet</strong> <strong>MAC</strong> Block<br />
The large number of clock signals can give an overwhelming first impression. Figure B-1 is<br />
a simplified diagram to illustrate all <strong>Ethernet</strong> <strong>MAC</strong> input and output clock signals.<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
Clock Generator<br />
Output Clock Products<br />
Input Clock Sources<br />
TX<br />
Client<br />
Datapath<br />
RX<br />
Client<br />
Datapath<br />
TX<br />
PHY<br />
Datapath<br />
RX<br />
PHY<br />
Datapath<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
E<strong>MAC</strong>#PHYTXCLK<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
PHYE<strong>MAC</strong>#RXCLK<br />
Figure B-1: Overview of <strong>Ethernet</strong> <strong>MAC</strong> Clock Circuitry<br />
<strong>UG194</strong>_B_01_072606<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 205<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Appendix B: <strong>Ethernet</strong> <strong>MAC</strong> Clocks<br />
<strong>Ethernet</strong> <strong>MAC</strong> Clock Generation<br />
As shown in Figure B-1, included in the <strong>Ethernet</strong> <strong>MAC</strong> is a Clock Generator module. This<br />
module is provided with input clock sources, from which the following output clock<br />
products are generated:<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
E<strong>MAC</strong>#PHYTXCLK<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
For these generated output clocks (refer to “Clock Definitions and Frequencies”):<br />
the output clocks are always at the correct frequency for their associated interfaces for<br />
any mode of operation and switch frequencies cleanly during speed changes<br />
the output clocks are NOT used internally by any <strong>Ethernet</strong> <strong>MAC</strong> logic<br />
the output clocks are provided only for the convenience of the user; they do not have<br />
to be used by the <strong>FPGA</strong> logic<br />
<strong>Ethernet</strong> <strong>MAC</strong> Input Clocks<br />
As shown in Figure B-1, the following clock signals are input into the <strong>Ethernet</strong> <strong>MAC</strong> clock<br />
generator:<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
PHYE<strong>MAC</strong>#RXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
Not all clock input sources are required in all modes. Required clock input signals must<br />
always be driven by the <strong>FPGA</strong> logic at the correct frequency for the required mode of<br />
operation (see “Clock Definitions and Frequencies”).<br />
Only the input clocks are collectively responsible for the correct operation of the <strong>Ethernet</strong><br />
<strong>MAC</strong>. It is possible to ignore all clock generator output clocks for correct <strong>Ethernet</strong> <strong>MAC</strong><br />
operation, providing the input clocks are alternatively derived. However, the clock<br />
generator output clocks are provided precisely for this purpose.<br />
Clock Connections to and from <strong>FPGA</strong> Logic<br />
The clock logic described here is not optimized for specific user modes. There are cases<br />
where two or more clock generator input clocks can be shared from a common source. This<br />
can be a common client clock, shared between transmitter and receiver; in other cases, this<br />
can be a common transmitter clock shared between both client and physical domains. It is<br />
also possible to share common clocks between two of more <strong>Ethernet</strong> <strong>MAC</strong>s. Chapter 6,<br />
“Physical Interface,” provides clock management information for optimal clock logic<br />
efficiency based on the chosen physical interfaces.<br />
This section provides general-purpose clock logic descriptions to aid in the understanding<br />
of the <strong>Ethernet</strong> <strong>MAC</strong>, and clock sharing is not considered. Three main clocking modes are<br />
to be discussed:<br />
206 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
TX<br />
Client<br />
Logic<br />
RX<br />
Client<br />
Logic<br />
R<br />
“Standard Clocking Scheme”<br />
Advanced Clocking Scheme: “Clock Enables”<br />
Advanced Clocking Scheme: “Byte PHY”<br />
Standard Clocking Scheme<br />
BUFG<br />
BUFG<br />
Clock Connections to and from <strong>FPGA</strong> Logic<br />
The <strong>Virtex</strong>®-5 <strong>FPGA</strong> <strong>Ethernet</strong> <strong>MAC</strong> standard clocking scheme, as shown in Figure B-2, is<br />
identical to the standard clocking scheme used by the <strong>Virtex</strong>-4 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong><br />
<strong>Ethernet</strong> <strong>MAC</strong>.<br />
.<br />
<strong>Ethernet</strong> <strong>MAC</strong> Block<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
Figure B-2: Overview of <strong>Ethernet</strong> <strong>MAC</strong> Clock Connections to and from the <strong>FPGA</strong> Logic<br />
Figure B-2 shows clock logic instantiated in the <strong>FPGA</strong> logic using the standard method and<br />
shows the general case (non-optimized) clocking scheme.<br />
Figure B-2 and the text that follows describes how the clock signals required by the<br />
<strong>Ethernet</strong> <strong>MAC</strong> can be derived from the output clocks from the clock generator.<br />
Transmitter Client Clock<br />
Clock Generator<br />
Output Clock Products<br />
Input Clock Sources<br />
TX<br />
Client<br />
Datapath<br />
RX<br />
Client<br />
Datapath<br />
TX<br />
PHY<br />
Datapath<br />
RX<br />
PHY<br />
Datapath<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
E<strong>MAC</strong>#PHYTXCLK<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
PHYE<strong>MAC</strong>#RXCLK<br />
<strong>UG194</strong>_B_02_072606<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT can be placed onto global clock routing and used to<br />
clock all of the transmitter client logic. This resultant clock is then fed back into the<br />
<strong>Ethernet</strong> <strong>MAC</strong> on the CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN, where it is used to derive the<br />
internal clock used for the transmitter client datapath. This configuration has the effect of<br />
eliminating clock skew between the <strong>Ethernet</strong> <strong>MAC</strong> and the <strong>FPGA</strong> logic (caused by the<br />
global clock routing), enabling data to be reliably transferred between the two.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 207<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
BUFG<br />
NC<br />
BUFG<br />
TX<br />
PHY<br />
Logic<br />
TX Clock to PHY<br />
RX<br />
PHY<br />
Logic<br />
RX Clock from PHY
Appendix B: <strong>Ethernet</strong> <strong>MAC</strong> Clocks<br />
Receiver Client Clock<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT can be placed onto global clock routing and used to<br />
clock all of the receiver client logic. This resultant clock is then fed back into the <strong>Ethernet</strong><br />
<strong>MAC</strong> on the CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN, where it is used to derive the internal clock<br />
used for the receiver client datapath. This configuration has the effect of eliminating clock<br />
skew between the <strong>Ethernet</strong> <strong>MAC</strong> and the <strong>FPGA</strong> logic (caused by the global clock routing),<br />
enabling data to be reliably transferred between the two.<br />
Transmitter Physical Clock<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT can be placed onto global clock routing and used to clock<br />
all of the transmitter physical logic. This resultant clock is then fed back into the <strong>Ethernet</strong><br />
<strong>MAC</strong> on the PHYE<strong>MAC</strong>#TXGMIIMIICLKIN, where it is used to derive the internal clock<br />
used for the transmitter physical datapath. This configuration has the effect of eliminating<br />
clock skew between the <strong>Ethernet</strong> <strong>MAC</strong> and the <strong>FPGA</strong> logic (caused by the global clock<br />
routing), enabling data to be reliably transferred between the two.<br />
Receiver Physical Clock<br />
The physical clock for the receiver interface is sourced by the connected PHY. When placed<br />
onto global clock routing, this resultant clock is also fed into the <strong>Ethernet</strong> <strong>MAC</strong> on the<br />
PHYE<strong>MAC</strong>#RXCLK port and is used to derive the internal clock used for the receiver<br />
physical datapath. This enables data to be reliably transferred from the <strong>FPGA</strong> logic into the<br />
<strong>Ethernet</strong> <strong>MAC</strong>.<br />
Advanced Clocking Schemes<br />
Two advanced clocking schemes are developed for the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Ethernet</strong> <strong>MAC</strong>. Both<br />
of these clocking schemes reduce the global clock usage in the <strong>FPGA</strong> logic.<br />
“Clock Enables” evolved from an <strong>FPGA</strong> logic enhancement for the <strong>Virtex</strong>-4 <strong>FPGA</strong><br />
<strong>Ethernet</strong> <strong>MAC</strong>. The <strong>Virtex</strong>-4 <strong>FPGA</strong> clock enable signals were created in the <strong>FPGA</strong><br />
logic, resulting in a clocking scheme that halved the global clock usage when using<br />
the MII physical interface for 10 Mb/s or 100 Mb/s.<br />
The <strong>Virtex</strong>-5 <strong>FPGA</strong> clock enables are provided by the <strong>Ethernet</strong> <strong>MAC</strong> to the <strong>FPGA</strong> logic,<br />
and their use extends to cover MII, GMII, and RGMII interfaces at all three <strong>Ethernet</strong><br />
speeds.<br />
“Byte PHY” also evolved from an <strong>FPGA</strong> logic enhancement for the <strong>Virtex</strong>-4 <strong>FPGA</strong><br />
<strong>Ethernet</strong> <strong>MAC</strong> and provided a solution that halved the global clock usage when using<br />
the GMII/MII physical interface at all three speeds. However, it supported only fullduplex<br />
mode.<br />
In <strong>Virtex</strong>-5 devices, the Byte PHY functionality extends to cover the GMII/MII, at all<br />
three speeds, supporting both full- and half-duplex modes.<br />
Clock Enables and Byte PHY advanced clocking modes are offered by the<br />
CORE Generator tool for both the <strong>Virtex</strong>-4 and <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Ethernet</strong> <strong>MAC</strong>s.<br />
However, as previously described, these options are available for the <strong>Virtex</strong>-5 <strong>FPGA</strong><br />
<strong>Ethernet</strong> <strong>MAC</strong> over a wider range of configurations.<br />
208 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Clock Enables<br />
Clock Connections to and from <strong>FPGA</strong> Logic<br />
For GMII transmitter operation at 1 Gb/s, both client and physical interfaces have an 8-bit<br />
datapath operating at 125 MHz. If 1 Gb/s is the only speed of interest, a single clock<br />
domain can be used for both client and physical interfaces.<br />
For MII transmitter operation at 100 Mb/s, the client interface still has an 8-bit datapath<br />
that operates at 12.5 MHz. However, the physical interface width dropped to 4 bits and is,<br />
therefore, clocked at twice the frequency of the client (25 MHz).<br />
The Clock Enable approach always clocks the client interface with the physical interface<br />
clock, while also providing the client with a clock enable. At 1 Gb/s, the physical interface<br />
clock is 125 MHz, which is also required by the client; the clock enable is constantly held<br />
High. At 100 Mb/s, the physical interface clock is 25 MHz, which is twice that required by<br />
the client. The clock enable toggles on alternative 25 MHz clock cycles to enable the client<br />
logic at the resultant rate of 12.5 MHz.<br />
This methodology is applied similarly to the receiver path. GMII/MII and RGMII physical<br />
interfaces can all use this clocking scheme at all three <strong>Ethernet</strong> speeds.<br />
Figure B-3 shows clock logic instantiated in the <strong>FPGA</strong> logic when using the clock enables.<br />
Refer to “Clock Definitions and Frequencies,” page 211 for relationships between clocks<br />
and clock enables). Figure B-3 and the text that follows describe how the clock signals<br />
required to use the <strong>Ethernet</strong> <strong>MAC</strong> can be derived from the output clocks (and clock<br />
enables) from the <strong>Ethernet</strong> <strong>MAC</strong>s clock generator.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 209<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Appendix B: <strong>Ethernet</strong> <strong>MAC</strong> Clocks<br />
TX<br />
Client<br />
Logic CE<br />
RX CE<br />
Client<br />
Logic<br />
GND<br />
GND<br />
<strong>Ethernet</strong> <strong>MAC</strong> Block<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
Figure B-3: Overview of <strong>Ethernet</strong> <strong>MAC</strong> Clock Connections to and from the <strong>FPGA</strong> Logic using Clock<br />
Enables<br />
Note: There are some complications in the use of the E<strong>MAC</strong>#CLIENTTXACK signal when using this<br />
Clock Enable scheme. Refer to the specific physical interface section in Chapter 6 for details.<br />
Transmitter Clock<br />
Clock Generator<br />
Output Clock Products<br />
Input Clock Sources<br />
TX<br />
Client<br />
Datapath<br />
RX<br />
Client<br />
Datapath<br />
TX<br />
PHY<br />
Datapath<br />
RX<br />
PHY<br />
Datapath<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
E<strong>MAC</strong>#PHYTXCLK<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
PHYE<strong>MAC</strong>#RXCLK<br />
<strong>UG194</strong>_B_03_072206<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT can be placed onto global clock routing and used to clock<br />
all of the transmitter physical logic. This resultant clock is then fed back into the <strong>Ethernet</strong><br />
<strong>MAC</strong> on the PHYE<strong>MAC</strong>#TXGMIIMIICLKIN, where it is used to derive the internal clock<br />
used for the entire transmitter datapath (both physical and client). This has the effect of<br />
eliminating clock skew between the <strong>Ethernet</strong> <strong>MAC</strong> and the <strong>FPGA</strong> logic (caused by the<br />
global clock routing), enabling data to be reliably transferred between the two.<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT is no longer used as a clock but instead as a clock<br />
enable. Every flip-flop of the transmitter client logic can be clocked with the clock<br />
connected to PHYE<strong>MAC</strong>#TXGMIIMIICLKIN, providing it has its clock enable connected as<br />
illustrated. This configuration saves global clock resources when compared with the non<br />
clock enable approach.<br />
210 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
BUFG<br />
NC<br />
TX<br />
PHY<br />
Logic<br />
TX Clock to PHY<br />
RX<br />
PHY<br />
Logic<br />
BUFG RX Clock from PHY<br />
R
R<br />
Receiver Clock<br />
Clock Definitions and Frequencies<br />
The Physical clock for the receiver interface is sourced by the connected PHY. When placed<br />
onto global clock routing, this resultant clock is also fed into the <strong>Ethernet</strong> <strong>MAC</strong> on the<br />
PHYE<strong>MAC</strong>#RXCLK port. This is used to derive the internal clock used for the receiver<br />
datapath (both physical and client). This enables data to be reliably transferred from the<br />
<strong>FPGA</strong> logic into the <strong>Ethernet</strong> <strong>MAC</strong>.<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT is no longer used as a clock but instead as a clock<br />
enable. Every flip-flop of the receiver client logic can be clocked with the clock connected<br />
to PHYE<strong>MAC</strong>#RXCLK, providing it has its clock enable connected as illustrated. This<br />
configuration saves global clock resources when compared with the non-clock enable<br />
approach.<br />
Byte PHY<br />
For GMII transmitter operation at 1 Gb/s, both client and physical interfaces have an 8-bit<br />
datapath operating at 125 MHz. If 1 Gb/s is the only speed of interest, a single clock<br />
domain can be used for both client and physical interfaces.<br />
For MII transmitter operation at 100 Mb/s, the client interface still has an 8-bit datapath,<br />
that now operates at 12.5 MHz. However, in the standard operating mode, the physical<br />
interface width drops to 4 bits, requiring a clock at twice the frequency (25 MHz).<br />
In Byte PHY mode, the <strong>Ethernet</strong> <strong>MAC</strong> always outputs the physical interface as an 8-bit<br />
datapath, regardless of operating speed. Therefore, at 100 Mb/s, the data is output as an<br />
8-bit datapath at a frequency of 12.5 MHz. This enables the client and physical interface to<br />
share the same clock domain. The same situation occurs also for 10 Mb/s with a shared<br />
clock of frequency 1.25 MHz.<br />
When performing GMII at 1 Gb/s, the physical interface datapath is the correct width at<br />
8 bits. When performing MII at 10/100 Mb/s, the physical interface datapath is of an<br />
incorrect width. The datapath has to be converted from eight bits to the correct width of<br />
four bits using the DDR output registers in the IOBs.<br />
This methodology is applied similarly to the receiver path to provide a GMII/MII<br />
compatible physical interface.<br />
Please refer to “GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Byte PHY,” page<br />
149 for further information and for the specific clocking diagram.<br />
Clock Definitions and Frequencies<br />
The following sections provide definitions for all of the <strong>Ethernet</strong> <strong>MAC</strong> input and output<br />
clocks, which are often mode dependent. Specific clocking schemes, which are optimized<br />
for the chosen physical interface, are provided in Chapter 6, “Physical Interface.”<br />
Chapter 6 provides useful reference material when studying the following sections.<br />
PHYE<strong>MAC</strong>#GTXCLK<br />
MII Only <strong>Mode</strong> (10/100 Mb/s Operation)<br />
This clock signal is unused and can be connected to logic 0.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 211<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Appendix B: <strong>Ethernet</strong> <strong>MAC</strong> Clocks<br />
All Other <strong>Mode</strong>s<br />
All transmitter clocks, both client and physical, are derived from this clock source with one<br />
exception: it is not used for 10/100 Mb/s operation when using the MII. For all other<br />
modes, PHYE<strong>MAC</strong>#GTXCLK is required and should be connected to a 125 MHz reference<br />
clock source, which is within the IEEE Std 802.3 specification (100 ppm).<br />
Table B-1: PHYE<strong>MAC</strong>#GTXCLK Clock Frequencies<br />
PHYE<strong>MAC</strong>#MIITXCLK<br />
MII or <strong>Tri</strong>-Speed GMII <strong>Mode</strong>s<br />
PHYE<strong>MAC</strong>#MIITXCLK is used as the transmitter reference clock source when using the MII,<br />
where this clock is provided by the attached external PHY device.<br />
Table B-2: PHYE<strong>MAC</strong>#MIITXCLK Clock Frequencies<br />
1000BASE-X PCS/PMA (16-Bit Data Client) <strong>Mode</strong><br />
When operating in 1000BASE-X PCS/PMA (see “16-Bit Data Client”), this clock input<br />
should be connected to a clock source that is half the frequency of the clock input into the<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN port.<br />
All Other <strong>Mode</strong>s<br />
This clock signal is unused and can be connected to logic 0.<br />
PHYE<strong>MAC</strong>#RXCLK<br />
Clock Signal Direction<br />
GMII (non-Byte PHY), MII, and RGMII <strong>Mode</strong>s<br />
Operating Speed<br />
1000 Mb/s 100 Mb/s 10 Mb/s<br />
PHYE<strong>MAC</strong>#GTXCLK Input 125 MHz 125 MHz 125 MHz<br />
Clock Signal Direction<br />
Operating Speed<br />
1000 Mb/s 100 Mb/s 10 Mb/s<br />
PHYE<strong>MAC</strong>#MIITXCLK Input n/a 25 MHz 2.5 MHz<br />
The clock signal input into PHYE<strong>MAC</strong>#RXCLK is sourced by the external PHY device and<br />
should be used by the <strong>FPGA</strong> logic to clock the receiver physical interface logic. Internally<br />
in the <strong>Ethernet</strong> <strong>MAC</strong>, this clock is used to derive all physical and client receiver clocks.<br />
Table B-3: PHYE<strong>MAC</strong>#RXCLK Clock Frequencies<br />
Clock Signal Direction<br />
Operating Speed<br />
1000 Mb/s 100 Mb/s 10 Mb/s<br />
PHYE<strong>MAC</strong>#RXCLK Input 125 MHz 25 MHz 2.5 MHz<br />
212 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
GMII (Byte PHY) <strong>Mode</strong><br />
Clock Definitions and Frequencies<br />
The clock signal input into PHYE<strong>MAC</strong>#RXCLK is sourced by the external PHY device at<br />
1 Gb/s. At 10/100 Mb/s speeds, this clock should also originate from the external PHY<br />
device but its frequency is divided by two in the <strong>FPGA</strong> logic (see “GMII Clock<br />
Management for <strong>Tri</strong>-Speed Operation Using Byte PHY”). The resultant clock should be<br />
used by the <strong>FPGA</strong> logic to clock the receiver client and physical interface logic. Internally<br />
in the <strong>Ethernet</strong> <strong>MAC</strong>, this clock is used to derive all physical and client receiver clocks.<br />
Table B-4: PHYE<strong>MAC</strong>#RXCLK Clock Frequencies<br />
Clock Signal Direction<br />
SGMII and 1000BASE-X PCS/PMA (8-Bit Data Client) <strong>Mode</strong>s<br />
This clock signal is unused and can be connected to logic 0.<br />
1000BASE-X PCS/PMA (16-Bit Data Client) <strong>Mode</strong><br />
When operating in 1000BASE-X PCS/PMA (see “16-Bit Data Client”), this clock input<br />
should be connected to a clock source that is half the frequency of the clock input into the<br />
PHYE<strong>MAC</strong>#GTXCLK port.<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT, PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
MII, GMII (non-Byte PHY), and RGMII <strong>Mode</strong>s<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT is created by the clock generator to provide the frequencies<br />
defined in Table B-5.<br />
The clock signal input into the PHYE<strong>MAC</strong>#TXGMIIMIICLKIN port should be used to clock<br />
the transmitter physical interface logic. This can be derived from<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT as illustrated in Figure B-2 and Figure B-3.<br />
GMII (Byte PHY) <strong>Mode</strong><br />
Operating Speed<br />
1000 Mb/s 100 Mb/s 10 Mb/s<br />
PHYE<strong>MAC</strong>#RXCLK Input 125 MHz 12.5 MHz 1.25 MHz<br />
Table B-5: E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT, PHYE<strong>MAC</strong>#TXGMIIMIICLKIN Clock<br />
Frequencies<br />
Clock Signal Direction<br />
Operating Speed<br />
1000 Mb/s 100 Mb/s 10 Mb/s<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT Output 125 MHz 25 MHz 2.5 MHz<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN Input 125 MHz 25 MHz 2.5 MHz<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT is created by the clock generator to provide the frequencies<br />
defined in Table B-6. In Byte PHY mode, this should only be used at 1 Gb/s.<br />
The clock signal input into PHYE<strong>MAC</strong>#TXGMIIMIICLKIN should be derived from<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT at 1 Gb/s. At 10/100 Mb/s speeds, this clock should<br />
originate from the external PHY device but its frequency is divided by two in the <strong>FPGA</strong><br />
logic (see “GMII Clock Management for <strong>Tri</strong>-Speed Operation Using Byte PHY”). The<br />
resultant clock should be used by the <strong>FPGA</strong> logic to clock the transmitter client and<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 213<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Appendix B: <strong>Ethernet</strong> <strong>MAC</strong> Clocks<br />
physical interface logic. Internally in the <strong>Ethernet</strong> <strong>MAC</strong>, this clock is used to derive all<br />
physical and client transmitter clocks.<br />
Table B-6: E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT, PHYE<strong>MAC</strong>#TXGMIIMIICLKIN Clock<br />
Frequencies<br />
SGMII and 1000BASE-X PCS/PMA <strong>Mode</strong>s<br />
These clock signals are unused. E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT should be left<br />
unconnected, and PHYE<strong>MAC</strong>#TXGMIIMIICLKIN should be connected to logic 0.<br />
E<strong>MAC</strong>#PHYTXCLK<br />
This clock signal is not used in normal operation and should be left unconnected.<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT, CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
Clock Enables Not in Use<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT is created by the clock generator to provide the<br />
frequencies defined in Table B-7.<br />
The clock signal input into the CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN port should be used to<br />
clock the transmitter client interface logic. This can be derived from<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT as illustrated in Figure B-2.<br />
Table B-7: E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT, CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
Clock Frequencies<br />
Clock Enables in Use<br />
Clock Signal Direction<br />
Operating Speed<br />
1000 Mb/s 100 Mb/s 10 Mb/s<br />
E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT Output 125 MHz n/a n/a<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN Input 125 MHz 12.5 MHz 1.25 MHz<br />
Clock Signal Direction<br />
Operating Speed<br />
1000 Mb/s 100 Mb/s 10 Mb/s<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT Output 125 MHz 12.5 MHz 1.25 MHz<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN Input 125 MHz 12.5 MHz 1.25 MHz<br />
CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN is unused and can be connected to logic 0.<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT is a clock enable rather than a clock. This clock enable is<br />
synchronous to the clock input into the PHYE<strong>MAC</strong>#TXGMIIMIICLKIN port as illustrated in<br />
Figure B-3. All transmitter client logic should be clocked from<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN and should use E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT as a clock<br />
enable as illustrated in Figure B-3.<br />
214 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Clock Definitions and Frequencies<br />
Table B-8 shows the relationship between the PHYE<strong>MAC</strong>#TXGMIIMIICLKIN clock and the<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT clock enable.<br />
Table B-8: E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT, CLIENTE<strong>MAC</strong>#TXCLIENTCLKIN<br />
Clock Frequencies<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT, CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
Clock Enables Not in Use<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT is created by the clock generator to provide the<br />
frequencies defined in Table B-9.<br />
The clock signal input into the CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN port should be used to<br />
clock the receiver client interface logic. This can be derived from<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT as illustrated in Figure B-2.<br />
Table B-9: E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT, CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN<br />
Clock Frequencies<br />
Clock Enables in Use<br />
Clock Signal Direction<br />
Operating Speed<br />
1000 Mb/s 100 Mb/s 10 Mb/s<br />
PHYE<strong>MAC</strong>#TXGMIIMIICLKIN Input 125 MHz 25 MHz 2.5 MHz<br />
E<strong>MAC</strong>#CLIENTTXCLIENTCLKOUT<br />
Output<br />
Clock Signal Direction<br />
Held at<br />
logic 1<br />
Alternates between<br />
logic 0 and 1 to produce<br />
half clock rate<br />
Operating Speed<br />
1000 Mb/s 100 Mb/s 10 Mb/s<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT Output 125 MHz 12.5 MHz 1.25 MHz<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN Input 125 MHz 12.5 MHz 1.25 MHz<br />
CLIENTE<strong>MAC</strong>#RXCLIENTCLKIN is unused and can be connected to logic 0.<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT is a clock enable rather than a clock. This clock enable is<br />
synchronous to the clock input into the port PHYE<strong>MAC</strong>#RXCLK as illustrated in Figure B-3.<br />
All receiver client logic should be clocked from the clock input PHYE<strong>MAC</strong>#RXCLK and<br />
should use E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT as a clock enable as illustrated in Figure B-3.<br />
Table B-10 shows the relationship between the PHYE<strong>MAC</strong>#RXCLK clock and the<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT clock enable.<br />
Table B-10: E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT, PHYE<strong>MAC</strong>#MIITXCLK Clock<br />
Frequencies<br />
Clock Signal Direction<br />
Operating Speed<br />
1000 Mb/s 100 Mb/s 10 Mb/s<br />
PHYE<strong>MAC</strong>#RXCLK Input 125 MHz 25 MHz 2.5 MHz<br />
E<strong>MAC</strong>#CLIENTRXCLIENTCLKOUT<br />
Output<br />
Held at<br />
logic 1<br />
Alternates between<br />
logic 0 and 1 to produce<br />
half clock rate<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 215<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Appendix B: <strong>Ethernet</strong> <strong>MAC</strong> Clocks<br />
216 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
<strong>Virtex</strong>-4 to <strong>Virtex</strong>-5 <strong>FPGA</strong><br />
Enhancements<br />
New Features<br />
Appendix C<br />
The <strong>Virtex</strong>®-5 <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> is derived from the <strong>Virtex</strong>-4 <strong>FPGA</strong><br />
<strong>Embedded</strong> <strong>Tri</strong>-mode <strong>Ethernet</strong> <strong>MAC</strong> with some key enhancements and a few minor<br />
modifications, as documented in this appendix.<br />
The <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> is a stand-alone block located in<br />
the block RAM columns. It is no longer resides inside in the processor block, as is the case<br />
for <strong>Virtex</strong>-4 <strong>FPGA</strong> <strong>Ethernet</strong> <strong>MAC</strong>s.<br />
Unidirectional Enable<br />
Unidirectional enable is a new mode that allows <strong>Ethernet</strong> <strong>MAC</strong> to transmit even while<br />
there is a loss of synchronization at the receiver (1000BASE-X PCS/PMA or SGMII modes).<br />
This mode can be turned on/off via an MDIO write and its value can be read from bit 0.5<br />
in the PCS Configuration Register 0. This bit is also new in the IEEE 802.3 specification and<br />
was previously reserved. The default value of this register bit is set by the<br />
E<strong>MAC</strong>#_UNIDIRECTION_ENABLE attribute, as described in “Additional Attributes,”<br />
page 221.<br />
Programmable Auto-Negotiation Link Timer<br />
GT Loopback<br />
A programmable link timer interrupt value for auto-negotiation is available in the <strong>Virtex</strong>-5<br />
<strong>FPGA</strong> <strong>Ethernet</strong> <strong>MAC</strong> for 1000BASE-X PCS/PMA or SGMII modes. This value is set using<br />
the E<strong>MAC</strong>#_LINKTIMERVAL[8:0] attribute, as described in “Additional Attributes,” page<br />
221.<br />
This mode allows the position of the loopback to be selected between loopback in the<br />
RocketIO serial transceiver or a loopback internal to the <strong>Ethernet</strong> <strong>MAC</strong>. This is<br />
applicable for 1000BASE-X PCS/PMA or SGMII modes only. When the loopback is<br />
internal to the <strong>Ethernet</strong> <strong>MAC</strong>, a constant stream of Idle code groups are transmitted<br />
through the RocketIO serial transceiver. The E<strong>MAC</strong>#_GTLOOPBACK attribute, as<br />
described in “Additional Attributes,” page 221, can be used to select the default position of<br />
the loopback.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 217<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Appendix C: <strong>Virtex</strong>-4 to <strong>Virtex</strong>-5 <strong>FPGA</strong> Enhancements<br />
DCR Bus Modifications<br />
In <strong>Virtex</strong>-5 devices, the DCR bus signals can be directly accessed in the <strong>FPGA</strong> logic;<br />
whereas in <strong>Virtex</strong>-4 devices, these signals are inaccessible because they are directly<br />
connected to the PowerPC processor.<br />
The PowerPC 405 processor is the current standard in <strong>Virtex</strong>-4 <strong>FPGA</strong>s. Changing<br />
processors requires some changes to the DCR acknowledge operation. These changes<br />
are backward-compatible. In the XPS_LL_TE<strong>MAC</strong> soft core that is delivered through<br />
the XPS tool, the DCR bus is not exposed. The core contains a bridge to enable the<br />
control of the <strong>Ethernet</strong> <strong>MAC</strong> via the PLB v4.6 interface. For more information on the<br />
PLB v4.6 interface, see DS531, Processor Local Bus (PLB) v4.6 (v1.00a).<br />
The DCR register definitions have been modified. In <strong>Virtex</strong>-4 <strong>FPGA</strong> designs, the DCR<br />
registers holds information about E<strong>MAC</strong>0 and E<strong>MAC</strong>1 in the same register. In<br />
<strong>Virtex</strong>-5 <strong>FPGA</strong> designs, information on each E<strong>MAC</strong> is be accessed specifically<br />
through the E<strong>MAC</strong>0_DCRBASEADDR and E<strong>MAC</strong>1_DCRBASEADDR registers.<br />
There have also been changes to the DCR register addressing. This change requires<br />
<strong>Virtex</strong>-4 <strong>FPGA</strong> designs to update the address schemes. In <strong>Virtex</strong>-4 <strong>FPGA</strong> designs, the<br />
DCR bus is responsible for decoding the user-defined DCR_BASEADDR to enable the<br />
E<strong>MAC</strong> host interface access. In <strong>Virtex</strong>-5 <strong>FPGA</strong> designs, the interface only responds to<br />
accesses made to addresses matching the E<strong>MAC</strong>#_DCRBASEADDR attributes.<br />
Table C-1 shows the modifications to the DCR register addressing.<br />
Clocking Scheme Enhancements<br />
Host Clock<br />
Table C-1: DCR Register Address Modifications<br />
DCR Register <strong>Virtex</strong>-4 <strong>FPGA</strong> Address <strong>Virtex</strong>-5 <strong>FPGA</strong> Address<br />
dataRegMSW DCR_BASEADDR_00 E<strong>MAC</strong>#_DCRBASEADDR_00<br />
dataRegLSW DCR_BASEADDR_01 E<strong>MAC</strong>#_DCRBASEADDR_01<br />
cntlReg DCR_BASEADDR_10 E<strong>MAC</strong>#_DCRBASEADDR_10<br />
RdyStatus DCR_BASEADDR_11 E<strong>MAC</strong>#_DCRBASEADDR_11<br />
The <strong>Virtex</strong>-4 HOSTCLK input clock has to be supplied at all times even if the host interface<br />
is not used. In <strong>Virtex</strong>-5 designs, when neither the generic host bus nor the DCR bus are<br />
enabled, this clock input can be connected to logic 0.<br />
Advanced Clocking Schemes<br />
In the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong>, two advanced clocking schemes<br />
are available, named “Clock Enables” and “Byte PHY.” In <strong>Virtex</strong>-4 <strong>FPGA</strong> designs, these<br />
clocking schemes can be implemented in the <strong>FPGA</strong> logic but for a smaller subset of<br />
physical interface configurations. “Advanced Clocking Schemes,” page 208 provides<br />
further details on theses clocking schemes.<br />
218 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Clock Enables<br />
Modifications Related to the Physical Interface<br />
<strong>Virtex</strong>-4 <strong>FPGA</strong> clock enable signals are created in the <strong>FPGA</strong> logic, resulting in a clocking<br />
scheme that halves the global clock usage when using the MII physical interface for<br />
10 Mb/s or 100 Mb/s.<br />
The <strong>Virtex</strong>-5 <strong>FPGA</strong> clock enables are provided by the <strong>Ethernet</strong> <strong>MAC</strong> to the <strong>FPGA</strong> logic,<br />
and their use has extended to cover MII, GMII, and RGMII interfaces at all three <strong>Ethernet</strong><br />
speeds.<br />
Byte PHY<br />
For <strong>Virtex</strong>-4 <strong>FPGA</strong> designs, a solution is possible in the <strong>FPGA</strong> logic that halves the global<br />
clock usage when using the GMII/MII physical interface at all three speeds. But, it only<br />
supports full-duplex mode.<br />
In <strong>Virtex</strong>-5 <strong>FPGA</strong> designs, the Byte PHY functionality is extended to cover the GMII/MII,<br />
again at all three speeds but supports both full- and half-duplex modes.<br />
Modifications Related to the Physical Interface<br />
Collision Handling<br />
In <strong>Virtex</strong>-4 <strong>FPGA</strong> designs, the GMII_COL/MII_COL signal (half-duplex mode collision<br />
indicator from GMII/MII interface) had to be lengthened in the <strong>FPGA</strong> logic. In <strong>Virtex</strong>-5<br />
<strong>FPGA</strong> designs, the signal can be input directly to the PHYE<strong>MAC</strong>#COL port of the <strong>Ethernet</strong><br />
<strong>MAC</strong>.<br />
RGMII Version 2.0 Clock Management<br />
Port Map Changes<br />
In <strong>Virtex</strong>-5 <strong>FPGA</strong> designs, an ODELAY design element can be used to simplify the<br />
generation of 2 ns skew between the transmit clock and data at the <strong>FPGA</strong> device pads. This<br />
is part of the IOB and clock logic that can be used with the <strong>Ethernet</strong> <strong>MAC</strong> to meet the<br />
RGMII v2.0 physical interface specification.<br />
The following name changes occurred to clarify functionality:<br />
E<strong>MAC</strong>#CLIENTTXGMIIMIICLKOUT changed to E<strong>MAC</strong>#PHYTXGMIIMIICLKOUT<br />
CLIENTE<strong>MAC</strong>#TXGMIIMIICLKIN changed to PHYE<strong>MAC</strong>#TXGMIIMIICLKIN<br />
The following ports were removed:<br />
E<strong>MAC</strong>#CLIENTRXDVREG6: In <strong>Virtex</strong>-4 devices, this signal is reserved and not used.<br />
TIEE<strong>MAC</strong>#CONFIGVEC[79:0]: This port has been replaced by attributes<br />
TIEE<strong>MAC</strong>#UNICASTADDR[47:0]: This port has been replaced by an attribute.<br />
The following port was added to enable advanced clocking schemes to be used:<br />
E<strong>MAC</strong>#SPEEDIS10100<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 219<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Appendix C: <strong>Virtex</strong>-4 to <strong>Virtex</strong>-5 <strong>FPGA</strong> Enhancements<br />
Tie-Off Pins Changed to Attributes<br />
The <strong>Virtex</strong>-4 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> has 80 tie-off pins<br />
(TIEE<strong>MAC</strong>#CONFIGVEC[79:0]) that can be used to configure the <strong>Ethernet</strong> <strong>MAC</strong> at<br />
power-up or when the <strong>Ethernet</strong> <strong>MAC</strong> is reset.<br />
In the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong>, these 80 tie-off pins have been<br />
replaced with attributes. Table C-2 shows how the <strong>Virtex</strong>-5 <strong>FPGA</strong> attributes relate to the<br />
<strong>Virtex</strong>-4 <strong>FPGA</strong> tie-off pins.<br />
Table C-2: Mapping Tie-Off Pin Names to Attribute Names<br />
<strong>Virtex</strong>-4 <strong>FPGA</strong> Tie-off Pin Name <strong>Virtex</strong>-5 <strong>FPGA</strong> Attribute Name<br />
TIEE<strong>MAC</strong>#CONFIGVEC[79] E<strong>MAC</strong>#_CONFIGVEC_79<br />
TIEE<strong>MAC</strong>#CONFIGVEC[78] E<strong>MAC</strong>#_PHYRESET<br />
TIEE<strong>MAC</strong>#CONFIGVEC[77] E<strong>MAC</strong>#_PHYINITAUTONEG_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[76] E<strong>MAC</strong>#_PHYISOLATE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[75] E<strong>MAC</strong>#_PHYPOWERDOWN<br />
TIEE<strong>MAC</strong>#CONFIGVEC[74] E<strong>MAC</strong>#_PHYLOOPBACKMSB<br />
TIEE<strong>MAC</strong>#CONFIGVEC[73] E<strong>MAC</strong>#_MDIO_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[72] E<strong>MAC</strong>#_SPEED_MSB<br />
TIEE<strong>MAC</strong>#CONFIGVEC[71] E<strong>MAC</strong>#_SPEED_LSB<br />
TIEE<strong>MAC</strong>#CONFIGVEC[70] E<strong>MAC</strong>#_RGMII_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[69] E<strong>MAC</strong>#_SGMII_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[68] E<strong>MAC</strong>#_1000BASEX_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[67] E<strong>MAC</strong>#_HOST_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[66] E<strong>MAC</strong>#_TX16BITCLIENT_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[65] E<strong>MAC</strong>#_RX16BITCLIENT_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[64] E<strong>MAC</strong>#_ADDRFILTER_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[63] E<strong>MAC</strong>#_LTCHECK_DISABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[62] E<strong>MAC</strong>#_RXFLOWCTRL_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[61] E<strong>MAC</strong>#_TXFLOWCTRL_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[60] E<strong>MAC</strong>#_TXRESET<br />
TIEE<strong>MAC</strong>#CONFIGVEC[59] E<strong>MAC</strong>#_TXJUMBOFRAME_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[58] E<strong>MAC</strong>#_TXINBANDFCS_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[57] E<strong>MAC</strong>#_TX_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[56] E<strong>MAC</strong>#_TXVLAN_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[55] E<strong>MAC</strong>#_TXHALFDUPLEX<br />
TIEE<strong>MAC</strong>#CONFIGVEC[54] E<strong>MAC</strong>#_TXIFGADJUST_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[53] E<strong>MAC</strong>#_RXRESET<br />
220 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Additional Attributes<br />
Table C-2: Mapping Tie-Off Pin Names to Attribute Names (Cont’d)<br />
Additional Attributes<br />
<strong>Virtex</strong>-4 <strong>FPGA</strong> Tie-off Pin Name <strong>Virtex</strong>-5 <strong>FPGA</strong> Attribute Name<br />
TIEE<strong>MAC</strong>#CONFIGVEC[52] E<strong>MAC</strong>#_RXJUMBOFRAME_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[51] E<strong>MAC</strong>#_RXINBANDFCS_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[50] E<strong>MAC</strong>#_RX_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[49] E<strong>MAC</strong>#_RXVLAN_ENABLE<br />
TIEE<strong>MAC</strong>#CONFIGVEC[48] E<strong>MAC</strong>#_RXHALFDUPLEX<br />
TIEE<strong>MAC</strong>#CONFIGVEC[47:0] E<strong>MAC</strong>#_PAUSEADDR[47:0]<br />
In addition to the tie-off pins being converted to attributes, six new parameters have been<br />
added to the <strong>Virtex</strong>-5 <strong>FPGA</strong> <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> that are also controlled by<br />
attributes. The following list provides a brief summary:<br />
E<strong>MAC</strong>#_DCRBASEADDR[0:7]: Separate DCR base addresses are specified for each<br />
<strong>Ethernet</strong> <strong>MAC</strong>.<br />
E<strong>MAC</strong>#_UNIDIRECTION_ENABLE: Allows the <strong>Ethernet</strong> <strong>MAC</strong> to transmit even<br />
while loss of synchronization at the receiver (1000BASE-X PCS/PMA or SGMII<br />
mode).<br />
E<strong>MAC</strong>#_LINKTIMERVAL[8:0]: Programmable link timer interrupt value for autonegotiation<br />
(1000BASE-X PCS/PMA or SGMII mode).<br />
E<strong>MAC</strong>#_BYTEPHY: Optional advanced clocking scheme to reduce use of global clock<br />
resources.<br />
E<strong>MAC</strong>#_USECLKEN: Optional advanced clocking scheme to reduce use of global<br />
clock resources. This mode switches the client interface clock output to become a clock<br />
enable.<br />
E<strong>MAC</strong>#_GTLOOPBACK: Enables loopback in the RocketIO serial transceiver,<br />
otherwise an internal loopback is used (1000BASE-X PCS/PMA or SGMII mode).<br />
More detailed information can be found in Chapter 2.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 221<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Appendix C: <strong>Virtex</strong>-4 to <strong>Virtex</strong>-5 <strong>FPGA</strong> Enhancements<br />
222 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R
R<br />
Appendix D<br />
Differences between Soft IP Cores and<br />
the <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong><br />
This appendix describes the differences between the <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong><br />
block and the soft IP core solutions provided by the CORE Generator software. The<br />
functionality provided by the <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> can also be provided by<br />
linking together the <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> soft IP core and the <strong>Ethernet</strong> 1000BASE-X<br />
PCS/PMA or SGMII core. More details are available at:<br />
http://www.xilinx.com/products/design_resources/conn_central/protocols/gigabit_et<br />
hernet.htm<br />
There are, however, some differences in the operation of the soft IP cores and the <strong>Tri</strong>-<strong>Mode</strong><br />
<strong>Ethernet</strong> <strong>MAC</strong>. These differences are detailed below.<br />
Features Exclusive to the <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong><br />
The <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> tile features two <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong>s, each with<br />
optional PCS/PMA functionality. In addition, each <strong>Embedded</strong> <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong>:<br />
Supports 2 Gb/s operation with a 16-bit client interface.<br />
Includes an RGMII/SGMII status register. See “RGMII/SGMII Configuration<br />
Register,” page 93.<br />
Can be configured using the DCR bus.<br />
Features Exclusive to Soft IP Cores<br />
These features are exclusive to soft IP cores:<br />
The soft <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> core:<br />
Supports 1 GB half duplex mode for parallel physical interfaces.<br />
Supports control frames larger than 64 bytes.<br />
Includes a statistics bit to indicate an address match.<br />
Has parallel statistics outputs.<br />
TE<strong>MAC</strong> User Guide www.xilinx.com 223<br />
<strong>UG194</strong> (v1.10) February 14, 2011
Appendix D: Differences between Soft IP Cores and the <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong><br />
The soft PCS/PMA core:<br />
Supports the ten bit interface (TBI).<br />
Supports dynamic switching between 1000BASE-X PCS/PMA and SGMII.<br />
Outputs a status vector with bits that indicate:<br />
- The status of the link.<br />
- The status of the link synchronization state machine.<br />
- When the core is receiving /C/ ordered sets.<br />
- When the core is receiving /I/ ordered sets.<br />
- When the core is receiving invalid data.<br />
Soft PCS/PMA and <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong> cores:<br />
Can be connected together to provide a single <strong>Ethernet</strong> interface.<br />
Can be configured by a vector when the management interface is not required.<br />
The vector signals equate to attributes in the hard <strong>Tri</strong>-<strong>Mode</strong> <strong>Ethernet</strong> <strong>MAC</strong>.<br />
Can be targeted to a wide variety of <strong>Xilinx</strong>® devices.<br />
224 www.xilinx.com TE<strong>MAC</strong> User Guide<br />
<strong>UG194</strong> (v1.10) February 14, 2011<br />
R