[sdiy] CORDIC

Michael Baxter mab at cruzio.com
Tue Nov 11 08:10:26 CET 2003


Hi James,

CORDIC is a very powerful and fascinating algorithm. The earliest use of 
this algorithm was in air navigation computers. The algorithm was 
developed by Jack Volder at Convair in the late 1950's. It got a lot of 
exposure in 1972 through the HP-35 calculator, the first handheld 
"electronic slide rule," as it was called in those days. At that time, 
AFAIK, the first description of the hyperbolic transcendental version of 
the algorithm was introduced, though it's possible some other researcher 
or group got to it before that time. Another application for CORDIC is in 
sexigesimal number systems, for instance for MM:HH:SS conversion to 
decimal minutes. Additionally, CORDIC can be performed in other number 
bases, such as in Radix-4, or in decimal (powers-of-10).

CORDIC was also used in the 1980's for VLSI array processing computers
which performed signal processing. Essentially, you can do fourier
transforms and a wide variety of other systems operations, using batches
of CORDIC processing blocks. I feel very lucky that I got a chance to meet
Jack Volder over lunch in the 1980's to chat about CORDIC.

This link will bring up about 181 references you can follow:
http://citeseer.nj.nec.com/cs?q=CORDIC&cs=1

You can probably find threads for CORDIC and FPGA on comp.arch.fpga by Ray 
Andraka, who has done a lot of innovating in this area for signal 
processing with FPGAs. He did a great demo of a FPGA-based digital radio 
tuning in WWV on short-wave, last Spring at FCCM'03. There's more 
information about FCCM at:
http://www.fccm.org

If you can find them, these papers are IMHO the absolute best ones about
CORDIC, though certainly a lot more modern stuff has come out (see
citeseer, above):

J. E. Volder, "The CORDIC Trignometric Computing Technique," IRE Trasn. 
Elec. Computers, vol. EC-S, no. 3, pp. 330-334 (Sep. 1959).

J. S. Walther, "A Unified Algorithm for Elementary Functions," Spring 
Joint Computer Conference, 1971, pp. 379-385.

Alvin M. Despain, "Fourier Transform Computers Using CORDIC Iterations," 
IEEE Trans. on Computers, vol. C-23, no. 10, pp. 993-1001 (Oct. 1974).

Additionally, in the June 1981 issue of Wireless World (which is from 
the UK), there was an article about an iterative digital sine-wave 
oscillator, and it's very CORDIC like, though no mention of CORDIC is 
made. It's title, "Accurate sine-wave oscillator," by N. Darwood.

Some small number of months later, an analog version of this same idea was 
written about in Wireless World in an article titled "Analogue Sine Waves 
-- Analogue implementation of the Darwood accurate sine-wave oscillator 
algorithm," by D. H. Follett. This analog circuit version was done with 
LF353 dual opamps, CD4066 CMOS switches, and capacitors, offering a 
quadrature output over a wide range of audio frequency. Sorry I don't have 
the date reference for this one, but I'm guessing Summer or Fall 1981.

Kindly yours,
Michael

On Mon, 10 Nov 2003, James Patchell wrote:

> Well, I am hoping somebody on this list can give me some help.  I am 
> looking for information on the CORDIC algorithm.  That stands for 
> Coordinate Rotation Digital Computer.  At first blush, this may seem to 
> have very little to do with Synth-DIY, but this algorithm can be used to 
> generate transcendental functions using only shifts and adds very quickly 
> (sin, cos, atan, hyperbolic functions, square roots...etc), and can be 
> easily implemented in FPGA's, as well as simple micros, such as the AVR.  I 
> am looking into applications for digital synths, as well as other 
> things...so, if anybody knows of any good links with information, please 
> let me know...here are a couple of good ones I have found...
> 
> http://www.andraka.com/cordic.htm
> http://www.dspguru.com/info/faqs/cordic.htm
> 
> 
>          -Jim
> ***************************************************
> I'm a man
> But I can change
> If I have to
> I guess.
> 
> Man's Prayer
> Red Green
> 
> ***************************************************
> http://www.oldcrows.net/~patchell
> 
> http://members.cox.net/patchell
> 
> ***************************************************
> 
> 
> 
> 



More information about the Synth-diy mailing list