URL
https://opencores.org/ocsvn/dblclockfft/dblclockfft/trunk
Subversion Repositories dblclockfft
[/] [dblclockfft/] [trunk/] [README.md] - Rev 35
Go to most recent revision | Compare with Previous | Blame | View Log
# A Double-Clocked FFT Core GeneratorThe Double Clocked FFT project contains all of the software necessary tocreate the IP to generate an arbitrary sized FFT that will clock two samplesin at each clock cycle, and after some pipeline delay it will clock twosamples out at every clock cycle.The FFT generated by this approach is very configurable. By simple adjustmentof a command line parameter, the FFT may be made to 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 the Double Clocked FFT very different and unique among theother open HDL cores you may fine.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.Alternatively, you _could_ read the specification.## GenesisThis FFT comes from my attempts to design and implement a signal processingalgorithm inside a generic FPGA, but only on a limited budget. As such,I don't yet have the FPGA board I wish to place this algorithm onto, neitherdo I have any expensive modeling or simulation capabilities. I'm usingVerilator for my modeling and simulation needs. This makesusing a vendor supplied IP core, such as an FFT, difficult if not impossibleto use.My problem was made worse when I learned that the published maximum clockspeed for a device wasn't necessarily the maximum clock speed that I couldachieve. My design needed to process the incoming signal at 500 MHz to becommercially viable. 500 MHz is not necessarily a clock speedthat can be easily achieved. 250 MHz, on the other hand, is much more withinthe realm of possibility. Achieving a 500 MHz performance with a 250 MHzclock, however, requires an FFT that accepts two samples per clock.This, then, was and is the genesis of this project.# Commercial ApplicationsShould you find the GPLv3 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.
Go to most recent revision | Compare with Previous | Blame | View Log
