OpenCores
URL https://opencores.org/ocsvn/kiss-board/kiss-board/trunk

Subversion Repositories kiss-board

[/] [kiss-board/] [tags/] [initial/] [kiss-board_soc/] [src/] [extend/] [wb_dma/] [wb_dma_rf.v] - Blame information for rev 11

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 fukuchi
/////////////////////////////////////////////////////////////////////
2
////                                                             ////
3
////  WISHBONE DMA Register File                                 ////
4
////                                                             ////
5
////                                                             ////
6
////  Author: Rudolf Usselmann                                   ////
7
////          rudi@asics.ws                                      ////
8
////                                                             ////
9
////                                                             ////
10
////  Downloaded from: http://www.opencores.org/cores/wb_dma/    ////
11
////                                                             ////
12
/////////////////////////////////////////////////////////////////////
13
////                                                             ////
14
//// Copyright (C) 2000-2002 Rudolf Usselmann                    ////
15
////                         www.asics.ws                        ////
16
////                         rudi@asics.ws                       ////
17
////                                                             ////
18
//// This source file may be used and distributed without        ////
19
//// restriction provided that this copyright statement is not   ////
20
//// removed from the file and that any derivative work contains ////
21
//// the original copyright notice and the associated disclaimer.////
22
////                                                             ////
23
////     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
24
//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
25
//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
26
//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
27
//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
28
//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
29
//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
30
//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
31
//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
32
//// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
33
//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
34
//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
35
//// POSSIBILITY OF SUCH DAMAGE.                                 ////
36
////                                                             ////
37
/////////////////////////////////////////////////////////////////////
38
 
39
//  CVS Log
40
//
41
//  $Id: wb_dma_rf.v,v 1.1.1.1 2006-05-29 13:45:22 fukuchi Exp $
42
//
43
//  $Date: 2006-05-29 13:45:22 $
44
//  $Revision: 1.1.1.1 $
45
//  $Author: fukuchi $
46
//  $Locker:  $
47
//  $State: Exp $
48
//
49
// Change History:
50
//               $Log: not supported by cvs2svn $
51
//               Revision 1.4  2002/02/01 01:54:45  rudi
52
//
53
//               - Minor cleanup
54
//
55
//               Revision 1.3  2001/10/19 04:35:04  rudi
56
//
57
//               - Made the core parameterized
58
//
59
//               Revision 1.2  2001/08/15 05:40:30  rudi
60
//
61
//               - Changed IO names to be more clear.
62
//               - Uniquifyed define names to be core specific.
63
//               - Added Section 3.10, describing DMA restart.
64
//
65
//               Revision 1.1  2001/07/29 08:57:02  rudi
66
//
67
//
68
//               1) Changed Directory Structure
69
//               2) Added restart signal (REST)
70
//
71
//               Revision 1.4  2001/06/14 08:50:46  rudi
72
//
73
//               Changed name of channel register file module.
74
//
75
//               Revision 1.3  2001/06/13 02:26:48  rudi
76
//
77
//
78
//               Small changes after running lint.
79
//
80
//               Revision 1.2  2001/06/05 10:22:37  rudi
81
//
82
//
83
//               - Added Support of up to 31 channels
84
//               - Added support for 2,4 and 8 priority levels
85
//               - Now can have up to 31 channels
86
//               - Added many configuration items
87
//               - Changed reset to async
88
//
89
//               Revision 1.1.1.1  2001/03/19 13:10:11  rudi
90
//               Initial Release
91
//
92
//
93
//
94
 
