OpenCores
URL https://opencores.org/ocsvn/dblclockfft/dblclockfft/trunk

Subversion Repositories dblclockfft

[/] [dblclockfft/] [trunk/] [README.md] - Blame information for rev 36

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 36 dgisselq
# A Generic Piplined FFT Core Generator
2 32 dgisselq
 
3 36 dgisselq
This generic pipelined FFT project contains all of the software necessary to
4
create the IP to generate an arbitrary sized FFT.  The FFT has been modified
5
for operation in one of the following modes:
6 32 dgisselq
 
7 36 dgisselq
- Two samples in per clock and, after some delay, two samples out per clock.
8
  This uses 6 multiplies per FFT stage in the butterflies.  This was the purpose
9
  of the original `dblclkfft`.  (Why double clock?  I don't know.  Double-sample
10
  FFT might've been a better name.)
11
 
12
- One sample in per clock, with the `i_ce` line being high for every incoming
13
  sample--up to one sample per clock.  There's also options to run with at
14
  least one clock between samples, or even two clocks between samples (or more).
15
  This mode uses 3, 2, or 1 multiplies per FFT stage respectively.
16
 
17
- Eventually, I want to support a real FFT mode which will accept real samples
18
  input, and alternately produce real and imaginary samples output--or the
19
  converse for the inverse FFT.
20
 
21
The FFT generated by this project is very configurable.  By simple adjustment
22
of a command line parameter, the FFT created will either be a forward FFT or an
23 32 dgisselq
inverse FFT.  The number of bits processed, kept, and maintained by this
24
FFT are also configurable.  Even the number of bits used for the twiddle
25
factors, or whether or not to bit reverse the outputs, are all configurable
26
parts to this FFT core.
27
 
28 36 dgisselq
These features make this open source pipelined FFT module very different
29
and unique among the other open HDL cores you may find.
30 32 dgisselq
 
31
For those who wish to get started right away, please download the package,
32
change into the ``sw`` directory and run ``make``.  There is no need to
33
run a configure script, ``fftgen`` is completely portable C++.  Then, once
34
built, go ahead and run ``fftgen`` without any arguments.  This will cause
35
``fftgen`` to print a usage statement to the screen.  Review the usage
36
statement, and run ``fftgen`` a second time with the arguments you need.
37
 
38 36 dgisselq
# Current State
39 32 dgisselq
 
40 36 dgisselq
This particular version of the FFT core now passes all my tests.  It has
41
yet to meet hardware to be finally verified.
42 32 dgisselq
 
43 36 dgisselq
- The [FFT test bench](bench/cpp/fft_tb.cpp) doesn't yet have a threshold that
44
  adjusts with input parameters to determine success or failure (yet).
45 32 dgisselq
 
46 36 dgisselq
- I haven't started on the real-only version of this FFT.
47 32 dgisselq
 
48 36 dgisselq
While my previously stated goal ws to continue working with this core until it
49
has a real-FFT capability before releasing it back into the master branch,
50
I'm actually so excited that I got it to this point that I'm going to move
51
it from dev to master earlier, and come back to get the real only version.
52
 
53 33 dgisselq
# Commercial Applications
54
 
55
Should you find the GPLv3 license insufficient for your needs, other licenses
56
can be purchased from Gisselquist Technology, LLC.
57
 
58
Likewise, please contact us should you wish to fund the further development
59
of this core.
60 36 dgisselq
 
61
Watch this space if you are interested in a release under another license.
62
I'm thinking about relicensing this with a more permissive license.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.