Imported Upstream version 3.0
[debian/gnuradio] / usrp / fpga / toplevel / usrp_std / usrp_std.vh
1 // -*- verilog -*-
2 //
3 //  USRP - Universal Software Radio Peripheral
4 //
5 //  Copyright (C) 2006 Matt Ettus
6 //
7 //  This program is free software; you can redistribute it and/or modify
8 //  it under the terms of the GNU General Public License as published by
9 //  the Free Software Foundation; either version 2 of the License, or
10 //  (at your option) any later version.
11 //
12 //  This program is distributed in the hope that it will be useful,
13 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 //  GNU General Public License for more details.
16 //
17 //  You should have received a copy of the GNU General Public License
18 //  along with this program; if not, write to the Free Software
19 //  Foundation, Inc., 51 Franklin Street, Boston, MA  02110-1301  USA
20 //
21
22 // ====================================================================
23 //            User control over what parts get included
24 //
25 //                  >>>> EDIT ONLY THIS SECTION <<<<
26 //
27 // ====================================================================
28
29 // Uncomment this for 2 rx channels (w/ halfband) & 2 transmit channels
30   `include "usrp_std_config_2rxhb_2tx.vh"
31
32 // Uncomment this for 4 rx channels (w/o halfband) & 0 transmit channels
33 //`include "usrp_std_config_4rx_0tx.vh"
34
35 // Add other "known to fit" configurations here...
36
37 // ====================================================================
38 // 
39 //                  >>>> DO NOT EDIT BELOW HERE <<<<
40 //
41 // [The stuff from here down is derived from the stuff included above]
42 //
43 // N.B., *all* the remainder of the code should be conditionalized
44 // only in terms of:
45 //
46 //  TX_ON, TX_EN_0, TX_EN_1, TX_EN_2, TX_EN_3, TX_CAP_NCHAN, TX_CAP_HB,
47 //  RX_ON, RX_EN_0, RX_EN_1, RX_EN_2, RX_EN_3, RX_CAP_NCHAN, RX_CAP_HB,
48 //  RX_NCO_ON, RX_CIC_ON
49 // ====================================================================
50
51 `ifdef TX_ON
52
53  `ifdef TX_SINGLE
54   `define TX_EN_0
55   `define TX_CAP_NCHAN 3'd1
56  `endif
57
58  `ifdef TX_DUAL
59   `define TX_EN_0
60   `define TX_EN_1
61   `define TX_CAP_NCHAN 3'd2
62  `endif
63
64  `ifdef TX_QUAD
65   `define TX_EN_0
66   `define TX_EN_1
67   `define TX_EN_2
68   `define TX_EN_3
69   `define TX_CAP_NCHAN 3'd4
70  `endif
71
72  `ifdef TX_HB_ON
73   `define TX_CAP_HB   1
74  `else
75   `define TX_CAP_HB   0
76  `endif
77
78 `else   // !ifdef TX_ON
79
80  `define TX_CAP_NCHAN 3'd0
81  `define TX_CAP_HB 0
82
83 `endif // !ifdef TX_ON
84
85 // --------------------------------------------------------------------
86
87 `ifdef RX_ON
88
89  `ifdef RX_SINGLE
90   `define RX_EN_0
91   `define RX_CAP_NCHAN 3'd1
92  `endif
93
94  `ifdef RX_DUAL
95   `define RX_EN_0
96   `define RX_EN_1
97   `define RX_CAP_NCHAN 3'd2
98  `endif
99
100  `ifdef RX_QUAD
101   `define RX_EN_0
102   `define RX_EN_1
103   `define RX_EN_2
104   `define RX_EN_3
105   `define RX_CAP_NCHAN 3'd4
106  `endif
107
108  `ifdef RX_HB_ON
109   `define RX_CAP_HB   1
110  `else
111   `define RX_CAP_HB   0
112  `endif
113
114 `else   // !ifdef RX_ON
115
116  `define RX_CAP_NCHAN 3'd0
117  `define RX_CAP_HB 0
118
119 `endif // !ifdef RX_ON