1 |
36 |
dgisselq |
////////////////////////////////////////////////////////////////////////////////
|
2 |
|
|
//
|
3 |
|
|
// Filename: defaults.h
|
4 |
|
|
//
|
5 |
|
|
// Project: A General Purpose Pipelined FFT Implementation
|
6 |
|
|
//
|
7 |
|
|
// Purpose:
|
8 |
|
|
//
|
9 |
|
|
// Creator: Dan Gisselquist, Ph.D.
|
10 |
|
|
// Gisselquist Technology, LLC
|
11 |
|
|
//
|
12 |
|
|
////////////////////////////////////////////////////////////////////////////////
|
13 |
|
|
//
|
14 |
|
|
// Copyright (C) 2015-2018, Gisselquist Technology, LLC
|
15 |
|
|
//
|
16 |
|
|
// This program is free software (firmware): you can redistribute it and/or
|
17 |
|
|
// modify it under the terms of the GNU General Public License as published
|
18 |
|
|
// by the Free Software Foundation, either version 3 of the License, or (at
|
19 |
|
|
// your option) any later version.
|
20 |
|
|
//
|
21 |
|
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
22 |
|
|
// ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY or
|
23 |
|
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
24 |
|
|
// for more details.
|
25 |
|
|
//
|
26 |
|
|
// You should have received a copy of the GNU General Public License along
|
27 |
|
|
// with this program. (It's in the $(ROOT)/doc directory, run make with no
|
28 |
|
|
// target there if the PDF file isn't present.) If not, see
|
29 |
|
|
// <http://www.gnu.org/licenses/> for a copy.
|
30 |
|
|
//
|
31 |
|
|
// License: GPL, v3, as defined and found on www.gnu.org,
|
32 |
|
|
// http://www.gnu.org/licenses/gpl.html
|
33 |
|
|
//
|
34 |
|
|
//
|
35 |
|
|
////////////////////////////////////////////////////////////////////////////////
|
36 |
|
|
//
|
37 |
|
|
//
|
38 |
|
|
#ifndef DEFAULTS_H
|
39 |
|
|
#define DEFAULTS_H
|
40 |
|
|
|
41 |
|
|
#define DEF_NBITSIN 16
|
42 |
|
|
#define DEF_COREDIR "fft-core"
|
43 |
|
|
#define DEF_XTRACBITS 4
|
44 |
|
|
#define DEF_NMPY 0
|
45 |
|
|
#define DEF_XTRAPBITS 0
|
46 |
|
|
#define USE_OLD_MULTIPLY false
|
47 |
|
|
|
48 |
|
|
// To coordinate testing, it helps to have some defines in our header file that
|
49 |
|
|
// are common with the default parameters found within the various subroutines.
|
50 |
|
|
// We'll define those common parameters here. These values, however, have no
|
51 |
|
|
// effect on anything other than bench testing. They do, though, allow us to
|
52 |
|
|
// bench test exact copies of what is going on within the FFT when necessary
|
53 |
|
|
// in order to find problems.
|
54 |
|
|
// First, parameters for the new multiply based upon the bi-multiply structure
|
55 |
|
|
// (2-bits/2-tableau rows at a time).
|
56 |
|
|
#define TST_LONGBIMPY_AW 8
|
57 |
|
|
#define TST_LONGBIMPY_BW 12 // Leave undefined to match AW
|
58 |
|
|
|
59 |
|
|
// We also include parameters for the shift add multiply
|
60 |
|
|
#define TST_SHIFTADDMPY_AW 16
|
61 |
|
|
#define TST_SHIFTADDMPY_BW 20 // Leave undefined to match AW
|
62 |
|
|
|
63 |
|
|
// Now for parameters matching the butterfly
|
64 |
|
|
#define TST_BUTTERFLY_IWIDTH 16
|
65 |
|
|
#define TST_BUTTERFLY_CWIDTH 20
|
66 |
|
|
#define TST_BUTTERFLY_OWIDTH (TST_BUTTERFLY_IWIDTH+1)
|
67 |
|
|
|
68 |
|
|
// Now for parameters matching the qtrstage
|
69 |
|
|
#define TST_QTRSTAGE_IWIDTH 16
|
70 |
|
|
#define TST_QTRSTAGE_LGWIDTH 8
|
71 |
|
|
|
72 |
|
|
// Parameters for the dblstage
|
73 |
|
|
#define TST_DBLSTAGE_IWIDTH 16
|
74 |
|
|
#define TST_DBLSTAGE_SHIFT 0
|
75 |
|
|
|
76 |
|
|
// Now for parameters matching the dblreverse stage
|
77 |
|
|
#define TST_DBLREVERSE_LGSIZE 5
|
78 |
|
|
|
79 |
|
|
static const bool formal_property_flag = true;
|
80 |
|
|
|
81 |
|
|
#endif
|