In this Coupled MAC+PCS mode, the AXI4-Stream
interface provides an additional output: tx_axis_taf_N
(where N corresponds to the client port number). The tx_axis_taf_N output is an "almost full" indication that is provided to
ease AXI timing in applications where instantaneous tready deassertion might be difficult to accommodate. This taf signal is asserted at least one cycle ahead of tready deassertion. If the AXI (client input) and core (line
drain) data rates are comparable, the interval between taf assertion and tready deassertion
might be greater.
Furthermore, if the client deasserts tvalid, it might be that tready can never
be asserted. Regardless of whether the taf signal is
used or ignored by the user logic, deassertion of tready still causes an immediate bus stall in the cycle in which it
occurs: no data presented on the AXI bus is consumed until tready is reasserted.
The general principle of the taf signal is
that it indicates a bandwidth excess on behalf of the TX client driving the AXI bus.
When taf is asserted, the client must lower its input
data rate until taf is removed. The simplest approach
is to halt the data flow and deassert tvalid on the
cycle after taf is asserted. When the taf signal is not asserted, or starting the cycle after a
falling edge of the taf signal, tvalid must be asserted for all back-to-back cycles from the start of a
frame until it completes.
taf signal.taf Behavior
In some scenarios, the use of taf might
cause the DCMAC Subsystem to insert a small, but
measurable amount of unnecessary IDLE between TX frames. This extra IDLE can be avoided
in one of two ways:
- Increase the frequency of
tx_axi_clkby 3.5% above nominal for 100GE/200GE, or 10% above nominal for 400GE. - Configure the AXIS_TAF_BP_THRESH setting (see the CONFIGURATION_EMPTY7 register in
the dcmac-reg-map document) to
0x3F.
0x0. Additionally, if supported (recent versions of Vivado only), the IP wizard might automatically configure this setting
for you if TAF backpressure mode is selected during IP configuration.