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

Subversion Repositories or1k

[/] [or1k/] [branches/] [mp3_stable/] [or1200/] [rtl/] [verilog/] [or1200.v] - Blame information for rev 210

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

Line No. Rev Author Line
1 161 lampret
//////////////////////////////////////////////////////////////////////
2
////                                                              ////
3
////  OR1200 Top Level                                            ////
4
////                                                              ////
5
////  This file is part of the OpenRISC 1200 project              ////
6
////  http://www.opencores.org/cores/or1k/                        ////
7
////                                                              ////
8
////  Description                                                 ////
9
////  OR1200 Top Level                                            ////
10
////                                                              ////
11
////  To Do:                                                      ////
12
////   - make it smaller and faster                               ////
13
////                                                              ////
14
////  Author(s):                                                  ////
15
////      - Damjan Lampret, lampret@opencores.org                 ////
16
////                                                              ////
17
//////////////////////////////////////////////////////////////////////
18
////                                                              ////
19
//// Copyright (C) 2000 Authors and OPENCORES.ORG                 ////
20
////                                                              ////
21
//// This source file may be used and distributed without         ////
22
//// restriction provided that this copyright statement is not    ////
23
//// removed from the file and that any derivative work contains  ////
24
//// the original copyright notice and the associated disclaimer. ////
25
////                                                              ////
26
//// This source file is free software; you can redistribute it   ////
27
//// and/or modify it under the terms of the GNU Lesser General   ////
28
//// Public License as published by the Free Software Foundation; ////
29
//// either version 2.1 of the License, or (at your option) any   ////
30
//// later version.                                               ////
31
////                                                              ////
32
//// This source is distributed in the hope that it will be       ////
33
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
34
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
35
//// PURPOSE.  See the GNU Lesser General Public License for more ////
36
//// details.                                                     ////
37
////                                                              ////
38
//// You should have received a copy of the GNU Lesser General    ////
39
//// Public License along with this source; if not, download it   ////
40
//// from http://www.opencores.org/lgpl.shtml                     ////
41
////                                                              ////
42
//////////////////////////////////////////////////////////////////////
43
//
44
// CVS Revision History
45
//
46
// $Log: not supported by cvs2svn $
47 203 lampret
// Revision 1.4  2001/08/13 03:36:20  lampret
48
// Added cfg regs. Moved all defines into one defines.v file. More cleanup.
49
//
50 170 lampret
// Revision 1.3  2001/08/09 13:39:33  lampret
51
// Major clean-up.
52
//
53 168 lampret
// Revision 1.2  2001/07/22 03:31:54  lampret
54
// Fixed RAM's oen bug. Cache bypass under development.
55
//
56 166 lampret
// Revision 1.1  2001/07/20 00:46:21  lampret
57
// Development version of RTL. Libraries are missing.
58 161 lampret
//
59 166 lampret
//
60 161 lampret
 
61 203 lampret
// synopsys translate_off
62 168 lampret
`include "timescale.v"
63 203 lampret
// synopsys translate_on
64 168 lampret
`include "defines.v"
65 161 lampret
 
66
module or1200(
67 168 lampret
        // System
68 161 lampret
        clk, rst, pic_ints, clkdiv_by_2,
69
 
70
        // Instruction WISHBONE INTERFACE
71
        iwb_clk_i, iwb_rst_i, iwb_ack_i, iwb_err_i, iwb_rty_i, iwb_dat_i,
72
        iwb_cyc_o, iwb_adr_o, iwb_stb_o, iwb_we_o, iwb_sel_o, iwb_dat_o,
73
 
74
        // Data WISHBONE INTERFACE
75
        dwb_clk_i, dwb_rst_i, dwb_ack_i, dwb_err_i, dwb_rty_i, dwb_dat_i,
76
        dwb_cyc_o, dwb_adr_o, dwb_stb_o, dwb_we_o, dwb_sel_o, dwb_dat_o,
77
 
78 205 lampret
        // External Debug Interface
79
        dbg_stall_i, dbg_dat_i, dbg_adr_i, dbg_op_i, dbg_ewt_i,
80
        dbg_lss_o, dbg_is_o, dbg_wp_o, dbg_bp_o, dbg_dat_o,
81 161 lampret
 
82
        // Power Management
83
        pm_clksd, pm_cpustall, pm_dc_gate, pm_ic_gate, pm_dmmu_gate,
84
        pm_immu_gate, pm_tt_gate, pm_cpu_gate, pm_wakeup, pm_lvolt
85
 
86
);
87
 
