November 13, 2007
A Little CORDIC Goes a Long Way

Unless you're doing something like reverse engineering an HP-35 calculator, you probably don't run across CORDIC algorithms every day. Which makes me wonder why I'm so lucky.
Short for "COordinate Rotation DIgital Computer," the CORDIC algorithm was developed in 1956 by Jack Volder when developing navigation systems for B-58 bombers. In the 1970s, the algorithm found its way into calculators like the HP-35. I didn't stumble across CORDIC algorithms until 1990, when Pitts Jarvis wrote Implementing CORDIC Algorithms, which was followed by Michael Pashea's Microcontrollers & CORDIC Methods in 2000. Ever since then, CORDIC algorithms and I have had a hit-or-miss relationship. Until recently.
Then a day or two ago, I was reading an interesting article by Anthony Williams entitled "Optimizing Math-Intensive Applications with Fixed-Point Arithmetic" which explains how Anthony optimized C code so that helicopters could fly faster and safer. And wouldn't you know it, CORDIC popped up: "The single biggest gain was achieved by optimizing the trigonometric and exponential functions. For the trig functions, the CORDIC method was used."
As luck would have it, a couple of hours later I received email from RF Engines Ltd, which specializes in signal processing for FPGAs--and which has developed a new version of the CORDIC algorithm. What RFEL discovered is that intensive signal processing on FPGAs has revealed limitations in efficiently implementing traditional CORDIC designs on FPGA devices.
According to RFEL, most CORDIC implementations for FPGA are biased towards the use of FPGA's logic resources, rather than DSP and memory-block resources. This heavy use of logic resources means that there aren't sufficient logic resources available in the FPGA to accommodate the logic-based CORDIC and still achieve the required FPGA clock rate. So RFEL came up with its new CORDIC approach for efficiently exploiting FPGA resources. Pretty interesting.
But wouldn't you know it, the same day yet another CORDIC company popped up, this one simply called Cordic Ltd. It too is in the signal processing business, producing real-time dispatching applications for fleets. Like I said, a little CORDIC can go a long way.
-- Jonathan Erickson
jerickson@ddj.com
Posted by Jon Erickson at 10:30 PM Permalink
|