Triple-Speed Ethernet Intel® FPGA IP User Guide: Agilex™ 3 and Agilex™ 5 FPGAs and SoCs
A newer version of this document is available. Customers should click here to go to the newest version.
10.2.4. Congestion and Flow Control
When MAC receives an XOFF frame, it will complete the transfer of the current frame and stop transmission for the amount of time specified by the pause quanta in 512 bit (64 bytes) times increments.
Pause quanta = 2 , GMII IF
8 bit times = 1 clock cycle = 512 bit times = 64 clock cycles
Pause quanta time = 2 x 64 clock cycles = 128 clock cycles
Transmission resumes when timer (pause quanta time) expires or MAC function received an XON frame. Holdoff quanta specifies the gap between consecutive XOFF requests in 512 bit times increments.
- RX FIFO : rx_section_empty
- Register: XON/XOFF reg
- I/O pin : xon_gen / xoff_gen
- src addr = mac_0 and mac_1
- dest addr =01-80-C2-00-00-01
- Pad = 42 bytes of 0x00
- XOFF: [P1,P2] = value[pause_quant reg] XON: [P1,P2] = 0x0000
- Make sure the flow control feature option in the parameter editor is enabled. If this option is not enabled, all functions related to the flow control such as PAUSE_FWD, PAUSE_IGNORE, XON, and XOFF is disabled.
- Check flow control configuration settings such as:
- pause_quant and holdoff quant registers.
- command_config registers such as XON_GEN, XOFF_GEN, PAUSE_FWD, and PAUSE_IGNORE.
- Identify pause frame trigger condition.
- Identify pause quanta and holdoff quanta time.
- For TX: Set the pause quanta time by configuring the register.
- For RX: Check the pause quanta field in the received packet.
- Check the pause frame format packet.
- Ensure the simulation time is sufficient—at least more than the pause quanta time.
The figure above shows the simulation waveform where the MAC stopped transmitting packets after receiving XOFF frame. This occurs because the pause quanta value is set to 0x0100 instead of 0x0001 and the simulation time is not enough to cover the pause quanta time.