Send Pause Frame at TX

To send a PAUSE frame, assert tx_pause_gen to generate a PAUSE_REQUEST. port tx_pause_gen is pulse-based. Hence, you must assert it for 1 clock cycle. The assertion of port tx_pause_gen generates the PAUSE_REQUEST, and Ethernet 10G MAC core captures the request by asserting the output port tx_pause_busy. The PAUSE_REQUEST is only effective when tx_pause_busy = 1. Figure 1 shows how the PAUSE_REQUEST is sent from tx_pause_gen to the XGMII TX interface, including the corresponding statistics reporting.

The PAUSE_REQUEST has a higher priority over DATA frames. However, if a PAUSE_REQUEST arrives while a DATA frame is being transferred, it is queued and processed only after the ongoing DATA frame transfer completes.

Port TX_PAUSE_BUSY = 1 indicates a PAUSE_REQUEST is in the queue. When TX_PAUSE_BUSY = 1, you must not assert any new PAUSE_REQUEST.

Figure 1. Transmitting Pause Frame and Corresponding Statistic Reporting Increments

Figure 2. Priority at XGMII TX between TX_PAUSE_GEN and TX_AXI_ST