• No results found

FPGA Based Iterative Processor for P to R and R to P Conversion

N/A
N/A
Protected

Academic year: 2020

Share "FPGA Based Iterative Processor for P to R and R to P Conversion"

Copied!
5
0
0

Loading.... (view fulltext now)

Full text

(1)

FPGA Based Iterative Processor for P to R and R to P

Conversion

Mrs. S.P.Kurlekar

S.I.T.C.O.E. Yadrav [email protected]

Abstract - The high processing speed required by DSP

applications is not very common. High performance general purpose microprocessors can provide computing speed only in conjunction with arithmetic co-processors. The DSP functions, transforms implementation requires implementation of various transcendental functions. Such as SINE,COS etc. These functions could be implemented in hardware using the traditional multiplier and accumulator based approach which causes the system to be slower. The CORDIC algorithm is an efficient method for implementation of these functions. The CORDIC algorithms uses only shift and add technique to perform the vector rotation in two dimensional vector space. Thus it avoids the use of traditional multiplier and accumulator unit [MAC unit] which generally is the bottleneck for the faster systems. In addition there are several algorithms such as CORDIC, NTT or Error Correction algorithms, where FPL technology has been proven to be more efficient than a PDSP. This paper attempts to explorer FPGA implementation of CORDIC algorithm for computing elementary trignometric functions, square root used in most of the signal processing.

Keywords - CORDIC, sine, cosine, arctangent.

I. INTRODUCTION

T

he digital signal processing landscape has long been dominated by microprocessors with special addressing modes and multiply accumulates instructions while these processors are low cost and offers extreme flexibility. They are often not fast enough for truly demanding DSP tasks. The advent as re-configurable logic computers permits the higher speeds as dedicated hardware solutions at low costs that are competitive with traditional software approach. While hardware efficient solutions often exist, the dominance of software systems has kept those solutions out of the spotlight. Much hardware efficient algorithms exists.

Among these algorithms is a class of shift add algorithms collectively known as CORDIC.

CORDIC is an acronym for Co-ordinate Rotation Digital Computers and was derived by Volder[1] in late 1950’s for the purpose of calculating trigonometric functions. It is widely used in the computing of elementary functions and digital signal processing applications, particularly where large amounts of rotation operations are necessary.

The original algorithm describes the rotation of 2-D vector which can be applied in applications such as DSP (for Fourier Transforms, Digital Filters) computer graphics and Robotics.

CORDIC processing offers high computational rates making it attractive to applications such as computer

required in real time. CORDIC is also attractive to Robotics since the fundamental operation is co-ordinate transformation. However it could be used for more computationally intensive processes such as motion planning and collision detection.

Array imaging typically involves complex signal processing which may require many computationally intensive matrix operations.

Increasing the complexity of the imaging model places greater demands on accuracy solution to such complex systems requires better and hence more complex algorithms. Most of these algorithms are based on matrix factorization (decomposition) techniques of which singular value decomposition (SVD) is the most robust method. The SVD factorization requires two sided transformation which involves several trigonometric operations and rotations ideally suited to dedicated VLSI hardware (CORDIC Processing) for real time calculations.

Co-ordinate Rotation Digital Computer is a special purpose computer, in this a unique computing technique is employed which is especially suitable for solving trigonometric relationships involved in plane co-ordinate rotation and conversion from rectangular to polar co-ordinate.

Two basic CORDIC modes are known leading to the computation of different functions, the rotation mode and the vectoring mode.

For both modes algorithm can be realized as an iterative sequence of additions/subtraction and shift operations, which are rotations by a fixed rotation angle (sometimes called micro rotations) but with variable rotation direction. Due to the simplicity of involved operations the CORDIC algorithm is very well suited for VLSI Implementation.

II. CORDIC THEORY

CORDIC (Coordinate Rotation Digital Computer) 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 constant angles until the angle is reduces to zero. The angle offsets are selected such that the operations on X and Y are only shifts and adds.

(2)

Copyright © 2012 IJECCE, All right reserved Fig.1. Planer Rotation

rotation means transforming a vector (Xi, Yi) into a new vector (Xj, Yj).

Using a matrix form, a planar rotation for a vector of (Xi, Yi) is defined as





i

Y

i

X

cos

θ

sin

θ

sin

θ

cos

θ

j

Y

j

X

---(1) The angle rotation can be executed in several steps, using an iterative process. Each step completes a small part of the rotation. Many steps will compose one planar rotation. A single step is defined by the following equation:













    n Y n X n cosθ n sinθ n sinθ n cosθ 1 n Y 1 n X ---(2) Equation 2 can be modified by eliminating the

n

cos

factor.













    n Y n X 1 n tanθ n tanθ 1 n cosθ 1 n Y 1 n X ---(3) Equation 3 requires three multiplies, compared to the four needed in equation 2.

