![Xilinx Virtex-4 RocketIO Скачать руководство пользователя страница 64](http://html1.mh-extra.com/html/xilinx/virtex-4-rocketio/virtex-4-rocketio_user-manual_3383739064.webp)
64
Embedded Tri-Mode Ethernet MAC User Guide
UG074 (v2.2) February 22, 2010
Chapter 3:
Client, Host, and MDIO Interfaces
R
If the frame passes all of the previous checks, is of minimum legal size, and the Ethernet
MAC flow control logic for the receiver is enabled, then the pause value parameter in the
frame is used to inhibit transmitter operation for a time defined in the IEEE Std 802.3-2002
specification. This inhibit is implemented using the same back pressure scheme shown in
. Because the received pause frame is completed, it is passed to the client with
EMAC#CLIENTRXBADFRAME asserted, indicating to the client that the frame should be
dropped.
If the second match is true and the frame is not 64 bytes in length, the reception of any
frame is considered to be an invalid control frame. This frame is ignored by the flow
control logic and passed to the client with EMAC#CLIENTRXBADFRAME asserted.
EMAC#CLIENTRXBADFRAME will be asserted even if flow control is not enabled.
Flow Control Implementation Example
In the system illustrated in
, the Ethernet MAC on the left side of the figure
cannot match the full line rate of the right Ethernet MAC due to clock tolerances. Over
time, the FIFO fills and overflows.
This example implements a flow control method to reduce, over a long time period, the full
line rate of the right Ethernet MAC to less than the full line rate capability of the left
Ethernet MAC.
Method
1.
Choose a FIFO with a nearly full occupancy threshold. A 7/8 occupancy is used in this
description, but the choice of threshold is implementation specific. When the
occupancy of the FIFO exceeds this occupancy, initiate a single pause control frame
with
0xFFFF
used as the
pause_quantum
duration (
0xFFFF
is placed on
pause_val[15:0]). This is the maximum pause duration and causes the right Ethernet
MAC to cease transmission and the FIFO of the left Ethernet MAC to start emptying.
2.
Choose a second FIFO with an occupancy threshold of 3/4 (the choice of threshold is
implementation specific). When the occupancy of the FIFO falls below this occupancy,
initiate a second pause control frame with
0x0000
used as the
pause_quantum
duration
(
0x0000
is placed on pause_val[15:0]). This indicates a zero pause duration, and upon
receiving this pause control frame, the right Ethernet MAC immediately resumes
transmission (i.e., there is no wait for the original requested pause duration to expire).
This PAUSE control frame can, therefore, be considered a “pause cancel” command.
www.BDTIC.com/XILINX