A New Method To implement CORDIC Algorithm

Document Sample
A New Method To implement CORDIC Algorithm Powered By Docstoc
					     A New Method To implement CORDIC Algorithm

                  KHARRAT M. W., LOULOU M., MASMOUDI N., KAMOUN L.

                 Laboratoire d’Electronique et des Technologies de l'Information LETI.
                                 Ecole Nationale d'Ing nieurs de Sfax
                                     B.P. W 3038 SFAX TUNISIE
                              T l : 216 4 27 40 88 Fax : 216 4 27 55 95
                                 Email: Nouri.Masmoudi@enis.rnu.tn

----------------------------------------------------------------------------------------------------------------
Abstract :                                                     Where i = 1.

   In this paper we present an op  timisation                        (                         e
                                                               After n-1) iterations the basic quations of
of CORDIC algorithm                       im
                                plementation,                  CORDIC system become:
which mainly offers a silicon area                             xn=K1 {x0 cos( )+y0 sin( )}
occupation reduction and gives good                            yn=K1 {y0 cos( )–x0 sin( )}
precision in calculating trigonometric
functions such as sine and cosine function.                                c
                                                                The onventional CORDIC algorithm s                        i
To       alid    the   new v   method,      an                                                        f
                                                               presented by the bloc diagram of igure 1
implementation f angle o       decomposition                   and the ngle adecomposition equation is
equation      sing FPGA u technology is                        presented by bloc diagram of figure 2.
presented. This approach shows a
considerable surface reduction and good                                          X0                          Y0
precision for calculation resolution less than
20 bits.

I. Introduction                                                       0          A/S              0          A/S

    The CORDIC algorithm was proposed in
1959 by J. E. Volder [1] to facilitate                                     X1          Y12-1       X12-1           Y1
trigonometric numerical calculations uch s
as vector otations.r CORDIC algorithm                                 1          A/S              1          A/S
                             o
permit resolution f arithmetic function
such Kalman Filter and Discrete Fourrier
                          a
Transform [3,4,5]. The lgorithm describes
                      p
how a rotation resented by equation [1]                                   Xn-1         Yn-12-n+1 Xn-12-n+1         Yn-1
               b e
could e xecuted by finite number of
elementary rotations called micro-rotations.                        n-1
                                                                                 A/S
                                                                                                 n-1
                                                                                                             A/S
The CORDIC algorithm described by
Volder using Walther hypothesis [3,4] is
presented by the following set of equations:                                     Xn                          Yn
                                                               Fig.1. Bloc diagram of CORDIC algorithm
  x i +1 = x i       i   yi 2 i
                                                               CORDIC algorithm continues to interest
  y i +1 = y i + i x i 2 i                      (1)            researchers dealing with applications
                                                               demanding rapidity, minimum area nd                        a
   i +1   = i      i .a tan 2
                                  i
                                                               precision.


                                                           1
                                                     Concerning the truncated algorithm, the
                            0                        idea is based            on            it
                                                                           that first erations in
         Atan2-0                                     conventional algorithm have the most
                                 0                   considerably      contribution            the
                                                                                          t
                                                     calculations. In fact he micro-rotation
                                                     angle i ecreases d       progressively when
                    A/S          0
                                                                                      n
                                                     iterations increases, then we ca replace the
         Atan2-1           1
                                                               it
                                                     last erations by a full rotation around a
                                 1                   reduced angle obtained by executing a fixed
                                                     number of pure rotations. This transaction
                                                     reduces execution time           nd surface a
                    A/S          1                   occupation to the detriment of precision.
                                                                                  a
                                                     For those lgorithm he problemt of
                                                     performances still waits to be optimised. To
        Atan2-n+1                                    remedy this inconvenience we propose          a
                           n-2
                                 n-2
                                                     new method to              erforming angle p
                                                     decomposition.

                    A/S          n-2                 III. New Method
                        n-1      n-1
                                                                        c
                                                     We onsider the number                which is
                     n-1
                                                     presented in b   inary by the vector 0, 1, …,
                                                       n-1 =   0,   1, …, n-1 (see figure 2) where
