Papers
Topics
Authors
Recent
Search
2000 character limit reached

CORDIC-Based ALU Architecture

Updated 27 November 2025
  • The topic defines CORDIC-based ALUs as hardware units using iterative vector rotation with shift-add operations to compute both basic arithmetic and transcendental functions.
  • It examines microarchitecture components like register files, pipelined CORDIC cores, and FSM controllers that optimize area, latency, and precision.
  • The design supports applications in DSP, FPGA, and AI acceleration by providing efficient, high-throughput computations for trigonometric, exponential, and coordinate transformations.

A CORDIC-based ALU (Arithmetic Logic Unit) leverages the CORDIC (COordinate Rotation DIgital Computer) algorithm to compute both basic arithmetic operations and complex transcendental functions using only shift, add/subtract, and table lookup—eliminating hardware multipliers. CORDIC-based ALU architectures enable compact, energy-efficient, and high-throughput computation of operations such as sine, cosine, arctangent, square-root, exponentiation, and even multidimensional coordinate transformations. Their regularity, parameterizability, and low resource requirements have driven adoption in DSP, FPGA-based computation, and AI accelerator domains (Nawandar et al., 2022, Salem et al., 2024, Simmonds et al., 2016).

1. Fundamentals of CORDIC Algorithm and Modes

The CORDIC algorithm performs iterative vector rotations in various coordinate systems—circular for trigonometric, hyperbolic for exponentials and logarithms, and linear for division and linear algebra primitives. The algorithm operates in two principal modes:

  • Rotation mode: Rotates an input vector by a given angle, converging to (Kn(x0cosθy0sinθ),Kn(y0cosθ+x0sinθ))\mathbf{(K_n (x_0 \cos\theta - y_0 \sin\theta), K_n (y_0 \cos\theta + x_0 \sin\theta))} for nn iterations.
  • Vectoring mode: Rotates the input vector to the x-axis, with the cumulative rotation angle holding the arctangent or (in hyperbolic mode) the inverse hyperbolic tangent.

The canonical recurrence for the circular mode is:

xi+1=xidi2iyi yi+1=yi+di2ixi zi+1=zidiarctan(2i)\begin{aligned} x_{i+1} &= x_i - d_i\, 2^{-i} y_i \ y_{i+1} &= y_i + d_i\, 2^{-i} x_i \ z_{i+1} &= z_i - d_i\, \arctan(2^{-i}) \end{aligned}

where did_i is chosen as sign(zi)\mathrm{sign}(z_i) for rotation and sign(yi)\mathrm{sign}(y_i) for vectoring (Nawandar et al., 2022, Salem et al., 2024).

The cumulative scale factor Kn=i=0n11/1+22iK_n = \prod_{i=0}^{n-1} 1/\sqrt{1+2^{-2i}} approaches 0.607252935 for large nn. Compensation for KnK_n is implemented via pre- or post-scaling with a fixed coefficient multiplier (Nawandar et al., 2022).

Expanded hyperbolic CORDIC adds negative iterations and specialized direction/angle logic to accommodate the broader convergence required by exp\exp, nn0, nn1, nn2, and powering operations in fixed-point arithmetic (Simmonds et al., 2016).

2. Microarchitecture and System Integration

Core Data Path Components

A CORDIC-based ALU integrates:

  • Register files for input operands and results.
  • Operand multiplexers choosing between register, immediate, or functional unit inputs.
  • Arithmetic sub-units: adder/subtractor, barrel shifter (for nn3 multiplication), small post-scaling multipliers.
  • CORDIC core: iterative/finite state machine or pipelined, supporting rotation, vectoring, and different coordinate domain modes via ROMs holding nn4 or nn5 tables.
  • Controller FSM: manages operation decode, mode selection (circular, linear, hyperbolic), CORDIC core control, scaling, and write-back (Nawandar et al., 2022, Salem et al., 2024, Simmonds et al., 2016).

Pipeline and Instruction Scheduling

CORDIC micro-rotations can be mapped either:

  • Iteratively: one rotation per cycle, yielding nn6-cycle latency.
  • Fully pipelined: each micro-rotation stage unrolled and registered, so after initial latency, throughput is one operation per cycle. Trade-offs between area and latency dictate the architectural choice for a given resource budget or throughput requirement. Typical pipeline depths are nn7 (Nawandar et al., 2022, Salem et al., 2024, Simmonds et al., 2016).

Example Instruction Set Extensions

