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

Subversion Repositories ac97

[/] [ac97/] [trunk/] [rtl/] [verilog/] [ac97_top.v] - Blame information for rev 6

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

Line No. Rev Author Line
1 4 rudi
/////////////////////////////////////////////////////////////////////
2
////                                                             ////
3
////  WISHBONE AC 97 Controller Top Level                        ////
4
////                                                             ////
5
////                                                             ////
6
////  Author: Rudolf Usselmann                                   ////
7
////          rudi@asics.ws                                      ////
8
////                                                             ////
9
////                                                             ////
10
////  Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ ////
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 6 rudi
//  $Id: ac97_top.v,v 1.2 2001-08-10 08:09:42 rudi Exp $
41 4 rudi
//
42 6 rudi
//  $Date: 2001-08-10 08:09:42 $
43
//  $Revision: 1.2 $
44 4 rudi
//  $Author: rudi $
45
//  $Locker:  $
46
//  $State: Exp $
47
//
48
// Change History:
49
//               $Log: not supported by cvs2svn $
50 6 rudi
//               Revision 1.1  2001/08/03 06:54:50  rudi
51
//
52
//
53
//               - Changed to new directory structure
54
//
55 4 rudi
//               Revision 1.1.1.1  2001/05/19 02:29:14  rudi
56
//               Initial Checkin
57
//
58
//
59
//
60
//
61
 
