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

Subversion Repositories kiss-board

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 fukuchi
 
2
`timescale 1ps/1ps
3
 
4
//
5
// Address map
6
//
7
`define APP_ADDR_DEC_W  8
8
`define APP_ADDR_SRAM   `APP_ADDR_DEC_W'h00
9
 
10
`define APP_ADDR_FLASH  `APP_ADDR_DEC_W'h04
11
`define APP_ADDR_DECP_W  4
12
`define APP_ADDR_PERIP  `APP_ADDR_DEC_W'h9
13
`define APP_ADDR_VGA    `APP_ADDR_DEC_W'h97
14
`define APP_ADDR_ETH    `APP_ADDR_DEC_W'h92
15
`define APP_ADDR_AUDIO  `APP_ADDR_DEC_W'h9d
16
`define APP_ADDR_UART   `APP_ADDR_DEC_W'h90
17
`define APP_ADDR_PS2    `APP_ADDR_DEC_W'h94
18
`define APP_ADDR_RES1   `APP_ADDR_DEC_W'h9e
19
`define APP_ADDR_RES2   `APP_ADDR_DEC_W'h9f
20
`define APP_ADDR_FAKEMC 4'h6
21
 
22
// 0x0000_0000 - 0x3fff_ffff RAM (1GByte)
23
        //0x00xx_xxxx(0x0000_0000-0x001f_ffff) Cached External_SDRAM0 CS0 BANK0(2Mbyte)
24
        //0x00xx_xxxx(0x002f_0000-0x003f_ffff) Cached External_SDRAM0 CS0 BANK1(2Mbyte)
25
        //0x00xx_xxxx(0x0040_0000-0x005f_ffff) Cached External_SDRAM0 CS0 BANK2(2Mbyte)
26
        //0x00xx_xxxx(0x0060_0000-0x007f_ffff) Cached External_SDRAM0 CS0 BANK3(2Mbyte)
27
        //0x00xx_xxxx(0x0080_0000-0x009f_ffff) Cached External_SDRAM0 CS1 BANK0(2Mbyte)
28
        //0x00xx_xxxx(0x00af_0000-0x00bf_ffff) Cached External_SDRAM0 CS1 BANK1(2Mbyte)
29
        //0x00xx_xxxx(0x00c0_0000-0x00df_ffff) Cached External_SDRAM0 CS1 BANK2(2Mbyte)
30
        //0x00xx_xxxx(0x00d0_0000-0x00ff_ffff) Cached External_SDRAM0 CS1 BANK3(2Mbyte)
31
 
32
        //0x01xx_xxxx(0x0100_0000-0x011f_ffff) Cached External_SDRAM1 CS0 BANK0(2Mbyte)
33
        //0x01xx_xxxx(0x012f_0000-0x013f_ffff) Cached External_SDRAM1 CS0 BANK1(2Mbyte)
34
        //0x01xx_xxxx(0x0140_0000-0x015f_ffff) Cached External_SDRAM1 CS0 BANK2(2Mbyte)
35
        //0x01xx_xxxx(0x0160_0000-0x017f_ffff) Cached External_SDRAM1 CS0 BANK3(2Mbyte)
36
        //0x01xx_xxxx(0x0180_0000-0x019f_ffff) Cached External_SDRAM1 CS1 BANK0(2Mbyte)
37
        //0x01xx_xxxx(0x01af_0000-0x01bf_ffff) Cached External_SDRAM1 CS1 BANK1(2Mbyte)
38
        //0x01xx_xxxx(0x01c0_0000-0x01df_ffff) Cached External_SDRAM1 CS1 BANK2(2Mbyte)
39
        //0x01xx_xxxx(0x01d0_0000-0x01ff_ffff) Cached External_SDRAM1 CS1 BANK3(2Mbyte)
40
 
41
        //0x02xx_xxxx(0x0200_0000-0x02ff_ffff) Cached None
42
 
43
        //0x03xx_xxxx(0x0300_0000-0x03ff_ffff) Cached None
44
 
45
        //0x04xx_xxxx(0x0400_0000-0x041f_ffff) Cached External_FLASH(2MByte) ( FPGA-CODE + PROGRAM-CODE )
46
        //0x04xx_xxxx(0x0420_0000-0x043f_ffff) Cached External_FLASH(2MByte) image
47
        //0x04xx_xxxx(0x0440_0000-0x045f_ffff) Cached External_FLASH(2MByte) image
48
        //0x04xx_xxxx(0x0460_0000-0x047f_ffff) Cached External_FLASH(2MByte) image
49
        //0x04xx_xxxx(0x0480_0000-0x049f_ffff) Cached External_FLASH(2MByte) image
50
        //0x04xx_xxxx(0x04a0_0000-0x04bf_ffff) Cached External_FLASH(2MByte) image
51
        //0x04xx_xxxx(0x04c0_0000-0x04df_ffff) Cached External_FLASH(2MByte) image
52
        //0x04xx_xxxx(0x04d0_0000-0x04ff_ffff) Cached External_FLASH(2MByte) image
53
 
54
        //....
55
 
56
// 0x4000_0000 - 0x7fff_ffff Resevved(1GByte)
57
        //....
58
 
59
// 0x8000_0000 - 0xefff_ffff DEVICE,etc
60
        //      0x90xx_xxxx(0x9000_0000-0x90ff_ffff) Uncached 16MB UART16550 Controller 0-15
61
        //      ....
62
 
63
// 0xf000_0000 - 0xffff_ffff ROM(256MByte)
64
        //      ....
65
 
66
module tessera_core (
67
        //
68
        sys_or1200_res,
69
        sys_or1200_clk,
70
        sys_wb_res,
71
        sys_wb_clk,
72
        sys_mem_res,
73
        sys_mem_clk,
74
        sys_sdram_res,
75
        sys_sdram_clk,
76
        sys_vga_res,
77
        sys_vga_clk,
78
        sys_clmode,
79
        //
80
        jtag_tms,
81
        jtag_tck,
82
        jtag_trst,
83
        jtag_tdi,
84
        jtag_tdo_o,
85
        jtag_tdo_oe,
86
        //
87
        uart_stx,
88
        uart_srx,
89
        uart_rts,
90
        uart_cts,
91
        uart_dtr,
92
        uart_dsr,
93
        uart_ri,
94
        uart_dcd,
95
        //
96
        mem_cs2_n,
97
        mem_cs2_g_n,
98
        mem_cs2_dir,
99
        mem_cs2_rstdrv,
100
        mem_cs2_int,
101
        mem_cs2_iochrdy,
102
        mem_cs1_n,
103
        mem_cs1_rst_n,
104
        mem_cs1_rdy,
105
        mem_cs0_n,
106
        mem_we_n,
107
        mem_oe_n,
108
        mem_a,
109
        mem_d_o,
110
        mem_d_oe,
111
        mem_d_i,
112
        //
113
        sdram0_clk,
114
        sdram0_cke,
115
        sdram0_cs_n,
116
        sdram0_ras_n,
117
        sdram0_cas_n,
118
        sdram0_we_n,
119
        sdram0_dqm,
120
        sdram0_ba,
121
        sdram0_a,
122
        sdram0_d_i,
123
        sdram0_d_oe,
124
        sdram0_d_o,
125
        //
126
        sdram1_clk,
127
        sdram1_cke,
128
        sdram1_cs_n,
129
        sdram1_ras_n,
130
        sdram1_cas_n,
131
        sdram1_we_n,
132
        sdram1_dqm,
133
        sdram1_ba,
134
        sdram1_a,
135
        sdram1_d_i,
136
        sdram1_d_oe,
137
        sdram1_d_o,
138
        //
139
        vga_clk,
140
        vga_hsync,
141
        vga_vsync,
142
        vga_blank,
143
        vga_d,
144
        //
145
        option
146
);
147
        // system
148
        input           sys_or1200_res;
149
        input           sys_or1200_clk;
150
        input           sys_wb_res;
151
        input           sys_wb_clk;
152
        input           sys_mem_res;
153
        input           sys_mem_clk;
154
        input           sys_sdram_res;
155
        input           sys_sdram_clk;
156
        input           sys_vga_res;
157
        input           sys_vga_clk;
158
        input   [1:0]    sys_clmode;
159
        // debug
160
        input           jtag_tms;
161
        input           jtag_tck;
162
        input           jtag_trst;
163
        input           jtag_tdi;
164
        output          jtag_tdo_o;
165
        output          jtag_tdo_oe;
166
        // uart
167
        output          uart_stx;
168
        input           uart_srx;
169
        output          uart_rts;
170
        input           uart_cts;
171
        output          uart_dtr;
172
        input           uart_dsr;
173
        input           uart_ri;
174
        input           uart_dcd;
