Float ABS TM
Time-multiplexed absolute value operator for IEEE 754 floating-point numbers based on Xilinx Floating Point IP. Supports single (32-bit) and double (64-bit) precision, and multiple TM phases (1-32) for zero-latency parallel computation in signal processing applications.
Introduction
This block computes the absolute value of IEEE 754 floating-point numbers using the Xilinx Floating Point IP core. The component supports Time Multiplexing (TM): multiple parallel computation units (phases) share the same clock cycle, enabling high sample rates with zero latency.
On every rising edge of CLK, if CE = 1 and READY_IN = 1, the operator performs
$$ \mathrm{F}(n) = |\mathrm{A}(n)|, $$
where both input and output are IEEE 754 floating-point values. The TM Factor property determines how many parallel instances are instantiated.
Pin Description
Floating-point input data, always TM.
Width: (Exponent + Mantissa) × TMFactor
- Single: 32 bits/phase → total 32×TMFactor
- Double: 64 bits/phase → total 64×TMFactor IEEE 754 format input for absolute value computation.
CE = 0 the operator is stalled.
Maps to s_axis_a_tvalid in the AXI Stream interface.
m_axis_result_tready. Default: ‘1’ if not connected.
m_axis_result_tvalid signals.
s_axis_a_tready signals.
Properties
Time Multiplexing factor (number of phases)
Number of time-multiplexed phases (parallel computation units). Range: 1 – 32. Higher values increase throughput proportionally but consume more FPGA resources (N instances of the Xilinx IP).Default: 4
Range: 1 – 32
Select between single precision 32 bit and double precision 64 bit
Floating-point format for both input and output:
Single→ IEEE 754 single precision (32-bit): 8 exp + 24 mantissaDouble→ IEEE 754 double precision (64-bit): 11 exp + 53 mantissa
Determines precision and range of the computation.
Default: Single
Options: Single Double
Functional description
The component wraps the Xilinx Floating Point IP (operation type: Absolute)
and replicates it N times (where N = TM Factor) to support time-multiplexed
data streams.
Input and Output
- Input
Ais always TM, with width(Exponent + Mantissa) × TMFactor - Output
Fis always TM, with the same width as input - Both maintain the selected precision (Single or Double)
Data valid and ready handshake
CE(input): Clock enable, controls all phases togetherDV(output): Data valid, asserted when all phases have valid outputREADY_OUT(output): Ready to accept new input (AND of all phase ready signals)READY_IN(input): Downstream ready signal
Mathematical background
The absolute value operation produces the magnitude of a number:
$$ |x| = \begin{cases} x & \text{if } x \geq 0 \ -x & \text{if } x < 0 \end{cases} $$
For IEEE 754 floating-point, this is simply clearing the sign bit.
Properties:
- $|x| \geq 0$ for all $x$
- $|x \cdot y| = |x| \cdot |y|$
- $|x + y| \leq |x| + |y|$ (triangle inequality)
- $|-x| = |x|$
Timing
The Xilinx Floating Point IP has zero latency for absolute value:
| Property | Latency (clock cycles) |
|---|---|
| Absolute Value | 0 |
The output is combinationally derived from the input (sign bit is cleared). However, the AXI-Stream handshake may introduce pipeline delays.
Typical use cases
- Signal magnitude extraction
- Distance calculations
- Error magnitude computation
- Complex number magnitude (with additional operations)
- Rectification in signal processing
Waveform example
Example with TM Factor = 4, Single precision.
Note: Zero latency - output available immediately (combinational).