Additional multipliers can be eliminated by selecting the angle steps such that the tangent of a step is a power of 2. Multiplying or dividing by a power of 2 can be implemented using a simple shift operation.

The angle for each step is given by

n 2 1 arctan n θ ---(4)

All iteration-angles summed must equal the rotation angle.

 

0

n Snθn θ ---(5)

where

1; 1

n

S    ---(6)

This results in the following equation for

tan

n

n

2

n

S

n

tan

θ

---(7)

Combining equation 3 and 7 results in













      n Y n X 1 n 2 n S n 2 n S 1 n cosθ 1 n Y 1 n X ---(8) Besides for the

cos

ncoefficient, the algorithm has been reduced to a few simple shifts and additions. The

coefficient can be eliminated by pre-computing the final result. The first step is to rewrite the coefficient.

n 2 1 arctan cos n

cosθ ---(9)

The second step is to compute equation 9 for all values of ‘n’ and multiplying the results, which we will refer to as K.

0.607253 0

n 2n

1 arctan cos P

1

K  

               ---(10)

K is constant for all initial vectors and for all values of the rotation angle, it is normally referred to as the congregate constant. The derivative P (approx. 1.64676) is defined here because it is also commonly used.

We can now formulate the exact calculation the CORDIC performs.



    sinθ i X cosθ i Y K j Y sinθ i Y cosθ i X K j X ---(11) Because the coefficient K is pre-computed and taken into account at a later stage, equation 8 may be written as













      n Y n X 1 n 2 n S n 2 n S 1 1 n Y 1 n X ---(12) or as



        n X 2n 2 n S n Y 1 n Y n Y 2n 2 n S n X 1 n X ---(13) At this point a new variable called ‘Z’ is introduced. Z represents the part of the angle which has not been rotated yet.      n 0 i θi θ

1 n

Z ---(14)

For every step of the rotation Sn is computed as a sign of Zn.

     0 n Z if 1 0 n Z if 1 n S ---(15)

Combining equations 5 and 15 results in a system which reduces the not rotated part of angle to zero.

III. MODES OF

OPERATION

The CORDIC rotator is normally operated in one of two modes

Rotation mode

In rotation mode the angle accumulator is initialized with the desired rotation angle. The rotation decision at each iteration is made to diminish the magnitude of the residual angle in the angle accumulator. The decision at each iteration is therefore based on the sign of the residual angle after each step.

