Table look-up CORDIC: effective rotations through angle partitioning
MetadataShow full item record
This dissertation documents the development, derivation, verification, implementation, and evaluation of an improved version of the COordinate Rotation DIgital Computer (CORDIC) algorithm for calculating sine and cosine values. The CORDIC algorithm was originally developed to calculate trigonometric relationships in navigation systems using a family of linearly converging iteration equations. The CORDIC algorithm computes numerous elementary functions including powers, exponentials, logarithms, trigonometric and hyperbolic functions. Many different versions of the classic CORDIC algorithm have been developed to enhance the performance of calculating these elementary functions. These alternative algorithms utilize methods that vary from using different number systems, to increasing the number of rotations performed in each iteration, to calculating the rotations using different Arc Tangent Radices. Even though each of these methods improves the performance of the CORDIC calculations, they still require a significant number of iterations through the CORDIC equations to obtain the final answer. The new CORDIC algorithm utilizes look-up tables and standard microprocessor arithmetic functional units to perform the calculations. The look-up tables employ either the traditional CORDIC or the new Parallel Arc Tangent Radix (ATR). The traditional CORDIC ATR combines multiple CORDIC iterations into a single effective rotation. The parallel ATR uses the exact angle value to perform the rotation rather than a summation of CORDIC ATR angles. Utilizing exact angles reduces the complexity of the decoders and permits parallel access to the ROMs. The Table Look-up CORDIC (TLC) algorithm is shown to be correct through the development of a mathematical proof utilizing the polar form of the CORDIC iteration equations. The TLC algorithm and other versions of the CORDIC algorithm are implemented in MatLab and simulated. The results of these simulations are compared with the bit correct value calculated with MatLab’s built in trigonometric functions to verify the correct operation. The same CORDIC algorithms are then modeled in V erilog. The V erilog models are synthesized to gates, placed and routed, and statically timed. The auto place and route of these circuits allows area estimates to be obtained for the different algorithms. The static timing analysis allows the worst-case path to be timed for frequency and latency comparisons.