62
`include "ac97_defines.v"
63
 
64 6 rudi
module ac97_top(clk_i, rst_i,
65 4 rudi
 
66
        wb_data_i, wb_data_o, wb_addr_i, wb_sel_i, wb_we_i, wb_cyc_i,
67
        wb_stb_i, wb_ack_o, wb_err_o,
68
 
69 6 rudi
        int_o, dma_req_o, dma_ack_i,
70
        suspended_o,
71 4 rudi
 
72 6 rudi
        bit_clk_pad_i, sync_pad_o, sdata_pad_o, sdata_pad_i,
73
        ac97_reset_pad_o_
74 4 rudi
        );
75
 
76 6 rudi
input           clk_i, rst_i;
77 4 rudi
 
78
// --------------------------------------
79
// WISHBONE SLAVE INTERFACE 
80
input   [31:0]   wb_data_i;
81
output  [31:0]   wb_data_o;
82
input   [31:0]   wb_addr_i;
83
input   [3:0]    wb_sel_i;
84
input           wb_we_i;
85
input           wb_cyc_i;
86
input           wb_stb_i;
87
output          wb_ack_o;
88
output          wb_err_o;
89
 
90
// --------------------------------------
91
// Misc Signals
92 6 rudi
output          int_o;
93
output  [8:0]    dma_req_o;
94
input   [8:0]    dma_ack_i;
95 4 rudi
 
96
// --------------------------------------
97
// Suspend Resume Interface
98 6 rudi
output          suspended_o;
99 4 rudi
 
100
// --------------------------------------
101
// AC97 Codec Interface
102 6 rudi
input           bit_clk_pad_i;
103
output          sync_pad_o;
104
output          sdata_pad_o;
105
input           sdata_pad_i;
106
output          ac97_reset_pad_o_;
107 4 rudi
 
108
////////////////////////////////////////////////////////////////////
109
//
110
// Local Wires
111
//
112
 
113
// Serial Output register interface
114
wire    [15:0]   out_slt0;
115
wire    [19:0]   out_slt1;
116
wire    [19:0]   out_slt2;
117
wire    [19:0]   out_slt3;
118
wire    [19:0]   out_slt4;
119
wire    [19:0]   out_slt6;
120
wire    [19:0]   out_slt7;
121
wire    [19:0]   out_slt8;
122
wire    [19:0]   out_slt9;
123
 
124
// Serial Input register interface
125
wire    [15:0]   in_slt0;
126
wire    [19:0]   in_slt1;
127
wire    [19:0]   in_slt2;
128
wire    [19:0]   in_slt3;
129
wire    [19:0]   in_slt4;
130
wire    [19:0]   in_slt6;
131
 
132
// Serial IO Controller Interface
133
wire            ld;
134
wire            valid;
135
wire    [5:0]    out_le;
136
wire    [2:0]    in_valid;
137
wire            ps_ce;
138
 
139
// Valid Sync
140
reg             valid_s1, valid_s;
141
reg     [2:0]    in_valid_s1, in_valid_s;
142
 
143
// Out FIFO interface
144
wire    [31:0]   wb_din;
145
wire    [1:0]    o3_mode, o4_mode, o6_mode, o7_mode, o8_mode, o9_mode;
146
wire            o3_re, o4_re, o6_re, o7_re, o8_re, o9_re;
147
wire            o3_we, o4_we, o6_we, o7_we, o8_we, o9_we;
148
wire    [1:0]    o3_status, o4_status, o6_status, o7_status, o8_status, o9_status;
149
wire            o3_full, o4_full, o6_full, o7_full, o8_full, o9_full;
150
wire            o3_empty, o4_empty, o6_empty, o7_empty, o8_empty, o9_empty;
151
 
152
// In FIFO interface
153
wire    [31:0]   i3_dout, i4_dout, i6_dout;
154
wire    [1:0]    i3_mode, i4_mode, i6_mode;
155
wire            i3_we, i4_we, i6_we;
156
wire            i3_re, i4_re, i6_re;
157
wire    [1:0]    i3_status, i4_status, i6_status;
158
wire            i3_full, i4_full, i6_full;
159
wire            i3_empty, i4_empty, i6_empty;
160
 
161
// Register File Interface
162
wire    [3:0]    adr;
163
wire    [31:0]   rf_dout;
164
wire    [31:0]   rf_din;
165
wire            rf_we;
166
wire            rf_re;
167
wire            ac97_rst_force;
168
wire            resume_req;
169
wire            crac_we;
170
wire    [15:0]   crac_din;
171
wire    [31:0]   crac_out;
172
wire    [7:0]    oc0_cfg;
173
wire    [7:0]    oc1_cfg;
174
wire    [7:0]    oc2_cfg;
175
wire    [7:0]    oc3_cfg;
176
wire    [7:0]    oc4_cfg;
177
wire    [7:0]    oc5_cfg;
178
wire    [7:0]    ic0_cfg;
179
wire    [7:0]    ic1_cfg;
180
wire    [7:0]    ic2_cfg;
181
wire    [2:0]    oc0_int_set;
182
wire    [2:0]    oc1_int_set;
183
wire    [2:0]    oc2_int_set;
184
wire    [2:0]    oc3_int_set;
185
wire    [2:0]    oc4_int_set;
186
wire    [2:0]    oc5_int_set;
187
wire    [2:0]    ic0_int_set;
188
wire    [2:0]    ic1_int_set;
189
wire    [2:0]    ic2_int_set;
190
 
191
// CRA Module interface
192
wire            crac_valid;
193
wire            crac_wr;
194
wire            crac_wr_done, crac_rd_done;
195
 
196
////////////////////////////////////////////////////////////////////
197
//
198
// Misc Logic
199
//
200
 
201
// Sync Valid to WISHBONE Clock
202 6 rudi
always @(posedge clk_i)
203 4 rudi
        valid_s1 <= #1 valid;
204
 
205 6 rudi
always @(posedge clk_i)
206 4 rudi
        valid_s <= #1 valid_s1;
207
 
208 6 rudi
always @(posedge clk_i)
209 4 rudi
        in_valid_s1 <= #1 in_valid;
210
 
211 6 rudi
always @(posedge clk_i)
212 4 rudi
        in_valid_s <= #1 in_valid_s1;
213
 
214
// "valid_s" Indicates when any of the outputs to the output S/R may
215
// change or when outputs from input S/R may be sampled
216
assign o3_mode = oc0_cfg[3:2];
217
assign o4_mode = oc1_cfg[3:2];
218
assign o6_mode = oc2_cfg[3:2];
219
assign o7_mode = oc3_cfg[3:2];
220
assign o8_mode = oc4_cfg[3:2];
221
assign o9_mode = oc5_cfg[3:2];
222
assign i3_mode = ic0_cfg[3:2];
223
assign i4_mode = ic1_cfg[3:2];
224
assign i6_mode = ic2_cfg[3:2];
225
 
226
////////////////////////////////////////////////////////////////////
227
//
228
// Modules
229
//
230
 
231
ac97_sout       u0(
232 6 rudi
                .clk(           bit_clk_pad_i   ),
233
                .rst(           rst_i           ),
234 4 rudi
                .so_ld(         ld              ),
235
                .slt0(          out_slt0        ),
236
                .slt1(          out_slt1        ),
237
                .slt2(          out_slt2        ),
238
                .slt3(          out_slt3        ),
239
                .slt4(          out_slt4        ),
240
                .slt6(          out_slt6        ),
241
                .slt7(          out_slt7        ),
242
                .slt8(          out_slt8        ),
243
                .slt9(          out_slt9        ),
244 6 rudi
                .sdata_out(     sdata_pad_o     )
245 4 rudi
                );
246
 
247
ac97_sin        u1(
248 6 rudi
                .clk(           bit_clk_pad_i   ),
249
                .rst(           rst_i           ),
250 4 rudi
                .out_le(        out_le          ),
251
                .slt0(          in_slt0         ),
252
                .slt1(          in_slt1         ),
253
                .slt2(          in_slt2         ),
254
                .slt3(          in_slt3         ),
255
                .slt4(          in_slt4         ),
256
                .slt6(          in_slt6         ),
257 6 rudi
                .sdata_in(      sdata_pad_i     )
258 4 rudi
                );
259
 
260
ac97_soc        u2(
261 6 rudi
                .clk(           bit_clk_pad_i   ),
262
                .wclk(          clk_i           ),
263
                .rst(           rst_i           ),
264 4 rudi
                .ps_ce(         ps_ce           ),
265
                .resume(        resume_req      ),
266 6 rudi
                .suspended(     suspended_o     ),
267
                .sync(          sync_pad_o      ),
268 4 rudi
                .out_le(        out_le          ),
269
                .in_valid(      in_valid        ),
270
                .ld(            ld              ),
271
                .valid(         valid           )
272
                );
273
 
274
ac97_out_fifo   u3(
275 6 rudi
                .clk(           clk_i           ),
276
                .rst(           rst_i           ),
277 4 rudi
                .en(            oc0_cfg[0]       ),
278
                .mode(          o3_mode         ),
279
                .din(           wb_din          ),
280
                .we(            o3_we           ),
281
                .dout(          out_slt3        ),
282
                .re(            o3_re           ),
283
                .status(        o3_status       ),
284
                .full(          o3_full         ),
285
                .empty(         o3_empty        )
286
                );
287
 
288
ac97_out_fifo   u4(
289 6 rudi
                .clk(           clk_i           ),
290
                .rst(           rst_i           ),
291 4 rudi
                .en(            oc1_cfg[0]       ),
292
                .mode(          o4_mode         ),
293
                .din(           wb_din          ),
294
                .we(            o4_we           ),
295
                .dout(          out_slt4        ),
296
                .re(            o4_re           ),
297
                .status(        o4_status       ),
298
                .full(          o4_full         ),
299
                .empty(         o4_empty        )
300
                );
301
 
302 6 rudi
`ifdef AC97_CENTER
303 4 rudi
ac97_out_fifo   u5(
304 6 rudi
                .clk(           clk_i           ),
305
                .rst(           rst_i           ),
306 4 rudi
                .en(            oc2_cfg[0]       ),
307
                .mode(          o6_mode         ),
308
                .din(           wb_din          ),
309
                .we(            o6_we           ),
310
                .dout(          out_slt6        ),
311
                .re(            o6_re           ),
312
                .status(        o6_status       ),
313
                .full(          o6_full         ),
314
                .empty(         o6_empty        )
315
                );
