source: XOpenSparcT1/trunk/Top/W1.v @ 27

Revision 27, 16.2 KB checked in by pntsvt00, 14 years ago (diff)

eliminato baco store consecutivi. esegue correttamente il codice

RevLine 
[8]1`timescale 1ns / 1ps
2//////////////////////////////////////////////////////////////////////////////////
3// Company:  (C) Athree, 2009
4// Engineer: Dmitry Rozhdestvenskiy
5// Email [email protected] [email protected] [email protected]
6//
7// Design Name:    SPARC SoC single-core top level for Altera StratixIV devkit
8// Module Name:    W1
9// Project Name:   SPARC SoC single-core
10//
11// LICENSE:
12// This is a Free Hardware Design; you can redistribute it and/or
13// modify it under the terms of the GNU General Public License
14// version 2 as published by the Free Software Foundation.
15// The above named program is distributed in the hope that it will
16// be useful, but WITHOUT ANY WARRANTY; without even the implied
17// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18// See the GNU General Public License for more details.
19//
20//////////////////////////////////////////////////////////////////////////////////
21
22module W1(
23
24   input         clk_in,
25   input         sysrst,
26
27   // ddr3 memory interface
28   inout  [63:0] ddr3_dq,
29   inout  [ 7:0] ddr3_dqs,
30   inout  [ 7:0] ddr3_dqs_n,
31   inout         ddr3_ck,
32   inout         ddr3_ck_n,
[10]33   //output        ddr3_reset,
[8]34   output [12:0] ddr3_a,
[17]35   output [ 1:0] ddr3_ba,
[8]36   output        ddr3_ras_n,
37   output        ddr3_cas_n,
38   output        ddr3_we_n,
39   output        ddr3_cs_n,
40   output        ddr3_odt,
41   output        ddr3_ce,
42   output [ 7:0] ddr3_dm,
43
44   //output        phy_init_done, // LED
45   //input         rup,
46   //input         rdn,
47       
48   // Console interface
49   input  srx,
50   output stx,
51   //input  [1:0] flash_rev,
[6]52   
[8]53   /* MII interface replaced by SGMII
54   
55   input        mtx_clk_pad_i,
56   output [3:0] mtxd_pad_o,
57   output       mtxen_pad_o,
58   output       mtxerr_pad_o,
59   input        mrx_clk_pad_i,
60   input  [3:0] mrxd_pad_i,
61   input        mrxdv_pad_i,
62   input        mrxerr_pad_i,
63   input        mcoll_pad_i,
64   input        mcrs_pad_i, */
65   
[6]66        //SGMII
[8]67        //output       mdc,
68   //inout        md,
69   
70   //output eth_rst,
71   //output eth_tx,
72   //input  eth_rx,
73   
74   //output led_10,
75   //output led_100,
76   //output led_1000,
77   //output led_link,
78   //output led_disp_err,
79   //output led_char_err,
80   //output led_an,
81       
82   output     [21:0] flash_addr,
83   input      [15:0] flash_data,
84   output            flash_oen,
85   output            flash_wen,
86   output            flash_cen,
87   output            flash_clk,
[14]88   output            flash_adv, //FIXME it seems useless
[8]89   output            flash_rst
90);
91
92wire pllclk;
93wire sysclk;
[17]94wire wb_clk_i;
[8]95wire wb_rst_i;
96wire [35:0] CONTROL0;
97wire [35:0] CONTROL1;
98wire [35:0] CONTROL2;
99wire [1:0] VIO_SIG;
100
101reg [31:0] cycle_count;
102
[17]103assign flash_clk=wb_clk_i;
[8]104assign flash_adv=0;
105assign flash_rst=!wb_rst_i;
106
107wire [63:0] m0_dat_i;
108wire [63:0] m0_dat_o;
109wire [63:0] m0_adr_i;
110wire [ 7:0] m0_sel_i;
111wire        m0_we_i;
112wire        m0_cyc_i; 
113wire        m0_stb_i;
114wire        m0_ack_o;
115
116wire [63:0] m1_dat_i;
117wire [63:0] m1_dat_o;
118wire [63:0] m1_adr_i;
119wire [ 7:0] m1_sel_i;
120wire        m1_we_i;
121wire        m1_cyc_i; 
122wire        m1_stb_i;
123wire        m1_ack_o;
124
125wire [63:0] s0_dat_i; 
126wire [63:0] s0_dat_o;
127wire [63:0] s0_adr_o;
128wire [ 7:0] s0_sel_o;
129wire        s0_we_o;
130wire        s0_cyc_o; 
131wire        s0_stb_o;
132wire        s0_ack_i;
133
134wire [63:0] s1_dat_i; 
135wire [63:0] s1_dat_o;
136wire [63:0] s1_adr_o;
137wire [ 7:0] s1_sel_o;
138wire        s1_we_o;
139wire        s1_cyc_o; 
140wire        s1_stb_o;
141wire        s1_ack_i;
142
143wire [63:0] s2_dat_i; 
144wire [63:0] s2_dat_o;
145wire [63:0] s2_adr_o;
146wire [ 7:0] s2_sel_o;
147wire        s2_we_o;
148wire        s2_cyc_o; 
149wire        s2_stb_o;
150wire        s2_ack_i;
151
152wire [63:0] s3_dat_i; 
153wire [63:0] s3_dat_o;
154wire [63:0] s3_adr_o;
155wire [ 7:0] s3_sel_o;
156wire        s3_we_o;
157wire        s3_cyc_o; 
158wire        s3_stb_o;
159wire        s3_ack_i;
160
161wire [63:0] s4_dat_i; 
162wire [63:0] s4_dat_o;
163wire [63:0] s4_adr_o;
164wire [ 7:0] s4_sel_o;
165wire        s4_we_o;
166wire        s4_cyc_o; 
167wire        s4_stb_o;
168wire        s4_ack_i;
169
170wb_conbus_top wishbone (
171    .clk_i(wb_clk_i), 
172    .rst_i(wb_rst_i), 
173   
174    //CPU
175    .m0_dat_i(m0_dat_i), 
176    .m0_dat_o(m0_dat_o), 
177    .m0_adr_i(m0_adr_i), 
178    .m0_sel_i(m0_sel_i), 
179    .m0_we_i(m0_we_i), 
180    .m0_cyc_i(m0_cyc_i), 
181    .m0_stb_i(m0_stb_i), 
182    .m0_ack_o(m0_ack_o), 
183    .m0_err_o(), 
184    .m0_rty_o(), 
[17]185    .m0_cab_i(1'b0),
[8]186   
187    //Ethernet
188    .m1_dat_i(m1_dat_i), 
189    .m1_dat_o(m1_dat_o), 
190    .m1_adr_i(m1_adr_i), 
191    .m1_sel_i(m1_sel_i), 
192    .m1_we_i(m1_we_i), 
193    .m1_cyc_i(m1_cyc_i), 
194    .m1_stb_i(m1_stb_i), 
195    .m1_ack_o(m1_ack_o), 
196    .m1_err_o(m1_err_o), 
197    .m1_rty_o(m1_rty_o), 
198    .m1_cab_i(m1_cab_i), 
199
[17]200    .m2_dat_i(64'h0000000000000000), 
[8]201    .m2_dat_o(), 
[17]202    .m2_adr_i(64'h0000000000000000), 
203    .m2_sel_i(8'h00), 
204    .m2_we_i(1'b0), 
205    .m2_cyc_i(1'b0), 
206    .m2_stb_i(1'b0), 
[8]207    .m2_ack_o(), 
208    .m2_err_o(), 
209    .m2_rty_o(), 
[17]210    .m2_cab_i(1'b0), 
[8]211
[22]212    .m3_dat_i(64'h0000000000000000), 
[8]213    .m3_dat_o(), 
[22]214    .m3_adr_i(64'h0000000000000000), 
215    .m3_sel_i(8'h00), 
216    .m3_we_i(1'b0), 
217    .m3_cyc_i(1'b0), 
218    .m3_stb_i(1'b0), 
[8]219    .m3_ack_o(), 
220    .m3_err_o(), 
221    .m3_rty_o(), 
[22]222    .m3_cab_i(1'b0), 
[8]223
[22]224    .m4_dat_i(64'h0000000000000000), 
[8]225    .m4_dat_o(), 
[22]226    .m4_adr_i(64'h0000000000000000), 
227    .m4_sel_i(8'h00), 
228    .m4_we_i(1'b0), 
229    .m4_cyc_i(1'b0), 
230    .m4_stb_i(1'b0), 
[8]231    .m4_ack_o(), 
232    .m4_err_o(), 
233    .m4_rty_o(), 
[22]234    .m4_cab_i(1'b0), 
[8]235
[22]236    .m5_dat_i(64'h0000000000000000), 
[8]237    .m5_dat_o(), 
[22]238    .m5_adr_i(64'h0000000000000000), 
239    .m5_sel_i(8'h00), 
240    .m5_we_i(1'b0), 
241    .m5_cyc_i(1'b0), 
242    .m5_stb_i(1'b0), 
[8]243    .m5_ack_o(), 
244    .m5_err_o(), 
245    .m5_rty_o(), 
[22]246    .m5_cab_i(1'b0), 
[8]247
[22]248    .m6_dat_i(64'h0000000000000000), 
[8]249    .m6_dat_o(), 
[22]250    .m6_adr_i(64'h0000000000000000), 
251    .m6_sel_i(8'h00), 
252    .m6_we_i(1'b0), 
253    .m6_cyc_i(1'b0), 
254    .m6_stb_i(1'b0), 
[8]255    .m6_ack_o(), 
256    .m6_err_o(), 
257    .m6_rty_o(), 
[22]258    .m6_cab_i(1'b0), 
[8]259
[22]260    .m7_dat_i(64'h0000000000000000), 
[8]261    .m7_dat_o(), 
[22]262    .m7_adr_i(64'h0000000000000000), 
263    .m7_sel_i(8'h00), 
264    .m7_we_i(1'b0), 
265    .m7_cyc_i(1'b0), 
266    .m7_stb_i(1'b0), 
[8]267    .m7_ack_o(), 
268    .m7_err_o(), 
269    .m7_rty_o(), 
[22]270    .m7_cab_i(1'b0), 
[8]271
272    //DRAM
273    .s0_dat_i(s0_dat_i), 
274    .s0_dat_o(s0_dat_o), 
275    .s0_adr_o(s0_adr_o), 
276    .s0_sel_o(s0_sel_o), 
277    .s0_we_o(s0_we_o), 
278    .s0_cyc_o(s0_cyc_o), 
279    .s0_stb_o(s0_stb_o), 
280    .s0_ack_i(s0_ack_i), 
[22]281    .s0_err_i(1'b0), 
282    .s0_rty_i(1'b0), 
[8]283    .s0_cab_o(),
284   
285    //Flash
286    .s1_dat_i(s1_dat_i), 
287    .s1_dat_o(s1_dat_o), 
288    .s1_adr_o(s1_adr_o), 
289    .s1_sel_o(s1_sel_o), 
290    .s1_we_o(s1_we_o), 
291    .s1_cyc_o(s1_cyc_o), 
292    .s1_stb_o(s1_stb_o), 
293    .s1_ack_i(s1_ack_i), 
294    .s1_err_i(s1_err_i), 
295    .s1_rty_i(s1_rty_i), 
296    .s1_cab_o(s1_cab_o), 
297
298    //Ethernet
299    .s2_dat_i(s2_dat_i), 
300    .s2_dat_o(s2_dat_o), 
301    .s2_adr_o(s2_adr_o), 
302    .s2_sel_o(s2_sel_o), 
303    .s2_we_o(s2_we_o), 
304    .s2_cyc_o(s2_cyc_o), 
305    .s2_stb_o(s2_stb_o), 
[27]306    .s2_ack_i(1'b0), 
307    .s2_err_i(1'b0), 
308    .s2_rty_i(1'b0), 
309    //.s2_ack_i(s2_ack_i),
310    //.s2_err_i(s2_err_i),
311    //.s2_rty_i(s2_rty_i),
[8]312    .s2_cab_o(s2_cab_o), 
313
314    //UART
315    .s3_dat_i({s3_dat_i[31:0],s3_dat_i[31:0]}), 
316    .s3_dat_o(s3_dat_o), 
317    .s3_adr_o(s3_adr_o), 
318    .s3_sel_o(s3_sel_o), 
319    .s3_we_o(s3_we_o), 
320    .s3_cyc_o(s3_cyc_o), 
321    .s3_stb_o(s3_stb_o), 
322    .s3_ack_i(s3_ack_i), 
[27]323    .s3_err_i(1'b0), 
324    .s3_rty_i(1'b0), 
325    .s3_cab_o(), 
[8]326
327    //Second flash interface for fff8xxxxxx ram disk addressing
328    .s4_dat_i(s4_dat_i), 
329    .s4_dat_o(s4_dat_o), 
330    .s4_adr_o(s4_adr_o), 
331    .s4_sel_o(s4_sel_o), 
332    .s4_we_o(s4_we_o), 
333    .s4_cyc_o(s4_cyc_o), 
334    .s4_stb_o(s4_stb_o), 
335    .s4_ack_i(s4_ack_i), 
336    .s4_err_i(s4_err_i), 
337    .s4_rty_i(s4_rty_i), 
338    .s4_cab_o(s4_cab_o), 
339
[22]340    .s5_dat_i(64'h0000000000000000), 
[8]341    .s5_dat_o(), 
342    .s5_adr_o(), 
343    .s5_sel_o(), 
344    .s5_we_o(), 
345    .s5_cyc_o(), 
346    .s5_stb_o(), 
[22]347    .s5_ack_i(1'b0), 
348    .s5_err_i(1'b0), 
349    .s5_rty_i(1'b0), 
[8]350    .s5_cab_o(), 
351
[22]352    .s6_dat_i(64'h0000000000000000), 
[8]353    .s6_dat_o(), 
354    .s6_adr_o(), 
355    .s6_sel_o(), 
356    .s6_we_o(), 
357    .s6_cyc_o(), 
358    .s6_stb_o(), 
[22]359    .s6_ack_i(1'b0), 
360    .s6_err_i(1'b0), 
361    .s6_rty_i(1'b0), 
[8]362    .s6_cab_o(), 
363
[22]364    .s7_dat_i(64'h0000000000000000), 
[8]365    .s7_dat_o(), 
366    .s7_adr_o(), 
367    .s7_sel_o(), 
368    .s7_we_o(), 
369    .s7_cyc_o(), 
370    .s7_stb_o(), 
[22]371    .s7_ack_i(1'b0), 
372    .s7_err_i(1'b0), 
373    .s7_rty_i(1'b0), 
[8]374    .s7_cab_o() 
375);
376       
377s1_top cpu (
378    .sys_clock_i(wb_clk_i), 
379    .sys_reset_i(wb_rst_i), 
380    .eth_irq_i(eth_irq), 
381    .wbm_ack_i(m0_ack_o), 
382    .wbm_data_i(m0_dat_o), 
383    .wbm_cycle_o(m0_cyc_i), 
384    .wbm_strobe_o(m0_stb_i), 
385    .wbm_we_o(m0_we_i), 
386    .wbm_addr_o(m0_adr_i), 
387    .wbm_data_o(m0_dat_i), 
388    .wbm_sel_o(m0_sel_i)
389    );
390
391wire [7:0] fifo_used;
392
393dram_wb dram_wb_inst (
394    .clk200(sysclk), 
395    //.clk200(clk_in),
396    //.rup(rup),
397    //.rdn(rdn),
398    .wb_clk_i(wb_clk_i), 
399    .wb_rst_i(wb_rst_i), 
400    .wb_dat_i(s0_dat_o), 
401    .wb_dat_o(s0_dat_i), 
402    .wb_adr_i(s0_adr_o), 
403    .wb_sel_i(s0_sel_o), 
404    .wb_we_i(s0_we_o), 
405    .wb_cyc_i(s0_cyc_o), 
406    .wb_stb_i(s0_stb_o), 
407    .wb_ack_o(s0_ack_i), 
408    .wb_err_o(s0_err_i), 
409    .wb_rty_o(s0_rty_i), 
410    .wb_cab_i(s0_cab_o), 
[23]411    .ddr2_dq(ddr3_dq), 
412    .ddr2_dqs(ddr3_dqs), 
413    .ddr2_dqs_n(ddr3_dqs_n), 
414    .ddr2_ck(ddr3_ck), 
415    .ddr2_ck_n(ddr3_ck_n), 
[10]416    //.ddr3_reset(ddr3_reset),
[23]417    .ddr2_a(ddr3_a), 
418    .ddr2_ba(ddr3_ba), 
419    .ddr2_ras_n(ddr3_ras_n), 
420    .ddr2_cas_n(ddr3_cas_n), 
421    .ddr2_we_n(ddr3_we_n), 
422    .ddr2_cs_n(ddr3_cs_n), 
423    .ddr2_odt(ddr3_odt), 
424    .ddr2_ce(ddr3_ce), 
425    .ddr2_dm(ddr3_dm), 
[8]426    .phy_init_done(phy_init_done), 
427    .dcm_locked(dcm_locked), 
428    .fifo_used(fifo_used),
429    .sysrst(sysrst)
430);
431
[17]432WBFLASH flash_inst (
[8]433    .wb_clk_i(wb_clk_i), 
434    .wb_rst_i(wb_rst_i), 
435   
436    .wb_dat_i(s1_dat_o), 
437    .wb_dat_o(s1_dat_i), 
438    .wb_adr_i(s1_adr_o), 
439    .wb_sel_i(s1_sel_o), 
440    .wb_we_i(s1_we_o), 
441    .wb_cyc_i(s1_cyc_o), 
442    .wb_stb_i(s1_stb_o), 
443    .wb_ack_o(s1_ack_i), 
444    .wb_err_o(s1_err_i), 
445    .wb_rty_o(s1_rty_i), 
446    .wb_cab_i(s1_cab_o), 
447
448    .wb1_dat_i(s4_dat_o), 
449    .wb1_dat_o(s4_dat_i), 
450    .wb1_adr_i(s4_adr_o), 
451    .wb1_sel_i(s4_sel_o), 
452    .wb1_we_i(s4_we_o), 
453    .wb1_cyc_i(s4_cyc_o), 
454    .wb1_stb_i(s4_stb_o), 
455    .wb1_ack_o(s4_ack_i), 
456    .wb1_err_o(s4_err_i), 
457    .wb1_rty_o(s4_rty_i), 
458    .wb1_cab_i(s4_cab_o), 
459
460    .flash_addr(flash_addr), 
461    .flash_data(flash_data), 
462    .flash_oen(flash_oen), 
463    .flash_wen(flash_wen), 
464    .flash_cen(flash_cen)
465    //.flash_rev(flash_rev)
466);
467
468uart_top uart16550 (
469    .wb_clk_i(wb_clk_i), 
470    .wb_rst_i(wb_rst_i), 
471    .wb_adr_i({s3_adr_o[4:3],s3_sel_o[3:0]==4'h0 ? 1'b0:1'b1,2'b00}), 
472    .wb_dat_i(s3_sel_o[3:0]==4'h0 ? {s3_dat_o[39:32],s3_dat_o[47:40],s3_dat_o[55:48],s3_dat_o[63:56]}:{s3_dat_o[7:0],s3_dat_o[15:8],s3_dat_o[23:16],s3_dat_o[31:24]}), 
473    .wb_dat_o({s3_dat_i[7:0],s3_dat_i[15:8],s3_dat_i[23:16],s3_dat_i[31:24]}), 
474    .wb_we_i(s3_we_o), 
475    .wb_stb_i(s3_stb_o), 
476    .wb_cyc_i(s3_cyc_o), 
477    .wb_ack_o(s3_ack_i), 
478    .wb_sel_i(s3_sel_o[3:0]==4'h0 ? {s3_sel_o[4],s3_sel_o[5],s3_sel_o[6],s3_sel_o[7]}:{s3_sel_o[0],s3_sel_o[1],s3_sel_o[2],s3_sel_o[3]}), // Big endian
479    .int_o(int_o), 
480    .stx_pad_o(stx), 
481    .srx_pad_i(srx), 
482    .rts_pad_o(), 
[17]483    .cts_pad_i(1'b1), 
[8]484    .dtr_pad_o(), 
[17]485    .dsr_pad_i(1'b1), 
486    .ri_pad_i(1'b0), 
487    .dcd_pad_i(1'b1),
488    .baud_o(baud_o)
[8]489);
490
[6]491/*
[8]492// OpenCores 10/100 Ethernet MAC
493eth_top eth_mac (
494    .wb_clk_i(wb_clk_i),
495    .wb_rst_i(wb_rst_i),
496   
497    .wb_dat_i(wb_sel_i[7:4]==4'b0 ? {wb_dat_i[7:0],wb_dat_i[15:8],wb_dat_i[23:16],wb_dat_i[31:24]}:{wb_dat_i[39:32],wb_dat_i[47:40],wb_dat_i[55:48],wb_dat_i[63:56]}),
498    .wb_dat_o(dat_o),
499    .wb_adr_i(wb_adr_i[31:0]),
500    .wb_sel_i(wb_sel_i[7:4]==4'b0 ? {wb_sel_i[0],wb_sel_i[1],wb_sel_i[2],wb_sel_i[3]}:{wb_sel_i[4],wb_sel_i[5],wb_sel_i[6],wb_sel_i[7]}),
501    .wb_we_i(wb_we_i),
502    .wb_cyc_i(wb_cyc_i),
503    .wb_stb_i(wb_stb_i),
504    .wb_ack_o(wb_ack_o),
505    .wb_err_o(wb_err_o),
506    .m_wb_adr_o(m_wb_adr_o[31:0]),
507    .m_wb_sel_o(sel_o),
508    .m_wb_we_o(m_wb_we_o),
509    .m_wb_dat_o(mdat_o),
510    .m_wb_dat_i(m_wb_adr_o[2] ? {m_wb_dat_i[7:0],m_wb_dat_i[15:8],m_wb_dat_i[23:16],m_wb_dat_i[31:24]}:{m_wb_dat_i[39:32],m_wb_dat_i[47:40],m_wb_dat_i[55:48],m_wb_dat_i[63:56]}),
511    .m_wb_cyc_o(m_wb_cyc_o),
512    .m_wb_stb_o(m_wb_stb_o),
513    .m_wb_ack_i(m_wb_ack_i),
514    .m_wb_err_i(m_wb_err_i),
515   
516    .mtx_clk_pad_i(mtx_clk),
517    .mtxd_pad_o(mtxd),
518    .mtxen_pad_o(mtxen),
519    .mtxerr_pad_o(mtxerr),
520    .mrx_clk_pad_i(mrx_clk),
521    .mrxd_pad_i(mrxd),
522    .mrxdv_pad_i(mrxdv),
523    .mrxerr_pad_i(mrxerr),
524    .mcoll_pad_i(mcoll),
525    .mcrs_pad_i(mcrs),
526    .mdc_pad_o(mdc),
527    .md_pad_i(md_i),
528    .md_pad_o(md_o),
529    .md_padoe_o(md_oe),
530    .int_o(int_eth)
531); */
[6]532
[8]533/*eth_sgmii eth_ctrl (
534   .wb_clk_i(wb_clk_i),
535    .wb_rst_i(wb_rst_i),
536    .sysclk(sysclk),
537   
538    .wb_dat_i(s2_dat_o),
539    .wb_dat_o(s2_dat_i),
540    .wb_adr_i(s2_adr_o),
541    .wb_sel_i(s2_sel_o),
542    .wb_we_i(s2_we_o),
543    .wb_cyc_i(s2_cyc_o),
544    .wb_stb_i(s2_stb_o),
545    .wb_ack_o(s2_ack_i),
546    .wb_err_o(s2_err_i),
547
548    .m_wb_adr_o(m1_adr_i),
549    .m_wb_sel_o(m1_sel_i),
550    .m_wb_we_o(m1_we_i),
551    .m_wb_dat_o(m1_dat_i),
552    .m_wb_dat_i(m1_dat_o),
553    .m_wb_cyc_o(m1_cyc_i),
554    .m_wb_stb_o(m1_stb_i),
555    .m_wb_ack_i(m1_ack_o),
556    .m_wb_err_i(m1_err_o),
557   
558    .sgmii_tx(eth_tx),
559    .sgmii_rx(eth_rx),
560    .led_10(led_10),
561    .led_100(led_100),
562    .led_1000(led_1000),
563    .led_an(led_an),
564    .led_disp_err(led_disp_err),
565    .led_char_err(led_char_err),
566    .led_link(led_link),
567   
568    .md(md),
569    .mdc(mdc),
570   
571    .int_eth(eth_int)
572);
573*/
574assign eth_rst=!wb_rst_i; // PHY reset
575         
576wire sysrst_p;
577assign sysrst_p=!sysrst;
578
579
580IBUFG ibufg_inst (.O(sysclk),.I(clk_in));
581BUFG bufg_inst (.O(pllclk),.I(sysclk));
582
583// Standard PLL
584pll pll_inst(
585        .RST_IN(sysrst_p),
586        .CLKIN1_IN(pllclk),
587        .CLKOUT0_OUT(wb_clk_i), //Up to 75 MHz on Stratix IV
588        .LOCKED_OUT(dcm_locked)
589);
590       
[24]591assign wb_rst_i=(!dcm_locked || !phy_init_done); 
[8]592         
593//reg [223:0] ILA_DATA;
594
595/*
596[63:0]    address
597[127:64]  data to core
598[191:128] data from core
599[199:192] sel
600[200]     cyc
601[201]     stb
602[202]     we
603[203]     ack
604*/
605
606// SignalTap II
607/*ST ila(
608        .acq_clk(wb_clk_i),
609        .acq_data_in(ILA_DATA),
610        .acq_trigger_in(ILA_DATA),
611        .storage_enable(ILA_DATA[203]) // wb_ack
612);*/
613
614// InSystem Sources
615/*VIO vio_inst(
616        .probe(0),
617        .source_clk(wb_clk_i),
618        .source(VIO_SIG)
619);*/
620
621/*always @(posedge wb_clk_i or posedge wb_rst_i)
622   if(wb_rst_i)
623           cycle_count<=0;
624        else
625           cycle_count<=cycle_count+1;
626
627always @( * )
628   begin
629      case(VIO_SIG)
630         2'b00:
631            begin
632               ILA_DATA[63:0]<=m0_adr_i;
633               ILA_DATA[127:64]<=m0_dat_o;
634               ILA_DATA[191:128]<=m0_dat_i;
635               ILA_DATA[199:192]<=m0_sel_i;
636               ILA_DATA[200]<=m0_cyc_i;
637               ILA_DATA[201]<=m0_stb_i;
638               ILA_DATA[202]<=m0_we_i;
639               ILA_DATA[203]<=m0_ack_o;
640            end
641         2'b01:
642            begin
643               ILA_DATA[63:0]<=m1_adr_i;
644               ILA_DATA[127:64]<=m1_dat_o;
645               ILA_DATA[191:128]<=m1_dat_i;
646               ILA_DATA[199:192]<=m1_sel_i;
647               ILA_DATA[200]<=m1_cyc_i;
648               ILA_DATA[201]<=m1_stb_i;
649               ILA_DATA[202]<=m1_we_i;
650               ILA_DATA[203]<=m1_ack_o;
651            end
652         2'b10:
653            begin
654               ILA_DATA[63:0]<=s2_adr_o;
655               ILA_DATA[127:64]<=s2_dat_o;
656               ILA_DATA[191:128]<=s2_dat_i;
657               ILA_DATA[199:192]<=s2_sel_o;
658               ILA_DATA[200]<=s2_cyc_o;
659               ILA_DATA[201]<=s2_stb_o;
660               ILA_DATA[202]<=s2_we_o;
661               ILA_DATA[203]<=s2_ack_i;
662            end
663         2'b11:
664            begin
665               ILA_DATA[63:0]<=s4_adr_o;
666               ILA_DATA[127:64]<=s4_dat_o;
667               ILA_DATA[191:128]<=s4_dat_i;
668               ILA_DATA[199:192]<=s4_sel_o;
669               ILA_DATA[200]<=s4_cyc_o;
670               ILA_DATA[201]<=s4_stb_o;
671               ILA_DATA[202]<=s4_we_o;
672               ILA_DATA[203]<=s4_ack_i;
673            end
674      endcase
675      ILA_DATA[204]<=stx;
676      ILA_DATA[205]<=srx;
677      ILA_DATA[206]<=baud_o;
678      //ILA_DATA[220:207]<=cycle_count[31:18];
679      ILA_DATA[220:213]<=fifo_used;
680      ILA_DATA[212:207]<=cycle_count[31:26];
681      ILA_DATA[221]<=dcm_locked;
682      ILA_DATA[222]<=wb_rst_i;
683      ILA_DATA[223]<=phy_init_done;
684   end
685*/
686endmodule
Note: See TracBrowser for help on using the repository browser.