
IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—I: REGULAR PAPERS, VOL. 56, NO. 9, SEPTEMBER 2009 1893 50 Years of CORDIC: Algorithms, Architectures, and Applications Pramod K. Meher, Senior Member, IEEE, Javier Valls, Member, IEEE, Tso-Bing Juang, Member, IEEE, K. Sridharan, Senior Member, IEEE, and Koushik Maharatna, Member, IEEE Abstract—Year 2009 marks the completion of 50 years of the applications. CORDIC-based computing received increased at- invention of CORDIC (COordinate Rotation DIgital Computer) tention in 1971, when John Walther [3], [4] showed that, by by Jack E. Volder. The beauty of CORDIC lies in the fact that varying a few simple parameters, it could be used as a single by simple shift-add operations, it can perform several computing algorithm for unified implementation of a wide range of ele- tasks such as the calculation of trigonometric, hyperbolic and logarithmic functions, real and complex multiplications, division, mentary transcendental functions involving logarithms, expo- square-root, solution of linear systems, eigenvalue estimation, nentials, and square roots along with those suggested by Volder singular value decomposition, QR factorization and many others. [1]. During the same time, Cochran [5] benchmarked various al- As a consequence, CORDIC has been utilized for applications in gorithms, and showed that CORDIC technique is a better choice diverse areas such as signal and image processing, communication for scientific calculator applications. systems, robotics and 3-D graphics apart from general scientific and technical computation. In this article, we present a brief The popularity of CORDIC was very much enhanced there- overview of the key developments in the CORDIC algorithms and after primarily due to its potential for efficient and low-cost architectures along with their potential and upcoming applica- implementation of a large class of applications which include: tions. the generation of trigonometric, logarithmic and transcendental elementary functions; complex number multiplication, eigen- Index Terms—Arithmetic circuits, CORDIC, CORDIC algo- rithms, digital signal processing chip, VLSI. value computation, matrix inversion, solution of linear systems and singular value decomposition (SVD) for signal processing, image processing, and general scientific computation. Some I. INTRODUCTION other popular and upcoming applications are: 1) direct frequency synthesis, digital modulation and coding for speech/music synthesis and communication; OORDINATE Rotation DIgital Computer is abbreviated 2) direct and inverse kinematics computation for robot ma- as CORDIC. The key concept of CORDIC arithmetic is C nipulation; based on the simple and ancient principles of two-dimensional 3) planar and three-dimensional vector rotation for graphics geometry. But the iterative formulation of a computational algo- and animation. rithm for its implementation was first described in 1959 by Jack Although CORDIC may not be the fastest technique to per- E. Volder [1], [2] for the computation of trigonometric func- form these operations, it is attractive due to the simplicity of tions, multiplication and division. This year therefore marks the its hardware implementation, since the same iterative algorithm completion of 50 years of the CORDIC algorithm. Not only could be used for all these applications using the basic shift-add a wide variety of applications of CORDIC have emerged in operations of the form . the last 50 years, but also a lot of progress has been made in Keeping the requirements and constraints of different ap- the area of algorithm design and development of architectures plication environments in view, the development of CORDIC for high-performance and low-cost hardware solutions of those algorithm and architecture has taken place for achieving high throughput rate and reduction of hardware-complexity as well Manuscript received August 22, 2008; revised November 26, 2008 and April as the latency of implementation. Some of the typical ap- 10, 2009. First published June 19, 2009; current version published September 02, 2009. This paper was recommended by Associate Editor V. Öwall. proaches for reduced-complexity implementation are focussed P. K. Meher is with the Department of Communication Systems, Institute for on minimization of the complexity of scaling operation and the Infocomm Research, Singapore 138632 (e-mail: [email protected]). complexity of barrel-shifter in the CORDIC engine. Latency J. Valls is with Instituto de Telecomunicaciones y Aplicaciones Multimedia, of implementation is an inherent drawback of the conventional Universidad Politécnica de Valencia, 46730 Grao de Gandia, Spain (e-mail: [email protected]). CORDIC algorithm. Angle recoding schemes, mixed-grain T.-B. Juang is with the Department of Computer Science and Information rotation and higher radix CORDIC have been developed for Engineering, National Pingtung Institute of Commerce, Pingtung City, Taiwan reduced latency realization. Parallel and pipelined CORDIC 900 (e-mail: [email protected]). K. Sridharan is with the Department of Electrical Engineering, Indian Insti- have been suggested for high-throughput computation. The tute of Technology Madras, Chennai 600036, India (e-mail: [email protected]. objective of this article is not to present a detailed survey of in). the developments of algorithms, architectures and applications K. Maharatna is with the School of Electronics and Computer Sci- ence, University of Southampton, Southampton, SO17 1BJ, U.K. (e-mail: of CORDIC, which would require a few doctoral and masters [email protected]). level dissertations. Rather we aim at providing the key develop- Digital Object Identifier 10.1109/TCSI.2009.2025803 ments in algorithms and architectures along with an overview 1549-8328/$26.00 © 2009 IEEE Authorized licensed use limited to: UNIVERSITY OF SOUTHAMPTON. Downloaded on September 15, 2009 at 13:19 from IEEE Xplore. Restrictions apply. 1894 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—I: REGULAR PAPERS, VOL. 56, NO. 9, SEPTEMBER 2009 of the major application areas and upcoming applications. We shall however discuss here the basic principles of CORDIC operations for the benefit of general readers. The remainder of this paper is organized as follows. In Section II, we discuss the principles of CORDIC operation, covering the elementary ideas from coordinate transformation to rotation mode and vectoring mode operations followed by design of the basic CORDIC cell and multidimensional CORDIC. The key developments in CORDIC algorithms and architectures are discussed in Section III, which covers the al- gorithms and architectures pertaining to higher-radix CORDIC, angle recording, coarse-fine hybrid micro rotations, redundant number representation, differential CORDIC, and pipeline implementation. In Section IV, we discuss the scaling and accuracy aspects including the scaling techniques, scaling-free Fig. 1. Rotation of vector on a two-dimensional plane. CORDIC, quantization and area-delay-accuracy trade-off. The applications of CORDIC to scientific computations, signal pro- 1) Iterative Decomposition of Angle of Rotation: The cessing, communications, robotics and graphics are discussed CORDIC algorithm performs the rotation iteratively by briefly in Section V. The conclusion along with future research breaking down the angle of rotation into a set of small pre-de- directions are discussed in Section VI. fined angles1, , so that could be implemented in hardware by shifting through bit locations. II. BASIC CORDIC TECHNIQUES Instead of performing the rotation directly through an angle , In this Section, we discuss the basic principle underlying the CORDIC performs it by a certain number of microrotations CORDIC-based computation, and present its iterative algorithm through angle , where for different operating modes and planar coordinate systems. At the end of this section, we discuss the extension of two-dimen- sional rotation to multidimensional formulation. and (4) A. The CORDIC Algorithm that satisfies the CORDIC convergence theorem [3]: As shown in Fig. 1, the rotation of a two-dimensional vector . But, through an angle , to obtain a rotated vector the decomposition according to (4) could be used only for could be performed by the matrix product , (called the “convergence range”) where is the rotation matrix: since . Therefore, the angular decom- position of (4) is applicable for angles in the first and fourth (1) quadrants. To obtain on-the-fly decomposition of angles into the discrete base , one may otherwise use the nonrestoring By factoring out the cosine term in (1), the rotation matrix decomposition [6] can be rewritten as and (5) (2) with if and otherwise, where the rotation matrix for the th iteration corresponding to the selected and can be interpreted as a product of a scale-factor angle is given by with a pseudorotation matrix , given by (6) (3) being the scale-factor, and the pseudoro- The pseudorotation operation rotates the vector by an angle tation matrix and changes its magnitude by a factor , to produce a pseudo-rotated vector . (7) To achieve simplicity of hardware realization of the rotation, the key ideas used in CORDIC arithmetic are to (i) decompose Note that the pseudo-rotation matrix for the th itera- the rotations into a sequence of elementary rotations through tion alters the magnitude of the rotated vector by a scale-factor predefined angles that could be implemented with minimum during the th microrotation, which is in- hardware cost; and (ii) to avoid scaling, that
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages15 Page
-
File Size-