316
`else
317
assign out_slt6 = 0;
318
assign o6_status = 0;
319
assign o6_full = 0;
320
assign o6_empty = 0;
321
`endif
322
 
323 6 rudi
`ifdef AC97_SURROUND
324 4 rudi
ac97_out_fifo   u6(
325 6 rudi
                .clk(           clk_i           ),
326
                .rst(           rst_i           ),
327 4 rudi
                .en(            oc3_cfg[0]       ),
328
                .mode(          o7_mode         ),
329
                .din(           wb_din          ),
330
                .we(            o7_we           ),
331
                .dout(          out_slt7        ),
332
                .re(            o7_re           ),
333
                .status(        o7_status       ),
334
                .full(          o7_full         ),
335
                .empty(         o7_empty        )
336
                );
337
 
338
ac97_out_fifo   u7(
339 6 rudi
                .clk(           clk_i           ),
340
                .rst(           rst_i           ),
341 4 rudi
                .en(            oc4_cfg[0]       ),
342
                .mode(          o8_mode         ),
343
                .din(           wb_din          ),
344
                .we(            o8_we           ),
345
                .dout(          out_slt8        ),
346
                .re(            o8_re           ),
347
                .status(        o8_status       ),
348
                .full(          o8_full         ),
349
                .empty(         o8_empty        )
350
                );
351
`else
352
assign out_slt7 = 0;
353
assign o7_status = 0;
354
assign o7_full = 0;
355
assign o7_empty = 0;
356
assign out_slt8 = 0;
357
assign o8_status = 0;
358
assign o8_full = 0;
359
assign o8_empty = 0;
360
`endif
361
 
362 6 rudi
`ifdef AC97_LFE
363 4 rudi
ac97_out_fifo   u8(
364 6 rudi
                .clk(           clk_i           ),
365
                .rst(           rst_i           ),
366 4 rudi
                .en(            oc5_cfg[0]       ),
367
                .mode(          o9_mode         ),
368
                .din(           wb_din          ),
369
                .we(            o9_we           ),
370
                .dout(          out_slt9        ),
371
                .re(            o9_re           ),
372
                .status(        o9_status       ),
373
                .full(          o9_full         ),
374
                .empty(         o9_empty        )
375
                );
