Flow control implementation example – Xilinx LOGICORE UG144 User Manual

Page 58

Advertising
background image

58

www.xilinx.com

1-Gigabit Ethernet MAC v8.5 User Guide

UG144 April 24, 2009

Chapter 6: Using Flow Control

R

-- DISCONTINUED PRODUCT --

Flow Control Implementation Example

This section provides a basic overview of a Flow Control implementation, using

Figure 6-1

as a sample. To summarize the example, the user MAC on the left hand side of the figure
cannot match the full line rate of the link partner MAC on the right hand side due to clock
tolerances. Over time, the FIFO illustrated will fill and overflow. The goal is to implement
a flow control method which will (over a long time period) reduce the average line rate of
the link partner MAC to that of the user MAC.

Method

1.

Choose a FIFO nearly full to occupancy threshold (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,
from the user MAC, with 0xFFFF used as the pause_quantum duration (0xFFFF is
placed on pause_val[15:0]). This is the maximum pause duration. This causes the
link partner MAC to cease transmission, and the FIFO of the user system will start to
empty.

2.

Choose a second FIFO occupancy threshold (3/4 is used in this description—but the
choice of threshold is implementation specific). When the occupancy of the FIFO falls
below this occupancy, initiate a second pause control frame from the user MAC, 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
link partner MAC immediately resumes transmission (it does not wait for the original
requested pause duration to expire). This pause control frame can therefore be
considered a “pause cancel” command.

Advertising