FPGA Implementation of Sine and Cosine Value Generators Using CORDIC Design for Fixed Angle Rotation

FPGA Implementation of Sine and Cosine Value Generators Using CORDIC Design for Fixed Angle Rotation

International Journal of Computer Applications (0975 – 8887) International conference on Innovations in Information, Embedded and Communication Systems (ICIIECS-2014) FPGA Implementation of Sine and Cosine Value Generators using CORDIC Design for Fixed Angle Rotation Manjunath.C.R Sathiyapriya PG Student, Dept. of ECE Assistant Professor, Dept of ECE, Sri Krishna College of Engineering and Sri Krishna College of Engineering and Technology, Coimbatore, India Technology, Coimbatore, India ABSTRACT performed using software, which means long computational CORDIC algorithm has been utilized for various applications delays and low performance. Computing the transcendental such as DSP, Biometrics, Image processing, Robotics apart functions using hardware leads to higher speeds with less from general scientific and technical computation. Rotation of computational delay rather than the reference conventional vectors through fixed angles has a wide range of application. CORDIC algorithm designs that are already available. The But in reference to previous CORDIC models, we don‟t find CORDIC arithmetic unit can be used to solve either set of any optimized scheme for rotation of vectors through fixed following equations to calculate the trigonometric functions: angles. This results in increase in On-chip area and power Y„= K (Ycosλ + Xsinλ) (1) consumption. Taking all these important factors into „ consideration, here in this paper, we have proposed a X = K (Xcosλ + Ysinλ) simplified pipelined CORDIC architecture model by writing Where, K is a referred to be a constant. The trigonometric appropriate programs in VHDL for calculating sine and cosine modified fixed angle rotation CORDIC algorithm was values of an angle with fixed number of iterations. As a result originally developed as a digital solution for real time of this, this proposed CORDIC algorithm model helps in navigation problems. Due to the simplicity of involved achieving reduced On-chip area and power consumption operations the CORDIC algorithm is well suited for VLSI compared to previous reference conventional CORDIC implementations at a reduced cost with low power architecture models. System simulation is carried out using consumption. ModelSim 6.3f and Xilinx ISE design Suite 9.2i 2. CORDIC ALGORITHM Index Term The general CORDIC algorithm design is an iterative CORDIC, sine, cosine, barrel shifter, VHDL technique and it consists of two modes of operation referred to 1. INTRODUCTION as the rotation mode and Vectoring mode. In rotation mode, the coordinate components of a vector and an angle of rotation are In this paper, we present new, fast and highly hardware given to the coordinate components of original vector, after the efficient technique for computing sine and cosine functions rotation are allowed to pass through the given angle set of using CORDIC fixed angle rotation. The Coordinate Rotational angle for computation. In vectoring mode, the coordinate Digital Computer (CORDIC) is a very well known and widely components of a vector are given and the magnitude and used hardware efficient iterative algorithm for the computation angular movement of the original vectors are computed. of elementary arithmetic functions such as hyperbolic, arithmetic trigonometric, exponential and logarithmic 2.1 Mathematical Basis of the Algorithm operations [1]. The CORDIC algorithm can also be applied for The first step to obtain the trigonometric functions is by going rotation based arithmetic functions such as Eigen value for vector rotations mode of operation. It can also be used for decomposition (EVD) [9], Discrete Cosine Transform (DCT), rectangular to polar conversions and polar to rectangular Wireless Local Area Network (WLAN), Fast Fourier conversions for vector magnitude and as a building block in the Transform (FFT) [7] and singular value decomposition [8]. certain transforms such as the DCT and DFT. The main aim of CORDIC algorithm generally works by rotating the coordinate fixed angle rotation CORDIC algorithm is to compute the sine system through a constant set of angles until the angle is and cosine of a given angle using fixed iterations, which we reduced to zero. Not only a wide variety of applications have call θ (theta). Suppose that we have a specific point on the unit been suggested over time, but also a lot of progress has taken circle, which may be illustrated as follows [7]: place in the area reduction of algorithm design and development of architectures for high performance and low- cost hardware solutions. The CORDIC algorithm doesn‟t need multipliers, it requires only shifters, adders and lookup tables (LUT). So, it‟s easier to implement specialized CORDIC machine, small and fast enough to compute for real time calculations, dedicated to one purpose. The trigonometric and exponential functions are computed fairly often in scientific, business and engineering applications. The computation of these transcendental functions in computers is highly Figure.1.A point on the unit circle rotated by an angle Ѳ 28 International Journal of Computer Applications (0975 – 8887) International conference on Innovations in Information, Embedded and Communication Systems (ICIIECS-2014) The specific point on the unit circle that has a rotation of θ has various modes of operation of CORDIC algorithm are briefly coordinates of (Cosθ, Sinθ). This completely implies that if a discussed as follows: point on the x-axis of the circle is rotated by a particular angle of θ, then the sine and cosine of the angle of rotation may 2.3 Rotation Mode directly read off from the x-axis and y-axis of unit circle. The The first mode of CORDIC algorithm operation is called as rotation of angle can be achieved by rotating the given point on rotation mode by J.E. Volder. In rotation mode, the coordinate the unit circle in a series of steps may be either in the components of a vector and an angle of rotation are given and clockwise direction (decrease in θ) or either in the anti- the coordinate components of original vector, clockwise direction (increase in θ). after the rotation through the given angle are computed. Here the accumulator angle is initialized by a desired set of angle The coordinates of a point in a 2-Dimensional space can be rotation. The decision of rotation is based on the sign of the represented as vectors. If the coordinates of the point on the residual angle of the angle accumulator. If the input angle is unit circle are referred to be (x, y) then the point can be equally already expressed in the binary arc tangent base, the represented as (x, y)‟ where the inverted comma indicates the accumulator angle is not necessary. The equation is expressed transpose function of the matrix. The rotation of a point in 2D as follows: space may be effected by multiplying the coordinates through a i -I specific point on the unit circle by a rotation matrix. Thus: Xi+1 = xi – yi.d . 2 i -i 푐표푠휃 −푠푛휃 푥 푥 Yi+1 = yi+xi .d . 2 (5) 푦 = 푦′ ′ (2) 푠푛휃 푐표푠휃 -1 -i Zi+1 = zi- di .tan ( 2 ) Where (x‟, y‟) is the coordinates of (x, y) of the unit circle rotated through an particular constant angle 휃. This matrix −1, 푓푧 < 0 Where, 푑 = operation can be expressed as follows using the following +1, 표푡ℎ푒푟푤푠푒 expression below as follows: Then, X‟ = Xcos휃- Ysin휃 (3) xn = An [x0cosz0 – y0sinz0] Y„= Ycos휃+ Xsin휃 yn = An [y0cosz0 – x0sinz0] (6) In CORDIC fixed angle rotation algorithm,, the final angle 휃푛 zn= 0 is the angle for which sine and cosine are to be calculated and − the initial vale 휃1 are rotated until the set to conventional value An =휋 1 + 2 reaches 0 by constant rotation. Instead of rotating from 휃1 to 휃푛 in one complete full sweep, we can move in steps with careful 2.4 Vectoring Mode choice of step values to calculate the sine and cosine values of In vectoring mode, the coordinate components of a vector are angle 휃 with reduced or fixed iteration. Rearranging the given and the magnitude and angular movement of the original following above equation (3) gives us the set of equation as vectors are computed. The vectoring function works by seeking follows: to minimize the y component of the residual vector at each ‟ rotation. The actual sign of the residual y component is used x = cos휃 [ x-ytan휃] (4) for determining which direction is to be rotated next. When the y‟= cos휃 [ y+xtan휃] rotation is initialized to zero, the accumulator contains the traversal angle at the end of iteration. The equation for Thus restricting the rotation angles such that it is transformed vectoring mode of rotation is expressed as follows: − to a relation which is of the form tan(휃)=±2 , the i -I multiplication by the tangent term is reduced by an simple shift Xi+1 = xi – yi.d . 2 operation. Therefore, it is observed that the hardware i -i Yi+1 = yi+xi .d . 2 (7) complexity of barrel shifter is nearly half of the CORDIC -1 -i circuit. Therefore, we aim at suggesting some simple Zi+1 = zi- di .tan ( 2 ) techniques to reduce complexity of barrel shifters. Keeping −1, 푓푦 < 0 Where, 푑 = these key points in view, in this paper we present some best +1, 표푡ℎ푒푟푤푠푒 angle optimization schemes for reducing the micro rotations and reducing the complexity of barrel shifters for fixed angle Then, vector rotation using CORDIC algorithm for fixed angle 2 2 rotation. 푥푛 =퐴푛 푥0 + 푦0 2.2 Minimization of Hardware Complexity 푦푛 =0 (8) −1 푥 of Barrel Shifter using Hardwired Pre- 푍푛=푍0+푡푎푛 푦 Shifting −2 A barrel shifter for maximum of S shifts for a particular word An =휋 1 + 2 length L it can be implemented through log2(푠 + 1) stages of The CORDIC rotation and vectoring functions as stated are de-multiplexors, where each stage requires only less number of limited for rotation angles between −휋 2and 휋 2.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    4 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us