376
`else
377
assign out_slt9 = 0;
378
assign o9_status = 0;
379
assign o9_full = 0;
380
assign o9_empty = 0;
381
`endif
382
 
383 6 rudi
`ifdef AC97_SIN
384 4 rudi
ac97_in_fifo    u9(
385 6 rudi
                .clk(           clk_i           ),
386
                .rst(           rst_i           ),
387 4 rudi
                .en(            ic0_cfg[0]       ),
388
                .mode(          i3_mode         ),
389
                .din(           in_slt3         ),
390
                .we(            i3_we           ),
391
                .dout(          i3_dout         ),
392
                .re(            i3_re           ),
393
                .status(        i3_status       ),
394
                .full(          i3_full         ),
395
                .empty(         i3_empty        )
396
                );
397
 
398
ac97_in_fifo    u10(
399 6 rudi
                .clk(           clk_i           ),
400
                .rst(           rst_i           ),
401 4 rudi
                .en(            ic1_cfg[0]       ),
402
                .mode(          i4_mode         ),
403
                .din(           in_slt4         ),
404
                .we(            i4_we           ),
405
                .dout(          i4_dout         ),
406
                .re(            i4_re           ),
407
                .status(        i4_status       ),
408
                .full(          i4_full         ),
409
                .empty(         i4_empty        )
410
                );
411
`else
412
assign i3_dout = 0;
413
assign i3_status = 0;
414
assign i3_full = 0;
415
assign i3_empty = 0;
416
assign i4_dout = 0;
417
assign i4_status = 0;
418
assign i4_full = 0;
419
assign i4_empty = 0;
420
`endif
421
 
422 6 rudi
`ifdef AC97_MICIN
423 4 rudi
ac97_in_fifo    u11(
424 6 rudi
                .clk(           clk_i           ),
425
                .rst(           rst_i           ),
426 4 rudi
                .en(            ic2_cfg[0]       ),
427
                .mode(          i6_mode         ),
428
                .din(           in_slt6         ),
429
                .we(            i6_we           ),
430
                .dout(          i6_dout         ),
431
                .re(            i6_re           ),
432
                .status(        i6_status       ),
433
                .full(          i6_full         ),
434
                .empty(         i6_empty        )
435
                );
436
`else
437
assign i6_dout = 0;
438
assign i6_status = 0;
439
assign i6_full = 0;
440
assign i6_empty = 0;
441
`endif
442
 
