CORDIC (COordinate Rotation DIgital Computer) is a simple and efficient algorithm to calculate hyperbolic and trigonometric functions and convert polar co-ordinates to artesian and vice versa. It is an iterative method that requires simple arithmetic operations such as addition, subtraction, bit shift and table look up. This frees up any available multipliers in the device for use in more complex tasks.
The Lattice CORDIC IP is configurable and several functions can be implemented in the IP core: Rotation, Translation, Sin and Cos, Arctan. Two architecture configurations are available for the arithmetic unit: Parallel, with single cycle data throughput, and Word-serial, with multiple cycles throughput. The input data, output data widths and iterative number are configurable over a wide range. The IP core uses full internal precision while allowing variable output precision with several choices for rounding.
CORDIC
Overview
Key Features
- Functions supported:
- Vector rotation (polar to rectangular)
- Vector translation (rectangular to polar)
- Sin and cos
- Arctan
- Input data widths from 8 to 32 bits
- Configurable number of iterations used to derive output from 4 to 32
- Optional pre-rotation module
- Optional amplitude compensation scaling module to compensate for the CORDIC algorithm’s output amplitude scale factor
- Selectable rounding algorithm: truncation, rounding up, rounding away from zero, convergent rounding
- Selectable parallel architectural configuration for throughput optimization
- Selectable word-serial architectural configuration for area optimization
- Signed 2’s complement data
- Optional clock enable (ce) and synchronous reset (sr) control signals
- Full precision internal arithmetic