12-06-2012, 05:10 PM
CORDIC Algorithm Implemented as a Virtual Component
CORDIC Algorithm Implemented.pdf (Size: 183.41 KB / Downloads: 42)
ABSTRACT
The paper presents the CORDIC Algorithm, which has
been implemented as an virtual component (IP core) in a
VHDL simulation environment. The core is packaged as
a soft (VHDL) macro and it implements all
transcendental functions.
Introduction
The CORDIC algorithm was first described by Volder
[1] as a solution for easy hardware implementation of
trigonometric functions. Walther [2] extended this
concept to other transcendental functions. There are
numerous concise descriptions of different flavors of
CORDIC algorithm in later publications (e.g. [5]).
Authors of these papers discuss iterative equations that
enable computations of trigonometric, hyperbolic,
inverse trigonometric, inverse hyperbolic, linear
functions and vector magnitude.
Virtual Components
Over last three decades integrated circuits of ever
growing complexity were used as components of
electronic systems that were assembled on the printed
circuit boards. Now such systems may be integrated into
a single silicon die. This dramatic increase of complexity
of integrated circuits, that can be manufactured today
with state-of-the-art semiconductor technology,
challenges the designer productivity. The only way to
take advantage of what technology offers is to reuse
existing designs of functional blocks in order to create
complex systems.
CORDIC Module
The CORDIC module we described here was developed
as a part of a numeric coprocessor compliant to the Intel
80C187 chip. It is separated from the main arithmetic
unit of the coprocessor. It implements floating point
operations on numbers formatted according to the IEEE
STD 754. Arguments may be normalized and
denormalized numbers. Mantissa and exponent of the
result are calculated during computations.
The simulation
The CORDIC module discussed in this article was
developed as a part of the virtual component that is
functionally equivalent to the Intel 80C187 numeric
coprocessor. Testing of this 80187-compliant virtual
component comprised of functional testing of its I/O
behavior, verification of proper handling of all corner
cases and accuracy of all computational algorithm
implemented (the full FP instruction set).
Conclusions
Despite the vast literature found about the CORDIC
algorithms, a lot of detailed problems (rarely discussed
in the papers had to be solved) to achieve a viable
implementation of the algorithm.