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

Subversion Repositories wb_dma

[/] [wb_dma/] [trunk/] [rtl/] [verilog/] [wb_dma_top.v] - Blame information for rev 8

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

Line No. Rev Author Line
1 5 rudi
/////////////////////////////////////////////////////////////////////
2
////                                                             ////
3
////  WISHBONE DMA Top Level                                     ////
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) 2001 Rudolf Usselmann                         ////
15
////                    rudi@asics.ws                            ////
16
////                                                             ////
17
//// This source file may be used and distributed without        ////
18
//// restriction provided that this copyright statement is not   ////
19
//// removed from the file and that any derivative work contains ////
20
//// the original copyright notice and the associated disclaimer.////
21
////                                                             ////
22
////     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
23
//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
24
//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
25
//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
26
//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
27
//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
28
//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
29
//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
30
//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
31
//// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
32
//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
33
//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
34
//// POSSIBILITY OF SUCH DAMAGE.                                 ////
35
////                                                             ////
36
/////////////////////////////////////////////////////////////////////
37
 
38
//  CVS Log
39
//
40 8 rudi
//  $Id: wb_dma_top.v,v 1.2 2001-08-15 05:40:30 rudi Exp $
41 5 rudi
//
42 8 rudi
//  $Date: 2001-08-15 05:40:30 $
43
//  $Revision: 1.2 $
44 5 rudi
//  $Author: rudi $
45
//  $Locker:  $
46
//  $State: Exp $
47
//
48
// Change History:
49
//               $Log: not supported by cvs2svn $
50 8 rudi
//               Revision 1.1  2001/07/29 08:57:02  rudi
51
//
52
//
53
//               1) Changed Directory Structure
54
//               2) Added restart signal (REST)
55
//
56 5 rudi
//               Revision 1.3  2001/06/13 02:26:50  rudi
57
//
58
//
59
//               Small changes after running lint.
60
//
61
//               Revision 1.2  2001/06/05 10:22:37  rudi
62
//
63
//
64
//               - Added Support of up to 31 channels
65
//               - Added support for 2,4 and 8 priority levels
66
//               - Now can have up to 31 channels
67
//               - Added many configuration items
68
//               - Changed reset to async
69
//
70
//               Revision 1.1.1.1  2001/03/19 13:10:23  rudi
71
//               Initial Release
72
//
73
//
74
//
75
 
