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

Subversion Repositories de1_olpcl2294_system

[/] [de1_olpcl2294_system/] [trunk/] [src/] [top.v] - Blame information for rev 2

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

Line No. Rev Author Line
1 2 qaztronic
// --------------------------------------------------------------------
2
//
3
// --------------------------------------------------------------------
4
 
5
`include "timescale.v"
6
 
7
 
8
module top(
9
  ////////////////////////  Clock Input     ////////////////////////
10
  input [1:0]       clock_24,               //  24 MHz
11
  input [1:0]       clock_27,               //  27 MHz
12
  input             clock_50,               //  50 MHz
13
  input             ext_clock,              //  External Clock
14
  ////////////////////////  Push Button     ////////////////////////
15
  input [3:0]       key,                    //  Pushbutton[3:0]
16
  ////////////////////////  DPDT Switch     ////////////////////////
17
  input [9:0]       sw,                     //  Toggle Switch[9:0]
18
  ////////////////////////  7-SEG Dispaly   ////////////////////////
19
  output    [6:0]   hex0,                   //  Seven Segment Digit 0
20
  output    [6:0]   hex1,                   //  Seven Segment Digit 1
21
  output    [6:0]   hex2,                   //  Seven Segment Digit 2
22
  output    [6:0]   hex3,                   //  Seven Segment Digit 3
23
  ////////////////////////////  LED     ////////////////////////////
24
  output    [7:0]   ledg,                   //  LED Green[7:0]
25
  output    [9:0]   ledr,                   //  LED Red[9:0]
26
  ////////////////////////////  UART    ////////////////////////////
27
  output            uart_txd,               //  UART Transmitter
28
  input             uart_rxd,               //  UART Receiver
29
  ///////////////////////       SDRAM Interface ////////////////////////
30
  inout [15:0]      dram_dq,                //  SDRAM Data bus 16 Bits
31
  output    [11:0]  dram_addr,              //  SDRAM Address bus 12 Bits
32
  output            dram_ldqm,              //  SDRAM Low-byte Data Mask 
33
  output            dram_udqm,              //  SDRAM High-byte Data Mask
34
  output            dram_we_n,              //  SDRAM Write Enable
35
  output            dram_cas_n,             //  SDRAM Column Address Strobe
36
  output            dram_ras_n,             //  SDRAM Row Address Strobe
37
  output            dram_cs_n,              //  SDRAM Chip Select
38
  output            dram_ba_0,              //  SDRAM Bank Address 0
39
  output            dram_ba_1,              //  SDRAM Bank Address 0
40
  output            dram_clk,               //  SDRAM Clock
41
  output            dram_cke,               //  SDRAM Clock Enable
42
  ////////////////////////  Flash Interface ////////////////////////
43
  inout [7:0]       fl_dq,                  //  FLASH Data bus 8 Bits
44
  output    [21:0]  fl_addr,                //  FLASH Address bus 22 Bits
45
  output            fl_we_n,                //  FLASH Write Enable
46
  output            fl_rst_n,               //  FLASH Reset
47
  output            fl_oe_n,                //  FLASH Output Enable
48
  output            fl_ce_n,                //  FLASH Chip Enable
49
  ////////////////////////  SRAM Interface  ////////////////////////
50
  inout   [15:0]    sram_dq,                //  SRAM Data bus 16 Bits
51
  output  [17:0]    sram_addr,              //  SRAM Address bus 18 Bits
52
  output            sram_ub_n,              //  SRAM High-byte Data Mask 
53
  output            sram_lb_n,              //  SRAM Low-byte Data Mask 
54
  output            sram_we_n,              //  SRAM Write Enable
55
  output            sram_ce_n,              //  SRAM Chip Enable
56
  output            sram_oe_n,              //  SRAM Output Enable
57
  ////////////////////  SD Card Interface   ////////////////////////
58
  inout             sd_dat,                 //  SD Card Data
59
  inout             sd_dat3,                //  SD Card Data 3
60
  inout             sd_cmd,                 //  SD Card Command Signal
61
  output            sd_clk,                 //  SD Card Clock
62
  ////////////////////////  I2C     ////////////////////////////////
63
  inout             i2c_sdat,               //  I2C Data
64
  output            i2c_sclk,               //  I2C Clock
65
  ////////////////////////  PS2     ////////////////////////////////
66
  input             ps2_dat,                //  PS2 Data
67
  input             ps2_clk,                //  PS2 Clock
68
  ////////////////////  USB JTAG link   ////////////////////////////
69
  input             tdi,                    // CPLD -> FPGA (data in)
70
  input             tck,                    // CPLD -> FPGA (clk)
71
  input             tcs,                    // CPLD -> FPGA (CS)
72
  output            tdo,                    // FPGA -> CPLD (data out)
73
  ////////////////////////  VGA         ////////////////////////////
74
  output            vga_hs,                 //  VGA H_SYNC
75
  output            vga_vs,                 //  VGA V_SYNC
76
  output    [3:0]   vga_r,                  //  VGA Red[3:0]
77
  output    [3:0]   vga_g,                  //  VGA Green[3:0]
78
  output    [3:0]   vga_b,                  //  VGA Blue[3:0]
79
  ////////////////////  Audio CODEC     ////////////////////////////
80
  inout             aud_adclrck,            //  Audio CODEC ADC LR Clock
81
  input             aud_adcdat,             //  Audio CODEC ADC Data
82
  inout             aud_daclrck,            //  Audio CODEC DAC LR Clock
83
  output            aud_dacdat,             //  Audio CODEC DAC Data
84
  inout             aud_bclk,               //  Audio CODEC Bit-Stream Clock
85
  output            aud_xck,                //  Audio CODEC Chip Clock
86
  ////////////////////////  GPIO    ////////////////////////////////
87
  inout [35:0]      gpio_0,                 //  GPIO Connection 0
88
  inout [35:0]      gpio_1                  //  GPIO Connection 1
89
);
90
 
91
        parameter DW    = 32;
92
        parameter AW    = 32;
93
 
94
 
95
  //---------------------------------------------------
96
  // system wires
97
        wire                            sys_rst;
98
        wire        sys_clk = clock_24[0];
99
 
100
 
101
  //---------------------------------------------------
102
  // sync reset
103
  sync
104
    i_sync_reset(
105
            .async_sig(~key[0]),
106
            .sync_out(sys_rst),
107
            .clk(sys_clk)
108
          );
109
 
110
 
111
  //---------------------------------------------------
112
  // FLED
113
        reg [24:0] counter;
114
        wire [7:0]  fled;
115
 
116
        always @(posedge sys_clk or posedge sys_rst)
117
          if(sys_rst)
118
                counter <= 25'b0;
119
        else
120
                counter <= counter + 1;
121
 
122
        assign fled[0]  = sw[0];
123
        assign fled[1]  = sw[1];
124
        assign fled[2]  = sw[2];
125
        assign fled[3]  = sw[3];
126
        assign fled[4]  = sw[4];
127
        assign fled[5]  = sw[5];
128
        assign fled[6]  = sw[6];
129
        assign fled[7]  = counter[24];
130
 
131
 
132
// --------------------------------------------------------------------
133
//  wb_async_mem_bridge
134
  wire [31:0] m0_data_i;
135
  wire [31:0] m0_data_o;
136
  wire [31:0] m0_addr_o;
137
  wire [3:0]  m0_sel_o;
138
  wire        m0_we_o;
139
  wire        m0_cyc_o;
140
  wire        m0_stb_o;
141
  wire        m0_ack_i;
142
  wire        m0_err_i;
143
  wire        m0_rty_i;
144
 
145
  wb_async_mem_bridge #( .AW(24) )
146
    i_wb_async_mem_bridge(
147
      .wb_data_i(m0_data_i),
148
      .wb_data_o(m0_data_o),
149
      .wb_addr_o(m0_addr_o[23:0]),
150
      .wb_sel_o(m0_sel_o),
151
      .wb_we_o(m0_we_o),
152
      .wb_cyc_o(m0_cyc_o),
153
      .wb_stb_o(m0_stb_o),
154
      .wb_ack_i(m0_ack_i),
155
      .wb_err_i(m0_err_i),
156
      .wb_rty_i(m0_rty_i),
157
 
158
      .mem_d( gpio_1[31:0] ),
159
      .mem_a( gpio_0[23:0] ),
160
      .mem_oe_n( gpio_0[30] ),
161
      .mem_bls_n( { gpio_0[26], gpio_0[27], gpio_0[28], gpio_0[29] } ),
162
      .mem_we_n( gpio_0[25] ),
163
      .mem_cs_n( gpio_0[24] ),
164
 
165
      .wb_clk_i(sys_clk),
166
      .wb_rst_i(sys_rst)
167
    );
168
 
169
 
170
  //---------------------------------------------------
171
  // wb_conmax_top
172
 
173
  // Slave 0 Interface
174
 
175
  wire  [DW-1:0]  s0_data_i;
176
  wire  [DW-1:0]  s0_data_o;
177
  wire  [AW-1:0]  s0_addr_o;
178
  wire  [3:0]     s0_sel_o;
179
  wire            s0_we_o;
180
  wire            s0_cyc_o;
181
  wire            s0_stb_o;
182
  wire            s0_ack_i;
183
  wire            s0_err_i;
184
  wire            s0_rty_i;
185
 
186
  wire  [DW-1:0]  s1_data_i;
187
  wire  [DW-1:0]  s1_data_o;
188
  wire  [AW-1:0]  s1_addr_o;
189
  wire  [3:0]     s1_sel_o;
190
  wire            s1_we_o;
191
  wire            s1_cyc_o;
192
  wire            s1_stb_o;
193
  wire            s1_ack_i;
194
  wire            s1_err_i;
195
  wire            s1_rty_i;
196
 
197
  wire  [DW-1:0]  s2_data_i;
198
  wire  [DW-1:0]  s2_data_o;
199
  wire  [AW-1:0]  s2_addr_o;
200
  wire  [3:0]     s2_sel_o;
201
  wire            s2_we_o;
202
  wire            s2_cyc_o;
203
  wire            s2_stb_o;
204
  wire            s2_ack_i;
205
  wire            s2_err_i;
206
  wire            s2_rty_i;
207
 
208
  wire  [DW-1:0]  s3_data_i;
209
  wire  [DW-1:0]  s3_data_o;
210
  wire  [AW-1:0]  s3_addr_o;
211
  wire  [3:0]     s3_sel_o;
212
  wire            s3_we_o;
213
  wire            s3_cyc_o;
214
  wire            s3_stb_o;
215
  wire            s3_ack_i;
216
  wire            s3_err_i;
217
  wire            s3_rty_i;
218
 
219
  wire  [DW-1:0]  s4_data_i;
220
  wire  [DW-1:0]  s4_data_o;
221
  wire  [AW-1:0]  s4_addr_o;
222
  wire  [3:0]     s4_sel_o;
223
  wire            s4_we_o;
224
  wire            s4_cyc_o;
225
  wire            s4_stb_o;
226
  wire            s4_ack_i;
227
  wire            s4_err_i;
228
  wire            s4_rty_i;
229
 
230
  wire  [DW-1:0]  s5_data_i;
231
  wire  [DW-1:0]  s5_data_o;
232
  wire  [AW-1:0]  s5_addr_o;
233
  wire  [3:0]     s5_sel_o;
234
  wire            s5_we_o;
235
  wire            s5_cyc_o;
236
  wire            s5_stb_o;
237
  wire            s5_ack_i;
238
  wire            s5_err_i;
239
  wire            s5_rty_i;
240
 
241
  wire  [DW-1:0]  s6_data_i;
242
  wire  [DW-1:0]  s6_data_o;
243
  wire  [AW-1:0]  s6_addr_o;
244
  wire  [3:0]     s6_sel_o;
245
  wire            s6_we_o;
246
  wire            s6_cyc_o;
247
  wire            s6_stb_o;
248
  wire            s6_ack_i;
249
  wire            s6_err_i;
250
  wire            s6_rty_i;
251
 
252
  wb_conmax_top
253
    i_wb_conmax_top(
254
      // Master 0 Interface
255
      .m0_data_i(m0_data_o),
256
      .m0_data_o(m0_data_i),
257
      .m0_addr_i( {m0_addr_o[23:20], 8'h00, m0_addr_o[20:0]} ),
258
      .m0_sel_i(m0_sel_o),
259
      .m0_we_i(m0_we_o),
260
      .m0_cyc_i(m0_cyc_o),
261
      .m0_stb_i(m0_stb_o),
262
      .m0_ack_o(m0_ack_i),
263
      .m0_err_o(m0_err_i),
264
      .m0_rty_o(m0_rty_i),
265
      // Master 1 Interface 
266
      .m1_data_i(32'h0000_0000),
267
      .m1_addr_i(32'h0000_0000),
268
      .m1_sel_i(4'h0),
269
      .m1_we_i(1'b0),
270
      .m1_cyc_i(1'b0),
271
      .m1_stb_i(1'b0),
272
      // Master 2 Interface
273
      .m2_data_i(32'h0000_0000),
274
      .m2_addr_i(32'h0000_0000),
275
      .m2_sel_i(4'h0),
276
      .m2_we_i(1'b0),
277
      .m2_cyc_i(1'b0),
278
      .m2_stb_i(1'b0),
279
      // Master 3 Interface
280
      .m3_data_i(32'h0000_0000),
281
      .m3_addr_i(32'h0000_0000),
282
      .m3_sel_i(4'h0),
283
      .m3_we_i(1'b0),
284
      .m3_cyc_i(1'b0),
285
      .m3_stb_i(1'b0),
286
      // Master 4 Interface
287
      .m4_data_i(32'h0000_0000),
288
      .m4_addr_i(32'h0000_0000),
289
      .m4_sel_i(4'h0),
290
      .m4_we_i(1'b0),
291
      .m4_cyc_i(1'b0),
292
      .m4_stb_i(1'b0),
293
      // Master 5 Interface
294
      .m5_data_i(32'h0000_0000),
295
      .m5_addr_i(32'h0000_0000),
296
      .m5_sel_i(4'h0),
297
      .m5_we_i(1'b0),
298
      .m5_cyc_i(1'b0),
299
      .m5_stb_i(1'b0),
300
      // Master 6 Interface
301
      .m6_data_i(32'h0000_0000),
302
      .m6_addr_i(32'h0000_0000),
303
      .m6_sel_i(4'h0),
304
      .m6_we_i(1'b0),
305
      .m6_cyc_i(1'b0),
306
      .m6_stb_i(1'b0),
307
      // Master 7 Interface
308
      .m7_data_i(32'h0000_0000),
309
      .m7_addr_i(32'h0000_0000),
310
      .m7_sel_i(4'h0),
311
      .m7_we_i(1'b0),
312
      .m7_cyc_i(1'b0),
313
      .m7_stb_i(1'b0),
314
 
315
      // Slave 0 Interface
316
      .s0_data_i(s0_data_i),
317
      .s0_data_o(s0_data_o),
318
      .s0_addr_o(s0_addr_o),
319
      .s0_sel_o(s0_sel_o),
320
      .s0_we_o(s0_we_o),
321
      .s0_cyc_o(s0_cyc_o),
322
      .s0_stb_o(s0_stb_o),
323
      .s0_ack_i(s0_ack_i),
324
      .s0_err_i(s0_err_i),
325
      .s0_rty_i(s0_rty_i),
326
      // Slave 1 Interface
327
      .s1_data_i(32'h0000_0000),
328
      .s1_ack_i(1'b0),
329
      .s1_err_i(1'b0),
330
      .s1_rty_i(1'b0),
331
      // Slave 2 Interface
332
      .s2_data_i(32'h0000_0000),
333
      .s2_ack_i(1'b0),
334
      .s2_err_i(1'b0),
335
      .s2_rty_i(1'b0),
336
      // Slave 3 Interface
337
      .s3_data_i(32'h0000_0000),
338
      .s3_ack_i(1'b0),
339
      .s3_err_i(1'b0),
340
      .s3_rty_i(1'b0),
341
      // Slave 4 Interface
342
      .s4_data_i(32'h0000_0000),
343
      .s4_ack_i(1'b0),
344
      .s4_err_i(1'b0),
345
      .s4_rty_i(1'b0),
346
      // Slave 5 Interface
347
      .s5_data_i(32'h0000_0000),
348
      .s5_ack_i(1'b0),
349
      .s5_err_i(1'b0),
350
      .s5_rty_i(1'b0),
351
      // Slave 6 Interface
352
      .s6_data_i(32'h0000_0000),
353
      .s6_ack_i(1'b0),
354
      .s6_err_i(1'b0),
355
      .s6_rty_i(1'b0),
356
      // Slave 7 Interface
357
      .s7_data_i(32'h0000_0000),
358
      .s7_ack_i(1'b0),
359
      .s7_err_i(1'b0),
360
      .s7_rty_i(1'b0),
361
      // Slave 8 Interface
362
      .s8_data_i(32'h0000_0000),
363
      .s8_ack_i(1'b0),
364
      .s8_err_i(1'b0),
365
      .s8_rty_i(1'b0),
366
      // Slave 9 Interface
367
      .s9_data_i(32'h0000_0000),
368
      .s9_ack_i(1'b0),
369
      .s9_err_i(1'b0),
370
      .s9_rty_i(1'b0),
371
      // Slave 10 Interface
372
      .s10_data_i(32'h0000_0000),
373
      .s10_ack_i(1'b0),
374
      .s10_err_i(1'b0),
375
      .s10_rty_i(1'b0),
376
      // Slave 11 Interface
377
      .s11_data_i(32'h0000_0000),
378
      .s11_ack_i(1'b0),
379
      .s11_err_i(1'b0),
380
      .s11_rty_i(1'b0),
381
      // Slave 12 Interface
382
      .s12_data_i(32'h0000_0000),
383
      .s12_ack_i(1'b0),
384
      .s12_err_i(1'b0),
385
      .s12_rty_i(1'b0),
386
      // Slave 13 Interface
387
      .s13_data_i(32'h0000_0000),
388
      .s13_ack_i(1'b0),
389
      .s13_err_i(1'b0),
390
      .s13_rty_i(1'b0),
391
      // Slave 14 Interface
392
      .s14_data_i(32'h0000_0000),
393
      .s14_ack_i(1'b0),
394
      .s14_err_i(1'b0),
395
      .s14_rty_i(1'b0),
396
      // Slave 15 Interface
397
      .s15_data_i(32'h0000_0000),
398
      .s15_ack_i(1'b0),
399
      .s15_err_i(1'b0),
400
      .s15_rty_i(1'b0),
401
 
402
      .clk_i(sys_clk),
403
      .rst_i(sys_rst)
404
    );
405
 
406
 
407
  //---------------------------------------------------
408
  // async_mem_if
409
  assign s0_err_i = 1'b0;
410
  assign s0_rty_i = 1'b0;
411
 
412
  async_mem_if #( .AW(18), .DW(16) )
413
    i_sram (
414
      .async_dq(sram_dq),
415
      .async_addr(sram_addr),
416
      .async_ub_n(sram_ub_n),
417
      .async_lb_n(sram_lb_n),
418
      .async_we_n(sram_we_n),
419
      .async_ce_n(sram_ce_n),
420
      .async_oe_n(sram_oe_n),
421
      .wb_clk_i(sys_clk),
422
      .wb_rst_i(sys_rst),
423
      .wb_adr_i( {14'h0000, s0_addr_o[17:0]} ),
424
      .wb_dat_i(s0_data_o),
425
      .wb_we_i(s0_we_o),
426
      .wb_stb_i(s0_stb_o),
427
      .wb_cyc_i(s0_cyc_o),
428
      .wb_sel_i(s0_sel_o),
429
      .wb_dat_o(s0_data_i),
430
      .wb_ack_o(s0_ack_i),
431
      .ce_setup(4'h0),
432
      .op_hold(4'h1),
433
      .ce_hold(4'h0),
434
      .big_endian_if_i(1'b0),
435
      .lo_byte_if_i(1'b0)
436
    );
437
 
438
 
439
  //---------------------------------------------------
440
  // outputs
441
 
442
  //  Turn off all display
443
  assign  hex0        =   7'h7f;
444
  assign  hex1        =   7'h7f;
445
  assign  hex2        =   7'h7f;
446
  assign  hex3        =   7'h7f;
447
//   assign  ledg        =   8'hff;
448
  assign  ledg        =   fled;
449
  assign  ledr        =   10'h000;
450
 
451
  //  All inout port turn to tri-state
452
  assign  dram_dq     =   16'hzzzz;
453
  assign  fl_dq       =   8'hzz;
454
//   assign  sram_dq     =   16'hzzzz;
455
  assign  sd_dat      =   1'bz;
456
  assign  i2c_sdat    =   1'bz;
457
  assign  aud_adclrck =   1'bz;
458
  assign  aud_daclrck =   1'bz;
459
  assign  aud_bclk    =   1'bz;
460
  assign  gpio_0      =   36'hzzzzzzzzz;
461
  assign  gpio_1      =   36'hzzzzzzzzz;
462
 
463
 
464
endmodule
465
 

powered by: WebSVN 2.1.0

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