
[Downloaded from www.aece.ro on Friday, July 11, 2014 at 22:51:43 (UTC) by 200.23.5.195. Redistribution subject to AECE license or copyright.] Advances in Electrical and Computer Engineering Volume 14, Number 2, 2014 An Area Efficient Composed CORDIC Architecture Francisco AGUIRRE-RAMOS, Alicia MORALES-REYES, Rene CUMPLIDO, Claudia FEREGRINO-URIBE Instituto Nacional de Astrofisica, Optica y Electronica, 72840, Puebla, Mexico [email protected] 1Abstract—This article presents a composed architecture for improving computational time and decreasing complexity. the CORDIC algorithm. CORDIC is a widely used technique to In [6] an adaptive CORDIC rotator with constant scaling calculate basic trigonometric functions using only additions factor is proposed aiming to reduce resources usage. and shifts. This composed architecture combines an initial Researchers have focused on improving the CORDIC coarse stage to approximate sine and cosine functions, and a second stage to finely tune those values while CORDIC algorithmic core and its implementation. Algorithmic operates on rotation mode. Both stages contribute to shorten improvements commonly consist in reducing the number of the algorithmic steps required to fully execute the CORDIC rotations [7-8], modifying the scaling factor [9-10] or algorithm. For comparison purposes, the Xilinx CORDIC changing the determination of rotations direction [8,11,12]. logiCORE IP and previously reported research are used. The On the other hand, most popular improvements in the proposed architecture aims at reducing hardware resources hardware arena are related to operational frequency, usage as its key objective. throughput and occupied area [13]. Index Terms—digital systems, computer architecture, field In this paper, a composed architecture is proposed, it programmable gate arrays, signal processing, circuit consists in combining a Lookup Table (LUT) with a rotation optimization. prediction and a CORDIC pipeline modules. The algorithmic approach takes an input angle and obtains a I. INTRODUCTION coarse initial approach of its sine and cosine functions from Complex digital systems use trigonometric functions as a a LUT. The remaining rotations are algorithmically fundamental component. These functions are widely used in predicted, and the final result is approximated with the many areas including digital image and signal processing, CORDIC pipeline module. Results show a reduction in the cryptography and watermarking. Several approaches have number of rotations and in hardware resources usage per been developed to calculate trigonometric functions, most of iteration. them based on polynomial or rational approximations which The paper is organized as follows. In Section III the are not easily mapped into hardware architectures. CORDIC algorithm is presented including specifics for the CORDIC (Coordinate Rotation Digital Computer) is an proposed architectural approach. Section IV introduces the iterative algorithm designed to calculate trigonometric proposed composed hardware architecture design followed functions using basic addition and shift operations, by obtained results in Section V. Section VI presents characteristic that makes it suitable for hardware conclusions of this research. architectures design [1,2]. The algorithm can be configured to operate in vectoring or rotation mode in several II. RELATED WORK coordinate systems, providing the possibility to calculate Related work is extensive and varied, among the hyperbolic functions. In rotation mode, a vector is iteratively approaches aiming to improve CORDIC's algorithmic rotated by an angle, to calculate a final vector corresponding performance, in [7] Lakshmi et al. proposed a pipelined to the sine and cosine functions of an input angle. A new architecture for radix-4 CORDIC rotations. This VLSI vector is obtained every iteration, after a small rotation approach refines previously proposed radix-2 techniques in (micro-rotation). Each rotation has a specific direction terms of latency and throughput by using redundant which is calculated every step based on the sign of an arithmetic and higher radix techniques. Originally, radix-4 angular variable. In vectoring mode, the algorithm follows rotations for a second stage of small rotations were used to similar steps but it also allows calculating divisions and accelerate radix-2 CORDIC algorithm [9]. Lee et al. logarithmic functions. approach was modified to use radix-4 for the entire set of At an application level, CORDIC is widely used in the rotations reducing the number of iterations and the hardware signal processing arena [3-6]. In [3], CORDIC resources usage. In [8], a modification of the angle recoding compensation is implemented instead of using method that avoids an increase in cycle time and allows an multiplications, helping to significantly reduce hardware arbitrary input angle is presented. This approach calculates complexity. In [4], CORDIC algorithm is included in an in one step all angle constants by comparing the input angle efficient filtering design where power of two coefficients are to several adjacent rotation ranges. The lower the number of calculated. CORDIC algorithm is applied directly in the comparative ranges the lower the number of cycles during implementation of a Givens rotation module used in [5], the iterative process. In [11], authors follow a similar approach to improve CORDIC by reducing the number of This work was supported partially by the Mexican National Council for required micro-rotations when large bit-width (64-bit) input Science and Technology (CONACYT) through grant number 261243. Digital Object Identifier 10.4316/AECE.2014.02019 113 1582-7445 © 2014 AECE [Downloaded from www.aece.ro on Friday, July 11, 2014 at 22:51:43 (UTC) by 200.23.5.195. Redistribution subject to AECE license or copyright.] Advances in Electrical and Computer Engineering Volume 14, Number 2, 2014 angles are calculated. The improvement comes from recoding two bits of the input angle concurrently leading to a reduction of 21% in area/delay. In [10] an adaptive approach is proposed which executes necessary iterations with a 50% reduction while maintaining a constant scaling factor. A reduction in hardware resources usage is also reported. Most popular improvements in the hardware arena are related to operational frequency, throughput and occupied area. In [14] an analysis of standard CORDIC implementations is carried out to reduce the interconnections delay. Several reconfigurable platforms are used for implementing three pre-computing sign methods: Para-CORDIC [12], P-CORDIC [15] and Flat- CORDIC [16]. Results showed P-CORDIC performs better in newer devices and Flat and Para-CORDIC in older FPGAs devices. III. CORDIC BASIS Figure 1. Hybrid CORDIC architecture blocks diagram CORDIC's algorithmic approach performs vector rotations by arbitrary angles using shifts and additions. The A. LUT Module algorithm is based on a general rotation transformation with A LUT is implemented within the hybrid architecture for angles restricted to: tan 2i , reducing multiplications to an initial approximation of the input angle's trigonometric shift operations. Thus, arbitrary angles are obtained while functions. Precision for an unsigned output angle is 19-bit. applying a series of micro-rotations. Basic CORDIC The LUT stores xi and yi values. In the proposed design equations are shown in (1) and (2): i 5 , thus 51 angles within 0 and 4 radians, and their i xkxyiiiii1 ··2 (1) corresponding values for rotations prediction are stored. i The input angle's 6-msb (most significant bits) are used for ykyxiiiii1 ··2 (2) memory addressing to retrieve xi , yi and . 2i where ki 112 and i 1; ki approaches a The proposed hybrid architecture shown in Figure 1 constant and can be applied at any stage of the process. The requires an input angle within 0 4 with 16-bit necessary micro-rotations to calculate sine and cosine precision format, for a resulting output angle with 14-bit functions are defined by a sequence of directions precision format for its fractional part. represented by a decision vector. A set of decision vectors B. Rotations Prediction can be stored in a LUT or can be integrated into the system through an extra adder-subtracter that accumulates rotation The second stage in the proposed architecture performs angles at every iteration. Having an angle accumulator the P-CORDIC algorithm, which helps to speed up requires the extra equation (3). CORDIC computation by predicting the sequence of directions for all rotations to perform. Rotations directions zz ·2 tan1 i (3) iii1 are calculated in equation (4) by adding the input angle ( ), This equation is eliminated in the proposed architecture a constant (stored in the current stage) and an adjustment by pre-calculating rotations directions. variable ( ) which is calculated previously and stored in the LUT module. IV. ARCHITECTURE DESIGN 1 ds 1( ign ) (4) Overall, the proposed hybrid CORDIC architecture i 0 22i0 consists of three main stages, see Figure 1. During the first where 2tan(2ii1 ) and d ; d -bit stage, sine ( sin ) and cosine ( cos ) functions are i i0 ii i roughly approximated by obtaining an initial estimation calculates its corresponding rotation ( i ) according to from a Lookup Table, the input value for this stage is the equation (5). input angle ( ). On a second stage, rotations directions are ii 2d 1 (5) obtained by a module implementing the P-CORDIC In Figure 2(a) a detailed view of the P-CORDIC module algorithm [15]. The pre-calculated rotations are then applied is drawn. Removing z datapath from the CORDIC to determine the final trigonometric values using a CORDIC algorithm in the proposed architecture is achieved by the P- pipeline module. CORDIC algorithm. Since the sequence of rotations directions to perform is known in advance, it is not necessary to verify zi sign in every iteration, thus eliminating z datapath. 114 [Downloaded from www.aece.ro on Friday, July 11, 2014 at 22:51:43 (UTC) by 200.23.5.195. Redistribution subject to AECE license or copyright.] Advances in Electrical and Computer Engineering Volume 14, Number 2, 2014 logiCORE IP by Xilinx are used as reference [13], [17-18].
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages4 Page
-
File Size-