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
will
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 should 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 by increasing the
frequency of tx_axi_clk
by 3.5% above nominal for
100GE/200GE and 10% above nominal for 400GE.