443
ac97_wb_if      u12(
444 6 rudi
                .clk(           clk_i           ),
445
                .rst(           rst_i           ),
446 4 rudi
                .wb_data_i(     wb_data_i       ),
447
                .wb_data_o(     wb_data_o       ),
448
                .wb_addr_i(     wb_addr_i       ),
449
                .wb_sel_i(      wb_sel_i        ),
450
                .wb_we_i(       wb_we_i         ),
451
                .wb_cyc_i(      wb_cyc_i        ),
452
                .wb_stb_i(      wb_stb_i        ),
453
                .wb_ack_o(      wb_ack_o        ),
454
                .wb_err_o(      wb_err_o        ),
455
                .adr(           adr             ),
456
                .dout(          wb_din          ),
457
                .rf_din(        rf_dout         ),
458
                .i3_din(        i3_dout         ),
459
                .i4_din(        i4_dout         ),
460
                .i6_din(        i6_dout         ),
461
                .rf_we(         rf_we           ),
462
                .rf_re(         rf_re           ),
463
                .o3_we(         o3_we           ),
464
                .o4_we(         o4_we           ),
465
                .o6_we(         o6_we           ),
466
                .o7_we(         o7_we           ),
467
                .o8_we(         o8_we           ),
468
                .o9_we(         o9_we           ),
469
                .i3_re(         i3_re           ),
470
                .i4_re(         i4_re           ),
471
                .i6_re(         i6_re           )
472
                );
473
 
474 6 rudi
ac97_rf u13(    .clk(           clk_i           ),
475
                .rst(           rst_i           ),
476 4 rudi
                .adr(           adr             ),
477
                .rf_dout(       rf_dout         ),
478
                .rf_din(        wb_din          ),
479
                .rf_we(         rf_we           ),
480
                .rf_re(         rf_re           ),
481 6 rudi
                .int(           int_o           ),
482 4 rudi
                .ac97_rst_force(ac97_rst_force  ),
483
                .resume_req(    resume_req      ),
484 6 rudi
                .suspended(     suspended_o     ),
485 4 rudi
                .crac_we(       crac_we         ),
486
                .crac_din(      crac_din        ),
487
                .crac_out(      crac_out        ),
488
                .crac_wr_done(  crac_wr_done    ),
489
                .crac_rd_done(  crac_rd_done    ),
490
                .oc0_cfg(       oc0_cfg         ),
491
                .oc1_cfg(       oc1_cfg         ),
492
                .oc2_cfg(       oc2_cfg         ),
493
                .oc3_cfg(       oc3_cfg         ),
494
                .oc4_cfg(       oc4_cfg         ),
495
                .oc5_cfg(       oc5_cfg         ),
496
                .ic0_cfg(       ic0_cfg         ),
497
                .ic1_cfg(       ic1_cfg         ),
498
                .ic2_cfg(       ic2_cfg         ),
499
                .oc0_int_set(   oc0_int_set     ),
500
                .oc1_int_set(   oc1_int_set     ),
501
                .oc2_int_set(   oc2_int_set     ),
502
                .oc3_int_set(   oc3_int_set     ),
503
                .oc4_int_set(   oc4_int_set     ),
504
                .oc5_int_set(   oc5_int_set     ),
505
                .ic0_int_set(   ic0_int_set     ),
506
                .ic1_int_set(   ic1_int_set     ),
507
                .ic2_int_set(   ic2_int_set     )
508
                );
509
 
510 6 rudi
ac97_prc u14(   .clk(           clk_i           ),
511
                .rst(           rst_i           ),
512 4 rudi
                .valid(         valid_s         ),
513
                .in_valid(      in_valid_s      ),
514
                .out_slt0(      out_slt0        ),
515
                .in_slt0(       in_slt0         ),
516
                .in_slt1(       in_slt1         ),
517
                .crac_valid(    crac_valid      ),
518
                .crac_wr(       crac_wr         ),
519
                .oc0_cfg(       oc0_cfg         ),
520
                .oc1_cfg(       oc1_cfg         ),
521
                .oc2_cfg(       oc2_cfg         ),
522
                .oc3_cfg(       oc3_cfg         ),
523
                .oc4_cfg(       oc4_cfg         ),
524
                .oc5_cfg(       oc5_cfg         ),
525
                .ic0_cfg(       ic0_cfg         ),
526
                .ic1_cfg(       ic1_cfg         ),
527
                .ic2_cfg(       ic2_cfg         ),
528
                .o3_empty(      o3_empty        ),
529
                .o4_empty(      o4_empty        ),
530
                .o6_empty(      o6_empty        ),
531
                .o7_empty(      o7_empty        ),
532
                .o8_empty(      o8_empty        ),
533
                .o9_empty(      o9_empty        ),
534
                .i3_full(       i3_full         ),
535
                .i4_full(       i4_full         ),
536
                .i6_full(       i6_full         ),
537
                .o3_re(         o3_re           ),
538
                .o4_re(         o4_re           ),
539
                .o6_re(         o6_re           ),
540
                .o7_re(         o7_re           ),
541
                .o8_re(         o8_re           ),
542
                .o9_re(         o9_re           ),
543
                .i3_we(         i3_we           ),
544
                .i4_we(         i4_we           ),
545
                .i6_we(         i6_we           )
546
                );