175
        // flash
176
        //output                flash_rstn;
177
        //output                flash_cen;
178
        //output                flash_oen;
179
        //output                flash_wen;
180
        //input         flash_rdy;
181
        //inout [7:0]   flash_d; // IO
182
        //output        [22:0]  flash_a;
183
        //output                flash_a_oe;
184
        output          mem_cs2_n;
185
        output          mem_cs2_g_n;
186
        output          mem_cs2_dir;
187
        output          mem_cs2_rstdrv;
188
        input           mem_cs2_int;
189
        input           mem_cs2_iochrdy;
190
        output          mem_cs1_n;
191
        output          mem_cs1_rst_n;
192
        input           mem_cs1_rdy;
193
        output          mem_cs0_n;
194
        output          mem_we_n;
195
        output          mem_oe_n;
196
        output  [22:0]   mem_a;
197
        output  [7:0]    mem_d_o;
198
        output  [7:0]    mem_d_oe;
199
        input   [7:0]    mem_d_i;
200
        // sdram0
201
        output          sdram0_clk;
202
        output          sdram0_cke;
203
        output  [1:0]    sdram0_cs_n;
204
        output          sdram0_ras_n;
205
        output          sdram0_cas_n;
206
        output          sdram0_we_n;
207
        output  [1:0]    sdram0_dqm;
208
        output  [1:0]    sdram0_ba;
209
        output  [12:0]   sdram0_a;
210
        input   [15:0]   sdram0_d_i;
211
        output  [15:0]   sdram0_d_oe;
212
        output  [15:0]   sdram0_d_o;
213
        // sdram1
214
        output          sdram1_clk;
215
        output          sdram1_cke;
216
        output  [1:0]    sdram1_cs_n;
217
        output          sdram1_ras_n;
218
        output          sdram1_cas_n;
219
        output          sdram1_we_n;
220
        output  [1:0]    sdram1_dqm;
221
        output  [1:0]    sdram1_ba;
222
        output  [12:0]   sdram1_a;
223
        input   [15:0]   sdram1_d_i;
224
        output  [15:0]   sdram1_d_oe;
225
        output  [15:0]   sdram1_d_o;
226
        // vga
227
        output          vga_clk;
228
        output          vga_hsync;
229
        output          vga_vsync;
230
        output          vga_blank;
231
        output  [23:0]   vga_d;
232
        // test
233
        input           option;
234
 
235
// Interrupt signals
236
        wire    [19:0]   pic_ints;
237
        wire            uart_int;
238
        wire            dma_a_int;
239
        wire            dma_b_int;
240
 
241
// Misc signal
242
        // VGA
243
        wire            vram_dma_req;
244
        wire    [31:0]   vram_dma_address;
245
        wire            vram_dma_ack;
246
        wire            vram_dma_exist;
247
        wire    [15:0]   vram_dma_data;
248
        // Debug
249
        wire            dbg_stall;
250
        wire    [31:0]   dbg_dat_dbg;
251
        wire    [31:0]   dbg_adr;
252
        wire    [3:0]    dbg_lss;
253
        wire    [1:0]    dbg_is;
254
        wire    [10:0]   dbg_wp;
255
        wire            dbg_bp;
256
        wire    [31:0]   dbg_dat_risc;
257
        wire    [2:0]    dbg_op;
258
 
259
// WishBone Master signals
260
        // RiscInstractionMaster
261
        wire            wb_rim_cyc_o;
262
        wire    [31:0]   wb_rim_adr_o;
263
        wire    [31:0]   wb_rim_dat_i;
264
        wire    [31:0]   wb_rim_dat_o;
265
        wire    [3:0]    wb_rim_sel_o;
266
        wire            wb_rim_ack_i;
267
        wire            wb_rim_err_i;
268
        wire            wb_rim_rty_i;
269
        wire            wb_rim_we_o;
270
        wire            wb_rim_stb_o;
271
        wire            wb_rim_cab_o;
272
        // RiscDataMaster
273
        wire            wb_rdm_cyc_o;
274
        wire    [31:0]   wb_rdm_adr_o;
275
        wire    [31:0]   wb_rdm_dat_i;
276
        wire    [31:0]   wb_rdm_dat_o;
277
        wire    [3:0]    wb_rdm_sel_o;
278
        wire            wb_rdm_ack_i;
279
        wire            wb_rdm_err_i;
280
        wire            wb_rdm_rty_i;
281
        wire            wb_rdm_we_o;
282
        wire            wb_rdm_stb_o;
283
        wire            wb_rdm_cab_o;
284
        // DebugMaster
285
        wire    [31:0]   wb_dm_adr_o;
286
        wire    [31:0]   wb_dm_dat_i;
287
        wire    [31:0]   wb_dm_dat_o;
288
        wire    [3:0]    wb_dm_sel_o;
289
        wire            wb_dm_we_o;
290
        wire            wb_dm_stb_o;
291
        wire            wb_dm_cyc_o;
292
        wire            wb_dm_cab_o;
293
        wire            wb_dm_ack_i;
294
        wire            wb_dm_err_i;
295
        // TICMaster
296
        wire            wb_ticm_cyc_o;
297
        wire    [31:0]   wb_ticm_adr_o;
298
        wire    [31:0]   wb_ticm_dat_i;
299
        wire    [31:0]   wb_ticm_dat_o;
300
        wire    [3:0]    wb_ticm_sel_o;
301
        wire            wb_ticm_ack_i;
302
        wire            wb_ticm_err_i;
303
        wire            wb_ticm_rty_i;
304
        wire            wb_ticm_we_o;
305
        wire            wb_ticm_stb_o;
306
        wire            wb_ticm_cab_o;
307
        // DMA Master0
308
        wire            wb_dma0m_cyc_o;
309
        wire    [31:0]   wb_dma0m_adr_o;
310
        wire    [31:0]   wb_dma0m_dat_i;
311
        wire    [31:0]   wb_dma0m_dat_o;
312
        wire    [3:0]    wb_dma0m_sel_o;
313
        wire            wb_dma0m_ack_i;
314
        wire            wb_dma0m_err_i;
315
        wire            wb_dma0m_rty_i;
316
        wire            wb_dma0m_we_o;
317
        wire            wb_dma0m_stb_o;
318
        wire            wb_dma0m_cab_o;
319
        // DMA Master1
320
        //wire          wb_dma1m_cyc_o;
321
        //wire  [31:0]  wb_dma1m_adr_o;
322
        //wire  [31:0]  wb_dma1m_dat_i;
323
        //wire  [31:0]  wb_dma1m_dat_o;
324
        //wire  [3:0]   wb_dma1m_sel_o;
325
        //wire          wb_dma1m_ack_i;
326
        //wire          wb_dma1m_err_i;
327
        //wire          wb_dma1m_rty_i;
328
        //wire          wb_dma1m_we_o;
329
        //wire          wb_dma1m_stb_o;
330
        //wire          wb_dma1m_cab_o;
331
 
332
// WishBone Slave signals
333
        // small SRAM0
334
        wire            wb_ram0s_cyc_i;
335
        wire            wb_ram0s_stb_i;
336
        wire            wb_ram0s_cab_i;
337
        wire    [31:0]   wb_ram0s_adr_i;
338
        wire    [3:0]    wb_ram0s_sel_i;
339
        wire            wb_ram0s_we_i;
340
        wire    [31:0]   wb_ram0s_dat_i;
341
        wire    [31:0]   wb_ram0s_dat_o;
342
        wire            wb_ram0s_ack_o;
343
        wire            wb_ram0s_err_o;
344
        // small SRAM1
345
        wire            wb_ram1s_cyc_i;
346
        wire            wb_ram1s_stb_i;
347
        wire            wb_ram1s_cab_i;
348
        wire    [31:0]   wb_ram1s_adr_i;
349
        wire    [3:0]    wb_ram1s_sel_i;
350
        wire            wb_ram1s_we_i;
351
        wire    [31:0]   wb_ram1s_dat_i;
352
        wire    [31:0]   wb_ram1s_dat_o;
353
        wire            wb_ram1s_ack_o;
354
        wire            wb_ram1s_err_o;
355
        // FlashSlave
356
        wire            wb_flashs_cyc_i;
357
        wire            wb_flashs_stb_i;
358
        wire            wb_flashs_cab_i;
359
        wire    [31:0]   wb_flashs_adr_i;
360
        wire    [3:0]    wb_flashs_sel_i;
361
        wire            wb_flashs_we_i;
362
        wire    [31:0]   wb_flashs_dat_i;
363
        wire    [31:0]   wb_flashs_dat_o;
364
        wire            wb_flashs_ack_o;
365
        wire            wb_flashs_err_o;
366
        // Uart0Slave
