On Jul 7, 2010, at 21:05 , Dan Werthimer wrote:

a few years ago, dave macmahon developed a "bit growth" biplex FFT that grows the number of bits each butterfly stage. eg: if you start with 4 bit data, and do a 1K FFT, you need 10 stages - the first stage is done with 4 bit precision, then 5 bits, then 6 bits....., then 13 bit precision in the last stage. this bit growth is needed to accomodate dynamic range increase as one goes from time to frequency
domain.

you could use dave's biplex bit growth FFT in the 16 input FFT (since the 16 bit FFT
is largely made of biplex FFT's), and this will save FPGA resources.

My FFT is actually a "quadplex radix-4 FFT" rather than a "biplex radix-2 FFT". It was developed for the ATA correlator and uses fewer multipliers than an equivalent pair of biplex radix-2 FFTs, which was necessary given the project's requirements and FPGA resources. It has not been updated since the 7.1 toolflow and it also supports data rate == fpga clock rate. It would take some additional work to update it for the 10.1 (or beyond) toolflow and support data rate != fpga clock rate, but IMHO whoever did it would be very glad they did. It really works nicely and, as Dan mentioned. it grows the bit width as needed which can save yet more resources!

FWIW, it's available in the CASPER subversion repository (along with some other nice blocks that I think have been ported to the 10.1 toolflow)...

http://casper.berkeley.edu/svn/trunk/newfft_library/

Enjoy,
Dave


Reply via email to