This Article 
 Bibliographic References 
 Add to: 
The Differential CORDIC Algorithm: Constant Scale Factor Redundant Implementation without Correcting Iterations
March 1996 (vol. 45 no. 3)
pp. 307-318

Abstract—The CORDIC algorithm is a well-known iterative method for the efficient computation of vector rotations, and trigonometric and hyperbolic functions. Basically, CORDIC performs a vector rotation which is not a perfect rotation, since the vector is also scaled by a constant factor. This scaling has to be compensated for following the CORDIC iteration.

Since CORDIC implementations using conventional number systems are relatively slow, current research has focused on solutions employing redundant number systems which make a much faster implementation possible. The problem with these methods is that either the scale factor becomes variable, making additional operations necessary to compensate for the scaling, or additional iterations are necessary compared to the original algorithm.

In contrast we developed transformations of the usual CORDIC algorithm which result in a constant scale factor redundant implementation without additional operations. The resulting "Differential CORDIC Algorithm" (DCORDIC) makes use of on-line (most significant digit first redundant) computation. We derive parallel architectures for the radix-2 redundant number systems and present some implementation results based on logic synthesis of VHDL descriptions produced by a DCORDIC VHDL generator. We finally prove that, due to the lack of additional operations, DCORDIC compares favorably with the previously known redundant methods in terms of latency and computational complexity.