547
 
548 6 rudi
ac97_cra u15(   .clk(           clk_i           ),
549
                .rst(           rst_i           ),
550 4 rudi
                .crac_we(       crac_we         ),
551
                .crac_din(      crac_din        ),
552
                .crac_out(      crac_out        ),
553
                .crac_wr_done(  crac_wr_done    ),
554
                .crac_rd_done(  crac_rd_done    ),
555
                .valid(         valid_s         ),
556
                .out_slt1(      out_slt1        ),
557
                .out_slt2(      out_slt2        ),
558
                .in_slt2(       in_slt2         ),
559
                .crac_valid(    crac_valid      ),
560
                .crac_wr(       crac_wr         )
561
                );
562
 
563 6 rudi
ac97_dma_if u16(.clk(           clk_i           ),
564
                .rst(           rst_i           ),
565 4 rudi
                .o3_status(     o3_status       ),
566
                .o4_status(     o4_status       ),
567
                .o6_status(     o6_status       ),
568
                .o7_status(     o7_status       ),
569
                .o8_status(     o8_status       ),
570
                .o9_status(     o9_status       ),
571
                .o3_empty(      o3_empty        ),
572
                .o4_empty(      o4_empty        ),
573
                .o6_empty(      o6_empty        ),
574
                .o7_empty(      o7_empty        ),
575
                .o8_empty(      o8_empty        ),
576
                .o9_empty(      o9_empty        ),
577
                .i3_status(     i3_status       ),
578
                .i4_status(     i4_status       ),
579
                .i6_status(     i6_status       ),
580
                .i3_full(       i3_full         ),
581
                .i4_full(       i4_full         ),
582
                .i6_full(       i6_full         ),
583
                .oc0_cfg(       oc0_cfg         ),
584
                .oc1_cfg(       oc1_cfg         ),
585
                .oc2_cfg(       oc2_cfg         ),
586
                .oc3_cfg(       oc3_cfg         ),
587
                .oc4_cfg(       oc4_cfg         ),
588
                .oc5_cfg(       oc5_cfg         ),
589
                .ic0_cfg(       ic0_cfg         ),
590
                .ic1_cfg(       ic1_cfg         ),
591
                .ic2_cfg(       ic2_cfg         ),
592 6 rudi
                .dma_req(       dma_req_o       ),
593
                .dma_ack(       dma_ack_i       )
594 4 rudi
                );
595
 
596
ac97_int        u17(
597 6 rudi
                .clk(           clk_i           ),
598
                .rst(           rst_i           ),
599 4 rudi
                .int_set(       oc0_int_set     ),
600
                .cfg(           oc0_cfg         ),
601
                .status(        o3_status       ),
602
                .full_empty(    o3_empty        ),
603
                .full(          o3_full         ),
604
                .empty(         o3_empty        ),
605
                .re(            o3_re           ),
606
                .we(            o3_we           )
607
                );
608
 
609
ac97_int        u18(
610 6 rudi
                .clk(           clk_i           ),
611
                .rst(           rst_i           ),
612 4 rudi
                .int_set(       oc1_int_set     ),
613
                .cfg(           oc1_cfg         ),
614
                .status(        o4_status       ),
615
                .full_empty(    o4_empty        ),
616
                .full(          o4_full         ),
617
                .empty(         o4_empty        ),
618
                .re(            o4_re           ),
619
                .we(            o4_we           )
620
                );
621
 