95
`include "wb_dma_defines.v"
96
 
97
module wb_dma_rf(clk, rst,
98
 
99
        // WISHBONE Access
100
        wb_rf_adr, wb_rf_din, wb_rf_dout, wb_rf_re, wb_rf_we,
101
 
102
        // WISHBONE Interrupt outputs
103
        inta_o, intb_o,
104
 
105
        // DMA Registers Outputs
106
        pointer0, pointer0_s, ch0_csr, ch0_txsz, ch0_adr0, ch0_adr1, ch0_am0, ch0_am1,
107
        pointer1, pointer1_s, ch1_csr, ch1_txsz, ch1_adr0, ch1_adr1, ch1_am0, ch1_am1,
108
        pointer2, pointer2_s, ch2_csr, ch2_txsz, ch2_adr0, ch2_adr1, ch2_am0, ch2_am1,
109
        pointer3, pointer3_s, ch3_csr, ch3_txsz, ch3_adr0, ch3_adr1, ch3_am0, ch3_am1,
110
        pointer4, pointer4_s, ch4_csr, ch4_txsz, ch4_adr0, ch4_adr1, ch4_am0, ch4_am1,
111
        pointer5, pointer5_s, ch5_csr, ch5_txsz, ch5_adr0, ch5_adr1, ch5_am0, ch5_am1,
112
        pointer6, pointer6_s, ch6_csr, ch6_txsz, ch6_adr0, ch6_adr1, ch6_am0, ch6_am1,
113
        pointer7, pointer7_s, ch7_csr, ch7_txsz, ch7_adr0, ch7_adr1, ch7_am0, ch7_am1,
114
        pointer8, pointer8_s, ch8_csr, ch8_txsz, ch8_adr0, ch8_adr1, ch8_am0, ch8_am1,
115
        pointer9, pointer9_s, ch9_csr, ch9_txsz, ch9_adr0, ch9_adr1, ch9_am0, ch9_am1,
116
        pointer10, pointer10_s, ch10_csr, ch10_txsz, ch10_adr0, ch10_adr1, ch10_am0, ch10_am1,
117
        pointer11, pointer11_s, ch11_csr, ch11_txsz, ch11_adr0, ch11_adr1, ch11_am0, ch11_am1,
118
        pointer12, pointer12_s, ch12_csr, ch12_txsz, ch12_adr0, ch12_adr1, ch12_am0, ch12_am1,
119
        pointer13, pointer13_s, ch13_csr, ch13_txsz, ch13_adr0, ch13_adr1, ch13_am0, ch13_am1,
120
        pointer14, pointer14_s, ch14_csr, ch14_txsz, ch14_adr0, ch14_adr1, ch14_am0, ch14_am1,
121
        pointer15, pointer15_s, ch15_csr, ch15_txsz, ch15_adr0, ch15_adr1, ch15_am0, ch15_am1,
122
        pointer16, pointer16_s, ch16_csr, ch16_txsz, ch16_adr0, ch16_adr1, ch16_am0, ch16_am1,
123
        pointer17, pointer17_s, ch17_csr, ch17_txsz, ch17_adr0, ch17_adr1, ch17_am0, ch17_am1,
124
        pointer18, pointer18_s, ch18_csr, ch18_txsz, ch18_adr0, ch18_adr1, ch18_am0, ch18_am1,
125
        pointer19, pointer19_s, ch19_csr, ch19_txsz, ch19_adr0, ch19_adr1, ch19_am0, ch19_am1,
126
        pointer20, pointer20_s, ch20_csr, ch20_txsz, ch20_adr0, ch20_adr1, ch20_am0, ch20_am1,
127
        pointer21, pointer21_s, ch21_csr, ch21_txsz, ch21_adr0, ch21_adr1, ch21_am0, ch21_am1,
128
        pointer22, pointer22_s, ch22_csr, ch22_txsz, ch22_adr0, ch22_adr1, ch22_am0, ch22_am1,
129
        pointer23, pointer23_s, ch23_csr, ch23_txsz, ch23_adr0, ch23_adr1, ch23_am0, ch23_am1,
130
        pointer24, pointer24_s, ch24_csr, ch24_txsz, ch24_adr0, ch24_adr1, ch24_am0, ch24_am1,
131
        pointer25, pointer25_s, ch25_csr, ch25_txsz, ch25_adr0, ch25_adr1, ch25_am0, ch25_am1,
132
        pointer26, pointer26_s, ch26_csr, ch26_txsz, ch26_adr0, ch26_adr1, ch26_am0, ch26_am1,
133
        pointer27, pointer27_s, ch27_csr, ch27_txsz, ch27_adr0, ch27_adr1, ch27_am0, ch27_am1,
134
        pointer28, pointer28_s, ch28_csr, ch28_txsz, ch28_adr0, ch28_adr1, ch28_am0, ch28_am1,
135
        pointer29, pointer29_s, ch29_csr, ch29_txsz, ch29_adr0, ch29_adr1, ch29_am0, ch29_am1,
136
        pointer30, pointer30_s, ch30_csr, ch30_txsz, ch30_adr0, ch30_adr1, ch30_am0, ch30_am1,
137
 
138
        // DMA Registers Write Back Channel Select
139
        ch_sel, ndnr,
140
 
141
        // DMA Engine Status
142
        pause_req, paused, dma_abort, dma_busy, dma_err, dma_done, dma_done_all,
143
 
144
        // DMA Engine Reg File Update ctrl signals
145
        de_csr, de_txsz, de_adr0, de_adr1,
146
        de_csr_we, de_txsz_we, de_adr0_we, de_adr1_we, de_fetch_descr, dma_rest,
147
        ptr_set
148
        );
149
 
150
////////////////////////////////////////////////////////////////////
151
//
152
// Module Parameters
153
//
154
 
155
// chXX_conf = { CBUF, ED, ARS, EN }
156
parameter       [3:0]    ch0_conf = 4'h1;
157
parameter       [3:0]    ch1_conf = 4'h0;
158
parameter       [3:0]    ch2_conf = 4'h0;
159
parameter       [3:0]    ch3_conf = 4'h0;
160
parameter       [3:0]    ch4_conf = 4'h0;
161
parameter       [3:0]    ch5_conf = 4'h0;
162
parameter       [3:0]    ch6_conf = 4'h0;
163
parameter       [3:0]    ch7_conf = 4'h0;
164
parameter       [3:0]    ch8_conf = 4'h0;
165
parameter       [3:0]    ch9_conf = 4'h0;
166
parameter       [3:0]    ch10_conf = 4'h0;
167
parameter       [3:0]    ch11_conf = 4'h0;
168
parameter       [3:0]    ch12_conf = 4'h0;
169
parameter       [3:0]    ch13_conf = 4'h0;
170
parameter       [3:0]    ch14_conf = 4'h0;
171
parameter       [3:0]    ch15_conf = 4'h0;
172
parameter       [3:0]    ch16_conf = 4'h0;
173
parameter       [3:0]    ch17_conf = 4'h0;
174
parameter       [3:0]    ch18_conf = 4'h0;
175
parameter       [3:0]    ch19_conf = 4'h0;
176
parameter       [3:0]    ch20_conf = 4'h0;
177
parameter       [3:0]    ch21_conf = 4'h0;
178
parameter       [3:0]    ch22_conf = 4'h0;
179
parameter       [3:0]    ch23_conf = 4'h0;
180
parameter       [3:0]    ch24_conf = 4'h0;
181
parameter       [3:0]    ch25_conf = 4'h0;
182
parameter       [3:0]    ch26_conf = 4'h0;
183
parameter       [3:0]    ch27_conf = 4'h0;
184
parameter       [3:0]    ch28_conf = 4'h0;
185
parameter       [3:0]    ch29_conf = 4'h0;
186
parameter       [3:0]    ch30_conf = 4'h0;
187
 
188
////////////////////////////////////////////////////////////////////
189
//
190
// Module IOs
191
//
192
 
193
input           clk, rst;
194
 
195
// WISHBONE Access
196
input   [7:0]    wb_rf_adr;
197
input   [31:0]   wb_rf_din;
198
output  [31:0]   wb_rf_dout;
199
input           wb_rf_re;
200
input           wb_rf_we;
201
 
202
// WISHBONE Interrupt outputs
203
output          inta_o, intb_o;
204
 
205
// Channel Registers Inputs
206
output  [31:0]   pointer0, pointer0_s, ch0_csr, ch0_txsz, ch0_adr0, ch0_adr1, ch0_am0, ch0_am1;
207
output  [31:0]   pointer1, pointer1_s, ch1_csr, ch1_txsz, ch1_adr0, ch1_adr1, ch1_am0, ch1_am1;
208
output  [31:0]   pointer2, pointer2_s, ch2_csr, ch2_txsz, ch2_adr0, ch2_adr1, ch2_am0, ch2_am1;
209
output  [31:0]   pointer3, pointer3_s, ch3_csr, ch3_txsz, ch3_adr0, ch3_adr1, ch3_am0, ch3_am1;
210
output  [31:0]   pointer4, pointer4_s, ch4_csr, ch4_txsz, ch4_adr0, ch4_adr1, ch4_am0, ch4_am1;
211
output  [31:0]   pointer5, pointer5_s, ch5_csr, ch5_txsz, ch5_adr0, ch5_adr1, ch5_am0, ch5_am1;
212
output  [31:0]   pointer6, pointer6_s, ch6_csr, ch6_txsz, ch6_adr0, ch6_adr1, ch6_am0, ch6_am1;
213
output  [31:0]   pointer7, pointer7_s, ch7_csr, ch7_txsz, ch7_adr0, ch7_adr1, ch7_am0, ch7_am1;
214
output  [31:0]   pointer8, pointer8_s, ch8_csr, ch8_txsz, ch8_adr0, ch8_adr1, ch8_am0, ch8_am1;
215
output  [31:0]   pointer9, pointer9_s, ch9_csr, ch9_txsz, ch9_adr0, ch9_adr1, ch9_am0, ch9_am1;
216
output  [31:0]   pointer10, pointer10_s, ch10_csr, ch10_txsz, ch10_adr0, ch10_adr1, ch10_am0, ch10_am1;
217
output  [31:0]   pointer11, pointer11_s, ch11_csr, ch11_txsz, ch11_adr0, ch11_adr1, ch11_am0, ch11_am1;
218
output  [31:0]   pointer12, pointer12_s, ch12_csr, ch12_txsz, ch12_adr0, ch12_adr1, ch12_am0, ch12_am1;
219
output  [31:0]   pointer13, pointer13_s, ch13_csr, ch13_txsz, ch13_adr0, ch13_adr1, ch13_am0, ch13_am1;
220
output  [31:0]   pointer14, pointer14_s, ch14_csr, ch14_txsz, ch14_adr0, ch14_adr1, ch14_am0, ch14_am1;
221
output  [31:0]   pointer15, pointer15_s, ch15_csr, ch15_txsz, ch15_adr0, ch15_adr1, ch15_am0, ch15_am1;
222
output  [31:0]   pointer16, pointer16_s, ch16_csr, ch16_txsz, ch16_adr0, ch16_adr1, ch16_am0, ch16_am1;
223
output  [31:0]   pointer17, pointer17_s, ch17_csr, ch17_txsz, ch17_adr0, ch17_adr1, ch17_am0, ch17_am1;
224
output  [31:0]   pointer18, pointer18_s, ch18_csr, ch18_txsz, ch18_adr0, ch18_adr1, ch18_am0, ch18_am1;
225
output  [31:0]   pointer19, pointer19_s, ch19_csr, ch19_txsz, ch19_adr0, ch19_adr1, ch19_am0, ch19_am1;
226
output  [31:0]   pointer20, pointer20_s, ch20_csr, ch20_txsz, ch20_adr0, ch20_adr1, ch20_am0, ch20_am1;
227
output  [31:0]   pointer21, pointer21_s, ch21_csr, ch21_txsz, ch21_adr0, ch21_adr1, ch21_am0, ch21_am1;
228
output  [31:0]   pointer22, pointer22_s, ch22_csr, ch22_txsz, ch22_adr0, ch22_adr1, ch22_am0, ch22_am1;
229
output  [31:0]   pointer23, pointer23_s, ch23_csr, ch23_txsz, ch23_adr0, ch23_adr1, ch23_am0, ch23_am1;
230
output  [31:0]   pointer24, pointer24_s, ch24_csr, ch24_txsz, ch24_adr0, ch24_adr1, ch24_am0, ch24_am1;
231
output  [31:0]   pointer25, pointer25_s, ch25_csr, ch25_txsz, ch25_adr0, ch25_adr1, ch25_am0, ch25_am1;
232
output  [31:0]   pointer26, pointer26_s, ch26_csr, ch26_txsz, ch26_adr0, ch26_adr1, ch26_am0, ch26_am1;
233
output  [31:0]   pointer27, pointer27_s, ch27_csr, ch27_txsz, ch27_adr0, ch27_adr1, ch27_am0, ch27_am1;
234
output  [31:0]   pointer28, pointer28_s, ch28_csr, ch28_txsz, ch28_adr0, ch28_adr1, ch28_am0, ch28_am1;
235
output  [31:0]   pointer29, pointer29_s, ch29_csr, ch29_txsz, ch29_adr0, ch29_adr1, ch29_am0, ch29_am1;
236
output  [31:0]   pointer30, pointer30_s, ch30_csr, ch30_txsz, ch30_adr0, ch30_adr1, ch30_am0, ch30_am1;
237
 
238
input   [4:0]    ch_sel;         // Write Back Channel Select
239
input   [30:0]   ndnr;           // Next Descriptor No Request
240
 
241
// DMA Engine Abort
242
output          dma_abort;
243
 
244
// DMA Engine Status
245
output          pause_req;
246
input           paused;
247
input           dma_busy, dma_err, dma_done, dma_done_all;
248
 
249
// DMA Engine Reg File Update ctrl signals
250
input   [31:0]   de_csr;
251
input   [11:0]   de_txsz;
252
input   [31:0]   de_adr0;
253
input   [31:0]   de_adr1;
254
input           de_csr_we, de_txsz_we, de_adr0_we, de_adr1_we, ptr_set;
255
input           de_fetch_descr;
256
input   [30:0]   dma_rest;
257
 
258
////////////////////////////////////////////////////////////////////
259
//
260
// Local Wires and Registers
261
//
262
 
263
reg     [31:0]   wb_rf_dout;
264
reg             inta_o, intb_o;
265
reg     [30:0]   int_maska_r, int_maskb_r;
266
wire    [31:0]   int_maska, int_maskb;
267
wire    [31:0]   int_srca, int_srcb;
268
wire            int_maska_we, int_maskb_we;
269
wire    [30:0]   ch_int;
270
wire            csr_we;
271
wire    [31:0]   csr;
272
reg     [7:0]    csr_r;
273
 
274
wire    [30:0]   ch_stop;
275
wire    [30:0]   ch_dis;
276
 
277
wire    [31:0]   ch0_csr, ch0_txsz, ch0_adr0, ch0_adr1, ch0_am0, ch0_am1;
278
wire    [31:0]   ch1_csr, ch1_txsz, ch1_adr0, ch1_adr1, ch1_am0, ch1_am1;
279
wire    [31:0]   ch2_csr, ch2_txsz, ch2_adr0, ch2_adr1, ch2_am0, ch2_am1;
280
wire    [31:0]   ch3_csr, ch3_txsz, ch3_adr0, ch3_adr1, ch3_am0, ch3_am1;
281
wire    [31:0]   ch4_csr, ch4_txsz, ch4_adr0, ch4_adr1, ch4_am0, ch4_am1;
282
wire    [31:0]   ch5_csr, ch5_txsz, ch5_adr0, ch5_adr1, ch5_am0, ch5_am1;
283
wire    [31:0]   ch6_csr, ch6_txsz, ch6_adr0, ch6_adr1, ch6_am0, ch6_am1;
284
wire    [31:0]   ch7_csr, ch7_txsz, ch7_adr0, ch7_adr1, ch7_am0, ch7_am1;
285
wire    [31:0]   ch8_csr, ch8_txsz, ch8_adr0, ch8_adr1, ch8_am0, ch8_am1;
286
wire    [31:0]   ch9_csr, ch9_txsz, ch9_adr0, ch9_adr1, ch9_am0, ch9_am1;
287
wire    [31:0]   ch10_csr, ch10_txsz, ch10_adr0, ch10_adr1, ch10_am0, ch10_am1;
288
wire    [31:0]   ch11_csr, ch11_txsz, ch11_adr0, ch11_adr1, ch11_am0, ch11_am1;
289
wire    [31:0]   ch12_csr, ch12_txsz, ch12_adr0, ch12_adr1, ch12_am0, ch12_am1;
290
wire    [31:0]   ch13_csr, ch13_txsz, ch13_adr0, ch13_adr1, ch13_am0, ch13_am1;
291
wire    [31:0]   ch14_csr, ch14_txsz, ch14_adr0, ch14_adr1, ch14_am0, ch14_am1;
292
wire    [31:0]   ch15_csr, ch15_txsz, ch15_adr0, ch15_adr1, ch15_am0, ch15_am1;
293
wire    [31:0]   ch16_csr, ch16_txsz, ch16_adr0, ch16_adr1, ch16_am0, ch16_am1;
294
wire    [31:0]   ch17_csr, ch17_txsz, ch17_adr0, ch17_adr1, ch17_am0, ch17_am1;
295
wire    [31:0]   ch18_csr, ch18_txsz, ch18_adr0, ch18_adr1, ch18_am0, ch18_am1;
296
wire    [31:0]   ch19_csr, ch19_txsz, ch19_adr0, ch19_adr1, ch19_am0, ch19_am1;
297
wire    [31:0]   ch20_csr, ch20_txsz, ch20_adr0, ch20_adr1, ch20_am0, ch20_am1;
298
wire    [31:0]   ch21_csr, ch21_txsz, ch21_adr0, ch21_adr1, ch21_am0, ch21_am1;
299
wire    [31:0]   ch22_csr, ch22_txsz, ch22_adr0, ch22_adr1, ch22_am0, ch22_am1;
300
wire    [31:0]   ch23_csr, ch23_txsz, ch23_adr0, ch23_adr1, ch23_am0, ch23_am1;
301
wire    [31:0]   ch24_csr, ch24_txsz, ch24_adr0, ch24_adr1, ch24_am0, ch24_am1;
302
wire    [31:0]   ch25_csr, ch25_txsz, ch25_adr0, ch25_adr1, ch25_am0, ch25_am1;
303
wire    [31:0]   ch26_csr, ch26_txsz, ch26_adr0, ch26_adr1, ch26_am0, ch26_am1;
304
wire    [31:0]   ch27_csr, ch27_txsz, ch27_adr0, ch27_adr1, ch27_am0, ch27_am1;
305
wire    [31:0]   ch28_csr, ch28_txsz, ch28_adr0, ch28_adr1, ch28_am0, ch28_am1;
306
wire    [31:0]   ch29_csr, ch29_txsz, ch29_adr0, ch29_adr1, ch29_am0, ch29_am1;
307
wire    [31:0]   ch30_csr, ch30_txsz, ch30_adr0, ch30_adr1, ch30_am0, ch30_am1;
308
 
309
wire    [31:0]   sw_pointer0, sw_pointer1, sw_pointer2, sw_pointer3;
310
wire    [31:0]   sw_pointer4, sw_pointer5, sw_pointer6, sw_pointer7;
311
wire    [31:0]   sw_pointer8, sw_pointer9, sw_pointer10, sw_pointer11;
312
wire    [31:0]   sw_pointer12, sw_pointer13, sw_pointer14, sw_pointer15;
313
wire    [31:0]   sw_pointer16, sw_pointer17, sw_pointer18, sw_pointer19;
314
wire    [31:0]   sw_pointer20, sw_pointer21, sw_pointer22, sw_pointer23;
315
wire    [31:0]   sw_pointer24, sw_pointer25, sw_pointer26, sw_pointer27;
316
wire    [31:0]   sw_pointer28, sw_pointer29, sw_pointer30;
317
 
318
////////////////////////////////////////////////////////////////////
319
//
320
// Aliases
321
//
322
 
323
assign int_maska = {1'h0, int_maska_r};
324
assign int_maskb = {1'h0, int_maskb_r};
325
assign csr = {31'h0, paused};
326
 
327
////////////////////////////////////////////////////////////////////
328
//
329
// Misc Logic
330
//
331
 
332
assign dma_abort = |ch_stop;
333
assign pause_req = csr_r[0];
334
 
335
////////////////////////////////////////////////////////////////////
336
//
337
// WISHBONE Register Read Logic
338
//
339
 
340
always @(posedge clk)
341
        case(wb_rf_adr)         // synopsys parallel_case full_case
342
           8'h0:        wb_rf_dout <= #1 csr;
343
           8'h1:        wb_rf_dout <= #1 int_maska;
344
           8'h2:        wb_rf_dout <= #1 int_maskb;
345
           8'h3:        wb_rf_dout <= #1 int_srca;
346
           8'h4:        wb_rf_dout <= #1 int_srcb;
347
 
348
           8'h8:        wb_rf_dout <= #1 ch0_csr;
349
           8'h9:        wb_rf_dout <= #1 ch0_txsz;
350
           8'ha:        wb_rf_dout <= #1 ch0_adr0;
351
           8'hb:        wb_rf_dout <= #1 ch0_am0;
352
           8'hc:        wb_rf_dout <= #1 ch0_adr1;
353
           8'hd:        wb_rf_dout <= #1 ch0_am1;
354
           8'he:        wb_rf_dout <= #1 pointer0;
355
           8'hf:        wb_rf_dout <= #1 sw_pointer0;
356
 
357
           8'h10:       wb_rf_dout <= #1 ch1_conf[0] ? ch1_csr    : 32'h0;
358
           8'h11:       wb_rf_dout <= #1 ch1_conf[0] ? ch1_txsz   : 32'h0;
359
           8'h12:       wb_rf_dout <= #1 ch1_conf[0] ? ch1_adr0   : 32'h0;
360
           8'h13:       wb_rf_dout <= #1 ch1_conf[0] ? ch1_am0    : 32'h0;
361
           8'h14:       wb_rf_dout <= #1 ch1_conf[0] ? ch1_adr1   : 32'h0;
362
           8'h15:       wb_rf_dout <= #1 ch1_conf[0] ? ch1_am1    : 32'h0;
363
           8'h16:       wb_rf_dout <= #1 ch1_conf[0] ? pointer1   : 32'h0;
364
           8'h17:       wb_rf_dout <= #1 ch1_conf[0] ? sw_pointer1   : 32'h0;
365
 
366
           8'h18:       wb_rf_dout <= #1 ch2_conf[0] ? ch2_csr    : 32'h0;
367
           8'h19:       wb_rf_dout <= #1 ch2_conf[0] ? ch2_txsz   : 32'h0;
368
           8'h1a:       wb_rf_dout <= #1 ch2_conf[0] ? ch2_adr0   : 32'h0;
369
           8'h1b:       wb_rf_dout <= #1 ch2_conf[0] ? ch2_am0    : 32'h0;
370
           8'h1c:       wb_rf_dout <= #1 ch2_conf[0] ? ch2_adr1   : 32'h0;
371
           8'h1d:       wb_rf_dout <= #1 ch2_conf[0] ? ch2_am1    : 32'h0;
372
           8'h1e:       wb_rf_dout <= #1 ch2_conf[0] ? pointer2   : 32'h0;
373
           8'h1f:       wb_rf_dout <= #1 ch2_conf[0] ? sw_pointer2   : 32'h0;
374
 
375
           8'h20:       wb_rf_dout <= #1 ch3_conf[0] ? ch3_csr    : 32'h0;
376
           8'h21:       wb_rf_dout <= #1 ch3_conf[0] ? ch3_txsz   : 32'h0;
377
           8'h22:       wb_rf_dout <= #1 ch3_conf[0] ? ch3_adr0   : 32'h0;
378
           8'h23:       wb_rf_dout <= #1 ch3_conf[0] ? ch3_am0    : 32'h0;
379
           8'h24:       wb_rf_dout <= #1 ch3_conf[0] ? ch3_adr1   : 32'h0;
380
           8'h25:       wb_rf_dout <= #1 ch3_conf[0] ? ch3_am1    : 32'h0;
381
           8'h26:       wb_rf_dout <= #1 ch3_conf[0] ? pointer3   : 32'h0;
382
           8'h27:       wb_rf_dout <= #1 ch3_conf[0] ? sw_pointer3   : 32'h0;
383
 
384
           8'h28:       wb_rf_dout <= #1 ch4_conf[0] ? ch4_csr    : 32'h0;
385
           8'h29:       wb_rf_dout <= #1 ch4_conf[0] ? ch4_txsz   : 32'h0;
386
           8'h2a:       wb_rf_dout <= #1 ch4_conf[0] ? ch4_adr0   : 32'h0;
387
           8'h2b:       wb_rf_dout <= #1 ch4_conf[0] ? ch4_am0    : 32'h0;
388
           8'h2c:       wb_rf_dout <= #1 ch4_conf[0] ? ch4_adr1   : 32'h0;
389
           8'h2d:       wb_rf_dout <= #1 ch4_conf[0] ? ch4_am1    : 32'h0;
390
           8'h2e:       wb_rf_dout <= #1 ch4_conf[0] ? pointer4   : 32'h0;
391
           8'h2f:       wb_rf_dout <= #1 ch4_conf[0] ? sw_pointer4   : 32'h0;
392
 
393
           8'h30:       wb_rf_dout <= #1 ch5_conf[0] ? ch5_csr    : 32'h0;
394
           8'h31:       wb_rf_dout <= #1 ch5_conf[0] ? ch5_txsz   : 32'h0;
395
           8'h32:       wb_rf_dout <= #1 ch5_conf[0] ? ch5_adr0   : 32'h0;
396
           8'h33:       wb_rf_dout <= #1 ch5_conf[0] ? ch5_am0    : 32'h0;
397
           8'h34:       wb_rf_dout <= #1 ch5_conf[0] ? ch5_adr1   : 32'h0;
398
           8'h35:       wb_rf_dout <= #1 ch5_conf[0] ? ch5_am1    : 32'h0;
399
           8'h36:       wb_rf_dout <= #1 ch5_conf[0] ? pointer5   : 32'h0;
400
           8'h37:       wb_rf_dout <= #1 ch5_conf[0] ? sw_pointer5   : 32'h0;
401
 
402
           8'h38:       wb_rf_dout <= #1 ch6_conf[0] ? ch6_csr    : 32'h0;
403
           8'h39:       wb_rf_dout <= #1 ch6_conf[0] ? ch6_txsz   : 32'h0;
404
           8'h3a:       wb_rf_dout <= #1 ch6_conf[0] ? ch6_adr0   : 32'h0;
405
           8'h3b:       wb_rf_dout <= #1 ch6_conf[0] ? ch6_am0    : 32'h0;
406
           8'h3c:       wb_rf_dout <= #1 ch6_conf[0] ? ch6_adr1   : 32'h0;
407
           8'h3d:       wb_rf_dout <= #1 ch6_conf[0] ? ch6_am1    : 32'h0;
408
           8'h3e:       wb_rf_dout <= #1 ch6_conf[0] ? pointer6   : 32'h0;
409
           8'h3f:       wb_rf_dout <= #1 ch6_conf[0] ? sw_pointer6   : 32'h0;
410
 
411
           8'h40:       wb_rf_dout <= #1 ch7_conf[0] ? ch7_csr    : 32'h0;
412
           8'h41:       wb_rf_dout <= #1 ch7_conf[0] ? ch7_txsz   : 32'h0;
413
           8'h42:       wb_rf_dout <= #1 ch7_conf[0] ? ch7_adr0   : 32'h0;
414
           8'h43:       wb_rf_dout <= #1 ch7_conf[0] ? ch7_am0    : 32'h0;
415
           8'h44:       wb_rf_dout <= #1 ch7_conf[0] ? ch7_adr1   : 32'h0;
416
           8'h45:       wb_rf_dout <= #1 ch7_conf[0] ? ch7_am1    : 32'h0;
417
           8'h46:       wb_rf_dout <= #1 ch7_conf[0] ? pointer7   : 32'h0;
418
           8'h47:       wb_rf_dout <= #1 ch7_conf[0] ? sw_pointer7   : 32'h0;
419
 
420
           8'h48:       wb_rf_dout <= #1 ch8_conf[0] ? ch8_csr    : 32'h0;
421
           8'h49:       wb_rf_dout <= #1 ch8_conf[0] ? ch8_txsz   : 32'h0;
422
           8'h4a:       wb_rf_dout <= #1 ch8_conf[0] ? ch8_adr0   : 32'h0;
423
           8'h4b:       wb_rf_dout <= #1 ch8_conf[0] ? ch8_am0    : 32'h0;
424
           8'h4c:       wb_rf_dout <= #1 ch8_conf[0] ? ch8_adr1   : 32'h0;
425
           8'h4d:       wb_rf_dout <= #1 ch8_conf[0] ? ch8_am1    : 32'h0;
426
           8'h4e:       wb_rf_dout <= #1 ch8_conf[0] ? pointer8   : 32'h0;
427
           8'h4f:       wb_rf_dout <= #1 ch8_conf[0] ? sw_pointer8   : 32'h0;
428
 
429
           8'h50:       wb_rf_dout <= #1 ch9_conf[0] ? ch9_csr    : 32'h0;
430
           8'h51:       wb_rf_dout <= #1 ch9_conf[0] ? ch9_txsz   : 32'h0;
431
           8'h52:       wb_rf_dout <= #1 ch9_conf[0] ? ch9_adr0   : 32'h0;
432
           8'h53:       wb_rf_dout <= #1 ch9_conf[0] ? ch9_am0    : 32'h0;
433
           8'h54:       wb_rf_dout <= #1 ch9_conf[0] ? ch9_adr1   : 32'h0;
434
           8'h55:       wb_rf_dout <= #1 ch9_conf[0] ? ch9_am1    : 32'h0;
435
           8'h56:       wb_rf_dout <= #1 ch9_conf[0] ? pointer9   : 32'h0;
436
           8'h57:       wb_rf_dout <= #1 ch9_conf[0] ? sw_pointer9   : 32'h0;
437
 
438
           8'h58:       wb_rf_dout <= #1 ch10_conf[0] ? ch10_csr    : 32'h0;
439
           8'h59:       wb_rf_dout <= #1 ch10_conf[0] ? ch10_txsz   : 32'h0;
440
           8'h5a:       wb_rf_dout <= #1 ch10_conf[0] ? ch10_adr0   : 32'h0;
441
           8'h5b:       wb_rf_dout <= #1 ch10_conf[0] ? ch10_am0    : 32'h0;
442
           8'h5c:       wb_rf_dout <= #1 ch10_conf[0] ? ch10_adr1   : 32'h0;
443
           8'h5d:       wb_rf_dout <= #1 ch10_conf[0] ? ch10_am1    : 32'h0;
444
           8'h5e:       wb_rf_dout <= #1 ch10_conf[0] ? pointer10   : 32'h0;
445
           8'h5f:       wb_rf_dout <= #1 ch10_conf[0] ? sw_pointer10   : 32'h0;
446
 
447
           8'h60:       wb_rf_dout <= #1 ch11_conf[0] ? ch11_csr    : 32'h0;
448
           8'h61:       wb_rf_dout <= #1 ch11_conf[0] ? ch11_txsz   : 32'h0;
449
           8'h62:       wb_rf_dout <= #1 ch11_conf[0] ? ch11_adr0   : 32'h0;
450
           8'h63:       wb_rf_dout <= #1 ch11_conf[0] ? ch11_am0    : 32'h0;
451
           8'h64:       wb_rf_dout <= #1 ch11_conf[0] ? ch11_adr1   : 32'h0;
452
           8'h65:       wb_rf_dout <= #1 ch11_conf[0] ? ch11_am1    : 32'h0;
453
           8'h66:       wb_rf_dout <= #1 ch11_conf[0] ? pointer11   : 32'h0;
454
           8'h67:       wb_rf_dout <= #1 ch11_conf[0] ? sw_pointer11   : 32'h0;
455
 
456
           8'h68:       wb_rf_dout <= #1 ch12_conf[0] ? ch12_csr    : 32'h0;
457
           8'h69:       wb_rf_dout <= #1 ch12_conf[0] ? ch12_txsz   : 32'h0;
458
           8'h6a:       wb_rf_dout <= #1 ch12_conf[0] ? ch12_adr0   : 32'h0;
459
           8'h6b:       wb_rf_dout <= #1 ch12_conf[0] ? ch12_am0    : 32'h0;
460
           8'h6c:       wb_rf_dout <= #1 ch12_conf[0] ? ch12_adr1   : 32'h0;
461
           8'h6d:       wb_rf_dout <= #1 ch12_conf[0] ? ch12_am1    : 32'h0;
462
           8'h6e:       wb_rf_dout <= #1 ch12_conf[0] ? pointer12   : 32'h0;
463
           8'h6f:       wb_rf_dout <= #1 ch12_conf[0] ? sw_pointer12   : 32'h0;
464
 
465
           8'h70:       wb_rf_dout <= #1 ch13_conf[0] ? ch13_csr    : 32'h0;
466
           8'h71:       wb_rf_dout <= #1 ch13_conf[0] ? ch13_txsz   : 32'h0;
467
           8'h72:       wb_rf_dout <= #1 ch13_conf[0] ? ch13_adr0   : 32'h0;
468
           8'h73:       wb_rf_dout <= #1 ch13_conf[0] ? ch13_am0    : 32'h0;
469
           8'h74:       wb_rf_dout <= #1 ch13_conf[0] ? ch13_adr1   : 32'h0;
470
           8'h75:       wb_rf_dout <= #1 ch13_conf[0] ? ch13_am1    : 32'h0;
471
           8'h76:       wb_rf_dout <= #1 ch13_conf[0] ? pointer13   : 32'h0;
472
           8'h77:       wb_rf_dout <= #1 ch13_conf[0] ? sw_pointer13   : 32'h0;
473
 
474
           8'h78:       wb_rf_dout <= #1 ch14_conf[0] ? ch14_csr    : 32'h0;
475
           8'h79:       wb_rf_dout <= #1 ch14_conf[0] ? ch14_txsz   : 32'h0;
476
           8'h7a:       wb_rf_dout <= #1 ch14_conf[0] ? ch14_adr0   : 32'h0;
477
           8'h7b:       wb_rf_dout <= #1 ch14_conf[0] ? ch14_am0    : 32'h0;
478
           8'h7c:       wb_rf_dout <= #1 ch14_conf[0] ? ch14_adr1   : 32'h0;
479
           8'h7d:       wb_rf_dout <= #1 ch14_conf[0] ? ch14_am1    : 32'h0;
480
           8'h7e:       wb_rf_dout <= #1 ch14_conf[0] ? pointer14   : 32'h0;
481
           8'h7f:       wb_rf_dout <= #1 ch14_conf[0] ? sw_pointer14   : 32'h0;
482
 
483
           8'h80:       wb_rf_dout <= #1 ch15_conf[0] ? ch15_csr    : 32'h0;
484
           8'h81:       wb_rf_dout <= #1 ch15_conf[0] ? ch15_txsz   : 32'h0;
485
           8'h82:       wb_rf_dout <= #1 ch15_conf[0] ? ch15_adr0   : 32'h0;
486
           8'h83:       wb_rf_dout <= #1 ch15_conf[0] ? ch15_am0    : 32'h0;
487
           8'h84:       wb_rf_dout <= #1 ch15_conf[0] ? ch15_adr1   : 32'h0;
488
           8'h85:       wb_rf_dout <= #1 ch15_conf[0] ? ch15_am1    : 32'h0;
489
           8'h86:       wb_rf_dout <= #1 ch15_conf[0] ? pointer15   : 32'h0;
490
           8'h87:       wb_rf_dout <= #1 ch15_conf[0] ? sw_pointer15   : 32'h0;
491
 
492
           8'h88:       wb_rf_dout <= #1 ch16_conf[0] ? ch16_csr    : 32'h0;
493
           8'h89:       wb_rf_dout <= #1 ch16_conf[0] ? ch16_txsz   : 32'h0;
494
           8'h8a:       wb_rf_dout <= #1 ch16_conf[0] ? ch16_adr0   : 32'h0;
495
           8'h8b:       wb_rf_dout <= #1 ch16_conf[0] ? ch16_am0    : 32'h0;
496
           8'h8c:       wb_rf_dout <= #1 ch16_conf[0] ? ch16_adr1   : 32'h0;
497
           8'h8d:       wb_rf_dout <= #1 ch16_conf[0] ? ch16_am1    : 32'h0;
498
           8'h8e:       wb_rf_dout <= #1 ch16_conf[0] ? pointer16   : 32'h0;
499
           8'h8f:       wb_rf_dout <= #1 ch16_conf[0] ? sw_pointer16   : 32'h0;
500
 
501
           8'h90:       wb_rf_dout <= #1 ch17_conf[0] ? ch17_csr    : 32'h0;
502
           8'h91:       wb_rf_dout <= #1 ch17_conf[0] ? ch17_txsz   : 32'h0;
503
           8'h92:       wb_rf_dout <= #1 ch17_conf[0] ? ch17_adr0   : 32'h0;
504
           8'h93:       wb_rf_dout <= #1 ch17_conf[0] ? ch17_am0    : 32'h0;
505
           8'h94:       wb_rf_dout <= #1 ch17_conf[0] ? ch17_adr1   : 32'h0;
506
           8'h95:       wb_rf_dout <= #1 ch17_conf[0] ? ch17_am1    : 32'h0;
507
           8'h96:       wb_rf_dout <= #1 ch17_conf[0] ? pointer17   : 32'h0;
508
           8'h97:       wb_rf_dout <= #1 ch17_conf[0] ? sw_pointer17   : 32'h0;
509
 
510
           8'h98:       wb_rf_dout <= #1 ch18_conf[0] ? ch18_csr    : 32'h0;
511
           8'h99:       wb_rf_dout <= #1 ch18_conf[0] ? ch18_txsz   : 32'h0;
512
           8'h9a:       wb_rf_dout <= #1 ch18_conf[0] ? ch18_adr0   : 32'h0;
513
           8'h9b:       wb_rf_dout <= #1 ch18_conf[0] ? ch18_am0    : 32'h0;
514
           8'h9c:       wb_rf_dout <= #1 ch18_conf[0] ? ch18_adr1   : 32'h0;
515
           8'h9d:       wb_rf_dout <= #1 ch18_conf[0] ? ch18_am1    : 32'h0;
516
           8'h9e:       wb_rf_dout <= #1 ch18_conf[0] ? pointer18   : 32'h0;
517
           8'h9f:       wb_rf_dout <= #1 ch18_conf[0] ? sw_pointer18   : 32'h0;
518
 
519
           8'ha0:       wb_rf_dout <= #1 ch19_conf[0] ? ch19_csr    : 32'h0;
520
           8'ha1:       wb_rf_dout <= #1 ch19_conf[0] ? ch19_txsz   : 32'h0;
521
           8'ha2:       wb_rf_dout <= #1 ch19_conf[0] ? ch19_adr0   : 32'h0;
522
           8'ha3:       wb_rf_dout <= #1 ch19_conf[0] ? ch19_am0    : 32'h0;
523
           8'ha4:       wb_rf_dout <= #1 ch19_conf[0] ? ch19_adr1   : 32'h0;
524
           8'ha5:       wb_rf_dout <= #1 ch19_conf[0] ? ch19_am1    : 32'h0;
525
           8'ha6:       wb_rf_dout <= #1 ch19_conf[0] ? pointer19   : 32'h0;
526
           8'ha7:       wb_rf_dout <= #1 ch19_conf[0] ? sw_pointer19   : 32'h0;
527
 
528
           8'ha8:       wb_rf_dout <= #1 ch20_conf[0] ? ch20_csr    : 32'h0;
529
           8'ha9:       wb_rf_dout <= #1 ch20_conf[0] ? ch20_txsz   : 32'h0;
530
           8'haa:       wb_rf_dout <= #1 ch20_conf[0] ? ch20_adr0   : 32'h0;
531
           8'hab:       wb_rf_dout <= #1 ch20_conf[0] ? ch20_am0    : 32'h0;
532
           8'hac:       wb_rf_dout <= #1 ch20_conf[0] ? ch20_adr1   : 32'h0;
533
           8'had:       wb_rf_dout <= #1 ch20_conf[0] ? ch20_am1    : 32'h0;
534
           8'hae:       wb_rf_dout <= #1 ch20_conf[0] ? pointer20   : 32'h0;
535
           8'haf:       wb_rf_dout <= #1 ch20_conf[0] ? sw_pointer20   : 32'h0;
536
 
537
           8'hb0:       wb_rf_dout <= #1 ch21_conf[0] ? ch21_csr    : 32'h0;
538
           8'hb1:       wb_rf_dout <= #1 ch21_conf[0] ? ch21_txsz   : 32'h0;
539
           8'hb2:       wb_rf_dout <= #1 ch21_conf[0] ? ch21_adr0   : 32'h0;
540
           8'hb3:       wb_rf_dout <= #1 ch21_conf[0] ? ch21_am0    : 32'h0;
541
           8'hb4:       wb_rf_dout <= #1 ch21_conf[0] ? ch21_adr1   : 32'h0;
542
           8'hb5:       wb_rf_dout <= #1 ch21_conf[0] ? ch21_am1    : 32'h0;
543
           8'hb6:       wb_rf_dout <= #1 ch21_conf[0] ? pointer21   : 32'h0;
544
           8'hb7:       wb_rf_dout <= #1 ch21_conf[0] ? sw_pointer21   : 32'h0;
545
 
546
           8'hb8:       wb_rf_dout <= #1 ch22_conf[0] ? ch22_csr    : 32'h0;
547
           8'hb9:       wb_rf_dout <= #1 ch22_conf[0] ? ch22_txsz   : 32'h0;
548
           8'hba:       wb_rf_dout <= #1 ch22_conf[0] ? ch22_adr0   : 32'h0;
549
           8'hbb:       wb_rf_dout <= #1 ch22_conf[0] ? ch22_am0    : 32'h0;
550
           8'hbc:       wb_rf_dout <= #1 ch22_conf[0] ? ch22_adr1   : 32'h0;
551
           8'hbd:       wb_rf_dout <= #1 ch22_conf[0] ? ch22_am1    : 32'h0;
552
           8'hbe:       wb_rf_dout <= #1 ch22_conf[0] ? pointer22   : 32'h0;
553
           8'hbf:       wb_rf_dout <= #1 ch22_conf[0] ? sw_pointer22   : 32'h0;
554
 
555
           8'hc0:       wb_rf_dout <= #1 ch23_conf[0] ? ch23_csr    : 32'h0;
556
           8'hc1:       wb_rf_dout <= #1 ch23_conf[0] ? ch23_txsz   : 32'h0;
557
           8'hc2:       wb_rf_dout <= #1 ch23_conf[0] ? ch23_adr0   : 32'h0;
558
           8'hc3:       wb_rf_dout <= #1 ch23_conf[0] ? ch23_am0    : 32'h0;
559
           8'hc4:       wb_rf_dout <= #1 ch23_conf[0] ? ch23_adr1   : 32'h0;
560
           8'hc5:       wb_rf_dout <= #1 ch23_conf[0] ? ch23_am1    : 32'h0;
561
           8'hc6:       wb_rf_dout <= #1 ch23_conf[0] ? pointer23   : 32'h0;
562
           8'hc7:       wb_rf_dout <= #1 ch23_conf[0] ? sw_pointer23   : 32'h0;
563
 
564
           8'hc8:       wb_rf_dout <= #1 ch24_conf[0] ? ch24_csr    : 32'h0;
565
           8'hc9:       wb_rf_dout <= #1 ch24_conf[0] ? ch24_txsz   : 32'h0;
566
           8'hca:       wb_rf_dout <= #1 ch24_conf[0] ? ch24_adr0   : 32'h0;
567
           8'hcb:       wb_rf_dout <= #1 ch24_conf[0] ? ch24_am0    : 32'h0;
568
           8'hcc:       wb_rf_dout <= #1 ch24_conf[0] ? ch24_adr1   : 32'h0;
569
           8'hcd:       wb_rf_dout <= #1 ch24_conf[0] ? ch24_am1    : 32'h0;
570
           8'hce:       wb_rf_dout <= #1 ch24_conf[0] ? pointer24   : 32'h0;
571
           8'hcf:       wb_rf_dout <= #1 ch24_conf[0] ? sw_pointer24   : 32'h0;
572
 
573
           8'hd0:       wb_rf_dout <= #1 ch25_conf[0] ? ch25_csr    : 32'h0;
574
           8'hd1:       wb_rf_dout <= #1 ch25_conf[0] ? ch25_txsz   : 32'h0;
575
           8'hd2:       wb_rf_dout <= #1 ch25_conf[0] ? ch25_adr0   : 32'h0;
576
           8'hd3:       wb_rf_dout <= #1 ch25_conf[0] ? ch25_am0    : 32'h0;
577
           8'hd4:       wb_rf_dout <= #1 ch25_conf[0] ? ch25_adr1   : 32'h0;
578
           8'hd5:       wb_rf_dout <= #1 ch25_conf[0] ? ch25_am1    : 32'h0;
579
           8'hd6:       wb_rf_dout <= #1 ch25_conf[0] ? pointer25   : 32'h0;
580
           8'hd7:       wb_rf_dout <= #1 ch25_conf[0] ? sw_pointer25   : 32'h0;
581
 
582
           8'hd8:       wb_rf_dout <= #1 ch26_conf[0] ? ch26_csr    : 32'h0;
583
           8'hd9:       wb_rf_dout <= #1 ch26_conf[0] ? ch26_txsz   : 32'h0;
584
           8'hda:       wb_rf_dout <= #1 ch26_conf[0] ? ch26_adr0   : 32'h0;
585
           8'hdb:       wb_rf_dout <= #1 ch26_conf[0] ? ch26_am0    : 32'h0;
586
           8'hdc:       wb_rf_dout <= #1 ch26_conf[0] ? ch26_adr1   : 32'h0;
587
           8'hdd:       wb_rf_dout <= #1 ch26_conf[0] ? ch26_am1    : 32'h0;
588
           8'hde:       wb_rf_dout <= #1 ch26_conf[0] ? pointer26   : 32'h0;
589
           8'hdf:       wb_rf_dout <= #1 ch26_conf[0] ? sw_pointer26   : 32'h0;
590
 
591
           8'he0:       wb_rf_dout <= #1 ch27_conf[0] ? ch27_csr    : 32'h0;
592
           8'he1:       wb_rf_dout <= #1 ch27_conf[0] ? ch27_txsz   : 32'h0;
593
           8'he2:       wb_rf_dout <= #1 ch27_conf[0] ? ch27_adr0   : 32'h0;
594
           8'he3:       wb_rf_dout <= #1 ch27_conf[0] ? ch27_am0    : 32'h0;
595
           8'he4:       wb_rf_dout <= #1 ch27_conf[0] ? ch27_adr1   : 32'h0;
596
           8'he5:       wb_rf_dout <= #1 ch27_conf[0] ? ch27_am1    : 32'h0;
597
           8'he6:       wb_rf_dout <= #1 ch27_conf[0] ? pointer27   : 32'h0;
598
           8'he7:       wb_rf_dout <= #1 ch27_conf[0] ? sw_pointer27   : 32'h0;
599
 
600
           8'he8:       wb_rf_dout <= #1 ch28_conf[0] ? ch28_csr    : 32'h0;
601
           8'he9:       wb_rf_dout <= #1 ch28_conf[0] ? ch28_txsz   : 32'h0;
602
           8'hea:       wb_rf_dout <= #1 ch28_conf[0] ? ch28_adr0   : 32'h0;
603
           8'heb:       wb_rf_dout <= #1 ch28_conf[0] ? ch28_am0    : 32'h0;
604
           8'hec:       wb_rf_dout <= #1 ch28_conf[0] ? ch28_adr1   : 32'h0;
605
           8'hed:       wb_rf_dout <= #1 ch28_conf[0] ? ch28_am1    : 32'h0;
606
           8'hee:       wb_rf_dout <= #1 ch28_conf[0] ? pointer28   : 32'h0;
607
           8'hef:       wb_rf_dout <= #1 ch28_conf[0] ? sw_pointer28   : 32'h0;
608
 
609
           8'hf0:       wb_rf_dout <= #1 ch29_conf[0] ? ch29_csr    : 32'h0;
610
           8'hf1:       wb_rf_dout <= #1 ch29_conf[0] ? ch29_txsz   : 32'h0;
611
           8'hf2:       wb_rf_dout <= #1 ch29_conf[0] ? ch29_adr0   : 32'h0;
612
           8'hf3:       wb_rf_dout <= #1 ch29_conf[0] ? ch29_am0    : 32'h0;
613
           8'hf4:       wb_rf_dout <= #1 ch29_conf[0] ? ch29_adr1   : 32'h0;
614
           8'hf5:       wb_rf_dout <= #1 ch29_conf[0] ? ch29_am1    : 32'h0;
615
           8'hf6:       wb_rf_dout <= #1 ch29_conf[0] ? pointer29   : 32'h0;
616
           8'hf7:       wb_rf_dout <= #1 ch29_conf[0] ? sw_pointer29   : 32'h0;
617
 
618
           8'hf8:       wb_rf_dout <= #1 ch30_conf[0] ? ch30_csr    : 32'h0;
619
           8'hf9:       wb_rf_dout <= #1 ch30_conf[0] ? ch30_txsz   : 32'h0;
620
           8'hfa:       wb_rf_dout <= #1 ch30_conf[0] ? ch30_adr0   : 32'h0;
621
           8'hfb:       wb_rf_dout <= #1 ch30_conf[0] ? ch30_am0    : 32'h0;
622
           8'hfc:       wb_rf_dout <= #1 ch30_conf[0] ? ch30_adr1   : 32'h0;
623
           8'hfd:       wb_rf_dout <= #1 ch30_conf[0] ? ch30_am1    : 32'h0;
624
           8'hfe:       wb_rf_dout <= #1 ch30_conf[0] ? pointer30   : 32'h0;
625
           8'hff:       wb_rf_dout <= #1 ch30_conf[0] ? sw_pointer30   : 32'h0;
626
 
627
        endcase
628
 
629
 
630
////////////////////////////////////////////////////////////////////
631
//
632
// WISHBONE Register Write Logic
633
// And DMA Engine register Update Logic
634
//
635
 
636
// Global Registers
637
assign csr_we           = wb_rf_we & (wb_rf_adr == 8'h0);
638
assign int_maska_we     = wb_rf_we & (wb_rf_adr == 8'h1);
639
assign int_maskb_we     = wb_rf_we & (wb_rf_adr == 8'h2);
640
 
641
// ---------------------------------------------------
642
 
643
always @(posedge clk or negedge rst)
644
        if(!rst)                csr_r <= #1 8'h0;
645
        else
646
        if(csr_we)              csr_r <= #1 wb_rf_din[7:0];
647
 
648
// ---------------------------------------------------
649
// INT_MASK
650
always @(posedge clk or negedge rst)
651
        if(!rst)                int_maska_r <= #1 31'h0;
652
        else
653
        if(int_maska_we)        int_maska_r <= #1 wb_rf_din[30:0];
654
 
655
always @(posedge clk or negedge rst)
656
        if(!rst)                int_maskb_r <= #1 31'h0;
657
        else
658
        if(int_maskb_we)        int_maskb_r <= #1 wb_rf_din[30:0];
659
 
660
////////////////////////////////////////////////////////////////////
661
//
662
// Interrupts
663
//
664
 
665
assign int_srca = {1'b0, (int_maska_r & ch_int) };
666
assign int_srcb = {1'b0, (int_maskb_r & ch_int) };
667
 
668
// Interrupt Outputs
669
always @(posedge clk)
670
        inta_o <= #1 |int_srca;
671
 
672
always @(posedge clk)
673
        intb_o <= #1 |int_srcb;
674
 
675
////////////////////////////////////////////////////////////////////
676
//
677
// Channel Register File
678
//
679
 
680
// chXX_conf = { CBUF, ED, ARS, EN }
681
 
682
wb_dma_ch_rf #(0, ch0_conf[0], ch0_conf[1], ch0_conf[2], ch0_conf[3]) u0(
683
                .clk(           clk             ),
684
                .rst(           rst             ),
685
                .pointer(       pointer0        ),
686
                .pointer_s(     pointer0_s      ),
687
                .ch_csr(        ch0_csr         ),
688
                .ch_txsz(       ch0_txsz        ),
689
                .ch_adr0(       ch0_adr0        ),
690
                .ch_adr1(       ch0_adr1        ),
691
                .ch_am0(        ch0_am0         ),
692
                .ch_am1(        ch0_am1         ),
693
                .sw_pointer(    sw_pointer0     ),
694
                .ch_stop(       ch_stop[0]       ),
695
                .ch_dis(        ch_dis[0]        ),
696
                .int(           ch_int[0]        ),
697
                .wb_rf_din(     wb_rf_din       ),
698
                .wb_rf_adr(     wb_rf_adr       ),
699
                .wb_rf_we(      wb_rf_we        ),
700
                .wb_rf_re(      wb_rf_re        ),
701
                .ch_sel(        ch_sel          ),
702
                .ndnr(          ndnr[0]          ),
703
                .dma_busy(      dma_busy        ),
704
                .dma_err(       dma_err         ),
705
                .dma_done(      dma_done        ),
706
                .dma_done_all(  dma_done_all    ),
707
                .de_csr(        de_csr          ),
708
                .de_txsz(       de_txsz         ),
709
                .de_adr0(       de_adr0         ),
710
                .de_adr1(       de_adr1         ),
711
                .de_csr_we(     de_csr_we       ),
712
                .de_txsz_we(    de_txsz_we      ),
713
                .de_adr0_we(    de_adr0_we      ),
714
                .de_adr1_we(    de_adr1_we      ),
715
                .de_fetch_descr(de_fetch_descr  ),
716
                .dma_rest(      dma_rest[0]      ),
717
                .ptr_set(       ptr_set         )
718
                );
719
 
720
wb_dma_ch_rf #(1, ch1_conf[0], ch1_conf[1], ch1_conf[2], ch1_conf[3]) u1(
721
                .clk(           clk             ),
722
                .rst(           rst             ),
723
                .pointer(       pointer1        ),
724
                .pointer_s(     pointer1_s      ),
725
                .ch_csr(        ch1_csr         ),
726
                .ch_txsz(       ch1_txsz        ),
727
                .ch_adr0(       ch1_adr0        ),
728
                .ch_adr1(       ch1_adr1        ),
729
                .ch_am0(        ch1_am0         ),
730
                .ch_am1(        ch1_am1         ),
731
                .sw_pointer(    sw_pointer1     ),
732
                .ch_stop(       ch_stop[1]      ),
733
                .ch_dis(        ch_dis[1]       ),
734
                .int(           ch_int[1]       ),
735
                .wb_rf_din(     wb_rf_din       ),
736
                .wb_rf_adr(     wb_rf_adr       ),
737
                .wb_rf_we(      wb_rf_we        ),
738
                .wb_rf_re(      wb_rf_re        ),
739
                .ch_sel(        ch_sel          ),
740
                .ndnr(          ndnr[1]         ),
741
                .dma_busy(      dma_busy        ),
742
                .dma_err(       dma_err         ),
743
                .dma_done(      dma_done        ),
744
                .dma_done_all(  dma_done_all    ),
745
                .de_csr(        de_csr          ),
746
                .de_txsz(       de_txsz         ),
747
                .de_adr0(       de_adr0         ),
748
                .de_adr1(       de_adr1         ),
749
                .de_csr_we(     de_csr_we       ),
750
                .de_txsz_we(    de_txsz_we      ),
751
                .de_adr0_we(    de_adr0_we      ),
752
                .de_adr1_we(    de_adr1_we      ),
753
                .de_fetch_descr(de_fetch_descr  ),
754
                .dma_rest(      dma_rest[1]     ),
755
                .ptr_set(       ptr_set         )
756
                );
757
 
758
wb_dma_ch_rf #(2, ch2_conf[0], ch2_conf[1], ch2_conf[2], ch2_conf[3]) u2(
759
                .clk(           clk             ),
760
                .rst(           rst             ),
761
                .pointer(       pointer2        ),
762
                .pointer_s(     pointer2_s      ),
763
                .ch_csr(        ch2_csr         ),
764
                .ch_txsz(       ch2_txsz        ),
765
                .ch_adr0(       ch2_adr0        ),
766
                .ch_adr1(       ch2_adr1        ),
767
                .ch_am0(        ch2_am0         ),
768
                .ch_am1(        ch2_am1         ),
769
                .sw_pointer(    sw_pointer2     ),
770
                .ch_stop(       ch_stop[2]      ),
771
                .ch_dis(        ch_dis[2]       ),
772
                .int(           ch_int[2]       ),
773
                .wb_rf_din(     wb_rf_din       ),
774
                .wb_rf_adr(     wb_rf_adr       ),
775
                .wb_rf_we(      wb_rf_we        ),
776
                .wb_rf_re(      wb_rf_re        ),
777
                .ch_sel(        ch_sel          ),
778
                .ndnr(          ndnr[2]         ),
779
                .dma_busy(      dma_busy        ),
780
                .dma_err(       dma_err         ),
781
                .dma_done(      dma_done        ),
782
                .dma_done_all(  dma_done_all    ),
783
                .de_csr(        de_csr          ),
784
                .de_txsz(       de_txsz         ),
785
                .de_adr0(       de_adr0         ),
786
                .de_adr1(       de_adr1         ),
787
                .de_csr_we(     de_csr_we       ),
788
                .de_txsz_we(    de_txsz_we      ),
789
                .de_adr0_we(    de_adr0_we      ),
790
                .de_adr1_we(    de_adr1_we      ),
791
                .de_fetch_descr(de_fetch_descr  ),
792
                .dma_rest(      dma_rest[2]     ),
793
                .ptr_set(       ptr_set         )
794
                );
795
 
796
wb_dma_ch_rf #(3, ch3_conf[0], ch3_conf[1], ch3_conf[2], ch3_conf[3]) u3(
797
                .clk(           clk             ),
798
                .rst(           rst             ),
799
                .pointer(       pointer3        ),
800
                .pointer_s(     pointer3_s      ),
801
                .ch_csr(        ch3_csr         ),
802
                .ch_txsz(       ch3_txsz        ),
803
                .ch_adr0(       ch3_adr0        ),
804
                .ch_adr1(       ch3_adr1        ),
805
                .ch_am0(        ch3_am0         ),
806
                .ch_am1(        ch3_am1         ),
807
                .sw_pointer(    sw_pointer3     ),
808
                .ch_stop(       ch_stop[3]      ),
809
                .ch_dis(        ch_dis[3]       ),
810
                .int(           ch_int[3]       ),
811
                .wb_rf_din(     wb_rf_din       ),
812
                .wb_rf_adr(     wb_rf_adr       ),
813
                .wb_rf_we(      wb_rf_we        ),
814
                .wb_rf_re(      wb_rf_re        ),
815
                .ch_sel(        ch_sel          ),
816
                .ndnr(          ndnr[3]         ),
817
                .dma_busy(      dma_busy        ),
818
                .dma_err(       dma_err         ),
819
                .dma_done(      dma_done        ),
820
                .dma_done_all(  dma_done_all    ),
821
                .de_csr(        de_csr          ),
822
                .de_txsz(       de_txsz         ),
823
                .de_adr0(       de_adr0         ),
824
                .de_adr1(       de_adr1         ),
825
                .de_csr_we(     de_csr_we       ),
826
                .de_txsz_we(    de_txsz_we      ),
827
                .de_adr0_we(    de_adr0_we      ),
828
                .de_adr1_we(    de_adr1_we      ),
829
                .de_fetch_descr(de_fetch_descr  ),
830
                .dma_rest(      dma_rest[3]     ),
831
                .ptr_set(       ptr_set         )
832
                );
833
 
834
wb_dma_ch_rf #(4, ch4_conf[0], ch4_conf[1], ch4_conf[2], ch4_conf[3]) u4(
835
                .clk(           clk             ),
836
                .rst(           rst             ),
837
                .pointer(       pointer4        ),
838
                .pointer_s(     pointer4_s      ),
839
                .ch_csr(        ch4_csr         ),
840
                .ch_txsz(       ch4_txsz        ),
841
                .ch_adr0(       ch4_adr0        ),
842
                .ch_adr1(       ch4_adr1        ),
843
                .ch_am0(        ch4_am0         ),
844
                .ch_am1(        ch4_am1         ),
845
                .sw_pointer(    sw_pointer4     ),
846
                .ch_stop(       ch_stop[4]      ),
847
                .ch_dis(        ch_dis[4]       ),
848
                .int(           ch_int[4]       ),
849
                .wb_rf_din(     wb_rf_din       ),
850
                .wb_rf_adr(     wb_rf_adr       ),
851
                .wb_rf_we(      wb_rf_we        ),
852
                .wb_rf_re(      wb_rf_re        ),
853
                .ch_sel(        ch_sel          ),
854
                .ndnr(          ndnr[4]         ),
855
                .dma_busy(      dma_busy        ),
856
                .dma_err(       dma_err         ),
857
                .dma_done(      dma_done        ),
858
                .dma_done_all(  dma_done_all    ),
859
                .de_csr(        de_csr          ),
860
                .de_txsz(       de_txsz         ),
861
                .de_adr0(       de_adr0         ),
862
                .de_adr1(       de_adr1         ),
863
                .de_csr_we(     de_csr_we       ),
864
                .de_txsz_we(    de_txsz_we      ),
865
                .de_adr0_we(    de_adr0_we      ),
866
                .de_adr1_we(    de_adr1_we      ),
867
                .de_fetch_descr(de_fetch_descr  ),
868
                .dma_rest(      dma_rest[4]     ),
869
                .ptr_set(       ptr_set         )
870
                );
871
 
872
wb_dma_ch_rf #(5, ch5_conf[0], ch5_conf[1], ch5_conf[2], ch5_conf[3]) u5(
873
                .clk(           clk             ),
874
                .rst(           rst             ),
875
                .pointer(       pointer5        ),
876
                .pointer_s(     pointer5_s      ),
877
                .ch_csr(        ch5_csr         ),
878
                .ch_txsz(       ch5_txsz        ),
879
                .ch_adr0(       ch5_adr0        ),
880
                .ch_adr1(       ch5_adr1        ),
881
                .ch_am0(        ch5_am0         ),
882
                .ch_am1(        ch5_am1         ),
883
                .sw_pointer(    sw_pointer5     ),
884
                .ch_stop(       ch_stop[5]      ),
885
                .ch_dis(        ch_dis[5]       ),
886
                .int(           ch_int[5]       ),
887
                .wb_rf_din(     wb_rf_din       ),
888
                .wb_rf_adr(     wb_rf_adr       ),
889
                .wb_rf_we(      wb_rf_we        ),
890
                .wb_rf_re(      wb_rf_re        ),
891
                .ch_sel(        ch_sel          ),
892
                .ndnr(          ndnr[5]         ),
893
                .dma_busy(      dma_busy        ),
894
                .dma_err(       dma_err         ),
895
                .dma_done(      dma_done        ),
896
                .dma_done_all(  dma_done_all    ),
897
                .de_csr(        de_csr          ),
898
                .de_txsz(       de_txsz         ),
899
                .de_adr0(       de_adr0         ),
900
                .de_adr1(       de_adr1         ),
901
                .de_csr_we(     de_csr_we       ),
902
                .de_txsz_we(    de_txsz_we      ),
903
                .de_adr0_we(    de_adr0_we      ),
904
                .de_adr1_we(    de_adr1_we      ),
905
                .de_fetch_descr(de_fetch_descr  ),
906
                .dma_rest(      dma_rest[5]     ),
907
                .ptr_set(       ptr_set         )
908
                );
909
 
910
wb_dma_ch_rf #(6, ch6_conf[0], ch6_conf[1], ch6_conf[2], ch6_conf[3]) u6(
911
                .clk(           clk             ),
912
                .rst(           rst             ),
913
                .pointer(       pointer6        ),
914
                .pointer_s(     pointer6_s      ),
915
                .ch_csr(        ch6_csr         ),
916
                .ch_txsz(       ch6_txsz        ),
917
                .ch_adr0(       ch6_adr0        ),
918
                .ch_adr1(       ch6_adr1        ),
919
                .ch_am0(        ch6_am0         ),
920
                .ch_am1(        ch6_am1         ),
921
                .sw_pointer(    sw_pointer6     ),
922
                .ch_stop(       ch_stop[6]      ),
923
                .ch_dis(        ch_dis[6]       ),
924
                .int(           ch_int[6]       ),
925
                .wb_rf_din(     wb_rf_din       ),
926
                .wb_rf_adr(     wb_rf_adr       ),
927
                .wb_rf_we(      wb_rf_we        ),
928
                .wb_rf_re(      wb_rf_re        ),
929
                .ch_sel(        ch_sel          ),
930
                .ndnr(          ndnr[6]         ),
931
                .dma_busy(      dma_busy        ),
932
                .dma_err(       dma_err         ),
933
                .dma_done(      dma_done        ),
934
                .dma_done_all(  dma_done_all    ),
935
                .de_csr(        de_csr          ),
936
                .de_txsz(       de_txsz         ),
937
                .de_adr0(       de_adr0         ),
938
                .de_adr1(       de_adr1         ),
939
                .de_csr_we(     de_csr_we       ),
940
                .de_txsz_we(    de_txsz_we      ),
941
                .de_adr0_we(    de_adr0_we      ),
942
                .de_adr1_we(    de_adr1_we      ),
943
                .de_fetch_descr(de_fetch_descr  ),
944
                .dma_rest(      dma_rest[6]     ),
945
                .ptr_set(       ptr_set         )
946
                );
947
 
948
wb_dma_ch_rf #(7, ch7_conf[0], ch7_conf[1], ch7_conf[2], ch7_conf[3]) u7(
949
                .clk(           clk             ),
950
                .rst(           rst             ),
951
                .pointer(       pointer7        ),
952
                .pointer_s(     pointer7_s      ),
953
                .ch_csr(        ch7_csr         ),
954
                .ch_txsz(       ch7_txsz        ),
955
                .ch_adr0(       ch7_adr0        ),
956
                .ch_adr1(       ch7_adr1        ),
957
                .ch_am0(        ch7_am0         ),
958
                .ch_am1(        ch7_am1         ),
959
                .sw_pointer(    sw_pointer7     ),
960
                .ch_stop(       ch_stop[7]      ),
961
                .ch_dis(        ch_dis[7]       ),
962
                .int(           ch_int[7]       ),
963
                .wb_rf_din(     wb_rf_din       ),
964
                .wb_rf_adr(     wb_rf_adr       ),
965
                .wb_rf_we(      wb_rf_we        ),
966
                .wb_rf_re(      wb_rf_re        ),
967
                .ch_sel(        ch_sel          ),
968
                .ndnr(          ndnr[7]         ),
969
                .dma_busy(      dma_busy        ),
970
                .dma_err(       dma_err         ),
971
                .dma_done(      dma_done        ),
972
                .dma_done_all(  dma_done_all    ),
973
                .de_csr(        de_csr          ),
974
                .de_txsz(       de_txsz         ),
975
                .de_adr0(       de_adr0         ),
976
                .de_adr1(       de_adr1         ),
977
                .de_csr_we(     de_csr_we       ),
978
                .de_txsz_we(    de_txsz_we      ),
979
                .de_adr0_we(    de_adr0_we      ),
980
                .de_adr1_we(    de_adr1_we      ),
981
                .de_fetch_descr(de_fetch_descr  ),
982
                .dma_rest(      dma_rest[7]     ),
983
                .ptr_set(       ptr_set         )
984
                );
985
 
986
wb_dma_ch_rf #(8, ch8_conf[0], ch8_conf[1], ch8_conf[2], ch8_conf[3]) u8(
987
                .clk(           clk             ),
988
                .rst(           rst             ),
989
                .pointer(       pointer8        ),
990
                .pointer_s(     pointer8_s      ),
991
                .ch_csr(        ch8_csr         ),
992
                .ch_txsz(       ch8_txsz        ),
993
                .ch_adr0(       ch8_adr0        ),
994
                .ch_adr1(       ch8_adr1        ),
995
                .ch_am0(        ch8_am0         ),
996
                .ch_am1(        ch8_am1         ),
997
                .sw_pointer(    sw_pointer8     ),
998
                .ch_stop(       ch_stop[8]      ),
999
                .ch_dis(        ch_dis[8]       ),
1000
                .int(           ch_int[8]       ),
1001
                .wb_rf_din(     wb_rf_din       ),
1002
                .wb_rf_adr(     wb_rf_adr       ),
1003
                .wb_rf_we(      wb_rf_we        ),
1004
                .wb_rf_re(      wb_rf_re        ),
1005
                .ch_sel(        ch_sel          ),
1006
                .ndnr(          ndnr[8]         ),
1007
                .dma_busy(      dma_busy        ),
1008
                .dma_err(       dma_err         ),
1009
                .dma_done(      dma_done        ),
1010
                .dma_done_all(  dma_done_all    ),
1011
                .de_csr(        de_csr          ),
1012
                .de_txsz(       de_txsz         ),
1013
                .de_adr0(       de_adr0         ),
1014
                .de_adr1(       de_adr1         ),
1015
                .de_csr_we(     de_csr_we       ),
1016
                .de_txsz_we(    de_txsz_we      ),
1017
                .de_adr0_we(    de_adr0_we      ),
1018
                .de_adr1_we(    de_adr1_we      ),
1019
                .de_fetch_descr(de_fetch_descr  ),
1020
                .dma_rest(      dma_rest[8]     ),
1021
                .ptr_set(       ptr_set         )
1022
                );
1023
 
1024
wb_dma_ch_rf #(9, ch9_conf[0], ch9_conf[1], ch9_conf[2], ch9_conf[3]) u9(
1025
                .clk(           clk             ),
1026
                .rst(           rst             ),
1027
                .pointer(       pointer9        ),
1028
                .pointer_s(     pointer9_s      ),
1029
                .ch_csr(        ch9_csr         ),
1030
                .ch_txsz(       ch9_txsz        ),
1031
                .ch_adr0(       ch9_adr0        ),
1032
                .ch_adr1(       ch9_adr1        ),
1033
                .ch_am0(        ch9_am0         ),
1034
                .ch_am1(        ch9_am1         ),
1035
                .sw_pointer(    sw_pointer9     ),
1036
                .ch_stop(       ch_stop[9]      ),
1037
                .ch_dis(        ch_dis[9]       ),
1038
                .int(           ch_int[9]       ),
1039
                .wb_rf_din(     wb_rf_din       ),
1040
                .wb_rf_adr(     wb_rf_adr       ),
1041
                .wb_rf_we(      wb_rf_we        ),
1042
                .wb_rf_re(      wb_rf_re        ),
1043
                .ch_sel(        ch_sel          ),
1044
                .ndnr(          ndnr[9]         ),
1045
                .dma_busy(      dma_busy        ),
1046
                .dma_err(       dma_err         ),
1047
                .dma_done(      dma_done        ),
1048
                .dma_done_all(  dma_done_all    ),
1049
                .de_csr(        de_csr          ),
1050
                .de_txsz(       de_txsz         ),
1051
                .de_adr0(       de_adr0         ),
1052
                .de_adr1(       de_adr1         ),
1053
                .de_csr_we(     de_csr_we       ),
1054
                .de_txsz_we(    de_txsz_we      ),
1055
                .de_adr0_we(    de_adr0_we      ),
1056
                .de_adr1_we(    de_adr1_we      ),
1057
                .de_fetch_descr(de_fetch_descr  ),
1058
                .dma_rest(      dma_rest[9]     ),
1059
                .ptr_set(       ptr_set         )
1060
                );
1061
 
1062
wb_dma_ch_rf #(10, ch10_conf[0], ch10_conf[1], ch10_conf[2], ch10_conf[3]) u10(
1063
                .clk(           clk             ),
1064
                .rst(           rst             ),
1065
                .pointer(       pointer10       ),
1066
                .pointer_s(     pointer10_s     ),
1067
                .ch_csr(        ch10_csr                ),
1068
                .ch_txsz(       ch10_txsz       ),
1069
                .ch_adr0(       ch10_adr0       ),
1070
                .ch_adr1(       ch10_adr1       ),
1071
                .ch_am0(        ch10_am0                ),
1072
                .ch_am1(        ch10_am1                ),
1073
                .sw_pointer(    sw_pointer10    ),
1074
                .ch_stop(       ch_stop[10]     ),
1075
                .ch_dis(        ch_dis[10]      ),
1076
                .int(           ch_int[10]      ),
1077
                .wb_rf_din(     wb_rf_din       ),
1078
                .wb_rf_adr(     wb_rf_adr       ),
1079
                .wb_rf_we(      wb_rf_we        ),
1080
                .wb_rf_re(      wb_rf_re        ),
1081
                .ch_sel(        ch_sel          ),
1082
                .ndnr(          ndnr[10]                ),
1083
                .dma_busy(      dma_busy        ),
1084
                .dma_err(       dma_err         ),
1085
                .dma_done(      dma_done        ),
1086
                .dma_done_all(  dma_done_all    ),
1087
                .de_csr(        de_csr          ),
1088
                .de_txsz(       de_txsz         ),
1089
                .de_adr0(       de_adr0         ),
1090
                .de_adr1(       de_adr1         ),
1091
                .de_csr_we(     de_csr_we       ),
1092
                .de_txsz_we(    de_txsz_we      ),
1093
                .de_adr0_we(    de_adr0_we      ),
1094
                .de_adr1_we(    de_adr1_we      ),
1095
                .de_fetch_descr(de_fetch_descr  ),
1096
                .dma_rest(      dma_rest[10]    ),
1097
                .ptr_set(       ptr_set         )
1098
                );
1099
 
1100
wb_dma_ch_rf #(11, ch11_conf[0], ch11_conf[1], ch11_conf[2], ch11_conf[3]) u11(
1101
                .clk(           clk             ),
1102
                .rst(           rst             ),
1103
                .pointer(       pointer11       ),
1104
                .pointer_s(     pointer11_s     ),
1105
                .ch_csr(        ch11_csr                ),
1106
                .ch_txsz(       ch11_txsz       ),
1107
                .ch_adr0(       ch11_adr0       ),
1108
                .ch_adr1(       ch11_adr1       ),
1109
                .ch_am0(        ch11_am0                ),
1110
                .ch_am1(        ch11_am1                ),
1111
                .sw_pointer(    sw_pointer11    ),
1112
                .ch_stop(       ch_stop[11]     ),
1113
                .ch_dis(        ch_dis[11]      ),
1114
                .int(           ch_int[11]      ),
1115
                .wb_rf_din(     wb_rf_din       ),
1116
                .wb_rf_adr(     wb_rf_adr       ),
1117
                .wb_rf_we(      wb_rf_we        ),
1118
                .wb_rf_re(      wb_rf_re        ),
1119
                .ch_sel(        ch_sel          ),
1120
                .ndnr(          ndnr[11]                ),
1121
                .dma_busy(      dma_busy        ),
1122
                .dma_err(       dma_err         ),
1123
                .dma_done(      dma_done        ),
1124
                .dma_done_all(  dma_done_all    ),
1125
                .de_csr(        de_csr          ),
1126
                .de_txsz(       de_txsz         ),
1127
                .de_adr0(       de_adr0         ),
1128
                .de_adr1(       de_adr1         ),
1129
                .de_csr_we(     de_csr_we       ),
1130
                .de_txsz_we(    de_txsz_we      ),
1131
                .de_adr0_we(    de_adr0_we      ),
1132
                .de_adr1_we(    de_adr1_we      ),
1133
                .de_fetch_descr(de_fetch_descr  ),
1134
                .dma_rest(      dma_rest[11]    ),
1135
                .ptr_set(       ptr_set         )
1136
                );
1137
 
1138
wb_dma_ch_rf #(12, ch12_conf[0], ch12_conf[1], ch12_conf[2], ch12_conf[3]) u12(
1139
                .clk(           clk             ),
1140
                .rst(           rst             ),
1141
                .pointer(       pointer12       ),
1142
                .pointer_s(     pointer12_s     ),
1143
                .ch_csr(        ch12_csr                ),
1144
                .ch_txsz(       ch12_txsz       ),
1145
                .ch_adr0(       ch12_adr0       ),
1146
                .ch_adr1(       ch12_adr1       ),
1147
                .ch_am0(        ch12_am0                ),
1148
                .ch_am1(        ch12_am1                ),
1149
                .sw_pointer(    sw_pointer12    ),
1150
                .ch_stop(       ch_stop[12]     ),
1151
                .ch_dis(        ch_dis[12]      ),
1152
                .int(           ch_int[12]      ),
1153
                .wb_rf_din(     wb_rf_din       ),
1154
                .wb_rf_adr(     wb_rf_adr       ),
1155
                .wb_rf_we(      wb_rf_we        ),
1156
                .wb_rf_re(      wb_rf_re        ),
1157
                .ch_sel(        ch_sel          ),
1158
                .ndnr(          ndnr[12]                ),
1159
                .dma_busy(      dma_busy        ),
1160
                .dma_err(       dma_err         ),
1161
                .dma_done(      dma_done        ),
1162
                .dma_done_all(  dma_done_all    ),
1163
                .de_csr(        de_csr          ),
1164
                .de_txsz(       de_txsz         ),
1165
                .de_adr0(       de_adr0         ),
1166
                .de_adr1(       de_adr1         ),
1167
                .de_csr_we(     de_csr_we       ),
1168
                .de_txsz_we(    de_txsz_we      ),
1169
                .de_adr0_we(    de_adr0_we      ),
1170
                .de_adr1_we(    de_adr1_we      ),
1171
                .de_fetch_descr(de_fetch_descr  ),
1172
                .dma_rest(      dma_rest[12]    ),
1173
                .ptr_set(       ptr_set         )
1174
                );
1175
 
1176
wb_dma_ch_rf #(13, ch13_conf[0], ch13_conf[1], ch13_conf[2], ch13_conf[3]) u13(
1177
                .clk(           clk             ),
1178
                .rst(           rst             ),
1179
                .pointer(       pointer13       ),
1180
                .pointer_s(     pointer13_s     ),
1181
                .ch_csr(        ch13_csr                ),
1182
                .ch_txsz(       ch13_txsz       ),
1183
                .ch_adr0(       ch13_adr0       ),
1184
                .ch_adr1(       ch13_adr1       ),
1185
                .ch_am0(        ch13_am0                ),
1186
                .ch_am1(        ch13_am1                ),
1187
                .sw_pointer(    sw_pointer13    ),
1188
                .ch_stop(       ch_stop[13]     ),
1189
                .ch_dis(        ch_dis[13]      ),
1190
                .int(           ch_int[13]      ),
1191
                .wb_rf_din(     wb_rf_din       ),
1192
                .wb_rf_adr(     wb_rf_adr       ),
1193
                .wb_rf_we(      wb_rf_we        ),
1194
                .wb_rf_re(      wb_rf_re        ),
1195
                .ch_sel(        ch_sel          ),
1196
                .ndnr(          ndnr[13]                ),
1197
                .dma_busy(      dma_busy        ),
1198
                .dma_err(       dma_err         ),
1199
                .dma_done(      dma_done        ),
1200
                .dma_done_all(  dma_done_all    ),
1201
                .de_csr(        de_csr          ),
1202
                .de_txsz(       de_txsz         ),
1203
                .de_adr0(       de_adr0         ),
1204
                .de_adr1(       de_adr1         ),
1205
                .de_csr_we(     de_csr_we       ),
1206
                .de_txsz_we(    de_txsz_we      ),
1207
                .de_adr0_we(    de_adr0_we      ),
1208
                .de_adr1_we(    de_adr1_we      ),
1209
                .de_fetch_descr(de_fetch_descr  ),
1210
                .dma_rest(      dma_rest[13]    ),
1211
                .ptr_set(       ptr_set         )
1212
                );
1213
 
1214
wb_dma_ch_rf #(14, ch14_conf[0], ch14_conf[1], ch14_conf[2], ch14_conf[3]) u14(
1215
                .clk(           clk             ),
1216
                .rst(           rst             ),
1217
                .pointer(       pointer14       ),
1218
                .pointer_s(     pointer14_s     ),
1219
                .ch_csr(        ch14_csr                ),
1220
                .ch_txsz(       ch14_txsz       ),
1221
                .ch_adr0(       ch14_adr0       ),
1222
                .ch_adr1(       ch14_adr1       ),
1223
                .ch_am0(        ch14_am0                ),
1224
                .ch_am1(        ch14_am1                ),
1225
                .sw_pointer(    sw_pointer14    ),
1226
                .ch_stop(       ch_stop[14]     ),
1227
                .ch_dis(        ch_dis[14]      ),
1228
                .int(           ch_int[14]      ),
1229
                .wb_rf_din(     wb_rf_din       ),
1230
                .wb_rf_adr(     wb_rf_adr       ),
1231
                .wb_rf_we(      wb_rf_we        ),
1232
                .wb_rf_re(      wb_rf_re        ),
1233
                .ch_sel(        ch_sel          ),
1234
                .ndnr(          ndnr[14]                ),
1235
                .dma_busy(      dma_busy        ),
1236
                .dma_err(       dma_err         ),
1237
                .dma_done(      dma_done        ),
1238
                .dma_done_all(  dma_done_all    ),
1239
                .de_csr(        de_csr          ),
1240
                .de_txsz(       de_txsz         ),
1241
                .de_adr0(       de_adr0         ),
1242
                .de_adr1(       de_adr1         ),
1243
                .de_csr_we(     de_csr_we       ),
1244
                .de_txsz_we(    de_txsz_we      ),
1245
                .de_adr0_we(    de_adr0_we      ),
1246
                .de_adr1_we(    de_adr1_we      ),
1247
                .de_fetch_descr(de_fetch_descr  ),
1248
                .dma_rest(      dma_rest[14]    ),
1249
                .ptr_set(       ptr_set         )
1250
                );
1251
 
1252
wb_dma_ch_rf #(15, ch15_conf[0], ch15_conf[1], ch15_conf[2], ch15_conf[3]) u15(
1253
                .clk(           clk             ),
1254
                .rst(           rst             ),
1255
                .pointer(       pointer15       ),
1256
                .pointer_s(     pointer15_s     ),
1257
                .ch_csr(        ch15_csr                ),
1258
                .ch_txsz(       ch15_txsz       ),
1259
                .ch_adr0(       ch15_adr0       ),
1260
                .ch_adr1(       ch15_adr1       ),
1261
                .ch_am0(        ch15_am0                ),
1262
                .ch_am1(        ch15_am1                ),
1263
                .sw_pointer(    sw_pointer15    ),
1264
                .ch_stop(       ch_stop[15]     ),
1265
                .ch_dis(        ch_dis[15]      ),
1266
                .int(           ch_int[15]      ),
1267
                .wb_rf_din(     wb_rf_din       ),
1268
                .wb_rf_adr(     wb_rf_adr       ),
1269
                .wb_rf_we(      wb_rf_we        ),
1270
                .wb_rf_re(      wb_rf_re        ),
1271
                .ch_sel(        ch_sel          ),
1272
                .ndnr(          ndnr[15]                ),
1273
                .dma_busy(      dma_busy        ),
1274
                .dma_err(       dma_err         ),
1275
                .dma_done(      dma_done        ),
1276
                .dma_done_all(  dma_done_all    ),
1277
                .de_csr(        de_csr          ),
1278
                .de_txsz(       de_txsz         ),
1279
                .de_adr0(       de_adr0         ),
1280
                .de_adr1(       de_adr1         ),
1281
                .de_csr_we(     de_csr_we       ),
1282
                .de_txsz_we(    de_txsz_we      ),
1283
                .de_adr0_we(    de_adr0_we      ),
1284
                .de_adr1_we(    de_adr1_we      ),
1285
                .de_fetch_descr(de_fetch_descr  ),
1286
                .dma_rest(      dma_rest[15]    ),
1287
                .ptr_set(       ptr_set         )
1288
                );
1289
 
1290
wb_dma_ch_rf #(16, ch16_conf[0], ch16_conf[1], ch16_conf[2], ch16_conf[3]) u16(
1291
                .clk(           clk             ),
1292
                .rst(           rst             ),
1293
                .pointer(       pointer16       ),
1294
                .pointer_s(     pointer16_s     ),
1295
                .ch_csr(        ch16_csr                ),
1296
                .ch_txsz(       ch16_txsz       ),
1297
                .ch_adr0(       ch16_adr0       ),
1298
                .ch_adr1(       ch16_adr1       ),
1299
                .ch_am0(        ch16_am0                ),
1300
                .ch_am1(        ch16_am1                ),
1301
                .sw_pointer(    sw_pointer16    ),
1302
                .ch_stop(       ch_stop[16]     ),
1303
                .ch_dis(        ch_dis[16]      ),
1304
                .int(           ch_int[16]      ),
1305
                .wb_rf_din(     wb_rf_din       ),
1306
                .wb_rf_adr(     wb_rf_adr       ),
1307
                .wb_rf_we(      wb_rf_we        ),
1308
                .wb_rf_re(      wb_rf_re        ),
1309
                .ch_sel(        ch_sel          ),
1310
                .ndnr(          ndnr[16]                ),
1311
                .dma_busy(      dma_busy        ),
1312
                .dma_err(       dma_err         ),
1313
                .dma_done(      dma_done        ),
1314
                .dma_done_all(  dma_done_all    ),
1315
                .de_csr(        de_csr          ),
1316
                .de_txsz(       de_txsz         ),
1317
                .de_adr0(       de_adr0         ),
1318
                .de_adr1(       de_adr1         ),
1319
                .de_csr_we(     de_csr_we       ),
1320
                .de_txsz_we(    de_txsz_we      ),
1321
                .de_adr0_we(    de_adr0_we      ),
1322
                .de_adr1_we(    de_adr1_we      ),
1323
                .de_fetch_descr(de_fetch_descr  ),
1324
                .dma_rest(      dma_rest[16]    ),
1325
                .ptr_set(       ptr_set         )
1326
                );
1327
 
1328
wb_dma_ch_rf #(17, ch17_conf[0], ch17_conf[1], ch17_conf[2], ch17_conf[3]) u17(
1329
                .clk(           clk             ),
1330
                .rst(           rst             ),
1331
                .pointer(       pointer17       ),
1332
                .pointer_s(     pointer17_s     ),
1333
                .ch_csr(        ch17_csr                ),
1334
                .ch_txsz(       ch17_txsz       ),
1335
                .ch_adr0(       ch17_adr0       ),
1336
                .ch_adr1(       ch17_adr1       ),
1337
                .ch_am0(        ch17_am0                ),
1338
                .ch_am1(        ch17_am1                ),
1339
                .sw_pointer(    sw_pointer17    ),
1340
                .ch_stop(       ch_stop[17]     ),
1341
                .ch_dis(        ch_dis[17]      ),
1342
                .int(           ch_int[17]      ),
1343
                .wb_rf_din(     wb_rf_din       ),
1344
                .wb_rf_adr(     wb_rf_adr       ),
1345
                .wb_rf_we(      wb_rf_we        ),
1346
                .wb_rf_re(      wb_rf_re        ),
1347
                .ch_sel(        ch_sel          ),
1348
                .ndnr(          ndnr[17]                ),
1349
                .dma_busy(      dma_busy        ),
1350
                .dma_err(       dma_err         ),
1351
                .dma_done(      dma_done        ),
1352
                .dma_done_all(  dma_done_all    ),
1353
                .de_csr(        de_csr          ),
1354
                .de_txsz(       de_txsz         ),
1355
                .de_adr0(       de_adr0         ),
1356
                .de_adr1(       de_adr1         ),
1357
                .de_csr_we(     de_csr_we       ),
1358
                .de_txsz_we(    de_txsz_we      ),
1359
                .de_adr0_we(    de_adr0_we      ),
1360
                .de_adr1_we(    de_adr1_we      ),
1361
                .de_fetch_descr(de_fetch_descr  ),
1362
                .dma_rest(      dma_rest[17]    ),
1363
                .ptr_set(       ptr_set         )
1364
                );
1365
 
1366
wb_dma_ch_rf #(18, ch18_conf[0], ch18_conf[1], ch18_conf[2], ch18_conf[3]) u18(
1367
                .clk(           clk             ),
1368
                .rst(           rst             ),
1369
                .pointer(       pointer18       ),
1370
                .pointer_s(     pointer18_s     ),
1371
                .ch_csr(        ch18_csr                ),
1372
                .ch_txsz(       ch18_txsz       ),
1373
                .ch_adr0(       ch18_adr0       ),
1374
                .ch_adr1(       ch18_adr1       ),
1375
                .ch_am0(        ch18_am0                ),
1376
                .ch_am1(        ch18_am1                ),
1377
                .sw_pointer(    sw_pointer18    ),
1378
                .ch_stop(       ch_stop[18]     ),
1379
                .ch_dis(        ch_dis[18]      ),
1380
                .int(           ch_int[18]      ),
1381
                .wb_rf_din(     wb_rf_din       ),
1382
                .wb_rf_adr(     wb_rf_adr       ),
1383
                .wb_rf_we(      wb_rf_we        ),
1384
                .wb_rf_re(      wb_rf_re        ),
1385
                .ch_sel(        ch_sel          ),
1386
                .ndnr(          ndnr[18]                ),
1387
                .dma_busy(      dma_busy        ),
1388
                .dma_err(       dma_err         ),
1389
                .dma_done(      dma_done        ),
1390
                .dma_done_all(  dma_done_all    ),
1391
                .de_csr(        de_csr          ),
1392
                .de_txsz(       de_txsz         ),
1393
                .de_adr0(       de_adr0         ),
1394
                .de_adr1(       de_adr1         ),
1395
                .de_csr_we(     de_csr_we       ),
1396
                .de_txsz_we(    de_txsz_we      ),
1397
                .de_adr0_we(    de_adr0_we      ),
1398
                .de_adr1_we(    de_adr1_we      ),
1399
                .de_fetch_descr(de_fetch_descr  ),
1400
                .dma_rest(      dma_rest[18]    ),
1401
                .ptr_set(       ptr_set         )
1402
                );
1403
 
1404
wb_dma_ch_rf #(19, ch19_conf[0], ch19_conf[1], ch19_conf[2], ch19_conf[3]) u19(
1405
                .clk(           clk             ),
1406
                .rst(           rst             ),
1407
                .pointer(       pointer19       ),
1408
                .pointer_s(     pointer19_s     ),
1409
                .ch_csr(        ch19_csr                ),
1410
                .ch_txsz(       ch19_txsz       ),
1411
                .ch_adr0(       ch19_adr0       ),
1412
                .ch_adr1(       ch19_adr1       ),
1413
                .ch_am0(        ch19_am0                ),
1414
                .ch_am1(        ch19_am1                ),
1415
                .sw_pointer(    sw_pointer19    ),
1416
                .ch_stop(       ch_stop[19]     ),
1417
                .ch_dis(        ch_dis[19]      ),
1418
                .int(           ch_int[19]      ),
1419
                .wb_rf_din(     wb_rf_din       ),
1420
                .wb_rf_adr(     wb_rf_adr       ),
1421
                .wb_rf_we(      wb_rf_we        ),
1422
                .wb_rf_re(      wb_rf_re        ),
1423
                .ch_sel(        ch_sel          ),
1424
                .ndnr(          ndnr[19]                ),
1425
                .dma_busy(      dma_busy        ),
1426
                .dma_err(       dma_err         ),
1427
                .dma_done(      dma_done        ),
1428
                .dma_done_all(  dma_done_all    ),
1429
                .de_csr(        de_csr          ),
1430
                .de_txsz(       de_txsz         ),
1431
                .de_adr0(       de_adr0         ),
1432
                .de_adr1(       de_adr1         ),
1433
                .de_csr_we(     de_csr_we       ),
1434
                .de_txsz_we(    de_txsz_we      ),
1435
                .de_adr0_we(    de_adr0_we      ),
1436
                .de_adr1_we(    de_adr1_we      ),
1437
                .de_fetch_descr(de_fetch_descr  ),
1438
                .dma_rest(      dma_rest[19]    ),
1439
                .ptr_set(       ptr_set         )
1440
                );
1441
 
1442
wb_dma_ch_rf #(20, ch20_conf[0], ch20_conf[1], ch20_conf[2], ch20_conf[3]) u20(
1443
                .clk(           clk             ),
1444
                .rst(           rst             ),
1445
                .pointer(       pointer20       ),
1446
                .pointer_s(     pointer20_s     ),
1447
                .ch_csr(        ch20_csr                ),
1448
                .ch_txsz(       ch20_txsz       ),
1449
                .ch_adr0(       ch20_adr0       ),
1450
                .ch_adr1(       ch20_adr1       ),
1451
                .ch_am0(        ch20_am0                ),
1452
                .ch_am1(        ch20_am1                ),
1453
                .sw_pointer(    sw_pointer20    ),
1454
                .ch_stop(       ch_stop[20]     ),
1455
                .ch_dis(        ch_dis[20]      ),
1456
                .int(           ch_int[20]      ),
1457
                .wb_rf_din(     wb_rf_din       ),
1458
                .wb_rf_adr(     wb_rf_adr       ),
1459
                .wb_rf_we(      wb_rf_we        ),
1460
                .wb_rf_re(      wb_rf_re        ),
1461
                .ch_sel(        ch_sel          ),
1462
                .ndnr(          ndnr[20]                ),
1463
                .dma_busy(      dma_busy        ),
1464
                .dma_err(       dma_err         ),
1465
                .dma_done(      dma_done        ),
1466
                .dma_done_all(  dma_done_all    ),
1467
                .de_csr(        de_csr          ),
1468
                .de_txsz(       de_txsz         ),
1469
                .de_adr0(       de_adr0         ),
1470
                .de_adr1(       de_adr1         ),
1471
                .de_csr_we(     de_csr_we       ),
1472
                .de_txsz_we(    de_txsz_we      ),
1473
                .de_adr0_we(    de_adr0_we      ),
1474
                .de_adr1_we(    de_adr1_we      ),
1475
                .de_fetch_descr(de_fetch_descr  ),
1476
                .dma_rest(      dma_rest[20]    ),
1477
                .ptr_set(       ptr_set         )
1478
                );
1479
 
1480
wb_dma_ch_rf #(21, ch21_conf[0], ch21_conf[1], ch21_conf[2], ch21_conf[3]) u21(
1481
                .clk(           clk             ),
1482
                .rst(           rst             ),
1483
                .pointer(       pointer21       ),
1484
                .pointer_s(     pointer21_s     ),
1485
                .ch_csr(        ch21_csr                ),
1486
                .ch_txsz(       ch21_txsz       ),
1487
                .ch_adr0(       ch21_adr0       ),
1488
                .ch_adr1(       ch21_adr1       ),
1489
                .ch_am0(        ch21_am0                ),
1490
                .ch_am1(        ch21_am1                ),
1491
                .sw_pointer(    sw_pointer21    ),
1492
                .ch_stop(       ch_stop[21]     ),
1493
                .ch_dis(        ch_dis[21]      ),
1494
                .int(           ch_int[21]      ),
1495
                .wb_rf_din(     wb_rf_din       ),
1496
                .wb_rf_adr(     wb_rf_adr       ),
1497
                .wb_rf_we(      wb_rf_we        ),
1498
                .wb_rf_re(      wb_rf_re        ),
1499
                .ch_sel(        ch_sel          ),
1500
                .ndnr(          ndnr[21]                ),
1501
                .dma_busy(      dma_busy        ),
1502
                .dma_err(       dma_err         ),
1503
                .dma_done(      dma_done        ),
1504
                .dma_done_all(  dma_done_all    ),
1505
                .de_csr(        de_csr          ),
1506
                .de_txsz(       de_txsz         ),
1507
                .de_adr0(       de_adr0         ),
1508
                .de_adr1(       de_adr1         ),
1509
                .de_csr_we(     de_csr_we       ),
1510
                .de_txsz_we(    de_txsz_we      ),
1511
                .de_adr0_we(    de_adr0_we      ),
1512
                .de_adr1_we(    de_adr1_we      ),
1513
                .de_fetch_descr(de_fetch_descr  ),
1514
                .dma_rest(      dma_rest[21]    ),
1515
                .ptr_set(       ptr_set         )
1516
                );
1517
 
1518
wb_dma_ch_rf #(22, ch22_conf[0], ch22_conf[1], ch22_conf[2], ch22_conf[3]) u22(
1519
                .clk(           clk             ),
1520
                .rst(           rst             ),
1521
                .pointer(       pointer22       ),
1522
                .pointer_s(     pointer22_s     ),
1523
                .ch_csr(        ch22_csr                ),
1524
                .ch_txsz(       ch22_txsz       ),
1525
                .ch_adr0(       ch22_adr0       ),
1526
                .ch_adr1(       ch22_adr1       ),
1527
                .ch_am0(        ch22_am0                ),
1528
                .ch_am1(        ch22_am1                ),
1529
                .sw_pointer(    sw_pointer22    ),
1530
                .ch_stop(       ch_stop[22]     ),
1531
                .ch_dis(        ch_dis[22]      ),
1532
                .int(           ch_int[22]      ),
1533
                .wb_rf_din(     wb_rf_din       ),
1534
                .wb_rf_adr(     wb_rf_adr       ),
1535
                .wb_rf_we(      wb_rf_we        ),
1536
                .wb_rf_re(      wb_rf_re        ),
1537
                .ch_sel(        ch_sel          ),
1538
                .ndnr(          ndnr[22]                ),
1539
                .dma_busy(      dma_busy        ),
1540
                .dma_err(       dma_err         ),
1541
                .dma_done(      dma_done        ),
1542
                .dma_done_all(  dma_done_all    ),
1543
                .de_csr(        de_csr          ),
1544
                .de_txsz(       de_txsz         ),
1545
                .de_adr0(       de_adr0         ),
1546
                .de_adr1(       de_adr1         ),
1547
                .de_csr_we(     de_csr_we       ),
1548
                .de_txsz_we(    de_txsz_we      ),
1549
                .de_adr0_we(    de_adr0_we      ),
1550
                .de_adr1_we(    de_adr1_we      ),
1551
                .de_fetch_descr(de_fetch_descr  ),
1552
                .dma_rest(      dma_rest[22]    ),
1553
                .ptr_set(       ptr_set         )
1554
                );
1555
 
1556
wb_dma_ch_rf #(23, ch23_conf[0], ch23_conf[1], ch23_conf[2], ch23_conf[3]) u23(
1557
                .clk(           clk             ),
1558
                .rst(           rst             ),
1559
                .pointer(       pointer23       ),
1560
                .pointer_s(     pointer23_s     ),
1561
                .ch_csr(        ch23_csr                ),
1562
                .ch_txsz(       ch23_txsz       ),
1563
                .ch_adr0(       ch23_adr0       ),
1564
                .ch_adr1(       ch23_adr1       ),
1565
                .ch_am0(        ch23_am0                ),
1566
                .ch_am1(        ch23_am1                ),
1567
                .sw_pointer(    sw_pointer23    ),
1568
                .ch_stop(       ch_stop[23]     ),
1569
                .ch_dis(        ch_dis[23]      ),
1570
                .int(           ch_int[23]      ),
1571
                .wb_rf_din(     wb_rf_din       ),
1572
                .wb_rf_adr(     wb_rf_adr       ),
1573
                .wb_rf_we(      wb_rf_we        ),
1574
                .wb_rf_re(      wb_rf_re        ),
1575
                .ch_sel(        ch_sel          ),
1576
                .ndnr(          ndnr[23]                ),
1577
                .dma_busy(      dma_busy        ),
1578
                .dma_err(       dma_err         ),
1579
                .dma_done(      dma_done        ),
1580
                .dma_done_all(  dma_done_all    ),
1581
                .de_csr(        de_csr          ),
1582
                .de_txsz(       de_txsz         ),
1583
                .de_adr0(       de_adr0         ),
1584
                .de_adr1(       de_adr1         ),
1585
                .de_csr_we(     de_csr_we       ),
1586
                .de_txsz_we(    de_txsz_we      ),
1587
                .de_adr0_we(    de_adr0_we      ),
1588
                .de_adr1_we(    de_adr1_we      ),
1589
                .de_fetch_descr(de_fetch_descr  ),
1590
                .dma_rest(      dma_rest[23]    ),
1591
                .ptr_set(       ptr_set         )
1592
                );
1593
 
1594
wb_dma_ch_rf #(24, ch24_conf[0], ch24_conf[1], ch24_conf[2], ch24_conf[3]) u24(
1595
                .clk(           clk             ),
1596
                .rst(           rst             ),
1597
                .pointer(       pointer24       ),
1598
                .pointer_s(     pointer24_s     ),
1599
                .ch_csr(        ch24_csr                ),
1600
                .ch_txsz(       ch24_txsz       ),
1601
                .ch_adr0(       ch24_adr0       ),
1602
                .ch_adr1(       ch24_adr1       ),
1603
                .ch_am0(        ch24_am0                ),
1604
                .ch_am1(        ch24_am1                ),
1605
                .sw_pointer(    sw_pointer24    ),
1606
                .ch_stop(       ch_stop[24]     ),
1607
                .ch_dis(        ch_dis[24]      ),
1608
                .int(           ch_int[24]      ),
1609
                .wb_rf_din(     wb_rf_din       ),
1610
                .wb_rf_adr(     wb_rf_adr       ),
1611
                .wb_rf_we(      wb_rf_we        ),
1612
                .wb_rf_re(      wb_rf_re        ),
1613
                .ch_sel(        ch_sel          ),
1614
                .ndnr(          ndnr[24]                ),
1615
                .dma_busy(      dma_busy        ),
1616
                .dma_err(       dma_err         ),
1617
                .dma_done(      dma_done        ),
1618
                .dma_done_all(  dma_done_all    ),
1619
                .de_csr(        de_csr          ),
1620
                .de_txsz(       de_txsz         ),
1621
                .de_adr0(       de_adr0         ),
1622
                .de_adr1(       de_adr1         ),
1623
                .de_csr_we(     de_csr_we       ),
1624
                .de_txsz_we(    de_txsz_we      ),
1625
                .de_adr0_we(    de_adr0_we      ),
1626
                .de_adr1_we(    de_adr1_we      ),
1627
                .de_fetch_descr(de_fetch_descr  ),
1628
                .dma_rest(      dma_rest[24]    ),
1629
                .ptr_set(       ptr_set         )
1630
                );
1631
 
1632
wb_dma_ch_rf #(25, ch25_conf[0], ch25_conf[1], ch25_conf[2], ch25_conf[3]) u25(
1633
                .clk(           clk             ),
1634
                .rst(           rst             ),
1635
                .pointer(       pointer25       ),
1636
                .pointer_s(     pointer25_s     ),
1637
                .ch_csr(        ch25_csr                ),
1638
                .ch_txsz(       ch25_txsz       ),
1639
                .ch_adr0(       ch25_adr0       ),
1640
                .ch_adr1(       ch25_adr1       ),
1641
                .ch_am0(        ch25_am0                ),
1642
                .ch_am1(        ch25_am1                ),
1643
                .sw_pointer(    sw_pointer25    ),
1644
                .ch_stop(       ch_stop[25]     ),
1645
                .ch_dis(        ch_dis[25]      ),
1646
                .int(           ch_int[25]      ),
1647
                .wb_rf_din(     wb_rf_din       ),
1648
                .wb_rf_adr(     wb_rf_adr       ),
1649
                .wb_rf_we(      wb_rf_we        ),
1650
                .wb_rf_re(      wb_rf_re        ),
1651
                .ch_sel(        ch_sel          ),
1652
                .ndnr(          ndnr[25]                ),
1653
                .dma_busy(      dma_busy        ),
1654
                .dma_err(       dma_err         ),
1655
                .dma_done(      dma_done        ),
1656
                .dma_done_all(  dma_done_all    ),
1657
                .de_csr(        de_csr          ),
1658
                .de_txsz(       de_txsz         ),
1659
                .de_adr0(       de_adr0         ),
1660
                .de_adr1(       de_adr1         ),
1661
                .de_csr_we(     de_csr_we       ),
1662
                .de_txsz_we(    de_txsz_we      ),
1663
                .de_adr0_we(    de_adr0_we      ),
1664
                .de_adr1_we(    de_adr1_we      ),
1665
                .de_fetch_descr(de_fetch_descr  ),
1666
                .dma_rest(      dma_rest[25]    ),
1667
                .ptr_set(       ptr_set         )
1668
                );
1669
 
1670
wb_dma_ch_rf #(26, ch26_conf[0], ch26_conf[1], ch26_conf[2], ch26_conf[3]) u26(
1671
                .clk(           clk             ),
1672
                .rst(           rst             ),
1673
                .pointer(       pointer26       ),
1674
                .pointer_s(     pointer26_s     ),
1675
                .ch_csr(        ch26_csr                ),
1676
                .ch_txsz(       ch26_txsz       ),
1677
                .ch_adr0(       ch26_adr0       ),
1678
                .ch_adr1(       ch26_adr1       ),
1679
                .ch_am0(        ch26_am0                ),
1680
                .ch_am1(        ch26_am1                ),
1681
                .sw_pointer(    sw_pointer26    ),
1682
                .ch_stop(       ch_stop[26]     ),
1683
                .ch_dis(        ch_dis[26]      ),
1684
                .int(           ch_int[26]      ),
1685
                .wb_rf_din(     wb_rf_din       ),
1686
                .wb_rf_adr(     wb_rf_adr       ),
1687
                .wb_rf_we(      wb_rf_we        ),
1688
                .wb_rf_re(      wb_rf_re        ),
1689
                .ch_sel(        ch_sel          ),
1690
                .ndnr(          ndnr[26]                ),
1691
                .dma_busy(      dma_busy        ),
1692
                .dma_err(       dma_err         ),
1693
                .dma_done(      dma_done        ),
1694
                .dma_done_all(  dma_done_all    ),
1695
                .de_csr(        de_csr          ),
1696
                .de_txsz(       de_txsz         ),
1697
                .de_adr0(       de_adr0         ),
1698
                .de_adr1(       de_adr1         ),
1699
                .de_csr_we(     de_csr_we       ),
1700
                .de_txsz_we(    de_txsz_we      ),
1701
                .de_adr0_we(    de_adr0_we      ),
1702
                .de_adr1_we(    de_adr1_we      ),
1703
                .de_fetch_descr(de_fetch_descr  ),
1704
                .dma_rest(      dma_rest[26]    ),
1705
                .ptr_set(       ptr_set         )
1706
                );
1707
 
1708
wb_dma_ch_rf #(27, ch27_conf[0], ch27_conf[1], ch27_conf[2], ch27_conf[3]) u27(
1709
                .clk(           clk             ),
1710
                .rst(           rst             ),
1711
                .pointer(       pointer27       ),
1712
                .pointer_s(     pointer27_s     ),
1713
                .ch_csr(        ch27_csr                ),
1714
                .ch_txsz(       ch27_txsz       ),
1715
                .ch_adr0(       ch27_adr0       ),
1716
                .ch_adr1(       ch27_adr1       ),
1717
                .ch_am0(        ch27_am0                ),
1718
                .ch_am1(        ch27_am1                ),
1719
                .sw_pointer(    sw_pointer27    ),
1720
                .ch_stop(       ch_stop[27]     ),
1721
                .ch_dis(        ch_dis[27]      ),
1722
                .int(           ch_int[27]      ),
1723
                .wb_rf_din(     wb_rf_din       ),
1724
                .wb_rf_adr(     wb_rf_adr       ),
1725
                .wb_rf_we(      wb_rf_we        ),
1726
                .wb_rf_re(      wb_rf_re        ),
1727
                .ch_sel(        ch_sel          ),
1728
                .ndnr(          ndnr[27]                ),
1729
                .dma_busy(      dma_busy        ),
1730
                .dma_err(       dma_err         ),
1731
                .dma_done(      dma_done        ),
1732
                .dma_done_all(  dma_done_all    ),
1733
                .de_csr(        de_csr          ),
1734
                .de_txsz(       de_txsz         ),
1735
                .de_adr0(       de_adr0         ),
1736
                .de_adr1(       de_adr1         ),
1737
                .de_csr_we(     de_csr_we       ),
1738
                .de_txsz_we(    de_txsz_we      ),
1739
                .de_adr0_we(    de_adr0_we      ),
1740
                .de_adr1_we(    de_adr1_we      ),
1741
                .de_fetch_descr(de_fetch_descr  ),
1742
                .dma_rest(      dma_rest[27]    ),
1743
                .ptr_set(       ptr_set         )
1744
                );
1745
 
1746
wb_dma_ch_rf #(28, ch28_conf[0], ch28_conf[1], ch28_conf[2], ch28_conf[3]) u28(
1747
                .clk(           clk             ),
1748
                .rst(           rst             ),
1749
                .pointer(       pointer28       ),
1750
                .pointer_s(     pointer28_s     ),
1751
                .ch_csr(        ch28_csr                ),
1752
                .ch_txsz(       ch28_txsz       ),
1753
                .ch_adr0(       ch28_adr0       ),
1754
                .ch_adr1(       ch28_adr1       ),
1755
                .ch_am0(        ch28_am0                ),
1756
                .ch_am1(        ch28_am1                ),
1757
                .sw_pointer(    sw_pointer28    ),
1758
                .ch_stop(       ch_stop[28]     ),
1759
                .ch_dis(        ch_dis[28]      ),
1760
                .int(           ch_int[28]      ),
1761
                .wb_rf_din(     wb_rf_din       ),
1762
                .wb_rf_adr(     wb_rf_adr       ),
1763
                .wb_rf_we(      wb_rf_we        ),
1764
                .wb_rf_re(      wb_rf_re        ),
1765
                .ch_sel(        ch_sel          ),
1766
                .ndnr(          ndnr[28]                ),
1767
                .dma_busy(      dma_busy        ),
1768
                .dma_err(       dma_err         ),
1769
                .dma_done(      dma_done        ),
1770
                .dma_done_all(  dma_done_all    ),
1771
                .de_csr(        de_csr          ),
1772
                .de_txsz(       de_txsz         ),
1773
                .de_adr0(       de_adr0         ),
1774
                .de_adr1(       de_adr1         ),
1775
                .de_csr_we(     de_csr_we       ),
1776
                .de_txsz_we(    de_txsz_we      ),
1777
                .de_adr0_we(    de_adr0_we      ),
1778
                .de_adr1_we(    de_adr1_we      ),
1779
                .de_fetch_descr(de_fetch_descr  ),
1780
                .dma_rest(      dma_rest[28]    ),
1781
                .ptr_set(       ptr_set         )
1782
                );
1783
 
1784
wb_dma_ch_rf #(29, ch29_conf[0], ch29_conf[1], ch29_conf[2], ch29_conf[3]) u29(
1785
                .clk(           clk             ),
1786
                .rst(           rst             ),
1787
                .pointer(       pointer29       ),
1788
                .pointer_s(     pointer29_s     ),
1789
                .ch_csr(        ch29_csr                ),
1790
                .ch_txsz(       ch29_txsz       ),
1791
                .ch_adr0(       ch29_adr0       ),
1792
                .ch_adr1(       ch29_adr1       ),
1793
                .ch_am0(        ch29_am0                ),
1794
                .ch_am1(        ch29_am1                ),
1795
                .sw_pointer(    sw_pointer29    ),
1796
                .ch_stop(       ch_stop[29]     ),
1797
                .ch_dis(        ch_dis[29]      ),
1798
                .int(           ch_int[29]      ),
1799
                .wb_rf_din(     wb_rf_din       ),
1800
                .wb_rf_adr(     wb_rf_adr       ),
1801
                .wb_rf_we(      wb_rf_we        ),
1802
                .wb_rf_re(      wb_rf_re        ),
1803
                .ch_sel(        ch_sel          ),
1804
                .ndnr(          ndnr[29]                ),
1805
                .dma_busy(      dma_busy        ),
1806
                .dma_err(       dma_err         ),
1807
                .dma_done(      dma_done        ),
1808
                .dma_done_all(  dma_done_all    ),
1809
                .de_csr(        de_csr          ),
1810
                .de_txsz(       de_txsz         ),
1811
                .de_adr0(       de_adr0         ),
1812
                .de_adr1(       de_adr1         ),
1813
                .de_csr_we(     de_csr_we       ),
1814
                .de_txsz_we(    de_txsz_we      ),
1815
                .de_adr0_we(    de_adr0_we      ),
1816
                .de_adr1_we(    de_adr1_we      ),
1817
                .de_fetch_descr(de_fetch_descr  ),
1818
                .dma_rest(      dma_rest[29]    ),
1819
                .ptr_set(       ptr_set         )
1820
                );
1821
 
1822
wb_dma_ch_rf #(30, ch30_conf[0], ch30_conf[1], ch30_conf[2], ch30_conf[3]) u30(
1823
                .clk(           clk             ),
1824
                .rst(           rst             ),
1825
                .pointer(       pointer30       ),
1826
                .pointer_s(     pointer30_s     ),
1827
                .ch_csr(        ch30_csr                ),
1828
                .ch_txsz(       ch30_txsz       ),
1829
                .ch_adr0(       ch30_adr0       ),
1830
                .ch_adr1(       ch30_adr1       ),
1831
                .ch_am0(        ch30_am0                ),
1832
                .ch_am1(        ch30_am1                ),
1833
                .sw_pointer(    sw_pointer30    ),
1834
                .ch_stop(       ch_stop[30]     ),
1835
                .ch_dis(        ch_dis[30]      ),
1836
                .int(           ch_int[30]      ),
1837
                .wb_rf_din(     wb_rf_din       ),
1838
                .wb_rf_adr(     wb_rf_adr       ),
1839
                .wb_rf_we(      wb_rf_we        ),
1840
                .wb_rf_re(      wb_rf_re        ),
1841
                .ch_sel(        ch_sel          ),
1842
                .ndnr(          ndnr[30]                ),
1843
                .dma_busy(      dma_busy        ),
1844
                .dma_err(       dma_err         ),
1845
                .dma_done(      dma_done        ),
1846
                .dma_done_all(  dma_done_all    ),
1847
                .de_csr(        de_csr          ),
1848
                .de_txsz(       de_txsz         ),
1849
                .de_adr0(       de_adr0         ),
1850
                .de_adr1(       de_adr1         ),
1851
                .de_csr_we(     de_csr_we       ),
1852
                .de_txsz_we(    de_txsz_we      ),
1853
                .de_adr0_we(    de_adr0_we      ),
1854
                .de_adr1_we(    de_adr1_we      ),
1855
                .de_fetch_descr(de_fetch_descr  ),
1856
                .dma_rest(      dma_rest[30]    ),
1857
                .ptr_set(       ptr_set         )
1858
                );
1859
 
1860
endmodule

powered by: WebSVN 2.1.0

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