NonBlocking Mode - 6.0 English - PG104

Complex Multiplier LogiCORE IP Product Guide (PG104)

Document ID
PG104
Release Date
2024-11-26
Version
6.0 English

The term NonBlocking means that lack of data on one input channel does not block the execution of an operation if data is received on another input channel. The full flow control of AXI4-Stream is not always required. Blocking or NonBlocking behavior is selected using the FlowControl parameter or GUI field. The Complex Multiplier core supports a NonBlocking mode in which the AXI4-Stream channels do not have TREADY, that is, they do not support back pressure. The choice of Blocking or NonBlocking applies to the whole core, not each channel individually. Channels still have the non-optional TVALID signal, which is analogous to the New Data (ND) signal on many cores prior to the adoption of AXI4-Stream. Without the facility to block dataflow, the internal implementation is much simplified, so fewer resources are required for this mode. This mode is recommended for users wishing to move to this version from a pre-AXI version with minimal change.

When all of the present input channels receive an active TVALID, an operation is validated and the output TVALID (suitably delayed by the latency of the core) is asserted to qualify the result. Operations occur on every enabled clock cycle and data is presented on the output channel payload fields regardless of TVALID. This is to allow a minimal migration from v3.1. The following figure shows the NonBlocking behavior for a case with latency of one cycle.

Important: For performance, ARESETn is registered internally, which delays its action by a clock cycle. The effect of this is that any transaction input in the cycle following the deassertion of ARESETn is reset by the action of ARESETn, resulting in an output data value of zero. TVALID is also inactive on the output channel for this cycle.
Figure 1. NonBlocking Mode