CoreCORDIC is an Actel FPGA-optimized Coordinate Rotation Digital Computer (CORDIC) engine. The CORDIC algorithm by J. Volder provides an iterative method of performing vector rotations using only shifts and adds. CoreCORDIC produces a CORDIC engine optimized for Actel FPGAs. The core implements the CORDIC method for calculating the trigonometric functions of sine, cosine, magnitude, and phase. Depending on the configuration defined by the user, the resulting module implements pipelined parallel, word-serial, or bit-serial architecture in one of the two major modes: rotation or vectoring. In rotation mode, CoreCORDIC rotates a vector by a specified angle. This mode is used to convert polar coordinates to the Cartesian coordinates, for general vector rotation, and also to calculate sine and cosine functions.
In vectoring mode, CoreCORDIC rotates the input vector towards the <em>x </em>axis while accumulating a rotation angle. Vectoring mode is used to convert the Cartesian vector coordinates to polar coordinates, thus calculating the magnitude and phase of the input vector.
CoreCORDIC can be implemented in a bit-serial architecture that utilizes only 3% of an AFS600 and can operate at up to 88 MHz performing a transform in 6.5 µsec. If faster transforms are required, the core can be implemented in word-serial or parallel architecture, thereby utilizing more of the device, but reducing transform time to as low as 21.7 nsec. CoreCORDIC is optimized for applications in medical imaging, radars, spectrum analysis, software defined radios and wireless, and can be used with Actel's Fusion, ProASIC3/E, AX and RTAX-S devices.
- Vector rotation — conversion of polar coordinates to rectangular coordinates
- Vector translation — conversion of rectangular coordinates to polar coordinates
- Sine and cosine calculation
- 8-bit to 48-bit configurable word size
- 8 to 48 configurable number of iterations
- Parallel pipelined architecture for the fastest calculation
- Bit-serial architecture for the smallest area