367
        wire            wb_uarts_cyc_i;
368
        wire            wb_uarts_stb_i;
369
        wire            wb_uarts_cab_i;
370
        wire    [31:0]   wb_uarts_adr_i;
371
        wire    [3:0]    wb_uarts_sel_i;
372
        wire            wb_uarts_we_i;
373
        wire    [31:0]   wb_uarts_dat_i;
374
        wire    [31:0]   wb_uarts_dat_o;
375
        wire            wb_uarts_ack_o;
376
        wire            wb_uarts_err_o;
377
        // sdram0Slave
378
        wire            wb_sdram0s_cyc_i;
379
        wire            wb_sdram0s_stb_i;
380
        wire            wb_sdram0s_cab_i;
381
        wire    [31:0]   wb_sdram0s_adr_i;
382
        wire    [3:0]    wb_sdram0s_sel_i;
383
        wire            wb_sdram0s_we_i;
384
        wire    [31:0]   wb_sdram0s_dat_i;
385
        wire    [31:0]   wb_sdram0s_dat_o;
386
        wire            wb_sdram0s_ack_o;
387
        wire            wb_sdram0s_err_o;
388
        // sdram1Slave
389
        wire            wb_sdram1s_cyc_i;
390
        wire            wb_sdram1s_stb_i;
391
        wire            wb_sdram1s_cab_i;
392
        wire    [31:0]   wb_sdram1s_adr_i;
393
        wire    [3:0]    wb_sdram1s_sel_i;
394
        wire            wb_sdram1s_we_i;
395
        wire    [31:0]   wb_sdram1s_dat_i;
396
        wire    [31:0]   wb_sdram1s_dat_o;
397
        wire            wb_sdram1s_ack_o;
398
        wire            wb_sdram1s_err_o;
399
        // VGASlave
400
        wire            wb_vgas_cyc_i;
401
        wire            wb_vgas_stb_i;
402
        wire    [3:0]    wb_vgas_sel_i;
403
        wire            wb_vgas_we_i;
404
        wire    [31:0]   wb_vgas_adr_i;
405
        wire    [31:0]   wb_vgas_dat_i;
406
        wire            wb_vgas_cab_i;
407
        wire    [31:0]   wb_vgas_dat_o;
408
        wire            wb_vgas_ack_o;
409
        wire            wb_vgas_err_o;
410
        // DMA0Slave
411
        wire            wb_dma0s_cyc_i;
412
        wire            wb_dma0s_stb_i;
413
        wire    [3:0]    wb_dma0s_sel_i;
414
        wire            wb_dma0s_we_i;
415
        wire    [31:0]   wb_dma0s_adr_i;
416
        wire    [31:0]   wb_dma0s_dat_i;
417
        wire            wb_dma0s_cab_i;
418
        wire    [31:0]   wb_dma0s_dat_o;
419
        wire            wb_dma0s_ack_o;
420
        wire            wb_dma0s_err_o;
421
        // DMA1Slave
422
//      wire            wb_dma1s_cyc_i;
423
//      wire            wb_dma1s_stb_i;
424
//      wire    [3:0]   wb_dma1s_sel_i;
425
//      wire            wb_dma1s_we_i;
426
//      wire    [31:0]  wb_dma1s_adr_i;
427
//      wire    [31:0]  wb_dma1s_dat_i;
428
//      wire            wb_dma1s_cab_i;
429
//      wire    [31:0]  wb_dma1s_dat_o;
430
//      wire            wb_dma1s_ack_o;
431
//      wire            wb_dma1s_err_o;
432
 
433
///////////////////////////////////////////////////////////////////////////////
434
// Interrupt table
435
///////////////////////////////////////////////////////////////////////////////
436
        assign pic_ints[19:0] = {
437
              1'b0,             // INT19 I2C Controller 0, Digital Camera Controller 0
438
              1'b0,             // INT18 TDM Controller 0
439
              1'b0,             // INT17 HDLC Controller 0
440
              1'b0,             // INT16 Firewire Controller 0
441
              1'b0,             // INT15 IDE Controller 0
442
              1'b0,             // INT14 Audio Controller 0
443
              1'b0,             // INT13 USB Host Controller 0
444
              1'b0,             // INT12 USB Func Controller 0
445
              1'b0,             // INT11 General-Purpose DMA 0
446
              1'b0,             // INT10 PCI Controller 0
447
              1'b0,             // INT9  IrDA Controller 0
448
              1'b0,             // INT8  Graphics Controller 0
449
              1'b0,             // INT7  PWM/Timer/Counter Controller 0
450
              1'b0,             // INT6  Traffic COP 0, Real-Time Clock 0
451
              1'b0,             // INT5  PS/2 Controller 0
452
              dma_b_int,        // INT4  Ethernet Controller 0
453
              dma_a_int,        // INT3  General-Purpose I/O 0
454
              uart_int,         // INT2  UART16550 Controller 0
455
              1'b0,             // INT1  Reserved
456
              1'b0              // INT0  Reserved
457
        };
458
///////////////////////////////////////////////////////////////////////////////
459
// Bus control
460
///////////////////////////////////////////////////////////////////////////////
461
//
462
// remap register
463
//
464
        reg             prefix_flash;
465
        always @(posedge sys_wb_clk or posedge sys_wb_res)
466
                if (sys_wb_res)                                                                   prefix_flash <= #1 1'b1;
467
                else if (wb_rim_cyc_o &&(wb_rim_adr_o[31:32-`APP_ADDR_DEC_W] == `APP_ADDR_FLASH)) prefix_flash <= #1 1'b0;
468
// re-map Control(for Instraction Address)
469
// prefix = 1, 0x00xx_xxxx -> 0x04xx_xxxx
470
// prefix = 0, through
471
        wire    [31:0]   wb_rif_adr;
472
        assign wb_rif_adr = prefix_flash ? {`APP_ADDR_FLASH, wb_rim_adr_o[31-`APP_ADDR_DEC_W:0]}: wb_rim_adr_o;
473
//
474
// FAKEMC
475
//
476
        wire            wb_rdm_ack;