[1] H. Meyr,H. Dawid,O. Joeressen, and P. Zepter,"Design of High Speed Communication Systems," Proc. ISCAS, p. 2.134, IEEE, May 1994.
[2] H. Dawid and H. Meyr,"High Speed Bit-Level Pipelined Architectures for Redundant CORDIC Implementation," Proc. Int'l Conf. Application Specific Array Processors, pp. 358-372,Oakland, Calif., IEEE CS Press, Aug. 1992.
[3] H. Dawid and H. Meyr,"Very High Speed CORDIC Implementation: Algorithm Transformation and Novel Carry-Save Architecture," Proc. European Signal Processing Conf. EUSIPCO '92, pp. 358-372,Brussels, Elsevier Science Publications, Aug. 1992.
[4] H. Dawid and H. Meyr,"VLSI Implementation of the CORDIC Algorithm Using Redundant Arithmetic," Proc. IEEE Int'l Symp. Circuits and Systems ISCAS, pp. 1,089-1,092,San Diego, May10-13, 1992.
[5] J.E. Volder,"The CORDIC Trigonometric Computing Technique," IRE Trans. Electronic Computing, vol. 8, pp. 330-334, Sept. 1959.
[6] J.S. Walther,"A Unified Algorithm for Elementary Functions," AFIPS Spring Joint Computer Conf., vol. 38, pp. 379-385, 1971.
[7] G. Schmidt,D. Timmermann,J.F. Böhme, and H. Hahn,"Parameter Optimization of the CORDIC Algorithm and Implementation in a CMOS Chip," Proc. EUSIPCO '86, pp. 1,219-1,222, 1986.
[8] J. Lee and T. Lang,"On-Line CORDIC for Generalized Singular Value Decomposition," SPIE Vol. 1058 High Speed Computing II, pp. 235-247, 1989.
[9] S. Note,J. van Meerbergen,F. Catthoor, and H. de Man,"Automated Synthesis of a High Speed CORDIC Algorithm with the Cathedral-III Compilation System," Proc. IEEE ISCAS '88, pp. 581-584, 1988.
[10] J. Bu,E.F. Deprettere, and F. du Lange,"On the Optimization of Pipelined Silicon CORDIC Algorithm," Proc. EUSIPCO '88, pp. 1,227-1,230, 1988.
[11] J.R. Cavallaro and F.T. Luk,"Floating Point CORDIC for Matrix Computations," Proc. IEEE Int'l Conf. Computer Design, pp. 40-42, 1988.
[12] J.R. Cacallaro and F.T. Luk,"CORDIC Arithmetic for a SVD Processor," J. Parallel and Distributed Computing, vol. 5, pp. 271-290, 1988.
[13] A.A. de Lange,A.J. van der Hoeven,E.F. Deprettere, and J. Bu,"An Optimal Floating-Point Pipeline CMOS CORDIC Processor," Proc. IEEE ISCAS '88, pp. 2,043-2,047, 1988.
[14] T. Noll,"Carry-Svae Architectures for High-Speed Digital Signal Processing," J. VLSI Signal Processing, vol. 3, pp. 121-140, June 1991.
[15] R. Künemund,H. Söldner,S. Wohlleben, and T. Noll,"CORDIC Processor with Carry-Save Architecture," Proc. ESSCIRC '90, pp. 193-196, 1990.
[16] N. Takagi,T. Asada, and S. Yajima,"Redundant CORDIC Methods with a Constant Scale Factor for Sine and Cosine Computation," IEEE Trans. Computers, vol. 40, no. 9, pp. 989-995, Sept. 1991.
[17] M.D. Ercegovac and T. Lang,"Redundant and On-Line CORDIC: Application to Matrix Triangularisation and SVD," IEEE Trans. Computers, vol. 38, no. 6 pp. 725-740, June 1990.
[18] H.X. Lin and H.J. Sips,"On-Line CORDIC Algorithms," IEEE Trans. Computers, vol. 38, no. 8, pp. 1,038-1,052, Aug. 1990.
[19] T. Noll,"Carry-Save Arithmetic for High-Speed Digital Signal Processing," IEEE ISCAS '90, vol. 2, pp. 982-986, 1990.
[20] H. Yoshimura,T. Nakanishi, and H. Yamauchi,"A 50 MHz CMOS Geometrical Mapping Processor," IEEE Trans. Circuits and Systems, vol. 36, no. 10, pp. 1,360-1,363, 1989.
[21] M.D. Ercegovac and T. Lang,"Implementation of Fast Angle Calculation and Rotation Using On-Line CORDIC," Proc. IEEE ISCAS '88, pp. 2,703-2,706, 1988.
[22] N. Takagi,T. Asada, and S. Yajima,"A Hardware Algorithm for Computing Sine and Cosine Using Redundant Binary Representation," Systems and Computers in Japan, vol. 18, no. 8, pp. 1-9, 1987.
[23] B. Parhami,"On the Implementation of Arithmetic Support Functions for Generalized Signed-Digit Number Systems," IEEE Trans. Computers, vol. 42 no. 3, pp. 379-384, Mar. 1993.
[24] N. Takagi,T. Asada, and S. Yajima,"A Hardware Algorithm for Computing Sine and Cosing Using Redundant Binary Representation," Trans. IEICE Japan, vol. J69-D, no. 6, pp. 841-847, 1986 (in Japanese)
[25] J. Lee and T. Lang,"Constant-Factor Redundant CORDIC for Angle Calculation and Rotation," IEEE Trans. Computers, vol. 41, no. 8, pp. 1,016-1,035, Aug. 1992.
[26] J. Duprat and J.-M Muller,"The CORDIC Algorithm: New Results for Fast VLSI Implemenation," IEEE Trans. Computers, vol. 42, no. 2, pp. 168-178 Feb. 1993.
[27] B. Parhami, "Generalized Signed-Digit Number Systems: A Unifying Framework for Redundant Number Representations," IEEE Trans. Computers, vol. 39, no. 1, pp. 89-98, Jan. 1990.
[28] B. Parhami,"Carry-Free Addition of Recoded Binary Signed-Digit Numbers," IEEE Trans. Computers, vol. 38, pp. 1,470-1,476, 1988.
[29] A. Vandemeulebroecke,E. Vanzieleghem,T. Denayer, and P.G.A. Jespers,"A New Carry-Free Diversion Algorithm and Its Application to a Single-Chip 1024-b RSA Processor," IEEE J. Solid State Circuits, vol. 25, no. 3, pp. 748-765, 1990.
[30] M.D. Ercegovac,"On-Line Arithmetic: An Overview," Real Time Signal Processing VII: Proc. SPIE, vol. 495, pp. 86-93, 1984.
[31] T. Lang, private communication, Jan. 1994.
[32] Y.H. Hu,"The Quantization Effects of the CORDIC Algorithm," IEEE Trans. Circuits and Systems, vol. 40, no. 4, pp. 834-844, 1992.
[33] M.D. Ercegovac and T. Lang,"On-the-Fly Conversion of Redundant into Conventional Representations," IEEE Trans. Computers, vol. 36, pp. 895-897, 1987.
[34] W.H. Specker,"A Class of Algorithms for ln X, exp X, sin X, cos X, tan-1X and cot-1X," IEEE Trans. Electronic Computers, vol. 14, no. 1, pp. 85-86, 1965.
[35] N.R. Scott,Computer Number Systems and Arithmetic.Englewood Cliffs, N.J.: Prentice Hall, 1988.

Index Terms:
CORDIC, carry save, signed digit, redundant number systems, radix-2, VLSI architecture, computer arithmetic.
Herbert Dawid, Heinrich Meyr, "The Differential CORDIC Algorithm: Constant Scale Factor Redundant Implementation without Correcting Iterations," IEEE Transactions on Computers, vol. 45, no. 3, pp. 307-318, March 1996, doi:10.1109/12.485569
Usage of this product signifies your acceptance of the Terms of Use.