88
parameter dw = `OPERAND_WIDTH;
89
parameter aw = `OPERAND_WIDTH;
90
parameter ppic_ints = `PIC_INTS;
91
 
92
//
93 168 lampret
// I/O
94
//
95
 
96
//
97
// System
98
//
99
input                   clk;
100
input                   rst;
101
input                   clkdiv_by_2;
102
input   [ppic_ints-1:0]  pic_ints;
103
 
104
//
105 161 lampret
// Instruction WISHBONE interface
106
//
107
input                   iwb_clk_i;      // clock input
108
input                   iwb_rst_i;      // reset input
109
input                   iwb_ack_i;      // normal termination
110
input                   iwb_err_i;      // termination w/ error
111
input                   iwb_rty_i;      // termination w/ retry
112 168 lampret
input   [dw-1:0] iwb_dat_i;      // input data bus
113 161 lampret
output                  iwb_cyc_o;      // cycle valid output
114 168 lampret
output  [aw-1:0] iwb_adr_o;      // address bus outputs
115 161 lampret
output                  iwb_stb_o;      // strobe output
116
output                  iwb_we_o;       // indicates write transfer
117 168 lampret
output  [3:0]            iwb_sel_o;      // byte select outputs
118
output  [dw-1:0] iwb_dat_o;      // output data bus
119 161 lampret
 
120
//
121
// Data WISHBONE interface
122
//
123
input                   dwb_clk_i;      // clock input
124
input                   dwb_rst_i;      // reset input
125
input                   dwb_ack_i;      // normal termination
126
input                   dwb_err_i;      // termination w/ error
127
input                   dwb_rty_i;      // termination w/ retry
128 168 lampret
input   [dw-1:0] dwb_dat_i;      // input data bus
129 161 lampret
output                  dwb_cyc_o;      // cycle valid output
130 168 lampret
output  [aw-1:0] dwb_adr_o;      // address bus outputs
131 161 lampret
output                  dwb_stb_o;      // strobe output
132
output                  dwb_we_o;       // indicates write transfer
133 168 lampret
output  [3:0]            dwb_sel_o;      // byte select outputs
134
output  [dw-1:0] dwb_dat_o;      // output data bus
135 161 lampret
 
136
//
137 205 lampret
// External Debug Interface
138
//
139
input                   dbg_stall_i;    // External Stall Input
140
input   [dw-1:0] dbg_dat_i;      // External Data Input
141
input   [aw-1:0] dbg_adr_i;      // External Address Input
142
input   [2:0]            dbg_op_i;       // External Operation Select Input
143
input                   dbg_ewt_i;      // External Watchpoint Trigger Input
144
output  [3:0]            dbg_lss_o;      // External Load/Store Unit Status
145
output  [1:0]            dbg_is_o;       // External Insn Fetch Status
146
output  [10:0]           dbg_wp_o;       // Watchpoints Outputs
147
output                  dbg_bp_o;       // Breakpoint Output
148
output  [dw-1:0] dbg_dat_o;      // External Data Output
149
 
150
//
151 168 lampret
// Power Management
152 161 lampret
//
153
input                   pm_cpustall;
154 209 lampret
output  [3:0]            pm_clksd;
155 168 lampret
output                  pm_dc_gate;
156
output                  pm_ic_gate;
157
output                  pm_dmmu_gate;
158
output                  pm_immu_gate;
159
output                  pm_tt_gate;
160
output                  pm_cpu_gate;
161
output                  pm_wakeup;
162
output                  pm_lvolt;
163 161 lampret
 
164 205 lampret
 
165 168 lampret
//
166
// Internal wires and regs
167
//
168
 
169
//
170 161 lampret
// DC to BIU
171 168 lampret
//
172 170 lampret
wire                    dcbiu_rdy;
173
wire    [dw-1:0]         dcbiu_from_biu;
174
wire    [dw-1:0]         dcbiu_to_biu;
175
wire    [aw-1:0]         dcbiu_addr;
176
wire                    dcbiu_read;
177
wire                    dcbiu_write;
178
wire    [3:0]            dcbiu_sel;
179 161 lampret
 
180 168 lampret
//
181 161 lampret
// IC to BIU
182 168 lampret
//
183 170 lampret
wire                    icbiu_rdy;
184
wire    [dw-1:0] icbiu_from_biu;
185
wire    [aw-1:0] icbiu_addr;
186
wire                    icbiu_read;
187
wire    [3:0]            icbiu_sel;
188 161 lampret
 
189 168 lampret
//
190 161 lampret
// CPU's SPR access to various RISC units (shared wires)
191 168 lampret
//
192 203 lampret
wire                    supv;
193 170 lampret
wire    [aw-1:0] spr_addr;
194
wire    [dw-1:0] spr_dat_cpu;
195
wire    [31:0]           spr_cs;
196 161 lampret
wire                    spr_we;
197
 
198 168 lampret
//
199 203 lampret
// DMMU and CPU
200
//
201
wire                    dmmu_en;
202
wire                    dmmuexcept_miss;
203
wire                    dmmuexcept_fault;
204
wire    [31:0]           spr_dat_dmmu;
205
 
206
//
207
// DMMU and DC
208
//
209
wire    [aw-1:0] dcdmmu_paddr;
210
 
211
//
212 161 lampret
// DC and CPU's LSU
213 168 lampret
//
214 170 lampret
wire                    dclsu_stall;
215 203 lampret
wire                    dclsu_unstall;
216 170 lampret
wire    [aw-1:0] dclsu_addr;
217
wire    [aw-1:0] dclsu_from_dc;
218
wire    [aw-1:0] dclsu_to_dc;
219
wire    [`LSUOP_WIDTH-1:0] dclsu_lsuop;
220 168 lampret
wire                    dc_en;
221 161 lampret
 
