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

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

supera il test di write e read dalla DDR

RevLine 
[8]1`timescale 1ns / 1ps
2//////////////////////////////////////////////////////////////////////////////////
3// Company:  (C) Athree, 2009
4// Engineer: Dmitry Rozhdestvenskiy
5// Email dmitry.rozhdestvenskiy@srisc.com dmitryr@a3.spb.ru divx4log@narod.ru
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), 
306    .s2_ack_i(s2_ack_i), 
307    .s2_err_i(s2_err_i), 
308    .s2_rty_i(s2_rty_i), 
309    .s2_cab_o(s2_cab_o), 
310
311    //UART
312    .s3_dat_i({s3_dat_i[31:0],s3_dat_i[31:0]}), 
313    .s3_dat_o(s3_dat_o), 
314    .s3_adr_o(s3_adr_o), 
315    .s3_sel_o(s3_sel_o), 
316    .s3_we_o(s3_we_o), 
317    .s3_cyc_o(s3_cyc_o), 
318    .s3_stb_o(s3_stb_o), 
319    .s3_ack_i(s3_ack_i), 
320    .s3_err_i(s3_err_i), 
321    .s3_rty_i(s3_rty_i), 
322    .s3_cab_o(s3_cab_o), 
323
324    //Second flash interface for fff8xxxxxx ram disk addressing
325    .s4_dat_i(s4_dat_i), 
326    .s4_dat_o(s4_dat_o), 
327    .s4_adr_o(s4_adr_o), 
328    .s4_sel_o(s4_sel_o), 
329    .s4_we_o(s4_we_o), 
330    .s4_cyc_o(s4_cyc_o), 
331    .s4_stb_o(s4_stb_o), 
332    .s4_ack_i(s4_ack_i), 
333    .s4_err_i(s4_err_i), 
334    .s4_rty_i(s4_rty_i), 
335    .s4_cab_o(s4_cab_o), 
336
[22]337    .s5_dat_i(64'h0000000000000000), 
[8]338    .s5_dat_o(), 
339    .s5_adr_o(), 
340    .s5_sel_o(), 
341    .s5_we_o(), 
342    .s5_cyc_o(), 
343    .s5_stb_o(), 
[22]344    .s5_ack_i(1'b0), 
345    .s5_err_i(1'b0), 
346    .s5_rty_i(1'b0), 
[8]347    .s5_cab_o(), 
348
[22]349    .s6_dat_i(64'h0000000000000000), 
[8]350    .s6_dat_o(), 
351    .s6_adr_o(), 
352    .s6_sel_o(), 
353    .s6_we_o(), 
354    .s6_cyc_o(), 
355    .s6_stb_o(), 
[22]356    .s6_ack_i(1'b0), 
357    .s6_err_i(1'b0), 
358    .s6_rty_i(1'b0), 
[8]359    .s6_cab_o(), 
360
[22]361    .s7_dat_i(64'h0000000000000000), 
[8]362    .s7_dat_o(), 
363    .s7_adr_o(), 
364    .s7_sel_o(), 
365    .s7_we_o(), 
366    .s7_cyc_o(), 
367    .s7_stb_o(), 
[22]368    .s7_ack_i(1'b0), 
369    .s7_err_i(1'b0), 
370    .s7_rty_i(1'b0), 
[8]371    .s7_cab_o() 
372);
373       
374s1_top cpu (
375    .sys_clock_i(wb_clk_i), 
376    .sys_reset_i(wb_rst_i), 
377    .eth_irq_i(eth_irq), 
378    .wbm_ack_i(m0_ack_o), 
379    .wbm_data_i(m0_dat_o), 
380    .wbm_cycle_o(m0_cyc_i), 
381    .wbm_strobe_o(m0_stb_i), 
382    .wbm_we_o(m0_we_i), 
383    .wbm_addr_o(m0_adr_i), 
384    .wbm_data_o(m0_dat_i), 
385    .wbm_sel_o(m0_sel_i)
386    );
387
388wire [7:0] fifo_used;
389
390dram_wb dram_wb_inst (
391    .clk200(sysclk), 
392    //.clk200(clk_in),
393    //.rup(rup),
394    //.rdn(rdn),
395    .wb_clk_i(wb_clk_i), 
396    .wb_rst_i(wb_rst_i), 
397    .wb_dat_i(s0_dat_o), 
398    .wb_dat_o(s0_dat_i), 
399    .wb_adr_i(s0_adr_o), 
400    .wb_sel_i(s0_sel_o), 
401    .wb_we_i(s0_we_o), 
402    .wb_cyc_i(s0_cyc_o), 
403    .wb_stb_i(s0_stb_o), 
404    .wb_ack_o(s0_ack_i), 
405    .wb_err_o(s0_err_i), 
406    .wb_rty_o(s0_rty_i), 
407    .wb_cab_i(s0_cab_o), 
[23]408    .ddr2_dq(ddr3_dq), 
409    .ddr2_dqs(ddr3_dqs), 
410    .ddr2_dqs_n(ddr3_dqs_n), 
411    .ddr2_ck(ddr3_ck), 
412    .ddr2_ck_n(ddr3_ck_n), 
[10]413    //.ddr3_reset(ddr3_reset),
[23]414    .ddr2_a(ddr3_a), 
415    .ddr2_ba(ddr3_ba), 
416    .ddr2_ras_n(ddr3_ras_n), 
417    .ddr2_cas_n(ddr3_cas_n), 
418    .ddr2_we_n(ddr3_we_n), 
419    .ddr2_cs_n(ddr3_cs_n), 
420    .ddr2_odt(ddr3_odt), 
421    .ddr2_ce(ddr3_ce), 
422    .ddr2_dm(ddr3_dm), 
[8]423    .phy_init_done(phy_init_done), 
424    .dcm_locked(dcm_locked), 
425    .fifo_used(fifo_used),
426    .sysrst(sysrst)
427);
428
[17]429WBFLASH flash_inst (
[8]430    .wb_clk_i(wb_clk_i), 
431    .wb_rst_i(wb_rst_i), 
432   
433    .wb_dat_i(s1_dat_o), 
434    .wb_dat_o(s1_dat_i), 
435    .wb_adr_i(s1_adr_o), 
436    .wb_sel_i(s1_sel_o), 
437    .wb_we_i(s1_we_o), 
438    .wb_cyc_i(s1_cyc_o), 
439    .wb_stb_i(s1_stb_o), 
440    .wb_ack_o(s1_ack_i), 
441    .wb_err_o(s1_err_i), 
442    .wb_rty_o(s1_rty_i), 
443    .wb_cab_i(s1_cab_o), 
444
445    .wb1_dat_i(s4_dat_o), 
446    .wb1_dat_o(s4_dat_i), 
447    .wb1_adr_i(s4_adr_o), 
448    .wb1_sel_i(s4_sel_o), 
449    .wb1_we_i(s4_we_o), 
450    .wb1_cyc_i(s4_cyc_o), 
451    .wb1_stb_i(s4_stb_o), 
452    .wb1_ack_o(s4_ack_i), 
453    .wb1_err_o(s4_err_i), 
454    .wb1_rty_o(s4_rty_i), 
455    .wb1_cab_i(s4_cab_o), 
456
457    .flash_addr(flash_addr), 
458    .flash_data(flash_data), 
459    .flash_oen(flash_oen), 
460    .flash_wen(flash_wen), 
461    .flash_cen(flash_cen)
462    //.flash_rev(flash_rev)
463);
464
465uart_top uart16550 (
466    .wb_clk_i(wb_clk_i), 
467    .wb_rst_i(wb_rst_i), 
468    .wb_adr_i({s3_adr_o[4:3],s3_sel_o[3:0]==4'h0 ? 1'b0:1'b1,2'b00}), 
469    .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]}), 
470    .wb_dat_o({s3_dat_i[7:0],s3_dat_i[15:8],s3_dat_i[23:16],s3_dat_i[31:24]}), 
471    .wb_we_i(s3_we_o), 
472    .wb_stb_i(s3_stb_o), 
473    .wb_cyc_i(s3_cyc_o), 
474    .wb_ack_o(s3_ack_i), 
475    .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
476    .int_o(int_o), 
477    .stx_pad_o(stx), 
478    .srx_pad_i(srx), 
479    .rts_pad_o(), 
[17]480    .cts_pad_i(1'b1), 
[8]481    .dtr_pad_o(), 
[17]482    .dsr_pad_i(1'b1), 
483    .ri_pad_i(1'b0), 
484    .dcd_pad_i(1'b1),
485    .baud_o(baud_o)
[8]486);
487
[6]488/*
[8]489// OpenCores 10/100 Ethernet MAC
490eth_top eth_mac (
491    .wb_clk_i(wb_clk_i),
492    .wb_rst_i(wb_rst_i),
493   
494    .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]}),
495    .wb_dat_o(dat_o),
496    .wb_adr_i(wb_adr_i[31:0]),
497    .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]}),
498    .wb_we_i(wb_we_i),
499    .wb_cyc_i(wb_cyc_i),
500    .wb_stb_i(wb_stb_i),
501    .wb_ack_o(wb_ack_o),
502    .wb_err_o(wb_err_o),
503    .m_wb_adr_o(m_wb_adr_o[31:0]),
504    .m_wb_sel_o(sel_o),
505    .m_wb_we_o(m_wb_we_o),
506    .m_wb_dat_o(mdat_o),
507    .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]}),
508    .m_wb_cyc_o(m_wb_cyc_o),
509    .m_wb_stb_o(m_wb_stb_o),
510    .m_wb_ack_i(m_wb_ack_i),
511    .m_wb_err_i(m_wb_err_i),
512   
513    .mtx_clk_pad_i(mtx_clk),
514    .mtxd_pad_o(mtxd),
515    .mtxen_pad_o(mtxen),
516    .mtxerr_pad_o(mtxerr),
517    .mrx_clk_pad_i(mrx_clk),
518    .mrxd_pad_i(mrxd),
519    .mrxdv_pad_i(mrxdv),
520    .mrxerr_pad_i(mrxerr),
521    .mcoll_pad_i(mcoll),
522    .mcrs_pad_i(mcrs),
523    .mdc_pad_o(mdc),
524    .md_pad_i(md_i),
525    .md_pad_o(md_o),
526    .md_padoe_o(md_oe),
527    .int_o(int_eth)
528); */
[6]529
[8]530/*eth_sgmii eth_ctrl (
531   .wb_clk_i(wb_clk_i),
532    .wb_rst_i(wb_rst_i),
533    .sysclk(sysclk),
534   
535    .wb_dat_i(s2_dat_o),
536    .wb_dat_o(s2_dat_i),
537    .wb_adr_i(s2_adr_o),
538    .wb_sel_i(s2_sel_o),
539    .wb_we_i(s2_we_o),
540    .wb_cyc_i(s2_cyc_o),
541    .wb_stb_i(s2_stb_o),
542    .wb_ack_o(s2_ack_i),
543    .wb_err_o(s2_err_i),
544
545    .m_wb_adr_o(m1_adr_i),
546    .m_wb_sel_o(m1_sel_i),
547    .m_wb_we_o(m1_we_i),
548    .m_wb_dat_o(m1_dat_i),
549    .m_wb_dat_i(m1_dat_o),
550    .m_wb_cyc_o(m1_cyc_i),
551    .m_wb_stb_o(m1_stb_i),
552    .m_wb_ack_i(m1_ack_o),
553    .m_wb_err_i(m1_err_o),
554   
555    .sgmii_tx(eth_tx),
556    .sgmii_rx(eth_rx),
557    .led_10(led_10),
558    .led_100(led_100),
559    .led_1000(led_1000),
560    .led_an(led_an),
561    .led_disp_err(led_disp_err),
562    .led_char_err(led_char_err),
563    .led_link(led_link),
564   
565    .md(md),
566    .mdc(mdc),
567   
568    .int_eth(eth_int)
569);
570*/
571assign eth_rst=!wb_rst_i; // PHY reset
572         
573wire sysrst_p;
574assign sysrst_p=!sysrst;
575
576
577IBUFG ibufg_inst (.O(sysclk),.I(clk_in));
578BUFG bufg_inst (.O(pllclk),.I(sysclk));
579
580// Standard PLL
581pll pll_inst(
582        .RST_IN(sysrst_p),
583        .CLKIN1_IN(pllclk),
584        .CLKOUT0_OUT(wb_clk_i), //Up to 75 MHz on Stratix IV
585        .LOCKED_OUT(dcm_locked)
586);
587       
[17]588assign wb_rst_i=(!dcm_locked ); //FIXME
589//assign wb_rst_i=(!dcm_locked || !phy_init_done); //FIXME
[8]590         
591//reg [223:0] ILA_DATA;
592
593/*
594[63:0]    address
595[127:64]  data to core
596[191:128] data from core
597[199:192] sel
598[200]     cyc
599[201]     stb
600[202]     we
601[203]     ack
602*/
603
604// SignalTap II
605/*ST ila(
606        .acq_clk(wb_clk_i),
607        .acq_data_in(ILA_DATA),
608        .acq_trigger_in(ILA_DATA),
609        .storage_enable(ILA_DATA[203]) // wb_ack
610);*/
611
612// InSystem Sources
613/*VIO vio_inst(
614        .probe(0),
615        .source_clk(wb_clk_i),
616        .source(VIO_SIG)
617);*/
618
619/*always @(posedge wb_clk_i or posedge wb_rst_i)
620   if(wb_rst_i)
621           cycle_count<=0;
622        else
623           cycle_count<=cycle_count+1;
624
625always @( * )
626   begin
627      case(VIO_SIG)
628         2'b00:
629            begin
630               ILA_DATA[63:0]<=m0_adr_i;
631               ILA_DATA[127:64]<=m0_dat_o;
632               ILA_DATA[191:128]<=m0_dat_i;
633               ILA_DATA[199:192]<=m0_sel_i;
634               ILA_DATA[200]<=m0_cyc_i;
635               ILA_DATA[201]<=m0_stb_i;
636               ILA_DATA[202]<=m0_we_i;
637               ILA_DATA[203]<=m0_ack_o;
638            end
639         2'b01:
640            begin
641               ILA_DATA[63:0]<=m1_adr_i;
642               ILA_DATA[127:64]<=m1_dat_o;
643               ILA_DATA[191:128]<=m1_dat_i;
644               ILA_DATA[199:192]<=m1_sel_i;
645               ILA_DATA[200]<=m1_cyc_i;
646               ILA_DATA[201]<=m1_stb_i;
647               ILA_DATA[202]<=m1_we_i;
648               ILA_DATA[203]<=m1_ack_o;
649            end
650         2'b10:
651            begin
652               ILA_DATA[63:0]<=s2_adr_o;
653               ILA_DATA[127:64]<=s2_dat_o;
654               ILA_DATA[191:128]<=s2_dat_i;
655               ILA_DATA[199:192]<=s2_sel_o;
656               ILA_DATA[200]<=s2_cyc_o;
657               ILA_DATA[201]<=s2_stb_o;
658               ILA_DATA[202]<=s2_we_o;
659               ILA_DATA[203]<=s2_ack_i;
660            end
661         2'b11:
662            begin
663               ILA_DATA[63:0]<=s4_adr_o;
664               ILA_DATA[127:64]<=s4_dat_o;
665               ILA_DATA[191:128]<=s4_dat_i;
666               ILA_DATA[199:192]<=s4_sel_o;
667               ILA_DATA[200]<=s4_cyc_o;
668               ILA_DATA[201]<=s4_stb_o;
669               ILA_DATA[202]<=s4_we_o;
670               ILA_DATA[203]<=s4_ack_i;
671            end
672      endcase
673      ILA_DATA[204]<=stx;
674      ILA_DATA[205]<=srx;
675      ILA_DATA[206]<=baud_o;
676      //ILA_DATA[220:207]<=cycle_count[31:18];
677      ILA_DATA[220:213]<=fifo_used;
678      ILA_DATA[212:207]<=cycle_count[31:26];
679      ILA_DATA[221]<=dcm_locked;
680      ILA_DATA[222]<=wb_rst_i;
681      ILA_DATA[223]<=phy_init_done;
682   end
683*/
684endmodule
Note: See TracBrowser for help on using the repository browser.