URL
https://opencores.org/ocsvn/dblclockfft/dblclockfft/trunk
Subversion Repositories dblclockfft
[/] [dblclockfft/] [trunk/] [README.md] - Rev 43
Compare with Previous | Blame | View Log
# A Generic Piplined FFT Core GeneratorThis generic pipelined FFT project contains all of the software necessary tocreate the IP to generate an arbitrary sized FFT. The FFT has been modifiedfor operation in one of the following modes:- Two samples in per clock and, after some delay, two samples out per clock.This uses 6 multiplies per FFT stage in the butterflies. This was the purposeof the original `dblclkfft`. (Why double clock? I don't know. Double-sampleFFT might've been a better name.)- One sample in per clock, with the `i_ce` line being high for every incomingsample--up to one sample per clock. There's also options to run with atleast one clock between samples, or even two clocks between samples (or more).This mode uses 3, 2, or 1 multiplies per FFT stage respectively.- Eventually, I want to support a real FFT mode which will accept real samplesinput, and alternately produce real and imaginary samples output--or theconverse for the inverse FFT.The FFT generated by this project is very configurable. By simple adjustmentof a command line parameter, the FFT created will either be a forward FFT or aninverse FFT. The number of bits processed, kept, and maintained by thisFFT are also configurable. Even the number of bits used for the twiddlefactors, or whether or not to bit reverse the outputs, are all configurableparts to this FFT core.These features make this open source pipelined FFT module very differentand unique among the other open HDL cores you may find.For those who wish to get started right away, please download the package,change into the ``sw`` directory and run ``make``. There is no need torun a configure script, ``fftgen`` is completely portable C++. Then, oncebuilt, go ahead and run ``fftgen`` without any arguments. This will cause``fftgen`` to print a usage statement to the screen. Review the usagestatement, and run ``fftgen`` a second time with the arguments you need.# Current StateThis particular version of the FFT core now passes all my tests. It hasyet to meet hardware to be finally verified.- The [FFT test bench](bench/cpp/fft_tb.cpp) doesn't yet have a threshold thatadjusts with input parameters to determine success or failure (yet).- I haven't started on the real-only version of this FFT.While my previously stated goal ws to continue working with this core until ithas a real-FFT capability before releasing it back into the master branch,I'm actually so excited that I got it to this point that I'm going to moveit from dev to master earlier, and come back to get the real only version.# Commercial ApplicationsShould you find the LGPLv3 license insufficient for your needs, other licensescan be purchased from Gisselquist Technology, LLC.Likewise, please contact us should you wish to fund the further developmentof this core.