222 168 lampret
//
223 203 lampret
// IMMU and CPU
224
//
225
wire                    immu_en;
226
wire                    immuexcept_miss;
227
wire                    immuexcept_fault;
228
wire    [31:0]           spr_dat_immu;
229
 
230
//
231 161 lampret
// IC and CPU's ifetch
232 168 lampret
//
233 170 lampret
wire                    icfetch_stall;
234
wire    [aw-1:0] icfetch_addr;
235
wire    [dw-1:0] icfetch_dataout;
236 203 lampret
wire    [`FETCHOP_WIDTH-1:0] icfetch_op;
237 170 lampret
wire                    ic_en;
238 161 lampret
 
239 168 lampret
//
240 203 lampret
// IMMU and IC
241
//
242
wire    [aw-1:0] icimmu_paddr;
243
 
244
//
245 161 lampret
// Connection between CPU and PIC
246 168 lampret
//
247 170 lampret
wire    [dw-1:0] spr_dat_pic;
248
wire                    pic_wakeup;
249
wire                    int_low;
250
wire                    int_high;
251 161 lampret
wire                    int_high_tt;
252
 
253 168 lampret
//
254 161 lampret
// Connection between CPU and PM
255 168 lampret
//
256 170 lampret
wire    [dw-1:0] spr_dat_pm;
257 161 lampret
 
258 168 lampret
//
259 161 lampret
// CPU and TT
260 168 lampret
//
261 170 lampret
wire    [dw-1:0] spr_dat_tt;
262 161 lampret
wire                    tt_int;
263
 
264 168 lampret
//
265 161 lampret
// Trace port and caches/MMUs
266 168 lampret
//
267 209 lampret
wire    [dw-1:0] spr_dat_du;
268
wire                    du_stall;
269
wire    [dw-1:0] du_addr;
270
wire    [dw-1:0] du_dat_du;
271
wire                    du_read;
272
wire                    du_write;
273 210 lampret
wire    [`EXCEPT_WIDTH-1:0] du_except;
274 161 lampret
 
275
//
276
// Assignments
277
//
278
assign int_high_tt = int_high | tt_int;
279
 