76
`include "wb_dma_defines.v"
77
 
78 8 rudi
module wb_dma_top(clk_i, rst_i,
79 5 rudi
 
80
        wb0s_data_i, wb0s_data_o, wb0_addr_i, wb0_sel_i, wb0_we_i, wb0_cyc_i,
81
        wb0_stb_i, wb0_ack_o, wb0_err_o, wb0_rty_o,
82
        wb0m_data_i, wb0m_data_o, wb0_addr_o, wb0_sel_o, wb0_we_o, wb0_cyc_o,
83
        wb0_stb_o, wb0_ack_i, wb0_err_i, wb0_rty_i,
84
 
85
        wb1s_data_i, wb1s_data_o, wb1_addr_i, wb1_sel_i, wb1_we_i, wb1_cyc_i,
86
        wb1_stb_i, wb1_ack_o, wb1_err_o, wb1_rty_o,
87
        wb1m_data_i, wb1m_data_o, wb1_addr_o, wb1_sel_o, wb1_we_o, wb1_cyc_o,
88
        wb1_stb_o, wb1_ack_i, wb1_err_i, wb1_rty_i,
89
 
90
        dma_req_i, dma_ack_o, dma_nd_i, dma_rest_i,
91
 
92
        inta_o, intb_o
93
        );
94
 
95 8 rudi
input           clk_i, rst_i;
96 5 rudi
 
97
// --------------------------------------
98
// WISHBONE INTERFACE 0
99
 
100
// Slave Interface
101
input   [31:0]   wb0s_data_i;
102
output  [31:0]   wb0s_data_o;
103
input   [31:0]   wb0_addr_i;
104
input   [3:0]    wb0_sel_i;
105
input           wb0_we_i;
106
input           wb0_cyc_i;
107
input           wb0_stb_i;
108
output          wb0_ack_o;
109
output          wb0_err_o;
110
output          wb0_rty_o;
111
 
112
// Master Interface
113
input   [31:0]   wb0m_data_i;
114
output  [31:0]   wb0m_data_o;
115
output  [31:0]   wb0_addr_o;
116
output  [3:0]    wb0_sel_o;
117
output          wb0_we_o;
118
output          wb0_cyc_o;
119
output          wb0_stb_o;
120
input           wb0_ack_i;
121
input           wb0_err_i;
122
input           wb0_rty_i;
123
 
124
// --------------------------------------
125
// WISHBONE INTERFACE 1
126
 
127
// Slave Interface
128
input   [31:0]   wb1s_data_i;
129
output  [31:0]   wb1s_data_o;
130
input   [31:0]   wb1_addr_i;
131
input   [3:0]    wb1_sel_i;
132
input           wb1_we_i;
133
input           wb1_cyc_i;
134
input           wb1_stb_i;
135
output          wb1_ack_o;
136
output          wb1_err_o;
137
output          wb1_rty_o;
138
 
139
// Master Interface
140
input   [31:0]   wb1m_data_i;
141
output  [31:0]   wb1m_data_o;
142
output  [31:0]   wb1_addr_o;
143
output  [3:0]    wb1_sel_o;
144
output          wb1_we_o;
145
output          wb1_cyc_o;
146
output          wb1_stb_o;
147
input           wb1_ack_i;
148
input           wb1_err_i;
149
input           wb1_rty_i;
150
 
151
// --------------------------------------
152
// Misc Signals
153 8 rudi
input   [`WDMA_CH_COUNT-1:0]     dma_req_i;
154
input   [`WDMA_CH_COUNT-1:0]     dma_nd_i;
155
output  [`WDMA_CH_COUNT-1:0]     dma_ack_o;
156
input   [`WDMA_CH_COUNT-1:0]     dma_rest_i;
157 5 rudi
output                  inta_o;
158
output                  intb_o;
159
 
160
////////////////////////////////////////////////////////////////////
161
//
162
// Local Wires
163
//
164
 
165
wire    [31:0]   pointer0, pointer0_s, ch0_csr, ch0_txsz, ch0_adr0, ch0_adr1, ch0_am0, ch0_am1;
166
wire    [31:0]   pointer1, pointer1_s, ch1_csr, ch1_txsz, ch1_adr0, ch1_adr1, ch1_am0, ch1_am1;
167
wire    [31:0]   pointer2, pointer2_s, ch2_csr, ch2_txsz, ch2_adr0, ch2_adr1, ch2_am0, ch2_am1;
168
wire    [31:0]   pointer3, pointer3_s, ch3_csr, ch3_txsz, ch3_adr0, ch3_adr1, ch3_am0, ch3_am1;
169
wire    [31:0]   pointer4, pointer4_s, ch4_csr, ch4_txsz, ch4_adr0, ch4_adr1, ch4_am0, ch4_am1;
170
wire    [31:0]   pointer5, pointer5_s, ch5_csr, ch5_txsz, ch5_adr0, ch5_adr1, ch5_am0, ch5_am1;
171
wire    [31:0]   pointer6, pointer6_s, ch6_csr, ch6_txsz, ch6_adr0, ch6_adr1, ch6_am0, ch6_am1;
172
wire    [31:0]   pointer7, pointer7_s, ch7_csr, ch7_txsz, ch7_adr0, ch7_adr1, ch7_am0, ch7_am1;
173
wire    [31:0]   pointer8, pointer8_s, ch8_csr, ch8_txsz, ch8_adr0, ch8_adr1, ch8_am0, ch8_am1;
174
wire    [31:0]   pointer9, pointer9_s, ch9_csr, ch9_txsz, ch9_adr0, ch9_adr1, ch9_am0, ch9_am1;
175
wire    [31:0]   pointer10, pointer10_s, ch10_csr, ch10_txsz, ch10_adr0, ch10_adr1, ch10_am0, ch10_am1;
176
wire    [31:0]   pointer11, pointer11_s, ch11_csr, ch11_txsz, ch11_adr0, ch11_adr1, ch11_am0, ch11_am1;
177
wire    [31:0]   pointer12, pointer12_s, ch12_csr, ch12_txsz, ch12_adr0, ch12_adr1, ch12_am0, ch12_am1;
178
wire    [31:0]   pointer13, pointer13_s, ch13_csr, ch13_txsz, ch13_adr0, ch13_adr1, ch13_am0, ch13_am1;
179
wire    [31:0]   pointer14, pointer14_s, ch14_csr, ch14_txsz, ch14_adr0, ch14_adr1, ch14_am0, ch14_am1;
180
wire    [31:0]   pointer15, pointer15_s, ch15_csr, ch15_txsz, ch15_adr0, ch15_adr1, ch15_am0, ch15_am1;
181
wire    [31:0]   pointer16, pointer16_s, ch16_csr, ch16_txsz, ch16_adr0, ch16_adr1, ch16_am0, ch16_am1;
182
wire    [31:0]   pointer17, pointer17_s, ch17_csr, ch17_txsz, ch17_adr0, ch17_adr1, ch17_am0, ch17_am1;
183
wire    [31:0]   pointer18, pointer18_s, ch18_csr, ch18_txsz, ch18_adr0, ch18_adr1, ch18_am0, ch18_am1;
184
wire    [31:0]   pointer19, pointer19_s, ch19_csr, ch19_txsz, ch19_adr0, ch19_adr1, ch19_am0, ch19_am1;
185
wire    [31:0]   pointer20, pointer20_s, ch20_csr, ch20_txsz, ch20_adr0, ch20_adr1, ch20_am0, ch20_am1;
186
wire    [31:0]   pointer21, pointer21_s, ch21_csr, ch21_txsz, ch21_adr0, ch21_adr1, ch21_am0, ch21_am1;
187
wire    [31:0]   pointer22, pointer22_s, ch22_csr, ch22_txsz, ch22_adr0, ch22_adr1, ch22_am0, ch22_am1;
188
wire    [31:0]   pointer23, pointer23_s, ch23_csr, ch23_txsz, ch23_adr0, ch23_adr1, ch23_am0, ch23_am1;
189
wire    [31:0]   pointer24, pointer24_s, ch24_csr, ch24_txsz, ch24_adr0, ch24_adr1, ch24_am0, ch24_am1;
190
wire    [31:0]   pointer25, pointer25_s, ch25_csr, ch25_txsz, ch25_adr0, ch25_adr1, ch25_am0, ch25_am1;
191
wire    [31:0]   pointer26, pointer26_s, ch26_csr, ch26_txsz, ch26_adr0, ch26_adr1, ch26_am0, ch26_am1;
192
wire    [31:0]   pointer27, pointer27_s, ch27_csr, ch27_txsz, ch27_adr0, ch27_adr1, ch27_am0, ch27_am1;
193
wire    [31:0]   pointer28, pointer28_s, ch28_csr, ch28_txsz, ch28_adr0, ch28_adr1, ch28_am0, ch28_am1;
194
wire    [31:0]   pointer29, pointer29_s, ch29_csr, ch29_txsz, ch29_adr0, ch29_adr1, ch29_am0, ch29_am1;
195
wire    [31:0]   pointer30, pointer30_s, ch30_csr, ch30_txsz, ch30_adr0, ch30_adr1, ch30_am0, ch30_am1;
196
 
197
wire    [4:0]    ch_sel;         // Write Back Channel Select
198
wire    [30:0]   ndnr;           // Next Descriptor No Request
199
wire            de_start;       // Start DMA Engine
200
wire            ndr;            // Next Descriptor With Request
201
wire    [31:0]   csr;            // Selected Channel CSR
202
wire    [31:0]   pointer;
203
wire    [31:0]   pointer_s;
204
wire    [31:0]   txsz;           // Selected Channel Transfer Size
205
wire    [31:0]   adr0, adr1;     // Selected Channel Addresses
206
wire    [31:0]   am0, am1;       // Selected Channel Address Masks
207
wire            next_ch;        // Indicates the DMA Engine is done
208
 
209
wire            inta_o, intb_o;
210
wire            dma_abort;
211
wire            dma_busy, dma_err, dma_done, dma_done_all;
212
wire    [31:0]   de_csr;
213
wire    [11:0]   de_txsz;
214
wire    [31:0]   de_adr0;
215
wire    [31:0]   de_adr1;
216
wire            de_csr_we, de_txsz_we, de_adr0_we, de_adr1_we;
217
wire            de_fetch_descr;
218
wire            ptr_set;
219
wire            de_ack;
220
wire            pause_req;
221
wire            paused;
222
 
223
wire            mast0_go;       // Perform a Master Cycle (as long as this
224
wire            mast0_we;       // Read/Write
225
wire    [31:0]   mast0_adr;      // Address for the transfer
226
wire    [31:0]   mast0_din;      // Internal Input Data
227
wire    [31:0]   mast0_dout;     // Internal Output Data
228
wire            mast0_err;      // Indicates an error has occurred
229
wire            mast0_drdy;     // Indicated that either data is available
230
wire            mast0_wait;     // Tells the master to insert wait cycles
231
 
232
wire    [31:0]   slv0_adr;       // Slave Address
233
wire    [31:0]   slv0_din;       // Slave Input Data
234
wire    [31:0]   slv0_dout;      // Slave Output Data
235
wire            slv0_re;        // Slave Read Enable
236
wire            slv0_we;        // Slave Write Enable
237
 
238
wire            pt0_sel_i;      // Pass Through Mode Selected
239
wire    [70:0]   mast0_pt_in;    // Grouped WISHBONE inputs
240
wire    [34:0]   mast0_pt_out;   // Grouped WISHBONE outputs
241
 
242
wire            pt0_sel_o;      // Pass Through Mode Active
243
wire    [70:0]   slv0_pt_out;    // Grouped WISHBONE out signals
244
wire    [34:0]   slv0_pt_in;     // Grouped WISHBONE in signals
245
 
246
wire            mast1_go;       // Perform a Master Cycle (as long as this
247
wire            mast1_we;       // Read/Write
248
wire    [31:0]   mast1_adr;      // Address for the transfer
249
wire    [31:0]   mast1_din;      // Internal Input Data
250
wire    [31:0]   mast1_dout;     // Internal Output Data
251
wire            mast1_err;      // Indicates an error has occurred
252
wire            mast1_drdy;     // Indicated that either data is available
253
wire            mast1_wait;     // Tells the master to insert wait cycles
254
 
255
wire    [31:0]   slv1_adr;       // Slave Address
256
wire    [31:0]   slv1_dout;      // Slave Output Data
257
wire            slv1_re;        // Slave Read Enable
258
wire            slv1_we;        // Slave Write Enable
259
 
260
wire            pt1_sel_i;      // Pass Through Mode Selected
261
wire    [70:0]   mast1_pt_in;    // Grouped WISHBONE inputs
262
wire    [34:0]   mast1_pt_out;   // Grouped WISHBONE outputs
263
 
264
wire            pt1_sel_o;      // Pass Through Mode Active
265
wire    [70:0]   slv1_pt_out;    // Grouped WISHBONE out signals
266
wire    [34:0]   slv1_pt_in;     // Grouped WISHBONE in signals
267
 
268
wire    [30:0]   dma_req;
269
wire    [30:0]   dma_nd;
270
wire    [30:0]   dma_ack;
271
wire    [30:0]   dma_rest;
272
 
273
////////////////////////////////////////////////////////////////////
274
//
275
// Misc Logic
276
//
277
 
278 8 rudi
assign dma_req[`WDMA_CH_COUNT-1:0] = dma_req_i;
279
assign dma_nd[`WDMA_CH_COUNT-1:0] = dma_nd_i;
280
assign dma_rest[`WDMA_CH_COUNT-1:0] = dma_rest_i;
281
assign dma_ack_o = dma_ack[`WDMA_CH_COUNT-1:0];
282 5 rudi
 
283
// --------------------------------------------------
284
// This should go in to a separate Pass Through Block
285
assign pt1_sel_i = pt0_sel_o;
286
assign pt0_sel_i = pt1_sel_o;
287
assign mast1_pt_in = slv0_pt_out;
288
assign slv0_pt_in  = mast1_pt_out;
289
assign mast0_pt_in = slv1_pt_out;
290
assign slv1_pt_in  = mast0_pt_out;
291
// --------------------------------------------------
292
 
293
////////////////////////////////////////////////////////////////////
294
//
295
// Modules
296
//
297
 
298
 
299
// DMA Register File
300
 
301
wb_dma_rf       u0(
302 8 rudi
                .clk(           clk_i           ),
303
                .rst(           rst_i           ),
304 5 rudi
                .wb_rf_adr(     slv0_adr[9:2]   ),
305
                .wb_rf_din(     slv0_dout       ),
306
                .wb_rf_dout(    slv0_din        ),
307
                .wb_rf_re(      slv0_re         ),
308
                .wb_rf_we(      slv0_we         ),
309
                .inta_o(        inta_o          ),
310
                .intb_o(        intb_o          ),
311
                .pointer0(      pointer0        ),
312
                .pointer0_s(    pointer0_s      ),
313
                .ch0_csr(       ch0_csr         ),
314
                .ch0_txsz(      ch0_txsz        ),
315
                .ch0_adr0(      ch0_adr0        ),
316
                .ch0_adr1(      ch0_adr1        ),
317
                .ch0_am0(       ch0_am0         ),
318
                .ch0_am1(       ch0_am1         ),
319
                .pointer1(      pointer1        ),
320
                .pointer1_s(    pointer1_s      ),
321
                .ch1_csr(       ch1_csr         ),
322
                .ch1_txsz(      ch1_txsz        ),
323
                .ch1_adr0(      ch1_adr0        ),
324
                .ch1_adr1(      ch1_adr1        ),
325
                .ch1_am0(       ch1_am0         ),
326
                .ch1_am1(       ch1_am1         ),
327
                .pointer2(      pointer2        ),
328
                .pointer2_s(    pointer2_s      ),
329
                .ch2_csr(       ch2_csr         ),
330
                .ch2_txsz(      ch2_txsz        ),
331
                .ch2_adr0(      ch2_adr0        ),
332
                .ch2_adr1(      ch2_adr1        ),
333
                .ch2_am0(       ch2_am0         ),
334
                .ch2_am1(       ch2_am1         ),
335
                .pointer3(      pointer3        ),
336
                .pointer3_s(    pointer3_s      ),
337
                .ch3_csr(       ch3_csr         ),
338
                .ch3_txsz(      ch3_txsz        ),
339
                .ch3_adr0(      ch3_adr0        ),
340
                .ch3_adr1(      ch3_adr1        ),
341
                .ch3_am0(       ch3_am0         ),
342
                .ch3_am1(       ch3_am1         ),
343
                .pointer4(      pointer4        ),
344
                .pointer4_s(    pointer4_s      ),
345
                .ch4_csr(       ch4_csr         ),
346
                .ch4_txsz(      ch4_txsz        ),
347
                .ch4_adr0(      ch4_adr0        ),
348
                .ch4_adr1(      ch4_adr1        ),
349
                .ch4_am0(       ch4_am0         ),
350
                .ch4_am1(       ch4_am1         ),
351
                .pointer5(      pointer5        ),
352
                .pointer5_s(    pointer5_s      ),
353
                .ch5_csr(       ch5_csr         ),
354
                .ch5_txsz(      ch5_txsz        ),
355
                .ch5_adr0(      ch5_adr0        ),
356
                .ch5_adr1(      ch5_adr1        ),
357
                .ch5_am0(       ch5_am0         ),
358
                .ch5_am1(       ch5_am1         ),
359
                .pointer6(      pointer6        ),
360
                .pointer6_s(    pointer6_s      ),
361
                .ch6_csr(       ch6_csr         ),
362
                .ch6_txsz(      ch6_txsz        ),
363
                .ch6_adr0(      ch6_adr0        ),
364
                .ch6_adr1(      ch6_adr1        ),
365
                .ch6_am0(       ch6_am0         ),
366
                .ch6_am1(       ch6_am1         ),
367
                .pointer7(      pointer7        ),
368
                .pointer7_s(    pointer7_s      ),
369
                .ch7_csr(       ch7_csr         ),
370
                .ch7_txsz(      ch7_txsz        ),
371
                .ch7_adr0(      ch7_adr0        ),
372
                .ch7_adr1(      ch7_adr1        ),
373
                .ch7_am0(       ch7_am0         ),
374
                .ch7_am1(       ch7_am1         ),
375
                .pointer8(      pointer8        ),
376
                .pointer8_s(    pointer8_s      ),
377
                .ch8_csr(       ch8_csr         ),
378
                .ch8_txsz(      ch8_txsz        ),
379
                .ch8_adr0(      ch8_adr0        ),
380
                .ch8_adr1(      ch8_adr1        ),
381
                .ch8_am0(       ch8_am0         ),
382
                .ch8_am1(       ch8_am1         ),
383
                .pointer9(      pointer9        ),
384
                .pointer9_s(    pointer9_s      ),
385
                .ch9_csr(       ch9_csr         ),
386
                .ch9_txsz(      ch9_txsz        ),
387
                .ch9_adr0(      ch9_adr0        ),
388
                .ch9_adr1(      ch9_adr1        ),
389
                .ch9_am0(       ch9_am0         ),
390
                .ch9_am1(       ch9_am1         ),
391
                .pointer10(     pointer10       ),
392
                .pointer10_s(   pointer10_s     ),
393
                .ch10_csr(      ch10_csr        ),
394
                .ch10_txsz(     ch10_txsz       ),
395
                .ch10_adr0(     ch10_adr0       ),
396
                .ch10_adr1(     ch10_adr1       ),
397
                .ch10_am0(      ch10_am0        ),
398
                .ch10_am1(      ch10_am1        ),
399
                .pointer11(     pointer11       ),
400
                .pointer11_s(   pointer11_s     ),
401
                .ch11_csr(      ch11_csr        ),
402
                .ch11_txsz(     ch11_txsz       ),
403
                .ch11_adr0(     ch11_adr0       ),
404
                .ch11_adr1(     ch11_adr1       ),
405
                .ch11_am0(      ch11_am0        ),
406
                .ch11_am1(      ch11_am1        ),
407
                .pointer12(     pointer12       ),
408
                .pointer12_s(   pointer12_s     ),
409
                .ch12_csr(      ch12_csr        ),
410
                .ch12_txsz(     ch12_txsz       ),
411
                .ch12_adr0(     ch12_adr0       ),
412
                .ch12_adr1(     ch12_adr1       ),
413
                .ch12_am0(      ch12_am0        ),
414
                .ch12_am1(      ch12_am1        ),
415
                .pointer13(     pointer13       ),
416
                .pointer13_s(   pointer13_s     ),
417
                .ch13_csr(      ch13_csr        ),
418
                .ch13_txsz(     ch13_txsz       ),
419
                .ch13_adr0(     ch13_adr0       ),
420
                .ch13_adr1(     ch13_adr1       ),
421
                .ch13_am0(      ch13_am0        ),
422
                .ch13_am1(      ch13_am1        ),
423
                .pointer14(     pointer14       ),
424
                .pointer14_s(   pointer14_s     ),
425
                .ch14_csr(      ch14_csr        ),
426
                .ch14_txsz(     ch14_txsz       ),
427
                .ch14_adr0(     ch14_adr0       ),
428
                .ch14_adr1(     ch14_adr1       ),
429
                .ch14_am0(      ch14_am0        ),
430
                .ch14_am1(      ch14_am1        ),
431
                .pointer15(     pointer15       ),
432
                .pointer15_s(   pointer15_s     ),
433
                .ch15_csr(      ch15_csr        ),
434
                .ch15_txsz(     ch15_txsz       ),
435
                .ch15_adr0(     ch15_adr0       ),
436
                .ch15_adr1(     ch15_adr1       ),
437
                .ch15_am0(      ch15_am0        ),
438
                .ch15_am1(      ch15_am1        ),
439
                .pointer16(     pointer16       ),
440
                .pointer16_s(   pointer16_s     ),
441
                .ch16_csr(      ch16_csr        ),
442
                .ch16_txsz(     ch16_txsz       ),
443
                .ch16_adr0(     ch16_adr0       ),
444
                .ch16_adr1(     ch16_adr1       ),
445
                .ch16_am0(      ch16_am0        ),
446
                .ch16_am1(      ch16_am1        ),
447
                .pointer17(     pointer17       ),
448
                .pointer17_s(   pointer17_s     ),
449
                .ch17_csr(      ch17_csr        ),
450
                .ch17_txsz(     ch17_txsz       ),
451
                .ch17_adr0(     ch17_adr0       ),
452
                .ch17_adr1(     ch17_adr1       ),
453
                .ch17_am0(      ch17_am0        ),
454
                .ch17_am1(      ch17_am1        ),
455
                .pointer18(     pointer18       ),
456
                .pointer18_s(   pointer18_s     ),
457
                .ch18_csr(      ch18_csr        ),
458
                .ch18_txsz(     ch18_txsz       ),
459
                .ch18_adr0(     ch18_adr0       ),
460
                .ch18_adr1(     ch18_adr1       ),
461
                .ch18_am0(      ch18_am0        ),
462
                .ch18_am1(      ch18_am1        ),
463
                .pointer19(     pointer19       ),
464
                .pointer19_s(   pointer19_s     ),
465
                .ch19_csr(      ch19_csr        ),
466
                .ch19_txsz(     ch19_txsz       ),
467
                .ch19_adr0(     ch19_adr0       ),
468
                .ch19_adr1(     ch19_adr1       ),
469
                .ch19_am0(      ch19_am0        ),
470
                .ch19_am1(      ch19_am1        ),
471
                .pointer20(     pointer20       ),
472
                .pointer20_s(   pointer20_s     ),
473
                .ch20_csr(      ch20_csr        ),
474
                .ch20_txsz(     ch20_txsz       ),
475
                .ch20_adr0(     ch20_adr0       ),
476
                .ch20_adr1(     ch20_adr1       ),
477
                .ch20_am0(      ch20_am0        ),
478
                .ch20_am1(      ch20_am1        ),
479
                .pointer21(     pointer21       ),
480
                .pointer21_s(   pointer21_s     ),
481
                .ch21_csr(      ch21_csr        ),
482
                .ch21_txsz(     ch21_txsz       ),
483
                .ch21_adr0(     ch21_adr0       ),
484
                .ch21_adr1(     ch21_adr1       ),
485
                .ch21_am0(      ch21_am0        ),
486
                .ch21_am1(      ch21_am1        ),
487
                .pointer22(     pointer22       ),
488
                .pointer22_s(   pointer22_s     ),
489
                .ch22_csr(      ch22_csr        ),
490
                .ch22_txsz(     ch22_txsz       ),
491
                .ch22_adr0(     ch22_adr0       ),
492
                .ch22_adr1(     ch22_adr1       ),
493
                .ch22_am0(      ch22_am0        ),
494
                .ch22_am1(      ch22_am1        ),
495
                .pointer23(     pointer23       ),
496
                .pointer23_s(   pointer23_s     ),
497
                .ch23_csr(      ch23_csr        ),
498
                .ch23_txsz(     ch23_txsz       ),
499
                .ch23_adr0(     ch23_adr0       ),
500
                .ch23_adr1(     ch23_adr1       ),
501
                .ch23_am0(      ch23_am0        ),
502
                .ch23_am1(      ch23_am1        ),
503
                .pointer24(     pointer24       ),
504
                .pointer24_s(   pointer24_s     ),
505
                .ch24_csr(      ch24_csr        ),
506
                .ch24_txsz(     ch24_txsz       ),
507
                .ch24_adr0(     ch24_adr0       ),
508
                .ch24_adr1(     ch24_adr1       ),
509
                .ch24_am0(      ch24_am0        ),
510
                .ch24_am1(      ch24_am1        ),
511
                .pointer25(     pointer25       ),
512
                .pointer25_s(   pointer25_s     ),
513
                .ch25_csr(      ch25_csr        ),
514
                .ch25_txsz(     ch25_txsz       ),
515
                .ch25_adr0(     ch25_adr0       ),
516
                .ch25_adr1(     ch25_adr1       ),
517
                .ch25_am0(      ch25_am0        ),
518
                .ch25_am1(      ch25_am1        ),
519
                .pointer26(     pointer26       ),
520
                .pointer26_s(   pointer26_s     ),
521
                .ch26_csr(      ch26_csr        ),
522
                .ch26_txsz(     ch26_txsz       ),
523
                .ch26_adr0(     ch26_adr0       ),
524
                .ch26_adr1(     ch26_adr1       ),
525
                .ch26_am0(      ch26_am0        ),
526
                .ch26_am1(      ch26_am1        ),
527
                .pointer27(     pointer27       ),
528
                .pointer27_s(   pointer27_s     ),
529
                .ch27_csr(      ch27_csr        ),
530
                .ch27_txsz(     ch27_txsz       ),
531
                .ch27_adr0(     ch27_adr0       ),
532
                .ch27_adr1(     ch27_adr1       ),
533
                .ch27_am0(      ch27_am0        ),
534
                .ch27_am1(      ch27_am1        ),
535
                .pointer28(     pointer28       ),
536
                .pointer28_s(   pointer28_s     ),
537
                .ch28_csr(      ch28_csr        ),
538
                .ch28_txsz(     ch28_txsz       ),
539
                .ch28_adr0(     ch28_adr0       ),
540
                .ch28_adr1(     ch28_adr1       ),
541
                .ch28_am0(      ch28_am0        ),
542
                .ch28_am1(      ch28_am1        ),
543
                .pointer29(     pointer29       ),
544
                .pointer29_s(   pointer29_s     ),
545
                .ch29_csr(      ch29_csr        ),
546
                .ch29_txsz(     ch29_txsz       ),
547
                .ch29_adr0(     ch29_adr0       ),
548
                .ch29_adr1(     ch29_adr1       ),
549
                .ch29_am0(      ch29_am0        ),
550
                .ch29_am1(      ch29_am1        ),
551
                .pointer30(     pointer30       ),
552
                .pointer30_s(   pointer30_s     ),
553
                .ch30_csr(      ch30_csr        ),
554
                .ch30_txsz(     ch30_txsz       ),
555
                .ch30_adr0(     ch30_adr0       ),
556
                .ch30_adr1(     ch30_adr1       ),
557
                .ch30_am0(      ch30_am0        ),
558
                .ch30_am1(      ch30_am1        ),
559
                .ch_sel(        ch_sel          ),
560
                .ndnr(          ndnr            ),
561
                .pause_req(     pause_req       ),
562
                .paused(        paused          ),
563
                .dma_abort(     dma_abort       ),
564
                .dma_busy(      dma_busy        ),
565
                .dma_err(       dma_err         ),
566
                .dma_done(      dma_done        ),
567
                .dma_done_all(  dma_done_all    ),
568
                .de_csr(        de_csr          ),
569
                .de_txsz(       de_txsz         ),
570
                .de_adr0(       de_adr0         ),
571
                .de_adr1(       de_adr1         ),
572
                .de_csr_we(     de_csr_we       ),
573
                .de_txsz_we(    de_txsz_we      ),
574
                .de_adr0_we(    de_adr0_we      ),
575
                .de_adr1_we(    de_adr1_we      ),
576
                .de_fetch_descr(de_fetch_descr  ),
577
                .dma_rest(      dma_rest        ),
578
                .ptr_set(       ptr_set         )
579
                );
580
 
581
// Channel Select
582
wb_dma_ch_sel   u1(
583 8 rudi
                .clk(           clk_i           ),
584
                .rst(           rst_i           ),
585 5 rudi
                .req_i(         dma_req         ),
586
                .ack_o(         dma_ack         ),
587
                .nd_i(          dma_nd          ),
588
 
589
                .pointer0(      pointer0        ),
590
                .pointer0_s(    pointer0_s      ),
591
                .ch0_csr(       ch0_csr         ),
592
                .ch0_txsz(      ch0_txsz        ),
593
                .ch0_adr0(      ch0_adr0        ),
594
                .ch0_adr1(      ch0_adr1        ),
595
                .ch0_am0(       ch0_am0         ),
596
                .ch0_am1(       ch0_am1         ),
597
                .pointer1(      pointer1        ),
598
                .pointer1_s(    pointer1_s      ),
599
                .ch1_csr(       ch1_csr         ),
600
                .ch1_txsz(      ch1_txsz        ),
601
                .ch1_adr0(      ch1_adr0        ),
602
                .ch1_adr1(      ch1_adr1        ),
603
                .ch1_am0(       ch1_am0         ),
604
                .ch1_am1(       ch1_am1         ),
605
                .pointer2(      pointer2        ),
606
                .pointer2_s(    pointer2_s      ),
607
                .ch2_csr(       ch2_csr         ),
608
                .ch2_txsz(      ch2_txsz        ),
609
                .ch2_adr0(      ch2_adr0        ),
610
                .ch2_adr1(      ch2_adr1        ),
611
                .ch2_am0(       ch2_am0         ),
612
                .ch2_am1(       ch2_am1         ),
613
                .pointer3(      pointer3        ),
614
                .pointer3_s(    pointer3_s      ),
615
                .ch3_csr(       ch3_csr         ),
616
                .ch3_txsz(      ch3_txsz        ),
617
                .ch3_adr0(      ch3_adr0        ),
618
                .ch3_adr1(      ch3_adr1        ),
619
                .ch3_am0(       ch3_am0         ),
620
                .ch3_am1(       ch3_am1         ),
621
                .pointer4(      pointer4        ),
622
                .pointer4_s(    pointer4_s      ),
623
                .ch4_csr(       ch4_csr         ),
624
                .ch4_txsz(      ch4_txsz        ),
625
                .ch4_adr0(      ch4_adr0        ),
626
                .ch4_adr1(      ch4_adr1        ),
627
                .ch4_am0(       ch4_am0         ),
628
                .ch4_am1(       ch4_am1         ),
629
                .pointer5(      pointer5        ),
630
                .pointer5_s(    pointer5_s      ),
631
                .ch5_csr(       ch5_csr         ),
632
                .ch5_txsz(      ch5_txsz        ),
633
                .ch5_adr0(      ch5_adr0        ),
634
                .ch5_adr1(      ch5_adr1        ),
635
                .ch5_am0(       ch5_am0         ),
636
                .ch5_am1(       ch5_am1         ),
637
                .pointer6(      pointer6        ),
638
                .pointer6_s(    pointer6_s      ),
639
                .ch6_csr(       ch6_csr         ),
640
                .ch6_txsz(      ch6_txsz        ),
641
                .ch6_adr0(      ch6_adr0        ),
642
                .ch6_adr1(      ch6_adr1        ),
643
                .ch6_am0(       ch6_am0         ),
644
                .ch6_am1(       ch6_am1         ),
645
                .pointer7(      pointer7        ),
646
                .pointer7_s(    pointer7_s      ),
647
                .ch7_csr(       ch7_csr         ),
648
                .ch7_txsz(      ch7_txsz        ),
649
                .ch7_adr0(      ch7_adr0        ),
650
                .ch7_adr1(      ch7_adr1        ),
651
                .ch7_am0(       ch7_am0         ),
652
                .ch7_am1(       ch7_am1         ),
653
                .pointer8(      pointer8        ),
654
                .pointer8_s(    pointer8_s      ),
655
                .ch8_csr(       ch8_csr         ),
656
                .ch8_txsz(      ch8_txsz        ),
657
                .ch8_adr0(      ch8_adr0        ),
658
                .ch8_adr1(      ch8_adr1        ),
659
                .ch8_am0(       ch8_am0         ),
660
                .ch8_am1(       ch8_am1         ),
661
                .pointer9(      pointer9        ),
662
                .pointer9_s(    pointer9_s      ),
663
                .ch9_csr(       ch9_csr         ),
664
                .ch9_txsz(      ch9_txsz        ),
665
                .ch9_adr0(      ch9_adr0        ),
666
                .ch9_adr1(      ch9_adr1        ),
667
                .ch9_am0(       ch9_am0         ),
668
                .ch9_am1(       ch9_am1         ),
669
                .pointer10(     pointer10       ),
670
                .pointer10_s(   pointer10_s     ),
671
                .ch10_csr(      ch10_csr        ),
672
                .ch10_txsz(     ch10_txsz       ),
673
                .ch10_adr0(     ch10_adr0       ),
674
                .ch10_adr1(     ch10_adr1       ),
675
                .ch10_am0(      ch10_am0        ),
676
                .ch10_am1(      ch10_am1        ),
677
                .pointer11(     pointer11       ),
678
                .pointer11_s(   pointer11_s     ),
679
                .ch11_csr(      ch11_csr        ),
680
                .ch11_txsz(     ch11_txsz       ),
681
                .ch11_adr0(     ch11_adr0       ),
682
                .ch11_adr1(     ch11_adr1       ),
683
                .ch11_am0(      ch11_am0        ),
684
                .ch11_am1(      ch11_am1        ),
685
                .pointer12(     pointer12       ),
686
                .pointer12_s(   pointer12_s     ),
687
                .ch12_csr(      ch12_csr        ),
688
                .ch12_txsz(     ch12_txsz       ),
689
                .ch12_adr0(     ch12_adr0       ),
690
                .ch12_adr1(     ch12_adr1       ),
691
                .ch12_am0(      ch12_am0        ),
692
                .ch12_am1(      ch12_am1        ),
693
                .pointer13(     pointer13       ),
694
                .pointer13_s(   pointer13_s     ),
695
                .ch13_csr(      ch13_csr        ),
696
                .ch13_txsz(     ch13_txsz       ),
697
                .ch13_adr0(     ch13_adr0       ),
698
                .ch13_adr1(     ch13_adr1       ),
699
                .ch13_am0(      ch13_am0        ),
700
                .ch13_am1(      ch13_am1        ),
701
                .pointer14(     pointer14       ),
702
                .pointer14_s(   pointer14_s     ),
703
                .ch14_csr(      ch14_csr        ),
704
                .ch14_txsz(     ch14_txsz       ),
705
                .ch14_adr0(     ch14_adr0       ),
706
                .ch14_adr1(     ch14_adr1       ),
707
                .ch14_am0(      ch14_am0        ),
708
                .ch14_am1(      ch14_am1        ),
709
                .pointer15(     pointer15       ),
710
                .pointer15_s(   pointer15_s     ),
711
                .ch15_csr(      ch15_csr        ),
712
                .ch15_txsz(     ch15_txsz       ),
713
                .ch15_adr0(     ch15_adr0       ),
714
                .ch15_adr1(     ch15_adr1       ),
715
                .ch15_am0(      ch15_am0        ),
716
                .ch15_am1(      ch15_am1        ),
717
                .pointer16(     pointer16       ),
718
                .pointer16_s(   pointer16_s     ),
719
                .ch16_csr(      ch16_csr        ),
720
                .ch16_txsz(     ch16_txsz       ),
721
                .ch16_adr0(     ch16_adr0       ),
722
                .ch16_adr1(     ch16_adr1       ),
723
                .ch16_am0(      ch16_am0        ),
724
                .ch16_am1(      ch16_am1        ),
725
                .pointer17(     pointer17       ),
726
                .pointer17_s(   pointer17_s     ),
727
                .ch17_csr(      ch17_csr        ),
728
                .ch17_txsz(     ch17_txsz       ),
729
                .ch17_adr0(     ch17_adr0       ),
730
                .ch17_adr1(     ch17_adr1       ),
731
                .ch17_am0(      ch17_am0        ),
732
                .ch17_am1(      ch17_am1        ),
733
                .pointer18(     pointer18       ),
734
                .pointer18_s(   pointer18_s     ),
735
                .ch18_csr(      ch18_csr        ),
736
                .ch18_txsz(     ch18_txsz       ),
737
                .ch18_adr0(     ch18_adr0       ),
738
                .ch18_adr1(     ch18_adr1       ),
739
                .ch18_am0(      ch18_am0        ),
740
                .ch18_am1(      ch18_am1        ),
741
                .pointer19(     pointer19       ),
742
                .pointer19_s(   pointer19_s     ),
743
                .ch19_csr(      ch19_csr        ),
744
                .ch19_txsz(     ch19_txsz       ),
745
                .ch19_adr0(     ch19_adr0       ),
746
                .ch19_adr1(     ch19_adr1       ),
747
                .ch19_am0(      ch19_am0        ),
748
                .ch19_am1(      ch19_am1        ),
749
                .pointer20(     pointer20       ),
750
                .pointer20_s(   pointer20_s     ),
751
                .ch20_csr(      ch20_csr        ),
752
                .ch20_txsz(     ch20_txsz       ),
753
                .ch20_adr0(     ch20_adr0       ),
754
                .ch20_adr1(     ch20_adr1       ),
755
                .ch20_am0(      ch20_am0        ),
756
                .ch20_am1(      ch20_am1        ),
757
                .pointer21(     pointer21       ),
758
                .pointer21_s(   pointer21_s     ),
759
                .ch21_csr(      ch21_csr        ),
760
                .ch21_txsz(     ch21_txsz       ),
761
                .ch21_adr0(     ch21_adr0       ),
762
                .ch21_adr1(     ch21_adr1       ),
763
                .ch21_am0(      ch21_am0        ),
764
                .ch21_am1(      ch21_am1        ),
765
                .pointer22(     pointer22       ),
766
                .pointer22_s(   pointer22_s     ),
767
                .ch22_csr(      ch22_csr        ),
768
                .ch22_txsz(     ch22_txsz       ),
769
                .ch22_adr0(     ch22_adr0       ),
770
                .ch22_adr1(     ch22_adr1       ),
771
                .ch22_am0(      ch22_am0        ),
772
                .ch22_am1(      ch22_am1        ),
773
                .pointer23(     pointer23       ),
774
                .pointer23_s(   pointer23_s     ),
775
                .ch23_csr(      ch23_csr        ),
776
                .ch23_txsz(     ch23_txsz       ),
777
                .ch23_adr0(     ch23_adr0       ),
778
                .ch23_adr1(     ch23_adr1       ),
779
                .ch23_am0(      ch23_am0        ),
780
                .ch23_am1(      ch23_am1        ),
781
                .pointer24(     pointer24       ),
782
                .pointer24_s(   pointer24_s     ),
783
                .ch24_csr(      ch24_csr        ),
784
                .ch24_txsz(     ch24_txsz       ),
785
                .ch24_adr0(     ch24_adr0       ),
786
                .ch24_adr1(     ch24_adr1       ),
787
                .ch24_am0(      ch24_am0        ),
788
                .ch24_am1(      ch24_am1        ),
789
                .pointer25(     pointer25       ),
790
                .pointer25_s(   pointer25_s     ),
791
                .ch25_csr(      ch25_csr        ),
792
                .ch25_txsz(     ch25_txsz       ),
793
                .ch25_adr0(     ch25_adr0       ),
794
                .ch25_adr1(     ch25_adr1       ),
795
                .ch25_am0(      ch25_am0        ),
796
                .ch25_am1(      ch25_am1        ),
797
                .pointer26(     pointer26       ),
798
                .pointer26_s(   pointer26_s     ),
799
                .ch26_csr(      ch26_csr        ),
800
                .ch26_txsz(     ch26_txsz       ),
801
                .ch26_adr0(     ch26_adr0       ),
802
                .ch26_adr1(     ch26_adr1       ),
803
                .ch26_am0(      ch26_am0        ),
804
                .ch26_am1(      ch26_am1        ),
805
                .pointer27(     pointer27       ),
806
                .pointer27_s(   pointer27_s     ),
807
                .ch27_csr(      ch27_csr        ),
808
                .ch27_txsz(     ch27_txsz       ),
809
                .ch27_adr0(     ch27_adr0       ),
810
                .ch27_adr1(     ch27_adr1       ),
811
                .ch27_am0(      ch27_am0        ),
812
                .ch27_am1(      ch27_am1        ),
813
                .pointer28(     pointer28       ),
814
                .pointer28_s(   pointer28_s     ),
815
                .ch28_csr(      ch28_csr        ),
816
                .ch28_txsz(     ch28_txsz       ),
817
                .ch28_adr0(     ch28_adr0       ),
818
                .ch28_adr1(     ch28_adr1       ),
819
                .ch28_am0(      ch28_am0        ),
820
                .ch28_am1(      ch28_am1        ),
821
                .pointer29(     pointer29       ),
822
                .pointer29_s(   pointer29_s     ),
823
                .ch29_csr(      ch29_csr        ),
824
                .ch29_txsz(     ch29_txsz       ),
825
                .ch29_adr0(     ch29_adr0       ),
826
                .ch29_adr1(     ch29_adr1       ),
827
                .ch29_am0(      ch29_am0        ),
828
                .ch29_am1(      ch29_am1        ),
829
                .pointer30(     pointer30       ),
830
                .pointer30_s(   pointer30_s     ),
831
                .ch30_csr(      ch30_csr        ),
832
                .ch30_txsz(     ch30_txsz       ),
833
                .ch30_adr0(     ch30_adr0       ),
834
                .ch30_adr1(     ch30_adr1       ),
835
                .ch30_am0(      ch30_am0        ),
836
                .ch30_am1(      ch30_am1        ),
837
 
838
                .ch_sel(        ch_sel          ),
839
                .ndnr(          ndnr            ),
840
                .de_start(      de_start        ),
841
                .ndr(           ndr             ),
842
                .csr(           csr             ),
843
                .pointer(       pointer         ),
844
                .txsz(          txsz            ),
845
                .adr0(          adr0            ),
846
                .adr1(          adr1            ),
847
                .am0(           am0             ),
848
                .am1(           am1             ),
849
                .pointer_s(     pointer_s       ),
850
                .next_ch(       next_ch         ),
851
                .de_ack(        de_ack          ),
852
                .dma_busy(      dma_busy        )
853
                );
854
 
855
 
856
// DMA Engine
857
wb_dma_de       u2(
858 8 rudi
                .clk(           clk_i           ),
859
                .rst(           rst_i           ),
860 5 rudi
                .mast0_go(      mast0_go        ),
861
                .mast0_we(      mast0_we        ),
862
                .mast0_adr(     mast0_adr       ),
863
                .mast0_din(     mast0_dout      ),
864
                .mast0_dout(    mast0_din       ),
865
                .mast0_err(     mast0_err       ),
866
                .mast0_drdy(    mast0_drdy      ),
867
                .mast0_wait(    mast0_wait      ),
868
                .mast1_go(      mast1_go        ),
869
                .mast1_we(      mast1_we        ),
870
                .mast1_adr(     mast1_adr       ),
871
                .mast1_din(     mast1_dout      ),
872
                .mast1_dout(    mast1_din       ),
873
                .mast1_err(     mast1_err       ),
874
                .mast1_drdy(    mast1_drdy      ),
875
                .mast1_wait(    mast1_wait      ),
876
                .de_start(      de_start        ),
877
                .nd(            ndr             ),
878
                .csr(           csr             ),
879
                .pointer(       pointer         ),
880
                .pointer_s(     pointer_s       ),
881
                .txsz(          txsz            ),
882
                .adr0(          adr0            ),
883
                .adr1(          adr1            ),
884
                .am0(           am0             ),
885
                .am1(           am1             ),
886
                .de_csr_we(     de_csr_we       ),
887
                .de_txsz_we(    de_txsz_we      ),
888
                .de_adr0_we(    de_adr0_we      ),
889
                .de_adr1_we(    de_adr1_we      ),
890
                .de_fetch_descr(de_fetch_descr  ),
891
                .ptr_set(       ptr_set         ),
892
                .de_csr(        de_csr          ),
893
                .de_txsz(       de_txsz         ),
894
                .de_adr0(       de_adr0         ),
895
                .de_adr1(       de_adr1         ),
896
                .next_ch(       next_ch         ),
897
                .de_ack(        de_ack          ),
898
                .pause_req(     pause_req       ),
899
                .paused(        paused          ),
900
                .dma_abort(     dma_abort       ),
901
                .dma_busy(      dma_busy        ),
902
                .dma_err(       dma_err         ),
903
                .dma_done(      dma_done        ),
904
                .dma_done_all(  dma_done_all    )
905
                );
906
 
907
// Wishbone Interface 0
908
wb_dma_wb_if    u3(
909 8 rudi
                .clk(           clk_i           ),
910
                .rst(           rst_i           ),
911 5 rudi
                .wbs_data_i(    wb0s_data_i     ),
912
                .wbs_data_o(    wb0s_data_o     ),
913
                .wb_addr_i(     wb0_addr_i      ),
914
                .wb_sel_i(      wb0_sel_i       ),
915
                .wb_we_i(       wb0_we_i        ),
916
                .wb_cyc_i(      wb0_cyc_i       ),
917
                .wb_stb_i(      wb0_stb_i       ),
918
                .wb_ack_o(      wb0_ack_o       ),
919
                .wb_err_o(      wb0_err_o       ),
920
                .wb_rty_o(      wb0_rty_o       ),
921
                .wbm_data_i(    wb0m_data_i     ),
922
                .wbm_data_o(    wb0m_data_o     ),
923
                .wb_addr_o(     wb0_addr_o      ),
924
                .wb_sel_o(      wb0_sel_o       ),
925
                .wb_we_o(       wb0_we_o        ),
926
                .wb_cyc_o(      wb0_cyc_o       ),
927
                .wb_stb_o(      wb0_stb_o       ),
928
                .wb_ack_i(      wb0_ack_i       ),
929
                .wb_err_i(      wb0_err_i       ),
930
                .wb_rty_i(      wb0_rty_i       ),
931
                .mast_go(       mast0_go        ),
932
                .mast_we(       mast0_we        ),
933
                .mast_adr(      mast0_adr       ),
934
                .mast_din(      mast0_din       ),
935
                .mast_dout(     mast0_dout      ),
936
                .mast_err(      mast0_err       ),
937
                .mast_drdy(     mast0_drdy      ),
938
                .mast_wait(     mast0_wait      ),
939
                .pt_sel_i(      pt0_sel_i       ),
940
                .mast_pt_in(    mast0_pt_in     ),
941
                .mast_pt_out(   mast0_pt_out    ),
942
                .slv_adr(       slv0_adr        ),
943
                .slv_din(       slv0_din        ),
944
                .slv_dout(      slv0_dout       ),
945
                .slv_re(        slv0_re         ),
946
                .slv_we(        slv0_we         ),
947
                .pt_sel_o(      pt0_sel_o       ),
948
                .slv_pt_out(    slv0_pt_out     ),
949
                .slv_pt_in(     slv0_pt_in      )
950
                );
951
 
952
// Wishbone Interface 1
953
wb_dma_wb_if    u4(
954 8 rudi
                .clk(           clk_i           ),
955
                .rst(           rst_i           ),
956 5 rudi
                .wbs_data_i(    wb1s_data_i     ),
957
                .wbs_data_o(    wb1s_data_o     ),
958
                .wb_addr_i(     wb1_addr_i      ),
959
                .wb_sel_i(      wb1_sel_i       ),
960
                .wb_we_i(       wb1_we_i        ),
961
                .wb_cyc_i(      wb1_cyc_i       ),
962
                .wb_stb_i(      wb1_stb_i       ),
963
                .wb_ack_o(      wb1_ack_o       ),
964
                .wb_err_o(      wb1_err_o       ),
965
                .wb_rty_o(      wb1_rty_o       ),
966
                .wbm_data_i(    wb1m_data_i     ),
967
                .wbm_data_o(    wb1m_data_o     ),
968
                .wb_addr_o(     wb1_addr_o      ),
969
                .wb_sel_o(      wb1_sel_o       ),
970
                .wb_we_o(       wb1_we_o        ),
971
                .wb_cyc_o(      wb1_cyc_o       ),
972
                .wb_stb_o(      wb1_stb_o       ),
973
                .wb_ack_i(      wb1_ack_i       ),
974
                .wb_err_i(      wb1_err_i       ),
975
                .wb_rty_i(      wb1_rty_i       ),
976
                .mast_go(       mast1_go        ),
977
                .mast_we(       mast1_we        ),
978
                .mast_adr(      mast1_adr       ),
979
                .mast_din(      mast1_din       ),
980
                .mast_dout(     mast1_dout      ),
981
                .mast_err(      mast1_err       ),
982
                .mast_drdy(     mast1_drdy      ),
983
                .mast_wait(     mast1_wait      ),
984
                .pt_sel_i(      pt1_sel_i       ),
985
                .mast_pt_in(    mast1_pt_in     ),
986
                .mast_pt_out(   mast1_pt_out    ),
987
                .slv_adr(       slv1_adr        ),
988
                .slv_din(       32'h0           ),      // Not Connected
989
                .slv_dout(      slv1_dout       ),      // Not Connected
990
                .slv_re(        slv1_re         ),      // Not Connected
991
                .slv_we(        slv1_we         ),      // Not Connected
992
                .pt_sel_o(      pt1_sel_o       ),
993
                .slv_pt_out(    slv1_pt_out     ),
994
                .slv_pt_in(     slv1_pt_in      )
995
                );
996
 
997
 
998
endmodule

powered by: WebSVN 2.1.0

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