Does anyone know any available reference to learn how works CORDIC algorithm to implement a division? Thank you!
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
CORDIC stands for "coordinate rotation digital computer" and was described as a method for computing trigonometric functions [PDF] by Jack E. Volder in 1959. Later the method was generalized by John S. Walther at Hewlett-Packard to other elementary transcendental functions and operations useful in pocket calculators. The advantage is simplicity of hardware required to perform additions, subtractions, bit-shifts, and table lookups (avoiding the need for hardware multiplication and division).
Applied to performing a CORDIC division, these ideas amount to producing the bits (or digits) of the quotient one at a time by aligning the divisor "under" the dividend and subtracting until what remains in the dividend is too small to allow a further subtraction. It is essentially the same as the long division algorithm taught in elementary school, especially if applied to binary numbers (where at a given position in the quotient, the divisor goes either 1 time or 0 times). Cases where the divisor is zero must be trapped as exceptions. If the divisor is negative, its sign and that of the dividend should both be changed (so that the algorithm is applied with a positive divisor).
See the illustrations here for Binary Division by Shift and Subtract, including a Java applet that demonstrates the steps.