477
        assign wb_rdm_ack_i = (wb_rdm_adr_o[31:28] == `APP_ADDR_FAKEMC) && wb_rdm_cyc_o && wb_rdm_stb_o ? 1'b1 : wb_rdm_ack;
478
///////////////////////////////////////////////////////////////////////////////
479
// WishBone Master&Slave Device
480
///////////////////////////////////////////////////////////////////////////////
481
//
482
// or1200
483
//
484
        assign wb_rim_rty_i = 1'b0; // not support
485
        assign wb_rdm_rty_i = 1'b0; // not support
486
        or1200_top i_or1200_top (
487
                // system
488
                .rst_i(         sys_or1200_res),
489
                .clk_i(         sys_or1200_clk),
490
                .clmode_i(      sys_clmode),
491
                .iwb_clk_i(     sys_wb_clk),
492
                .iwb_rst_i(     sys_wb_res),
493
                // wishbone instruction
494
                .iwb_cyc_o(     wb_rim_cyc_o),
495
                .iwb_adr_o(     wb_rim_adr_o),
496
                .iwb_dat_i(     wb_rim_dat_i),
497
                .iwb_dat_o(     wb_rim_dat_o),
498
                .iwb_sel_o(     wb_rim_sel_o),
499
                .iwb_ack_i(     wb_rim_ack_i),
500
                .iwb_err_i(     wb_rim_err_i),
501
                .iwb_rty_i(     wb_rim_rty_i),
502
                .iwb_we_o(      wb_rim_we_o),
503
                .iwb_stb_o(     wb_rim_stb_o),
504
                .iwb_cab_o(     wb_rim_cab_o),
505
                // wishbone data
506
                .dwb_clk_i(     sys_wb_clk),
507
                .dwb_rst_i(     sys_wb_res),
508
                .dwb_cyc_o(     wb_rdm_cyc_o),
509
                .dwb_adr_o(     wb_rdm_adr_o),
510
                .dwb_dat_i(     wb_rdm_dat_i),
511
                .dwb_dat_o(     wb_rdm_dat_o),
512
                .dwb_sel_o(     wb_rdm_sel_o),
513
                .dwb_ack_i(     wb_rdm_ack_i),
514
                .dwb_err_i(     wb_rdm_err_i),
515
                .dwb_rty_i(     wb_rdm_rty_i),
516
                .dwb_we_o(      wb_rdm_we_o),
517
                .dwb_stb_o(     wb_rdm_stb_o),
518
                .dwb_cab_o(     wb_rdm_cab_o),
519
                // debug
520
                .dbg_stall_i(   dbg_stall),
521
                .dbg_dat_i(     dbg_dat_dbg),
522
                .dbg_adr_i(     dbg_adr),
523
                .dbg_ewt_i(     1'b0),
524
                .dbg_lss_o(     dbg_lss),
525
                .dbg_is_o(      dbg_is),
526
                .dbg_wp_o(      dbg_wp),
527
                .dbg_bp_o(      dbg_bp),
528
                .dbg_dat_o(     dbg_dat_risc),
529
                .dbg_ack_o(     ),// not used
530
                .dbg_stb_i(     dbg_op[2]),
531
                .dbg_we_i(      dbg_op[0]),
532
                // power management
533
                .pm_clksd_o(    ),// not used
534
                .pm_cpustall_i( 1'b0),
535
                .pm_dc_gate_o(  ),// not used
536
                .pm_ic_gate_o(  ),// not used
537
                .pm_dmmu_gate_o(),// not used
538
                .pm_immu_gate_o(),// not used
539
                .pm_tt_gate_o(  ),// not used
540
                .pm_cpu_gate_o( ),// not used
541
                .pm_wakeup_o(   ),// not used
542
                .pm_lvolt_o(    ),// not used
543
                // interrupts
544
                .pic_ints_i(    pic_ints)
545
        );
546
//
547
// debug controller
548
//
549
`ifdef DBG_IF_MODEL
550
        assign jtag_tdo_oe = 1'b1;
551
        dbg_if_model i_dbg_if_model  (
552
                // JTAG pins
553
                .tms_pad_i(     jtag_tms),
554
                .tck_pad_i(     jtag_tck),
555
                .trst_pad_i(    jtag_trst),
556
                .tdi_pad_i(     jtag_tdi),
557
                .tdo_pad_o(     jtag_tdo),
558
                // Boundary Scan signals
559
                .capture_dr_o(  ),// not used 
560
                .shift_dr_o(    ),// not used
561
                .update_dr_o(   ),// not used
562
                .extest_selected_o(),// not used
563
                .bs_chain_i(    1'b0 ),
564
                // RISC signals
565
                .risc_clk_i(    sys_or1200_clk),// wb_clk?
566
                .risc_data_i(   dbg_dat_risc ),
567
                .risc_data_o(   dbg_dat_dbg ),
568
                .risc_addr_o(   dbg_adr ),
569
                .wp_i(          dbg_wp ),
570
                .bp_i(          dbg_bp ),
571
                .opselect_o(    dbg_op ),
572
                .lsstatus_i(    dbg_lss ),
573
                .istatus_i(     dbg_is ),
574
                .risc_stall_o(  dbg_stall ),
575
                .reset_o(       ),// not used
576
                // WISHBONE common
577
                .wb_clk_i(      sys_wb_clk ),
578
                .wb_rst_i(      sys_wb_res ),
579
                // WISHBONE master interface
580
                .wb_adr_o(      wb_dm_adr_o ),
581
                .wb_dat_i(      wb_dm_dat_i ),
582
                .wb_dat_o(      wb_dm_dat_o ),
583
                .wb_sel_o(      wb_dm_sel_o ),
584
                .wb_we_o(       wb_dm_we_o  ),
585
                .wb_stb_o(      wb_dm_stb_o ),
586
                .wb_cyc_o(      wb_dm_cyc_o ),
587
                .wb_cab_o(      wb_dm_cab_o ),
588
                .wb_ack_i(      wb_dm_ack_i ),
589
                .wb_err_i(      wb_dm_err_i )
590
        );
591
`else
592
        dbg_top i_dbg_top  (
593
                // JTAG pins
594
                .tms_pad_i(     jtag_tms),
595
                .tck_pad_i(     jtag_tck),
596
                .trst_pad_i(    jtag_trst),
597
                .tdi_pad_i(     jtag_tdi),
598
                .tdo_pad_o(     jtag_tdo_o),
599
                .tdo_padoen_o(  jtag_tdo_oe),
600
                // Boundary Scan signals
601
                .capture_dr_o(  ),// not used 
602
                .shift_dr_o(    ),// not used
603
                .update_dr_o(   ),// not used
604
                .extest_selected_o(),// not used
605
                .bs_chain_i(    1'b0),
606
                .bs_chain_o(    ),// not used
607
                // RISC signals
608
                .risc_clk_i(    sys_or1200_clk),// wb_clk
609
                .risc_addr_o(   dbg_adr),
610
                .risc_data_i(   dbg_dat_risc),
611
                .risc_data_o(   dbg_dat_dbg),
612
                .wp_i(          dbg_wp),
613
                .bp_i(          dbg_bp),
614
                .opselect_o(    dbg_op),
615
                .lsstatus_i(    dbg_lss),
616
                .istatus_i(     dbg_is),
617
                .risc_stall_o(  dbg_stall),
618
                .reset_o(       ), // not used
619
                // WISHBONE common
620
                .wb_clk_i(      sys_wb_clk),
621
                .wb_rst_i(      sys_wb_res),
622
                // WISHBONE master interface
623
                .wb_adr_o(      wb_dm_adr_o),
624
                .wb_dat_i(      wb_dm_dat_i),
625
                .wb_dat_o(      wb_dm_dat_o),
626
                .wb_sel_o(      wb_dm_sel_o),
627
                .wb_we_o(       wb_dm_we_o),
628
                .wb_stb_o(      wb_dm_stb_o),
629
                .wb_cyc_o(      wb_dm_cyc_o),
630
                .wb_cab_o(      wb_dm_cab_o),
631
                .wb_ack_i(      wb_dm_ack_i),
632
                .wb_err_i(      wb_dm_err_i)
633
        );
634
`endif
635
//
636
// tic controller
637
//
638
        assign wb_ticm_rty_i = 1'b0; // not support rty
639
        tessera_tic i_tessera_tic (
640
                .wb_rst(        sys_wb_res),
641
                .wb_clk(        sys_wb_clk),
642
                .wb_cyc_o(      wb_ticm_cyc_o),
643
                .wb_adr_o(      wb_ticm_adr_o),
644
                .wb_dat_i(      wb_ticm_dat_i),
645
                .wb_dat_o(      wb_ticm_dat_o),
646
                .wb_sel_o(      wb_ticm_sel_o),
647
                .wb_ack_i(      wb_ticm_ack_i),
648
                .wb_err_i(      wb_ticm_err_i),
649
                .wb_rty_i(      wb_ticm_rty_i),
650
                .wb_we_o(       wb_ticm_we_o),
651
                .wb_stb_o(      wb_ticm_stb_o),
652
                .wb_cab_o(      wb_ticm_cab_o)
653
        );
654
//
655
// DMA controler(only use softDMA)
656
//
657
        assign wb_dma0m_rty_i = 1'b0; /* not support singal */
658
        //assign wb_dma1m_rty_i = 1'b0; /* not support singal */
659
        assign wb_dma0m_cab_o = 1'b0; /* not support singal */
660
        //assign wb_dma1m_cab_o = 1'b0; /* not support singal */
661
        wb_dma_top #(
662
                // rf_addr:integer
663
                4'h9, // modify WDMA_REG_SEL(wb_dma_defines.v),so always select register_file to not-use pass-through mode.
664
                // pri_sel:2'
665
                2'd0,
666
                // ch_count:integer
667
                1,
668
                // chX_conf(0-30)
669
                4'h1,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,
670
                4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,
671
                4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,4'h0,
672
                4'h0
673
        ) i_wb_dma_top (
674
                //
675
                .clk_i(         sys_wb_clk),
676
                .rst_i(         sys_wb_res),
677
        // Slave0
678
                .wb0m_data_i(   wb_dma0s_dat_i),        // this is slave port
679
                .wb0m_data_o(   wb_dma0s_dat_o),        // this is slave port
680
                .wb0_addr_i(    wb_dma0s_adr_i),
681
                .wb0_sel_i(     wb_dma0s_sel_i),
682
                .wb0_we_i(      wb_dma0s_we_i),
683
                .wb0_cyc_i(     wb_dma0s_cyc_i),
684
                .wb0_stb_i(     wb_dma0s_stb_i),
685
                .wb0_ack_o(     wb_dma0s_ack_o),
686
                .wb0_err_o(     wb_dma0s_err_o),
687
                .wb0_rty_o(     /* open */),
688
        // Master0
689
                .wb0s_data_i(   wb_dma0m_dat_i),         // this is master port 
690
                .wb0s_data_o(   wb_dma0m_dat_o),         // this is master port
691
                .wb0_addr_o(    wb_dma0m_adr_o),
692
                .wb0_sel_o(     wb_dma0m_sel_o),
693
                .wb0_we_o(      wb_dma0m_we_o),
694
                .wb0_cyc_o(     wb_dma0m_cyc_o),
695
                .wb0_stb_o(     wb_dma0m_stb_o),
696
                .wb0_ack_i(     wb_dma0m_ack_i),
697
                .wb0_err_i(     wb_dma0m_err_i),
698
                .wb0_rty_i(     wb_dma0m_rty_i),
699
        // Slave1(not-used)
700
                .wb1m_data_i(   32'h0000_0000),         // this is slave port
701
                .wb1m_data_o(   /* open */),            // this is slave port
702
                .wb1_addr_i(    32'h0000_0000),
703
                .wb1_sel_i(     4'b0000),
704
                .wb1_we_i(      1'b0),
705
                .wb1_cyc_i(     1'b0),
706
                .wb1_stb_i(     1'b0),
707
                .wb1_ack_o(     /* open */),
708
                .wb1_err_o(     /* open */),
709
                .wb1_rty_o(     /* open */),
710
        // Master1
711
                //.wb1s_data_i( wb_dma1m_dat_i),        // this is master port
712
                //.wb1s_data_o( wb_dma1m_dat_o),        // this is master port
713
                //.wb1_addr_o(  wb_dma1m_adr_o),
714
                //.wb1_sel_o(   wb_dma1m_sel_o),
715
                //.wb1_we_o(    wb_dma1m_we_o),
716
                //.wb1_cyc_o(   wb_dma1m_cyc_o),
717
                //.wb1_stb_o(   wb_dma1m_stb_o),
718
                //.wb1_ack_i(   wb_dma1m_ack_i),
719
                //.wb1_err_i(   wb_dma1m_err_i),
720
                //.wb1_rty_i(   wb_dma1m_rty_i),
721
                .wb1s_data_i(   32'h0000_0000),         // this is master port
722
                .wb1s_data_o(   /* open */),            // this is master port
723
                .wb1_addr_o(    /* open */),
724
                .wb1_sel_o(     /* open */),
725
                .wb1_we_o(      /* open */),
726
                .wb1_cyc_o(     /* open */),
727
                .wb1_stb_o(     /* open */),
728
                .wb1_ack_i(     1'b1),
729
                .wb1_err_i(     1'b0),
730
                .wb1_rty_i(     1'b0),
731
        // RealDMA port(not-used)
732
                .dma_req_i(     1'b0),
733
                .dma_ack_o(     /* open */),
734
                .dma_nd_i(      1'b0),
735
                .dma_rest_i(    1'b0),
736
                //
737
                .inta_o(        dma_a_int),
738
                .intb_o(        dma_b_int)
739
        );
740
 
741
///////////////////////////////////////////////////////////////////////////////
742
// WishBone SlaveOnly Device
743
///////////////////////////////////////////////////////////////////////////////
744
//
745
// flash controller(WinshBoneSlave,LGPL)
746
//      flash_top i_flash_top (
747
//              // system
748
//              .wb_clk_i(      sys_wb_clk),
749
//              .wb_rst_i(      sys_wb_res),
750
//              // wishbone
751
//              .wb_dat_i(      wb_flashs_dat_i),
752
//              .wb_dat_o(      /*wb_flashs_dat_o*/),
753
//              .wb_adr_i(      wb_flashs_adr_i),
754
//              .wb_sel_i(      wb_flashs_sel_i),
755
//              .wb_we_i(       wb_flashs_we_i),
756
//              .wb_cyc_i(      wb_flashs_cyc_i),
757
//              .wb_stb_i(      wb_flashs_stb_i),
758
//              .wb_ack_o(      /*wb_flashs_ack_o*/),
759
//              .wb_err_o(      wb_flashs_err_o),
760
//              // external
761
//              .flash_rstn(    flash_rstn),
762
//              .cen(           /* flash_cen */),
763
//              .oen(           /* flash_oen */),
764
//              .wen(           /* flash_wen */),
765
//              .rdy(           flash_rdy),
766
//              .d(             flash_d),
767
//              .a(             /* flash_a */),
768
//              .a_oe(          flash_a_oe)
769
//      );
770
        tessera_mem i_tessera_mem (
771
                //
772
                .sys_wb_res(            sys_wb_res),
773
                .sys_wb_clk(            sys_wb_clk),
774
                //
775
                .sys_mem_res(           sys_mem_res),
776
                .sys_mem_clk(           sys_mem_clk),
777
                //
778
                .wb_cyc_i(              wb_flashs_cyc_i),
779
                .wb_stb_i(              wb_flashs_stb_i),
780
                .wb_adr_i(              wb_flashs_adr_i),
781
                .wb_sel_i(              wb_flashs_sel_i),
782
                .wb_we_i(               wb_flashs_we_i),
783
                .wb_dat_i(              wb_flashs_dat_i),
784
                .wb_cab_i(              wb_flashs_cab_i),
785
                .wb_dat_o(              wb_flashs_dat_o),
786
                .wb_ack_o(              wb_flashs_ack_o),
787
                .wb_err_o(              wb_flashs_err_o),
788
                //
789
                .mem_cs2_n(             mem_cs2_n),
790
                .mem_cs2_g_n(           mem_cs2_g_n),
791
                .mem_cs2_dir(           mem_cs2_dir),
792
                .mem_cs2_rstdrv(        mem_cs2_rstdrv),
793
                .mem_cs2_int(           mem_cs2_int),
794
                .mem_cs2_iochrdy(       mem_cs2_iochrdy),
795
                .mem_cs1_n(             mem_cs1_n),
796
                .mem_cs1_rst_n(         mem_cs1_rst_n),
797
                .mem_cs1_rdy(           mem_cs1_rdy),
798
                .mem_cs0_n(             mem_cs0_n),
799
                .mem_we_n(              mem_we_n),
800
                .mem_oe_n(              mem_oe_n),
801
                .mem_a(                 mem_a),
802
                .mem_d_o(               mem_d_o),
803
                .mem_d_oe(              mem_d_oe),
804
                .mem_d_i(               mem_d_i)
805
        );
806
//
807
// sdram0 controller(WishBoneSlave,DMAport)
808
//
809
        tessera_sdram i0_tessera_sdram (
810
                // system
811
                .sys_wb_res(    sys_wb_res),
812
                .sys_wb_clk(    sys_wb_clk),
813
                .sys_sdram_res( sys_sdram_res),
814
                .sys_sdram_clk( sys_sdram_clk),
815
                // wishbone
816
                .wb_cyc_i(      wb_sdram0s_cyc_i),
817
                .wb_stb_i(      wb_sdram0s_stb_i),
818
                .wb_adr_i(      wb_sdram0s_adr_i),
819
                .wb_sel_i(      wb_sdram0s_sel_i),
820
                .wb_we_i(       wb_sdram0s_we_i),
821
                .wb_dat_i(      wb_sdram0s_dat_i),
822
                .wb_cab_i(      wb_sdram0s_cab_i),
823
                .wb_dat_o(      wb_sdram0s_dat_o),
824
                .wb_ack_o(      wb_sdram0s_ack_o),
825
                .wb_err_o(      wb_sdram0s_err_o),
826
                // DMA for Video
827
                .dma_req(       1'b0),
828
                .dma_address(   32'h0000_0000),
829
                .dma_ack(       /* open */),
830
                .dma_exist(     /* open */),
831
                .dma_data(      /* open */),
832
                //.dma_req(     vram_dma_req),
833
                //.dma_address( vram_dma_address),
834
                //.dma_ack(     vram_dma_ack),
835
                //.dma_exist(   vram_dma_exist),
836
                //.dma_data(    vram_dma_data),
837
                // external
838
                .sdram_clk(     sdram0_clk),
839
                .sdram_cke(     sdram0_cke),
840
                .sdram_cs_n(    sdram0_cs_n),
841
                .sdram_ras_n(   sdram0_ras_n),
842
                .sdram_cas_n(   sdram0_cas_n),
843
                .sdram_we_n(    sdram0_we_n),
844
                .sdram_dqm(     sdram0_dqm),
845
                .sdram_ba(      sdram0_ba),
846
                .sdram_a(       sdram0_a),
847
                .sdram_d_i(     sdram0_d_i),
848
                .sdram_d_oe(    sdram0_d_oe),
849
                .sdram_d_o(     sdram0_d_o),
850
                //
851
                .option(        option)
852
        );
853
 
854
//
855
// sdram1 controller(WishBoneSlave,DMAport)
856
//
857
        //reg   [7:0]   sys_sdram_res_z;
858
        //always @(negedge sys_sdram_clk) sys_sdram_res_z <= {sys_sdram_res_z[6:0],sys_sdram_res};
859
        tessera_sdram i1_tessera_sdram (
860
                // system
861
                .sys_wb_res(    sys_wb_res),
862
                .sys_wb_clk(    sys_wb_clk),
863
                .sys_sdram_res( sys_sdram_res),
864
                //.sys_sdram_res(       sys_sdram_res_z[7]),
865
                .sys_sdram_clk( sys_sdram_clk),
866
                // wishbone 
867
                .wb_cyc_i(      wb_sdram1s_cyc_i),
868
                .wb_stb_i(      wb_sdram1s_stb_i),
869
                .wb_adr_i(      wb_sdram1s_adr_i),
870
                .wb_sel_i(      wb_sdram1s_sel_i),
871
                .wb_we_i(       wb_sdram1s_we_i),
872
                .wb_dat_i(      wb_sdram1s_dat_i),
873
                .wb_cab_i(      wb_sdram1s_cab_i),
874
                .wb_dat_o(      wb_sdram1s_dat_o),
875
                .wb_ack_o(      wb_sdram1s_ack_o),
876
                .wb_err_o(      wb_sdram1s_err_o),
877
                // DMA for Video
878
                //.dma_req(     1'b0),
879
                //.dma_address( 32'h0000_0000),
880
                //.dma_ack(     /* open */),
881
                //.dma_exist(   /* open */),
882
                //.dma_data(    /* open */),
883
                .dma_req(       vram_dma_req),
884
                .dma_address(   vram_dma_address),
885
                .dma_ack(       vram_dma_ack),
886
                .dma_exist(     vram_dma_exist),
887
                .dma_data(      vram_dma_data),
888
                // external
889
                .sdram_clk(     sdram1_clk),
890
                .sdram_cke(     sdram1_cke),
891
                .sdram_cs_n(    sdram1_cs_n),
892
                .sdram_ras_n(   sdram1_ras_n),
893
                .sdram_cas_n(   sdram1_cas_n),
894
                .sdram_we_n(    sdram1_we_n),
895
                .sdram_dqm(     sdram1_dqm),
896
                .sdram_ba(      sdram1_ba),
897
                .sdram_a(       sdram1_a),
898
                .sdram_d_i(     sdram1_d_i),
899
                .sdram_d_oe(    sdram1_d_oe),
900
                .sdram_d_o(     sdram1_d_o),
901
                //
902
                .option(        option)
903
        );
904
//
905
// sram internal(WishBoneSlave)
906
//
907
//      tessera_ram_vect i0_tessra_ram_int( // exception&.icm
908
//              // system
909
//              .sys_wb_res(    sys_wb_res),
910
//              .sys_wb_clk(    sys_wb_clk),
911
//              // wishbone
912
//              .wb_cyc_i(      wb_ram0s_cyc_i),
913
//              .wb_stb_i(      wb_ram0s_stb_i),
914
//              .wb_adr_i(      wb_ram0s_adr_i),
915
//              .wb_sel_i(      wb_ram0s_sel_i),
916
//              .wb_we_i(       wb_ram0s_we_i),
917
//              .wb_dat_i(      wb_ram0s_dat_i),
918
//              .wb_cab_i(      wb_ram0s_cab_i),
919
//              .wb_dat_o(      wb_ram0s_dat_o),
920
//              .wb_ack_o(      wb_ram0s_ack_o),
921
//              .wb_err_o(      wb_ram0s_err_o)
922
//      );
923
        tessera_ram_tiny i0_tessra_ram_int( // only exception
924
                // system
925
                .sys_wb_res(    sys_wb_res),
926
                .sys_wb_clk(    sys_wb_clk),
927
                // wishbone
928
                .wb_cyc_i(      wb_ram0s_cyc_i),
929
                .wb_stb_i(      wb_ram0s_stb_i),
930
                .wb_adr_i(      wb_ram0s_adr_i),
931
                .wb_sel_i(      wb_ram0s_sel_i),
932
                .wb_we_i(       wb_ram0s_we_i),
933
                .wb_dat_i(      wb_ram0s_dat_i),
934
                .wb_cab_i(      wb_ram0s_cab_i),
935
                .wb_dat_o(      wb_ram0s_dat_o),
936
                .wb_ack_o(      wb_ram0s_ack_o),
937
                .wb_err_o(      wb_ram0s_err_o)
938
        );
939
 
940
//
941
// sram internal(WishBoneSlave)
942
//
943
//      tessera_ram_data i1_tessra_ram_int( // data&bss
944
//              // system
945
//              .sys_wb_res(    sys_wb_res),
946
//              .sys_wb_clk(    sys_wb_clk),
947
//              // wishbone
948
//              .wb_cyc_i(      wb_ram1s_cyc_i),
949
//              .wb_stb_i(      wb_ram1s_stb_i),
950
//              .wb_adr_i(      wb_ram1s_adr_i),
951
//              .wb_sel_i(      wb_ram1s_sel_i),
952
//              .wb_we_i(       wb_ram1s_we_i),
953
//              .wb_dat_i(      wb_ram1s_dat_i),
954
//              .wb_cab_i(      wb_ram1s_cab_i),
955
//              .wb_dat_o(      wb_ram1s_dat_o),
956
//              .wb_ack_o(      wb_ram1s_ack_o),
957
//              .wb_err_o(      wb_ram1s_err_o)
958
//      );
959
        assign wb_ram1s_dat_o   = 32'h0000_0000;
960
        assign wb_ram1s_ack_o   = 1'b0;
961
        assign wb_ram1s_err_o   = 1'b0;
962
 
963
// uart(WishBoneSlave,interrupt,LGPL)
964
//
965
        assign wb_uarts_err_o = 1'b0; // not support signal
966
        uart_top #(
967
                32,     // 32bit data width(bigendian byte access)
968
                5       // address width
969
        ) i_uart_top (
970
                // system
971
                .wb_clk_i(      sys_wb_clk),
972
                .wb_rst_i(      sys_wb_res),
973
                // wishbone
974
                .wb_adr_i(      wb_uarts_adr_i[4:0]),
975
                .wb_dat_i(      wb_uarts_dat_i),
976
                .wb_dat_o(      wb_uarts_dat_o),
977
                .wb_we_i(       wb_uarts_we_i),
978
                .wb_stb_i(      wb_uarts_stb_i),
979
                .wb_cyc_i(      wb_uarts_cyc_i),
980
                .wb_ack_o(      wb_uarts_ack_o),
981
                .wb_sel_i(      wb_uarts_sel_i),
982
                // interrupt
983
                .int_o(         uart_int),
984
                // external
985
                .stx_pad_o(     uart_stx),
986
                .srx_pad_i(     uart_srx),
987
                .rts_pad_o(     uart_rts),
988
                .cts_pad_i(     uart_cts),
989
                .dtr_pad_o(     uart_dtr),
990
                .dsr_pad_i(     uart_dsr),
991
                .ri_pad_i(      uart_ri),
992
                .dcd_pad_i(     uart_dcd)
993
        );
994
//
995
// vga controller(WishBoneSlave,DMAport)
996
//
997
        wire            testtest;
998
        tessera_vga i_tessera_vga (
999
                // system
1000
                .sys_wb_res(    sys_wb_res),
1001
                .sys_wb_clk(    sys_wb_clk),
1002
                .sys_dma_res(   sys_sdram_res),
1003
                .sys_dma_clk(   sys_sdram_clk),
1004
                .sys_vga_res(   sys_vga_res),
1005
                .sys_vga_clk(   sys_vga_clk),
1006
                // wishbone
1007
                .wb_cyc_i(      wb_vgas_cyc_i),
1008
                .wb_stb_i(      wb_vgas_stb_i),
1009
                .wb_adr_i(      wb_vgas_adr_i),
1010
                .wb_sel_i(      wb_vgas_sel_i),
1011
                .wb_we_i(       wb_vgas_we_i),
1012
                .wb_dat_i(      wb_vgas_dat_i),
1013
                .wb_cab_i(      wb_vgas_cab_i),
1014
                .wb_dat_o(      wb_vgas_dat_o),
1015
                .wb_ack_o(      wb_vgas_ack_o),
1016
                .wb_err_o(      wb_vgas_err_o),
1017
                .wb_busy(       testtest),
1018
                // dma
1019
                .dma_req(       vram_dma_req),
1020
                .dma_address(   vram_dma_address),
1021
                .dma_ack(       vram_dma_ack),
1022
                .dma_exist(     vram_dma_exist),
1023
                .dma_data(      vram_dma_data),
1024
                // vga
1025
                .vga_clk(       vga_clk),
1026
                .vga_hsync(     vga_hsync),
1027
                .vga_vsync(     vga_vsync),
1028
                .vga_blank(     vga_blank),
1029
                .vga_rgb(       vga_d)
1030
        );
1031
///////////////////////////////////////////////////////////////////////////////
1032
// WishBone Switcher
1033
///////////////////////////////////////////////////////////////////////////////
1034
//
1035
// Instantiation of the Traffic COP
1036
//
1037
        tc_top #(
1038
                8,                      //
1039
                8'h00,                  // bound target0a(InternalRAM0)
1040
                8,                      //
1041
                8'h01,                  // bound target0b(InternalRAM1)
1042
                8,                      //
1043
                8'h02,                  // bound target0c(SDRAM)
1044
                8,                      //
1045
                8'h03,                  // bound target0d(SDRAM)
1046
                8,                      //
1047
                8'h04,                  // swB->swC1 bound target1(FLASH)
1048
                4,                      //
1049
                4'h9,                   //
1050
                8,                      //
1051
                8'h97,                  // swB->swC2 bound target2(VGA)
1052
                8'h92,                  // swB->swC3 bound target3(Reserved:ETH)
1053
                8'h9d,                  // swB->swC4 bound target4(Reserved:AUDIO)
1054
                8'h90,                  // swB->swC5 bound target5(UART0)
1055
                8'h94,                  // swB->swC6 bound target6(Reserved:PS2)
1056
                8'h9e,                  // swB->swC7 bound target7(Reserved)
1057
                8'h9f                   // swB->swC8 bound target8(Reserved)
1058
        ) i_tc_top (
1059
                // WISHBONE common
1060
                .wb_clk_i(      sys_wb_clk),
1061
                .wb_rst_i(      sys_wb_res),
1062
        // Master ports
1063
                // WISHBONE Initiator 0(park,why is ?????)
1064
                .i0_wb_cyc_i(   1'b0),
1065
                .i0_wb_stb_i(   1'b0),
1066
                .i0_wb_cab_i(   1'b0),
1067
                .i0_wb_adr_i(   32'h0000_0000),
1068
                .i0_wb_sel_i(   4'b0000),
1069
                .i0_wb_we_i(    1'b0),
1070
                .i0_wb_dat_i(   32'h0000_0000),
1071
                .i0_wb_dat_o(   /* open */),
1072
                .i0_wb_ack_o(   /* open */),
1073
                .i0_wb_err_o(   /* open */),
1074
                // WISHBONE Initiator 1                 DMA0
1075
                .i1_wb_cyc_i(   wb_dma0m_cyc_o),
1076
                .i1_wb_stb_i(   wb_dma0m_stb_o),
1077
                .i1_wb_cab_i(   wb_dma0m_cab_o),
1078
                .i1_wb_adr_i(   wb_dma0m_adr_o),
1079
                .i1_wb_sel_i(   wb_dma0m_sel_o),
1080
                .i1_wb_we_i(    wb_dma0m_we_o),
1081
                .i1_wb_dat_i(   wb_dma0m_dat_o),
1082
                .i1_wb_dat_o(   wb_dma0m_dat_i),
1083
                .i1_wb_ack_o(   wb_dma0m_ack_i),
1084
                .i1_wb_err_o(   wb_dma0m_err_i),
1085
                // WISHBONE Initiator 2                 DMA1
1086
                //.i2_wb_cyc_i( wb_dma1m_cyc_o),
1087
                //.i2_wb_stb_i( wb_dma1m_stb_o),
1088
                //.i2_wb_cab_i( wb_dma1m_cab_o),
1089
                //.i2_wb_adr_i( wb_dma1m_adr_o),
1090
                //.i2_wb_sel_i( wb_dma1m_sel_o),
1091
                //.i2_wb_we_i(  wb_dma1m_we_o),
1092
                //.i2_wb_dat_i( wb_dma1m_dat_o),
1093
                //.i2_wb_dat_o( wb_dma1m_dat_i),
1094
                //.i2_wb_ack_o( wb_dma1m_ack_i),
1095
                //.i2_wb_err_o( wb_dma1m_err_i),
1096
                .i2_wb_cyc_i(   1'b0),
1097
                .i2_wb_stb_i(   1'b0),
1098
                .i2_wb_cab_i(   1'b0),
1099
                .i2_wb_adr_i(   32'h0000_0000),
1100
                .i2_wb_sel_i(   4'b0000),
1101
                .i2_wb_we_i(    1'b0),
1102
                .i2_wb_dat_i(   32'h0000_0000),
1103
                .i2_wb_dat_o(   /* open */),
1104
                .i2_wb_ack_o(   /* open */),
1105
                .i2_wb_err_o(   /* open */),
1106
                // WISHBONE Initiator 3                 Debug
1107
                .i3_wb_cyc_i(   wb_dm_cyc_o),
1108
                .i3_wb_stb_i(   wb_dm_stb_o),
1109
                .i3_wb_cab_i(   wb_dm_cab_o),
1110
                .i3_wb_adr_i(   wb_dm_adr_o),
1111
                .i3_wb_sel_i(   wb_dm_sel_o),
1112
                .i3_wb_we_i(    wb_dm_we_o),
1113
                .i3_wb_dat_i(   wb_dm_dat_o),
1114
                .i3_wb_dat_o(   wb_dm_dat_i),
1115
                .i3_wb_ack_o(   wb_dm_ack_i),
1116
                .i3_wb_err_o(   wb_dm_err_i),
1117
                // WISHBONE Initiator 4                 RiscData
1118
                .i4_wb_cyc_i(   wb_rdm_cyc_o),
1119
                .i4_wb_stb_i(   wb_rdm_stb_o),
1120
                .i4_wb_cab_i(   wb_rdm_cab_o),
1121
                .i4_wb_adr_i(   wb_rdm_adr_o),
1122
                .i4_wb_sel_i(   wb_rdm_sel_o),
1123
                .i4_wb_we_i(    wb_rdm_we_o),
1124
                .i4_wb_dat_i(   wb_rdm_dat_o),
1125
                .i4_wb_dat_o(   wb_rdm_dat_i),
1126
                .i4_wb_ack_o(   wb_rdm_ack),    // triger FAKEMC control signal
1127
                .i4_wb_err_o(   wb_rdm_err_i),
1128
                // WISHBONE Initiator 5                 RiscInstraction                 
1129
                .i5_wb_cyc_i(   wb_rim_cyc_o),
1130
                .i5_wb_stb_i(   wb_rim_stb_o),
1131
                .i5_wb_cab_i(   wb_rim_cab_o),
1132
                .i5_wb_adr_i(   wb_rif_adr),    // triger remap control signal
1133
                .i5_wb_sel_i(   wb_rim_sel_o),
1134
                .i5_wb_we_i(    wb_rim_we_o),
1135
                .i5_wb_dat_i(   wb_rim_dat_o),
1136
                .i5_wb_dat_o(   wb_rim_dat_i),
1137
                .i5_wb_ack_o(   wb_rim_ack_i),
1138
                .i5_wb_err_o(   wb_rim_err_i),
1139
                // WISHBONE Initiator 6                 (Reserved)
1140
                .i6_wb_cyc_i(   1'b0),
1141
                .i6_wb_stb_i(   1'b0),
1142
                .i6_wb_cab_i(   1'b0),
1143
                .i6_wb_adr_i(   32'h0000_0000),
1144
                .i6_wb_sel_i(   4'b0000),
1145
                .i6_wb_we_i(    1'b0),
1146
                .i6_wb_dat_i(   32'h0000_0000),
1147
                .i6_wb_dat_o(   /* open */),
1148
                .i6_wb_ack_o(   /* open */),
1149
                .i6_wb_err_o(   /* open */),
1150
                // WISHBONE Initiator 7                 Tic
1151
                .i7_wb_cyc_i(   wb_ticm_cyc_o),
1152
                .i7_wb_stb_i(   wb_ticm_stb_o),
1153
                .i7_wb_cab_i(   wb_ticm_cab_o),
1154
                .i7_wb_adr_i(   wb_ticm_adr_o),
1155
                .i7_wb_sel_i(   wb_ticm_sel_o),
1156
                .i7_wb_we_i(    wb_ticm_we_o),
1157
                .i7_wb_dat_i(   wb_ticm_dat_o),
1158
                .i7_wb_dat_o(   wb_ticm_dat_i),
1159
                .i7_wb_ack_o(   wb_ticm_ack_i),
1160
                .i7_wb_err_o(   wb_ticm_err_i),
1161
        // Slave ports
1162
                // WISHBONE Target 0c(HighPriority)     ram0
1163
                .t0_wb_cyc_o(   wb_ram0s_cyc_i),
1164
                .t0_wb_stb_o(   wb_ram0s_stb_i),
1165
                .t0_wb_cab_o(   wb_ram0s_cab_i),
1166
                .t0_wb_adr_o(   wb_ram0s_adr_i),
1167
                .t0_wb_sel_o(   wb_ram0s_sel_i),
1168
                .t0_wb_we_o(    wb_ram0s_we_i),
1169
                .t0_wb_dat_o(   wb_ram0s_dat_i),
1170
                .t0_wb_dat_i(   wb_ram0s_dat_o),
1171
                .t0_wb_ack_i(   wb_ram0s_ack_o),
1172
                .t0_wb_err_i(   wb_ram0s_err_o),
1173
                // WISHBONE Target 0d(HighPriority)     ram1
1174
                .t0b_wb_cyc_o(  wb_ram1s_cyc_i),
1175
                .t0b_wb_stb_o(  wb_ram1s_stb_i),
1176
                .t0b_wb_cab_o(  wb_ram1s_cab_i),
1177
                .t0b_wb_adr_o(  wb_ram1s_adr_i),
1178
                .t0b_wb_sel_o(  wb_ram1s_sel_i),
1179
                .t0b_wb_we_o(   wb_ram1s_we_i),
1180
                .t0b_wb_dat_o(  wb_ram1s_dat_i),
1181
                .t0b_wb_dat_i(  wb_ram1s_dat_o),
1182
                .t0b_wb_ack_i(  wb_ram1s_ack_o),
1183
                .t0b_wb_err_i(  wb_ram1s_err_o),
1184
                // WISHBONE Target 0a(HighPriority)     sdram0
1185
                .t0c_wb_cyc_o(  wb_sdram0s_cyc_i),
1186
                .t0c_wb_stb_o(  wb_sdram0s_stb_i),
1187
                .t0c_wb_cab_o(  wb_sdram0s_cab_i),
1188
                .t0c_wb_adr_o(  wb_sdram0s_adr_i),
1189
                .t0c_wb_sel_o(  wb_sdram0s_sel_i),
1190
                .t0c_wb_we_o(   wb_sdram0s_we_i),
1191
                .t0c_wb_dat_o(  wb_sdram0s_dat_i),
1192
                .t0c_wb_dat_i(  wb_sdram0s_dat_o),
1193
                .t0c_wb_ack_i(  wb_sdram0s_ack_o),
1194
                .t0c_wb_err_i(  wb_sdram0s_err_o),
1195
                // WISHBONE Target 0b(HighPriority)     sdram1
1196
                .t0d_wb_cyc_o(  wb_sdram1s_cyc_i),
1197
                .t0d_wb_stb_o(  wb_sdram1s_stb_i),
1198
                .t0d_wb_cab_o(  wb_sdram1s_cab_i),
1199
                .t0d_wb_adr_o(  wb_sdram1s_adr_i),
1200
                .t0d_wb_sel_o(  wb_sdram1s_sel_i),
1201
                .t0d_wb_we_o(   wb_sdram1s_we_i),
1202
                .t0d_wb_dat_o(  wb_sdram1s_dat_i),
1203
                .t0d_wb_dat_i(  wb_sdram1s_dat_o),
1204
                .t0d_wb_ack_i(  wb_sdram1s_ack_o),
1205
                .t0d_wb_err_i(  wb_sdram1s_err_o),
1206
                // WISHBONE Target 1                    rom
1207
                .t1_wb_cyc_o(   wb_flashs_cyc_i),
1208
                .t1_wb_stb_o(   wb_flashs_stb_i),
1209
                .t1_wb_cab_o(   wb_flashs_cab_i),
1210
                .t1_wb_adr_o(   wb_flashs_adr_i),
1211
                .t1_wb_sel_o(   wb_flashs_sel_i),
1212
                .t1_wb_we_o(    wb_flashs_we_i),
1213
                .t1_wb_dat_o(   wb_flashs_dat_i),
1214
                .t1_wb_dat_i(   wb_flashs_dat_o),
1215
                .t1_wb_ack_i(   wb_flashs_ack_o),
1216
                .t1_wb_err_i(   wb_flashs_err_o),
1217
                // WISHBONE Target 2                    vga
1218
                .t2_wb_cyc_o(   wb_vgas_cyc_i),
1219
                .t2_wb_stb_o(   wb_vgas_stb_i),
1220
                .t2_wb_cab_o(   wb_vgas_cab_i),
1221
                .t2_wb_adr_o(   wb_vgas_adr_i),
1222
                .t2_wb_sel_o(   wb_vgas_sel_i),
1223
                .t2_wb_we_o(    wb_vgas_we_i),
1224
                .t2_wb_dat_o(   wb_vgas_dat_i),
1225
                .t2_wb_dat_i(   wb_vgas_dat_o),
1226
                .t2_wb_ack_i(   wb_vgas_ack_o),
1227
                .t2_wb_err_i(   wb_vgas_err_o),
1228
                // WISHBONE Target 3                    (EtherMAC-reserved)
1229
                .t3_wb_cyc_o(   /* open */),
1230
                .t3_wb_stb_o(   /* open */),
1231
                .t3_wb_cab_o(   /* open */),
1232
                .t3_wb_adr_o(   /* open */),
1233
                .t3_wb_sel_o(   /* open */),
1234
                .t3_wb_we_o(    /* open */),
1235
                .t3_wb_dat_o(   /* open */),
1236
                .t3_wb_dat_i(   32'h0000_0000),
1237
                .t3_wb_ack_i(   1'b0),
1238
                .t3_wb_err_i(   1'b1),
1239
                // WISHBONE Target 4                    (AUDIO-reserved)
1240
                .t4_wb_cyc_o(   /* open */),
1241
                .t4_wb_stb_o(   /* open */),
1242
                .t4_wb_cab_o(   /* open */),
1243
                .t4_wb_adr_o(   /* open */),
1244
                .t4_wb_sel_o(   /* open */),
1245
                .t4_wb_we_o(    /* open */),
1246
                .t4_wb_dat_o(   /* open */),
1247
                .t4_wb_dat_i(   32'h0000_0000),
1248
                .t4_wb_ack_i(   1'b0),
1249
                .t4_wb_err_i(   1'b1),
1250
                // WISHBONE Target 5                    UART
1251
                .t5_wb_cyc_o(   wb_uarts_cyc_i),
1252
                .t5_wb_stb_o(   wb_uarts_stb_i),
1253
                .t5_wb_cab_o(   wb_uarts_cab_i),
1254
                .t5_wb_adr_o(   wb_uarts_adr_i),
1255
                .t5_wb_sel_o(   wb_uarts_sel_i),
1256
                .t5_wb_we_o(    wb_uarts_we_i),
1257
                .t5_wb_dat_o(   wb_uarts_dat_i),
1258
                .t5_wb_dat_i(   wb_uarts_dat_o),
1259
                .t5_wb_ack_i(   wb_uarts_ack_o),
1260
                .t5_wb_err_i(   wb_uarts_err_o),
1261
                // WISHBONE Target 6                    (PS2-reserved)
1262
                .t6_wb_cyc_o(   /* open */),
1263
                .t6_wb_stb_o(   /* open */),
1264
                .t6_wb_cab_o(   /* open */),
1265
                .t6_wb_adr_o(   /* open */),
1266
                .t6_wb_sel_o(   /* open */),
1267
                .t6_wb_we_o(    /* open */),
1268
                .t6_wb_dat_o(   /* open */),
1269
                .t6_wb_dat_i(   32'h0000_0000),
1270
                .t6_wb_ack_i(   1'b0),
1271
                .t6_wb_err_i(   1'b1),
1272
                // WISHBONE Target 7                    (reserved)
1273
                .t7_wb_cyc_o(   /* open */),
1274
                .t7_wb_stb_o(   /* open */),
1275
                .t7_wb_cab_o(   /* open */),
1276
                .t7_wb_adr_o(   /* open */),
1277
                .t7_wb_sel_o(   /* open */),
1278
                .t7_wb_we_o(    /* open */),
1279
                .t7_wb_dat_o(   /* open */),
1280
                .t7_wb_dat_i(   32'h0000_0000),
1281
                .t7_wb_ack_i(   1'b0),
1282
                .t7_wb_err_i(   1'b1),
1283
                // WISHBONE Target 8                    DMA
1284
                .t8_wb_cyc_o(   wb_dma0s_cyc_i),
1285
                .t8_wb_stb_o(   wb_dma0s_stb_i),
1286
                .t8_wb_cab_o(   wb_dma0s_cab_i),
1287
                .t8_wb_adr_o(   wb_dma0s_adr_i),
1288
                .t8_wb_sel_o(   wb_dma0s_sel_i),
1289
                .t8_wb_we_o(    wb_dma0s_we_i),
1290
                .t8_wb_dat_o(   wb_dma0s_dat_i),
1291
                .t8_wb_dat_i(   wb_dma0s_dat_o),
1292
                .t8_wb_ack_i(   wb_dma0s_ack_o),
1293
                .t8_wb_err_i(   wb_dma0s_err_o)
1294
        );
1295
 
1296
endmodule

powered by: WebSVN 2.1.0

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