(3)

) e (2 1 tan i d i z 1 i z i 2 i d i x i y 1 i y i 2 i d i y i x 1 i x              Where

i

d

= -1 if z < 0 , +1 otherwise. This provides following results,

1/k 2i 2 1 n A 0 n z ] 0 sinz 0 x 0 [ycosz n A n y ] 0 sinz 0 y 0 [xcosz n A n x          

Vectoring mode

In vectoring mode the CORDIC rotator rotates the input vector through whatever angle is necessary to align the result vector with the X-axis.

The result of the vectoring operation is a rotation angle and the scaled magnitude of the original vector (the x component of the result).

The vectoring function works by seeking to minimize the y component of the residual vector of each rotation. The sign of the residual y component is used to determine which direction to rotate. Next if the angle accumulator is initialized with zero. It will contain the transverse angle at the end of the iterations.

In vectoring mode the equations are

) e (2 1 tan i d i z 1 i z i 2 i d i x i y 1 i y i 2 i d i y i x 1 i x              Where

i

d

= +1 if yi< 0 , -1 otherwise.

Then i n A x y z n z y y x 2 2 1 0 ) 0 / 0 ( 1 tan 0 0 2 0 2 0 n A n x          

The CORDIC rotator described is usable to compute several trigonometric functions directly and others indirectly. Judicious choice of initial values and modes permits direct computation of sine, cosine, arctangent, vector magnitude and transformations between polar and

Cartesian co-ordinates. Sine, Cosine Calculation. The rotation mode operation can Simultaneously compute the sine and cosine of the input angle. Setting the y component of the input vector to zero reduces the rotation mode result to

xn=Anx0cosz0

yn=Anx0sinz0

By setting x0=1/An

the rotation produces the unscaled sine and cosine of the angle argument z0.esian co-ordinate transformer.

Arctangent

The arctangent

= Atan(y/x) is directly computed using the vectoring mode CORDIC rotator if the angle accumulator is initialized with zero. The argument must be provided as ratio expressed as a vector (x,y).

Presenting argument as a ratio has the advantage as being able to represent infinity (by setting x=0). Since the arctangent result is taken from angle accumulator the CORDIC rotator growth does not affect the result.

zn= z0+tan-1(y0/x0)

Vector Magnitude

The vectoring mode CORDIC rotator produces the magnitude of the input vector of a by product of computing the arctangent. After the vectoring mode rotation the vector the vector is aligned with the x-axis. The magnitude of the vector is therefore the same as the x component of the rotated vector.

2 0 2 0 x An

xn   y

The result is scaled by the processor gain which needs to be accounted for elsewhere in the system. This implementation of vector magnitude has a hardware complexity of roughly one multiplier of the same width.

IV. CORDIC A

RCHITECTURE

There are multiple hardware structures that can be used to implement CORDIC. The interaction between the three most important structures, iterative, serial iterative and unrolled(parallel pipelined) have been done[2]. A survey of algorithms for FPGA have been carried out [3], where principle features of each structure has been presented.

(4)

Copyright © 2012 IJECCE, All right reserved

Fig.2. Pipelined architecture (RTL View)

RESULTS

Fig.3 shows RTL view for both modes

The entity for sine/cos is shown. Also fig 4 shows RTL simulation of Rotation mode.Vectoring mode rtl view is also shown in fig.3 for calculation for arctangent and vector magnitude is shown

Fig.3. RTL for rotation mode entity

Fig.4. RTL rotation mode

Fig.5. RTL VECTORING mode entity

Fig.6. RTL Vectoring mode

30 deg 45 deg 60 deg 90 deg

Sin 0x3FFC 0x5A82 0x6EDC 0x8000

Cos 0x6EDD 0x5A83 0x4000 0x01CC

Sin 0.49998 0.70709 0.86609 1.00000

Cos 0.86612 0.70712 0.50000 0.01403

Device utilization summary selected Device : 3s50pq208-5

Number of Slices: 376 out of 768 48% Number of Slice Flip Flops: 718 out of 1536 46% Number of 4 input LUTs: 673 out of 1536 43% Number of bonded IOBs: 64 out of 124 51% Number of GCLKs: 1 out of 8 12% Timing Summary: Speed Grade: -5

Minimum period: 4.416ns (Maximum Frequency: 226.449MHz)

Minimum input arrival time before clock: 5.449ns Maximum output required time after clock: 5.106ns Maximum combinational path delay: No path found

V. CONCLUSION

(5)

multiplications, division etc. The polar to rectangular and rectangular to polar conversion using cordic can be used in many signal processing applications based on vector algebra also. It is believed that similar algorithms based on this fundamental concept of computation could be developed for many other computing requirements.

REFERENCES

[1] Volder, J.”The CORDIC Trigonometric computing technique”,

IRE Trans. Electronic computing, vol EC-8,pp330-334,sept 1959.

[2] Andraka R.”A survey of CORDIC Algorithms for FPGA based computers”, proc. Of ACM/SIGDA Sixth International

Symposium on FPGAS,Feb,1998,Monterrey,CA,pp-191-200 [3] A VHDL Implementation of a CORDIC Arithmetic Processor

chip faculty of computing and information tech.dept. of Robotics & Digital technology technical report 94-9

[4] Tradeoffs in Arithmetic Architectures for CORDIC Javier Oscar Giacomantone

[5] Duprat,J.and Mullar J.M.”The CORDIC Algorithm :New Results for Fast VLSI Implementation ,”IEEE transactions on computers,vol,42,pp,168-178,1993

[6] Walther J.S.”A Unified algorithm for elementary functions “,

Spring Joint Computer conf. 1971 proc.pp-379-385

[7] Hu,Y.H “The quantization effects of thec CORDIC algorithm “,IEEE Trans.on signal processing vol.40 no,4,april 1992,pp,834-844

[8] Linhardt,R.J,and Miller H.S.,”Digit –by–Digit Transcendental

function computations”,RCA,Rev.30(1969) pp 209-247

SIMULATION

RESULTS

Output for 30degree sine and cosine(Rotation mode)

References

Related documents

West African countries are carrying an enormous mal- aria burden [1]. In Burkina Faso alone, the number of malaria deaths is estimated at nearly 40 000 annually [2].

In a study of older adults admitted to a general hospital for a wide variety of disorders we found that co- morbidity as measured with the Charlson Index and poor self-reported

McLachlan et al BMC Pregnancy and Childbirth 2014, 14 346 http //www biomedcentral com/1471 2393/14/346 STUDY PROTOCOL Open Access Supporting breastfeeding In Local Communities

Kuo et al EURASIP Journal on Wireless Communications and Networking 2012, 2012 274 http //jis eurasipjournals com/content/2012/1/274 RESEARCH Open Access Performance enhancement of IEEE

Cwc23p is needed for efficient splicing but does not act as a canonical Hsp40 protein in the requisite step of pre-mRNA processing: CWC23 encodes a 283-amino- acid protein

In order to meet these requirements, an innovative integral system NAVIS (Naval Application Vessel Integral System) is being designed with such novel concepts as a primary

But of greater importance, our data suggest a new model of second- ary nondisjunction in which XXY associations are ubiq- uitous during early prophase in all oocytes of this

This paper describes novel method of automatic feature selection for abnormal speech which helps to improve performance and accuracy of system.. The database created