280
//
281
// Instantiation of Instruction WISHBONE BIU
282
//
283
wb_biu iwb_biu(
284
        // WISHBONE interface
285
        .wb_clk_i(iwb_clk_i),
286
        .wb_rst_i(iwb_rst_i),
287
        .wb_ack_i(iwb_ack_i),
288
        .wb_err_i(iwb_err_i),
289
        .wb_rty_i(iwb_rty_i),
290
        .wb_dat_i(iwb_dat_i),
291
        .wb_cyc_o(iwb_cyc_o),
292
        .wb_adr_o(iwb_adr_o),
293
        .wb_stb_o(iwb_stb_o),
294
        .wb_we_o(iwb_we_o),
295
        .wb_sel_o(iwb_sel_o),
296
        .wb_dat_o(iwb_dat_o),
297
 
298
        // Internal RISC bus
299
        .biu_to_biu(32'b0),
300
        .biu_addr(icbiu_addr),
301
        .biu_read(icbiu_read),
302
        .biu_write(1'b0),
303
        .biu_rdy(icbiu_rdy),
304 166 lampret
        .biu_from_biu(icbiu_from_biu),
305 170 lampret
        .biu_sel(icbiu_sel)
306 161 lampret
);
307
 
308
//
309
// Instantiation of Data WISHBONE BIU
310
//
311
wb_biu dwb_biu(
312
        // WISHBONE interface
313
        .wb_clk_i(dwb_clk_i),
314
        .wb_rst_i(dwb_rst_i),
315
        .wb_ack_i(dwb_ack_i),
316
        .wb_err_i(dwb_err_i),
317
        .wb_rty_i(dwb_rty_i),
318
        .wb_dat_i(dwb_dat_i),
319
        .wb_cyc_o(dwb_cyc_o),
320
        .wb_adr_o(dwb_adr_o),
321
        .wb_stb_o(dwb_stb_o),
322
        .wb_we_o(dwb_we_o),
323
        .wb_sel_o(dwb_sel_o),
324
        .wb_dat_o(dwb_dat_o),
325
 
326
        // Internal RISC bus
327
        .biu_to_biu(dcbiu_to_biu),
328
        .biu_addr(dcbiu_addr),
329
        .biu_read(dcbiu_read),
330
        .biu_write(dcbiu_write),
331
        .biu_rdy(dcbiu_rdy),
332 166 lampret
        .biu_from_biu(dcbiu_from_biu),
333
        .biu_sel(dcbiu_sel)
334 161 lampret
);
335
 
336
//
337 203 lampret
// Instantiation of IMMU
338
//
339
immu immu(
340
        // Rst and clk
341
        .clk(clk),
342
        .rst(rst),
343
 
344
        // Fetch i/f
345
        .immu_en(immu_en),
346
        .supv(supv),
347
        .immufetch_vaddr(icfetch_addr),
348
        .immufetch_op(icfetch_op),
349
        .immufetch_stall(),
350
 
351
        // Except I/F
352
        .immuexcept_miss(immuexcept_miss),
353
        .immuexcept_fault(immuexcept_fault),
354
 
355
        // SPR access
356
        .spr_cs(spr_cs[`SPR_GROUP_IMMU]),
357
        .spr_write(spr_we),
358
        .spr_addr(spr_addr),
359
        .spr_dat_i(spr_dat_cpu),
360
        .spr_dat_o(spr_dat_immu),
361
 
362
        // IC i/f
363
        .icimmu_paddr(icimmu_paddr)
364
);
365
 
366
//
367 161 lampret
// Instantiation of Instruction Cache
368
//
369
ic ic(
370
        .clk(clk),
371
        .rst(rst),
372
        .clkdiv_by_2(clkdiv_by_2),
373
 
374
        // These connect IC to CPU's ifetch
375 203 lampret
        .icfetch_addr(icimmu_paddr),
376
        .icfetch_op(icfetch_op),
377 161 lampret
        .icfetch_dataout(icfetch_dataout),
378
        .icfetch_stall(icfetch_stall),
379 170 lampret
        .ic_en(ic_en),
380 161 lampret
 
381 205 lampret
        // SPR access
382
        .spr_cs(spr_cs[`SPR_GROUP_IC]),
383
        .spr_write(spr_we),
384
        .spr_addr(spr_addr),
385
        .spr_dat_i(spr_dat_cpu),
386
 
387 161 lampret
        // These connect IC to BIU
388
        .icbiu_rdy(icbiu_rdy),
389
        .icbiu_datain(icbiu_from_biu),
390
        .icbiu_addr(icbiu_addr),
391
        .icbiu_read(icbiu_read),
392 205 lampret
        .icbiu_sel(icbiu_sel)
393 161 lampret
);
394
 
395
//
396
// Instantiation of Instruction Cache
397
//
398
cpu cpu(
399
        .clk(clk),
400
        .rst(rst),
401
 
402 203 lampret
        // Connection IC and IFETCHER inside CPU
403 161 lampret
        .ic_insn(icfetch_dataout),
404 203 lampret
        .ic_addr(icfetch_addr),
405 161 lampret
        .ic_stall(icfetch_stall),
406 203 lampret
        .ic_fetchop(icfetch_op),
407 170 lampret
        .ic_en(ic_en),
408 161 lampret
 
409 203 lampret
        // Connection CPU to external Trace port
410 209 lampret
        .du_stall(du_stall),
411
        .du_addr(du_addr),
412
        .du_dat_du(du_dat_du),
413
        .du_read(du_read),
414
        .du_write(du_write),
415 210 lampret
        .du_except(du_except),
416 161 lampret
 
417 203 lampret
        // Connection IMMU and CPU internally
418
        .immu_en(immu_en),
419
        .immuexcept_miss(immuexcept_miss),
420
        .immuexcept_fault(immuexcept_fault),
421
 
422
        // Connection DMMU and CPU internally
423
        .dmmu_en(dmmu_en),
424
        .dmmuexcept_miss(dmmuexcept_miss),
425
        .dmmuexcept_fault(dmmuexcept_fault),
426
 
427
        // Connection DC and CPU's LSU
428 161 lampret
        .dclsu_stall(dclsu_stall),
429 203 lampret
        .dclsu_unstall(dclsu_unstall),
430 161 lampret
        .dclsu_addr(dclsu_addr),
431
        .dclsu_datain(dclsu_from_dc),
432
        .dclsu_dataout(dclsu_to_dc),
433
        .dclsu_lsuop(dclsu_lsuop),
434 168 lampret
        .dc_en(dc_en),
435 161 lampret
 
436 203 lampret
        // Connection PIC and CPU's EXCEPT
437 161 lampret
        .int_high(int_high_tt),
438
        .int_low(int_low),
439
 
440
        // SPRs
441 203 lampret
        .supv(supv),
442 161 lampret
        .spr_addr(spr_addr),
443
        .spr_dataout(spr_dat_cpu),
444
        .spr_dat_pic(spr_dat_pic),
445
        .spr_dat_tt(spr_dat_tt),
446
        .spr_dat_pm(spr_dat_pm),
447 203 lampret
        .spr_dat_dmmu(spr_dat_dmmu),
448 209 lampret
        .spr_dat_immu(spr_dat_immu),
449 161 lampret
        .spr_cs(spr_cs),
450 209 lampret
        .spr_we(spr_we)
451 161 lampret
);
452
 
453
//
454 203 lampret
// Instantiation of DMMU
455
//
456
dmmu dmmu(
457
        // Rst and clk
458
        .clk(clk),
459
        .rst(rst),
460
 
461
        // LSU i/f
462
        .dmmu_en(dmmu_en),
463
        .supv(supv),
464
        .dmmulsu_vaddr(dclsu_addr),
465
        .dmmulsu_lsuop(dclsu_lsuop),
466
        .dmmulsu_stall(),
467
 
468
        // Except I/F
469
        .dmmuexcept_miss(dmmuexcept_miss),
470
        .dmmuexcept_fault(dmmuexcept_fault),
471
 
472
        // SPR access
473
        .spr_cs(spr_cs[`SPR_GROUP_DMMU]),
474
        .spr_write(spr_we),
475
        .spr_addr(spr_addr),
476
        .spr_dat_i(spr_dat_cpu),
477
        .spr_dat_o(spr_dat_dmmu),
478
 
479
        // DC i/f
480
        .dcdmmu_paddr(dcdmmu_paddr)
481
);
482
 
483
//
484 161 lampret
// Instantiation of Data Cache
485
//
486
dc dc(
487
        .clk(clk),
488
        .rst(rst),
489
        .clkdiv_by_2(clkdiv_by_2),
490
 
491
        // These connect DC to CPU's LSU
492 203 lampret
        .dclsu_addr(dcdmmu_paddr),
493 161 lampret
        .dclsu_lsuop(dclsu_lsuop),
494
        .dclsu_datain(dclsu_to_dc),
495
        .dclsu_dataout(dclsu_from_dc),
496
        .dclsu_stall(dclsu_stall),
497 203 lampret
        .dclsu_unstall(dclsu_unstall),
498 168 lampret
        .dc_en(dc_en),
499 161 lampret
 
500 205 lampret
        // SPR access
501
        .spr_cs(spr_cs[`SPR_GROUP_DC]),
502
        .spr_write(spr_we),
503
        .spr_addr(spr_addr),
504
        .spr_dat_i(spr_dat_cpu),
505
 
506 161 lampret
        // These connect DC to BIU
507
        .dcbiu_rdy(dcbiu_rdy),
508
        .dcbiu_datain(dcbiu_from_biu),
509
        .dcbiu_dataout(dcbiu_to_biu),
510
        .dcbiu_addr(dcbiu_addr),
511
        .dcbiu_read(dcbiu_read),
512
        .dcbiu_write(dcbiu_write),
513 209 lampret
        .dcbiu_sel(dcbiu_sel)
514 161 lampret
);
515
 
516
//
517 205 lampret
// Instantiation of Debug Unit
518
//
519
du du(
520
        // RISC Internal Interface
521
        .clk(clk),
522
        .rst(rst),
523
        .dclsu_lsuop(dclsu_lsuop),
524
        .icfetch_op(icfetch_op),
525
 
526
        // DU's access to SPR unit
527 209 lampret
        .du_stall(du_stall),
528
        .du_addr(du_addr),
529
        .du_dat_i(spr_dat_cpu),
530
        .du_dat_o(du_dat_du),
531
        .du_read(du_read),
532
        .du_write(du_write),
533 210 lampret
        .du_except(du_except),
534 205 lampret
 
535
        // Access to DU's SPRs
536
        .spr_cs(spr_cs[`SPR_GROUP_DU]),
537
        .spr_write(spr_we),
538
        .spr_addr(spr_addr),
539
        .spr_dat_i(spr_dat_cpu),
540 209 lampret
        .spr_dat_o(spr_dat_du),
541 205 lampret
 
542
        // External Debug Interface
543
        .dbg_stall_i(dbg_stall_i),
544
        .dbg_dat_i(dbg_dat_i),
545
        .dbg_adr_i(dbg_adr_i),
546
        .dbg_op_i(dbg_op_i),
547
        .dbg_ewt_i(dbg_ewt_i),
548
        .dbg_lss_o(dbg_lss_o),
549
        .dbg_is_o(dbg_is_o),
550
        .dbg_wp_o(dbg_wp_o),
551
        .dbg_bp_o(dbg_bp_o),
552
        .dbg_dat_o(dbg_dat_o)
553
);
554
 
555
//
556 161 lampret
// Programmable interrupt controller
557
//
558
pic pic(
559
        // RISC Internal Interface
560
        .clk(clk),
561
        .rst(rst),
562
        .spr_cs(spr_cs[`SPR_GROUP_PIC]),
563
        .spr_write(spr_we),
564
        .spr_addr(spr_addr),
565
        .spr_dat_i(spr_dat_cpu),
566
        .spr_dat_o(spr_dat_pic),
567
        .pic_wakeup(pic_wakeup),
568
        .int_low(int_low),
569
        .int_high(int_high),
570
 
571
        // PIC Interface
572
        .pic_int(pic_ints)
573
);
574
 
575
//
576
// Instantiation of Tick timer
577
//
578
tt tt(
579
        // RISC Internal Interface
580
        .clk(clk),
581
        .rst(rst),
582
        .spr_cs(spr_cs[`SPR_GROUP_TT]),
583
        .spr_write(spr_we),
584
        .spr_addr(spr_addr),
585
        .spr_dat_i(spr_dat_cpu),
586
        .spr_dat_o(spr_dat_tt),
587
        .int(tt_int)
588
);
589
 
590
//
591
// Instantiation of Power Management
592
//
593
pm pm(
594
        // RISC Internal Interface
595
        .clk(clk),
596
        .rst(rst),
597
        .pic_wakeup(pic_wakeup),
598
        .spr_write(spr_we),
599
        .spr_addr(spr_addr),
600
        .spr_dat_i(spr_dat_cpu),
601
        .spr_dat_o(spr_dat_pm),
602
 
603
        // Power Management Interface
604
        .pm_clksd(pm_clksd),
605
        .pm_cpustall(pm_cpustall),
606
        .pm_dc_gate(pm_dc_gate),
607
        .pm_ic_gate(pm_ic_gate),
608
        .pm_dmmu_gate(pm_dmmu_gate),
609
        .pm_immu_gate(pm_immu_gate),
610
        .pm_tt_gate(pm_tt_gate),
611
        .pm_cpu_gate(pm_cpu_gate),
612
        .pm_wakeup(pm_wakeup),
613
        .pm_lvolt(pm_lvolt)
614
);
615
 
616
 
617
endmodule

powered by: WebSVN 2.1.0

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