His research led to an internal technical report proposing the CORDIC algorithm to solve sine and cosine functions and a prototypical computer implementing it. Daggett, a colleague of Volder at Convair, developed conversion algorithms between binary and binary-coded decimal BCD. Meggitt IBM  had proposed as pseudo-multiplication and pseudo-division in CORDIC is particularly well-suited for handheld calculators, in which low cost — and thus low chip gate count — is much more important than speed.
|Published (Last):||7 April 2005|
|PDF File Size:||3.13 Mb|
|ePub File Size:||18.53 Mb|
|Price:||Free* [*Free Regsitration Required]|
Therefore, we can simply calculate sine and cosine of an arbitrary angle through rotation. To achieve this, we only need to rotate the input vector so that it is aligned with the x-axis. Interestingly, the list of the functions that can be calculated from rotation is relatively long.
Inverse trigonometric functions such as arctan, arcsin, arccos, hyperbolic and logarithmic functions, polar to rectangular transform, Cartesian to polar transform, multiplication, and division are some of the most important operations that can be obtained from variants of rotation.
The question that remains is, How can we avoid these multiplications? Figure 2. First, each rotation mandates a scaling factor which appears in the final calculations. Second, as we proceed with the algorithm, the angle of rotation rapidly becomes smaller and smaller.
For a more demanding application where higher accuracy is required, you can consider more significant figures for the scaling factor. We can use a constant scaling factor because the algorithm uses some predefined angles in each elementary rotation. This is accomplished by simply recording the angle of previous rotations and comparing the overall achieved rotation with the desired angle.
If the desired rotation is larger smaller than previously achieved rotation, then we need to rotate counter-clockwise clockwise in the next iteration.
Subscribe to RSS
Use Cordic to Calculate Sin/Cos with Verilog Implementation
An Introduction to the CORDIC Algorithm