Fig.2. Bloc diagram of angle decomposition             0  is the LSB of and, i represents the
                                                     sign of ith iteration angle.
                                                     Let's note that CORDIC algorithm converge
 In the section      f
                     2 this opaper, we present       in ]- /2, /2[ interval and that trigonometric
                               t
 already used methods to opimise CORDIC              functions are symmetric, so ur study        o
 algorithm, which are mainly the merged              becomes limited to [0, /2[ interval.
 and truncated algorithms. The new method
                                                         By plotting the number         versus for
 is described in section 3.
                                                     different bit number n, we note that he t
                                                     corresponding curve is linear by interval as
 II. Optimised method to implementing                shown in figure 3.
 CORDIC algorithm
                                                     Furthermore by plotting -C0=f( ) on the
     In previous works it was demonstrated           same plot of =f( ) we notice that the curve
 that CORDIC algorithm could b optimised
                                e                      =f( ) is formed by four segments rights in
 in area nd in execution time. We refer to
            a                                        the same way slope than - C0=f( )
 two methods known as merged and                                             /4             /2
 truncated algorithm [2,3,4]. The merged                    0

 algorithm s based i              on
                             combining two
 iterations into          on
                     ly one, which make              a
 reduction of iteration number.
                       a
  The dditions number used in this                        - /4
 algorithm s identicali o conventional  t                                                        C0
                  t              a
 algorithm[ ] buhalf of those dditions are
 performed on(n-i) bits where i corresponds
 to ith iteration, then we gain in surface
 occupation but we loose in execution time.               - /2



                                                            Fig. 3.   = f( ) resolution 32 bits
                                                 2
                                                                G1 = 9+ 8+ 7+ 6( 5+ 4( 3+ 2+ 1 0))
       -C0
                                                                G2 = 9+ 8+ 7 6( 5+ 4+ 3( 2+ 1))
                                                                G3 = 9+ 8( 7+ 6)
  0               A1       A2= /4        A3       /2
                                                                 P1 =   9 8 7( 6+ 5( 4+ 3 2 1))

                       =f( )
                                                                 P2 =   9 8( 7+ 6+ 5 4( 3+ 2 1 0))
                                                                 P3=    9 8 7 6
                                    C3

                                                                S 0 = M2
- /4                                                            S 1 = M3 + M1 M2
                         C2                                     S2 = S3 = S5 = M3
                                                       C0
                                                                S 4 = M2 + M3
                                         -C0 = f( )
                                                                S 6 = M3
                                                                S7 = S8 = 1
             C1                                                 S9 = 0
- /2
                                                                For resolutions higher than                 a         10,
                                                                                     o
                                                                generalisation f equations must be done
                                                                and for resolution lesser than            an     10
             Fig. 4. ( -C0)= f( ), et      = f( ),              adaptation of those equations is necessary.

 Once the onstants C0,C1,C2 and C3 are
                  c                                                                        n-1..0
 determined, the variation domains of are                                                                  n-1
 known and value will be deducted from
 the following equations:
                                                                        < -A3
                                                                        < -A2
                                                                        < -A1



 0< <A1              = - C0
                                                                                                > A3
                                                                                                > A2
                                                                                                > A1
 A1< <A2               = - (C0-C1)
 A2< <A3               = - (C0-C1-C2)
                                                                           P3 P2 P1                 G3 G2 G1
 A3< < /2            = - (C0-C1-C2-C3)
 -A1< <0             = + C0
 - A 2< <-A1           = + (C0-C1)                                                    MUX
 -A3< <-A2           = + (C0-C1-C2)
 - /2< <-A3          = + (C0-C1-C2-C3)                                                M3 M2 M1

 The numerical values of A1, A2, A3,                                          C0
 C0,C1,C2 and C3 are:                                                    Or   C0 - C1
 A1 = 0,3217468 rd                                                       Or   C0 - C1 - C2
 A2 = 0,7853965 rd                                                       Or   C0 - C1 - C2 - C3
 A3 = 1,2490463 rd
                                                                                             S n-1..0
 C0 = 1,8273468 rd
 C1 = 0,01025 rd
 C2 = 0,063961 rd
 C3 = 0,01025 rd                                                              A/S

 The new architecture is presented by
 diagram flow of figure 5 in which equations
 are performed for 10 bits number ( = 9…0).                                       0..n-1

                                                                 Figure 5: New architecture
                                                            3
IV. Implementations and Performances                           reduction and                       p
                                                                                 recision amelioration
                                                               compared to conventional algorithm.
Figure 6 shows that he tproposed method                         CLB number
make better precision compared to                               500
conventional m                   e
                  ethod and for r solution less
than                Of
             its. 20 course, bthe proposed                                CORDIC Method
                                                                400
solution could ebimproved by formulating
   for resolutions higher than 20 bits.
                                                                300
         c
The hoice is guided by reprinting with
more segments than reviously, which   p                                   New method
allows best precision to the detriment of                       200

area.
                             a
By implementing the ngle decomposition                          100

equation in FPGA technology, we poof that
area measured in CLB number is lowered                            0
                               c
compared to the onventional algorithm                                 8             16              24           32

(figure7) and the latency time or execution                                        Resolution in bits
                f
time (delay) or the new method is lowered
compared          to     the       onventional                   Figure 7: CLB c
                                                                               Number versus bit number
algorithm(figure 8).
                                                                delay time(ns)
 Precision in %
       10
                             Conventional of CORDIC
                                                                            Conventional CORDIC
        1

      0,1

     0,01
                                                                           New method

    0,001

   0,0001
                     New method
  0,0000 1

 0,0000 01
             8        16            24                32

                     Bit Number                                                  Figure 8: delay time
 Figure :6. Precision versus of bit number for =45
                                                               References
                                                               [1] VOLDER, « The CORDIC trigonometric
V. Conclusion                                                  computing technique. » IRE Trans.on Electronic
                                                               Computers. Vol.EC-8.no.3,pp.330-334,Sep. 1959.

In this paper, we proposed an op  timisation                   [2] GHARIANI Moez. « Int gration lectronique de
of the CORDIC algorithm im    plementation.                    la Transformation de Park en technologie FPGA
The optimisation mainly reside in the                          Application : V hicule Electrique ». DEA
implementation f angle o     decomposition                     d’Electronique de l’ENIS SFAX D embre 1997.
                      h             i
equation, which as a great nfluence on                         [3 ] J. S. WALTER. The unified algorithm for
performances (area, precision and rapidity).                   elementary functions. In. Proc. AFIAPS Spring joint
An implementation        f the so-called o                     Computing Conf. Volume 38, pp 379, 385 1971.
equation in FPGA technology is performed
to alid the method and shows urface s
           v                                                   [ 4] Merged CORDIC Algorithm IEEE Transaction
                                                               on Computer Vol C 29 pp 946 – 950 1990.


                                                           4