The Differential CORDIC Algorithm: Constant Scale Factor Redundant Implementation without Correcting Iterations
Issue No.03 - March (1996 vol.45)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/12.485569
<p><b>Abstract</b>—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.</p><p>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.</p><p>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.</p>
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