622 6 rudi
`ifdef AC97_CENTER
623 4 rudi
ac97_int        u19(
624 6 rudi
                .clk(           clk_i           ),
625
                .rst(           rst_i           ),
626 4 rudi
                .int_set(       oc2_int_set     ),
627
                .cfg(           oc2_cfg         ),
628
                .status(        o6_status       ),
629
                .full_empty(    o6_empty        ),
630
                .full(          o6_full         ),
631
                .empty(         o6_empty        ),
632
                .re(            o6_re           ),
633
                .we(            o6_we           )
634
                );
635
`else
636
assign oc2_int_set = 0;
637
`endif
638
 
639 6 rudi
`ifdef AC97_SURROUND
640 4 rudi
ac97_int        u20(
641 6 rudi
                .clk(           clk_i           ),
642
                .rst(           rst_i           ),
643 4 rudi
                .int_set(       oc3_int_set     ),
644
                .cfg(           oc3_cfg         ),
645
                .status(        o7_status       ),
646
                .full_empty(    o7_empty        ),
647
                .full(          o7_full         ),
648
                .empty(         o7_empty        ),
649
                .re(            o7_re           ),
650
                .we(            o7_we           )
651
                );
652
 
653
ac97_int        u21(
654 6 rudi
                .clk(           clk_i           ),
655
                .rst(           rst_i           ),
656 4 rudi
                .int_set(       oc4_int_set     ),
657
                .cfg(           oc4_cfg         ),
658
                .status(        o8_status       ),
659
                .full_empty(    o8_empty        ),
660
                .full(          o8_full         ),
661
                .empty(         o8_empty        ),
662
                .re(            o8_re           ),
663
                .we(            o8_we           )
664
                );
665
`else
666
assign oc3_int_set = 0;
667
assign oc4_int_set = 0;
668
`endif
669
 
670 6 rudi
`ifdef AC97_LFE
671 4 rudi
ac97_int        u22(
672 6 rudi
                .clk(           clk_i           ),
673
                .rst(           rst_i           ),
674 4 rudi
                .int_set(       oc5_int_set     ),
675
                .cfg(           oc5_cfg         ),
676
                .status(        o9_status       ),
677
                .full_empty(    o9_empty        ),
678
                .full(          o9_full         ),
679
                .empty(         o9_empty        ),
680
                .re(            o9_re           ),
681
                .we(            o9_we           )
682
                );
683
`else
684
assign oc5_int_set = 0;
685
`endif
686
 
687 6 rudi
`ifdef AC97_SIN
688 4 rudi
ac97_int        u23(
689 6 rudi
                .clk(           clk_i           ),
690
                .rst(           rst_i           ),
691 4 rudi
                .int_set(       ic0_int_set     ),
692
                .cfg(           ic0_cfg         ),
693
                .status(        i3_status       ),
694
                .full_empty(    i3_full         ),
695
                .full(          i3_full         ),
696
                .empty(         i3_empty        ),
697
                .re(            i3_re           ),
698
                .we(            i3_we           )
699
                );
700
 
701
ac97_int        u24(
702 6 rudi
                .clk(           clk_i           ),
703
                .rst(           rst_i           ),
704 4 rudi
                .int_set(       ic1_int_set     ),
705
                .cfg(           ic1_cfg         ),
706
                .status(        i4_status       ),
707
                .full_empty(    i4_full         ),
708
                .full(          i4_full         ),
709
                .empty(         i4_empty        ),
710
                .re(            i4_re           ),
711
                .we(            i4_we           )
712
                );
713
`else
714
assign ic0_int_set = 0;
715
assign ic1_int_set = 0;
716
`endif
717
 
718 6 rudi
`ifdef AC97_MICIN
719 4 rudi
ac97_int        u25(
720 6 rudi
                .clk(           clk_i           ),
721
                .rst(           rst_i           ),
722 4 rudi
                .int_set(       ic2_int_set     ),
723
                .cfg(           ic2_cfg         ),
724
                .status(        i6_status       ),
725
                .full_empty(    i6_full         ),
726
                .full(          i6_full         ),
727
                .empty(         i6_empty        ),
728
                .re(            i6_re           ),
729
                .we(            i6_we           )
730
                );
731
`else
732
assign ic2_int_set = 0;
733
`endif
734
 
735
ac97_rst        u26(
736 6 rudi
                .clk(           clk_i                           ),
737
                .rst(           rst_i                           ),
738 4 rudi
                .rst_force(     ac97_rst_force                  ),
739
                .ps_ce(         ps_ce                           ),
740 6 rudi
                .ac97_rst_(     ac97_reset_pad_o_               )
741 4 rudi
                );
742
 
743
endmodule
744
 

powered by: WebSVN 2.1.0

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