CORDIC ALUs extend standard opcode sets with transcendental function and vector ops:

  • nn8 (Rotation mode: nn9, xi+1=xidi2iyi yi+1=yi+di2ixi zi+1=zidiarctan(2i)\begin{aligned} x_{i+1} &= x_i - d_i\, 2^{-i} y_i \ y_{i+1} &= y_i + d_i\, 2^{-i} x_i \ z_{i+1} &= z_i - d_i\, \arctan(2^{-i}) \end{aligned}0, xi+1=xidi2iyi yi+1=yi+di2ixi zi+1=zidiarctan(2i)\begin{aligned} x_{i+1} &= x_i - d_i\, 2^{-i} y_i \ y_{i+1} &= y_i + d_i\, 2^{-i} x_i \ z_{i+1} &= z_i - d_i\, \arctan(2^{-i}) \end{aligned}1)
  • xi+1=xidi2iyi yi+1=yi+di2ixi zi+1=zidiarctan(2i)\begin{aligned} x_{i+1} &= x_i - d_i\, 2^{-i} y_i \ y_{i+1} &= y_i + d_i\, 2^{-i} x_i \ z_{i+1} &= z_i - d_i\, \arctan(2^{-i}) \end{aligned}2
  • xi+1=xidi2iyi yi+1=yi+di2ixi zi+1=zidiarctan(2i)\begin{aligned} x_{i+1} &= x_i - d_i\, 2^{-i} y_i \ y_{i+1} &= y_i + d_i\, 2^{-i} x_i \ z_{i+1} &= z_i - d_i\, \arctan(2^{-i}) \end{aligned}3 (Vectoring mode: xi+1=xidi2iyi yi+1=yi+di2ixi zi+1=zidiarctan(2i)\begin{aligned} x_{i+1} &= x_i - d_i\, 2^{-i} y_i \ y_{i+1} &= y_i + d_i\, 2^{-i} x_i \ z_{i+1} &= z_i - d_i\, \arctan(2^{-i}) \end{aligned}4, xi+1=xidi2iyi yi+1=yi+di2ixi zi+1=zidiarctan(2i)\begin{aligned} x_{i+1} &= x_i - d_i\, 2^{-i} y_i \ y_{i+1} &= y_i + d_i\, 2^{-i} x_i \ z_{i+1} &= z_i - d_i\, \arctan(2^{-i}) \end{aligned}5, xi+1=xidi2iyi yi+1=yi+di2ixi zi+1=zidiarctan(2i)\begin{aligned} x_{i+1} &= x_i - d_i\, 2^{-i} y_i \ y_{i+1} &= y_i + d_i\, 2^{-i} x_i \ z_{i+1} &= z_i - d_i\, \arctan(2^{-i}) \end{aligned}6)
  • xi+1=xidi2iyi yi+1=yi+di2ixi zi+1=zidiarctan(2i)\begin{aligned} x_{i+1} &= x_i - d_i\, 2^{-i} y_i \ y_{i+1} &= y_i + d_i\, 2^{-i} x_i \ z_{i+1} &= z_i - d_i\, \arctan(2^{-i}) \end{aligned}7 (Hyperbolic vectoring)
  • xi+1=xidi2iyi yi+1=yi+di2ixi zi+1=zidiarctan(2i)\begin{aligned} x_{i+1} &= x_i - d_i\, 2^{-i} y_i \ y_{i+1} &= y_i + d_i\, 2^{-i} x_i \ z_{i+1} &= z_i - d_i\, \arctan(2^{-i}) \end{aligned}8 (Linear mode for division) (Nawandar et al., 2022, Salem et al., 2024).

3. Example: Spherical-to-Cartesian Conversion Using 3-D CORDIC

A representative application is the implementation of 3-D CORDIC for transforming spherical to Cartesian coordinates on FPGA (Salem et al., 2024). The system cascades two 2-D CORDIC cores:

  • Stage 1: xi+1=xidi2iyi yi+1=yi+di2ixi zi+1=zidiarctan(2i)\begin{aligned} x_{i+1} &= x_i - d_i\, 2^{-i} y_i \ y_{i+1} &= y_i + d_i\, 2^{-i} x_i \ z_{i+1} &= z_i - d_i\, \arctan(2^{-i}) \end{aligned}9 rotated by did_i0 computes did_i1.
  • Stage 2: did_i2 computes did_i3.

Resource utilization and accuracy are as follows:

CORDIC Unit Area (LUTs) Latency (cycles) Average Error
2-D (16b) 500 16 did_i4
3-D (2 × 2-D) 1,000 32 did_i5

Fixed-point register widths, pre-scaling for gain compensation, and efficient datapath multiplexing allow the ALU to support both integer/shift and CORDIC-driven channels (Salem et al., 2024).

4. Trade-Offs: Area, Latency, and Precision in CORDIC ALUs

