Home About IUP Magazines Journals Books Archives
     
A Guided Tour | Recommend | Links | Subscriber Services | Feedback | Subscribe Online
 
The IUP Journal of Science & Technology
HDL Implementation of Sine-Cosine Function Using CORDIC Algorithm in 32-Bit Floating Point Format
:
:
:
:
:
:
:
:
:
 
 
 
 
 
 

This paper proposes a novel way to implement sine and cosine function in Coordinate Rotation Digital Computer (CORDIC) algorithm with efficient architectures. It is a class of shift-add algorithms for rotating vectors in a plane, which is usually used for the calculation of trigonometric functions, multiplication, division and conversion between binary and mixed radix number systems of DSP applications, such as Fourier transform. The Jack E Volder's CORDIC algorithm is derived from the general equations for vector rotation. The values of sine and cosine functions are calculated in IEEE-754-1985 standardized single precision floating point format for achieving better precision, accuracy and portability in the result. A normalization scheme is used which reduces error and requires no extra hardware. The algorithm has been implemented in FPGA using VHDL.

 
 

Coordinate Rotation Digital Computer (CORDIC) is a method for computing elementary functions using minimal hardware such as shifts, adds/subs and compares. CORDIC works by rotating the coordinate system through a constant angle until the angle reduces to zero. The angle offsets are selected such that the operations on X and Y are only shifts and adds. The trigonometric CORDIC algorithms were originally developed as a digital solution for real time navigation problems. The original work is credited to Jack Volder [1]. The trigonometric algorithm is called CORDIC which is based on rotation mode, while other functions such as square root are implemented using an incremental expression of the desired function. The CORDIC algorithm has found its way into diverse applications including the 8,087 math coprocessor [2]. The HP-35 calculator, radar signal processor [3] and robotics. CORDIC rotation has also been proposed for computing discrete Fourier [4], discrete cosine [4], discrete Hartley [5], Chirp-Z transform [6], filtering [4], singular value decomposition [7] and solving linear systems [8]. The study of coordinate rotation algorithms indicates that specialized VLSI could be designed to perform the eigenvalue—eigenvector decomposition [9], and explain how it works and its implementation specific to FPGAs [10]. We first give a brief description of the theory behind the algorithm and the IEEE-754 single precision 32-bit floating point format.

All the trigonometric functions can be computed or derived from functions using vector rotations. Vector rotation can also be used for polar to rectangular and rectangular to polar conversions, for vector magnitude and as a building block in certain transforms such as the DFT and DCT (Figure 1). The CORDIC algorithm uses only shifts and adds for performing vector rotations.

 
 

Science and Technology Journal, HDL Implementation, Sine-Cosine Function, CORDIC Algorithm, 32-Bit Floating Point Format, Coordinate Rotation Digital Computer, CORDIC, Trigonometric Functions, Normalization Scheme, Vector Rotations, CORDIC Equations, Vectoring Algorithms.