CORDIC-based ALUs offer a spectrum between area, latency, and accuracy:

Variant Area (LUTs) Latency (cycles) Precision (bits) Characteristics
Conventional 800 16 32 Minimal controller, serial
Lookahead 1,200 4 32 Pre-compute for faster ops
Angle-Recoding 900 8 32 Reduces iter count if did_i6 is known

Conventional design yields the lowest area; Lookahead trades area for reduced latency; Angle-recoding is suitable for fixed-angle transforms (Nawandar et al., 2022). Design-space exploration in high-precision applications shows that increasing word width and number of iterations increases both resource and accuracy (PSNR, L∞ error) (Simmonds et al., 2016).

Power metrics for FPGAs are typically below 50 mW for a complete CORDIC ALU at did_i7 MHz (did_i82,150 LUTs, did_i9 FFs total for 32-bit datapaths) (Nawandar et al., 2022).

5. Expanded and Hyperbolic CORDIC ALUs for Exponential, Logarithmic, and Powering Functions

Generalization to hyperbolic and expanded CORDIC supports:

  • sign(zi)\mathrm{sign}(z_i)0 computation: implemented as two CORDIC calls in vectoring and rotation mode plus a small multiplier (for sign(zi)\mathrm{sign}(z_i)1), coordinated by a FSM.
  • Exponential and logarithmic: via expanded hyperbolic CORDIC, negative/positive iterations, and angle/ROM selection.

Design is VHDL-parameterized for bit width, number of iterations, and integer/fractional splits. Configurations for sign(zi)\mathrm{sign}(z_i)2, sign(zi)\mathrm{sign}(z_i)3, sign(zi)\mathrm{sign}(z_i)4 yield PSNR sign(zi)\mathrm{sign}(z_i)5 120 dB and L∞ error sign(zi)\mathrm{sign}(z_i)6. Minimal configurations (sign(zi)\mathrm{sign}(z_i)7) yield PSNR sign(zi)\mathrm{sign}(z_i)8 40 dB and max error sign(zi)\mathrm{sign}(z_i)9 (Simmonds et al., 2016).

The microcoded function-select FSM steers input presets, coordinate mode, and result recombination, enabling implementation of sign(yi)\mathrm{sign}(y_i)0, sign(yi)\mathrm{sign}(y_i)1, sign(yi)\mathrm{sign}(y_i)2, log, exp, and root as time-multiplexed functions over one CORDIC datapath (Simmonds et al., 2016).

6. Application Domains and System-Level Context

CORDIC-based ALUs are applied in:

  • DSP blocks: Direct computation of FFT, DCT, vector transforms, and real-time trigonometric transforms (Nawandar et al., 2022).
  • FPGA-based robotics, navigation, CAD/graphics: Low-latency, resource-minimal coordinate conversions and transformations (Salem et al., 2024).
  • AI accelerators: Systolic arrays for MAC operations, nonlinear AFs (e.g., sign(yi)\mathrm{sign}(y_i)3, sigmoid, softmax) in edge and scalable AI processors (Kokane et al., 4 Mar 2025).
  • Embedded systems: Where compactness, energy-efficiency, and absence of multipliers are beneficial.

Typical implementations use opcodes and datapath steering to integrate into RISC-like instruction sets, enabling classic ALU tasks and extended transcendental/vector operations with uniform, low-area blocks (Nawandar et al., 2022, Salem et al., 2024, Simmonds et al., 2016).

7. Performance, Limitations, and Comparative Assessment

CORDIC-based ALUs deliver latency and resource advantages compared to LUT/interpolation or multiplier-based approaches for trigonometric and vector math:

  • 16–32 cycles for typical transcendental/vector/spherical transforms.
  • Average errors on the order of sign(yi)\mathrm{sign}(y_i)4 for 16-bit, sign(yi)\mathrm{sign}(y_i)5 for high-precision 40-bit designs.
  • Resource usage one to two orders lower compared to LUT/DSP-based designs.

Their principal limitations are the fixed step-by-step convergence rate (n cycles for sign(yi)\mathrm{sign}(y_i)6 precision bits), finite domain/range (especially for hyperbolic mode), and the need for scale-factor compensation. Specialized lookahead and angle-recoding techniques can improve latency at some area cost (Nawandar et al., 2022).

CORDIC-based ALU architectures thus represent a rigorously studied, hardware-efficient approach for implementing both elementary and advanced mathematical operations, with demonstrated advantages in diverse digital and reconfigurable computing domains (Nawandar et al., 2022, Salem et al., 2024, Simmonds et al., 2016).

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to CORDIC-Based ALU Architecture.