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

Subversion Repositories next186_soc_pc

[/] [next186_soc_pc/] [trunk/] [HW/] [ddr/] [user_design/] [rtl/] [ddr_top_0.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ndumitrach
//*****************************************************************************
2
// DISCLAIMER OF LIABILITY
3
//
4
// This file contains proprietary and confidential information of
5
// Xilinx, Inc. ("Xilinx"), that is distributed under a license
6
// from Xilinx, and may be used, copied and/or disclosed only
7
// pursuant to the terms of a valid license agreement with Xilinx.
8
//
9
// XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION
10
// ("MATERIALS") "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
11
// EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING WITHOUT
12
// LIMITATION, ANY WARRANTY WITH RESPECT TO NONINFRINGEMENT,
13
// MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. Xilinx
14
// does not warrant that functions included in the Materials will
15
// meet the requirements of Licensee, or that the operation of the
16
// Materials will be uninterrupted or error-free, or that defects
17
// in the Materials will be corrected. Furthermore, Xilinx does
18
// not warrant or make any representations regarding use, or the
19
// results of the use, of the Materials in terms of correctness,
20
// accuracy, reliability or otherwise.
21
//
22
// Xilinx products are not designed or intended to be fail-safe,
23
// or for use in any application requiring fail-safe performance,
24
// such as life-support or safety devices or systems, Class III
25
// medical devices, nuclear facilities, applications related to
26
// the deployment of airbags, or any other applications that could
27
// lead to death, personal injury or severe property or
28
// environmental damage (individually and collectively, "critical
29
// applications"). Customer assumes the sole risk and liability
30
// of any use of Xilinx products in critical applications,
31
// subject only to applicable laws and regulations governing
32
// limitations on product liability.
33
//
34
// Copyright 2005, 2006, 2007, 2008 Xilinx, Inc.
35
// All rights reserved.
36
//
37
// This disclaimer and copyright notice must be retained as part
38
// of this file at all times.
39
//*****************************************************************************
40
//   ____  ____
41
//  /   /\/   /
42
// /___/  \  /   Vendor             : Xilinx
43
// \   \   \/    Version            : 3.6.1
44
//  \   \        Application        : MIG
45
//  /   /        Filename           : ddr_top_0.v
46
// /___/   /\    Date Last Modified : $Date: 2010/11/26 18:25:42 $
47
// \   \  /  \   Date Created       : Mon May 2 2005
48
//  \___\/\___\
49
// Device       : Spartan-3/3A/3A-DSP
50
// Design Name  : DDR2 SDRAM
51
// Purpose      : This modules has the instantiations infrastructure, iobs, 
52
//                controller and data_paths modules
53
//*****************************************************************************
54
 
55
`timescale 1ns/100ps
56
`include "../rtl/ddr_parameters_0.v"
57
 
58
module  ddr_top_0
59
  (
60
   input                                         rst_dqs_div_in,
61
   output                                        rst_dqs_div_out,
62
   input                                         clk_int,
63
   input                                         clk90_int,
64
   input [4:0]                                   delay_sel_val,
65
   input                                         sys_rst,
66
   input                                         sys_rst90,
67
   input                                         sys_rst180,
68
   input [((`DATA_WIDTH*2)-1):0]                 user_input_data,
69
   output [((`DATA_WIDTH*2)-1):0]                user_output_data,
70
   output                                        user_data_valid,
71
   input [((`ROW_ADDRESS +
72
            `COLUMN_ADDRESS + `BANK_ADDRESS)-1):0] user_input_address,
73
   input [2:0]                                   user_command_register,
74
   output                                        user_cmd_ack,
75
   input                                         burst_done,
76
   output                                        init_done,
77
   output                                        ar_done,
78
   inout [((`DATA_STROBE_WIDTH)-1):0]            ddr2_dqs,
79
   inout [(`DATA_WIDTH-1):0]                     ddr2_dq,
80
   output                                        ddr2_cke,
81
   output                                        ddr2_cs_n,
82
   output                                        auto_ref_req,
83
   input                                         wait_200us,
84
   output                                        ddr2_ras_n,
85
   output                                        ddr2_cas_n,
86
   output                                        ddr2_we_n,
87
   output                                        ddr2_odt,
88
   output [`BANK_ADDRESS-1:0]                    ddr2_ba,
89
   output [`ROW_ADDRESS-1:0]                     ddr2_a,
90
   output [(`CLK_WIDTH-1):0]                     ddr2_ck,
91
   input  [((`DATA_MASK_WIDTH*2)-1):0]           user_data_mask,
92
   output [((`DATA_MASK_WIDTH)-1):0]             ddr2_dm,
93
    inout  [(`DATA_STROBE_WIDTH-1):0] ddr2_dqs_n,
94
 
95
   output       clk_tb,
96
   output       clk90_tb,
97
   output       sys_rst_tb,
98
   output       sys_rst90_tb,
99
   output       sys_rst180_tb,
100
   output [(`CLK_WIDTH-1):0]                     ddr2_ck_n,
101
   //debug_signals
102
   output [4:0]                                  dbg_delay_sel,
103
   output                                        dbg_rst_calib,
104
   input [4:0]                                    vio_out_dqs,
105
   input                                         vio_out_dqs_en,
106
   input [4:0]                                   vio_out_rst_dqs_div,
107
   input                                         vio_out_rst_dqs_div_en
108
   );
109
 
110
 
111
   wire                                          rst_calib;
112
   wire [4:0]                                    delay_sel;
113
   wire                                          write_enable;
114
   wire                                          dqs_div_rst;
115
   wire                                          dqs_enable;
116
   wire                                          dqs_reset;
117
   wire [(`DATA_WIDTH-1):0]                      dq;
118
   wire                                          write_en_val;
119
   wire [((`DATA_MASK_WIDTH)-1):0]               data_mask_f;
120
   wire [((`DATA_MASK_WIDTH)-1):0]               data_mask_r;
121
   wire [(`DATA_WIDTH-1):0]                      write_data_falling;
122
   wire [(`DATA_WIDTH-1):0]                      write_data_rising;
123
   wire                                          ddr_rasb_cntrl;
124
   wire                                          ddr_casb_cntrl;
125
   wire                                          ddr_web_cntrl;
126
   wire [`BANK_ADDRESS-1:0]                      ddr_ba_cntrl;
127
   wire [`ROW_ADDRESS-1:0]                       ddr_address_cntrl;
128
   wire                                          ddr_cke_cntrl;
129
   wire                                          ddr_csb_cntrl;
130
   wire                                          ddr_odt_cntrl;
131
   wire                                          rst_dqs_div_int;
132
   wire [(`DATA_STROBE_WIDTH-1):0]                dqs_int_delay_in;
133
 
134
   assign     clk_tb   = clk_int;
135
   assign     clk90_tb = clk90_int;
136
   assign     sys_rst_tb   = sys_rst;
137
   assign     sys_rst90_tb = sys_rst90;
138
   assign     sys_rst180_tb = sys_rst180;
139
 
140
   ddr_controller_0 controller0
141
     (
142
      .auto_ref_req      (auto_ref_req),
143
      .wait_200us(wait_200us),
144
      .clk               (clk_int),
145
      .rst0              (sys_rst),
146
      .rst180            (sys_rst180),
147
      .address           (user_input_address[((`ROW_ADDRESS +
148
                                               `COLUMN_ADDRESS +
149
                                               `BANK_ADDRESS)-1):
150
                                             `BANK_ADDRESS]),
151
      .bank_address      (user_input_address[(`BANK_ADDRESS-1): 0]),
152
      .command_register  (user_command_register),
153
      .burst_done        (burst_done),
154
      .ddr_rasb_cntrl    (ddr_rasb_cntrl),
155
      .ddr_casb_cntrl    (ddr_casb_cntrl),
156
      .ddr_web_cntrl     (ddr_web_cntrl),
157
      .ddr_ba_cntrl      (ddr_ba_cntrl),
158
      .ddr_address_cntrl (ddr_address_cntrl),
159
      .ddr_cke_cntrl     (ddr_cke_cntrl),
160
      .ddr_csb_cntrl     (ddr_csb_cntrl),
161
      .ddr_odt_cntrl     (ddr_odt_cntrl),
162
      .dqs_enable        (dqs_enable),
163
      .dqs_reset         (dqs_reset),
164
      .write_enable      (write_enable),
165
      .rst_calib         (rst_calib),
166
      .rst_dqs_div_int   (rst_dqs_div_int),
167
      .cmd_ack           (user_cmd_ack),
168
      .init              (init_done),
169
      .ar_done           (ar_done),
170
      .read_fifo_rden    (read_fifo_rden) // Added new signal
171
      );
172
 
173
   ddr_data_path_0  data_path0
174
     (
175
      .user_input_data       (user_input_data),
176
      .user_data_mask        (user_data_mask),
177
      .clk                   (clk_int),
178
      .clk90                 (clk90_int),
179
      .reset                 (sys_rst),
180
      .reset90               (sys_rst90),
181
      .write_enable          (write_enable),
182
      .rst_dqs_div_in        (dqs_div_rst),
183
      .delay_sel             (delay_sel),
184
      .dqs_int_delay_in      (dqs_int_delay_in),
185
      .dq                    (dq),
186
      .u_data_val            (user_data_valid),
187
      .user_output_data      (user_output_data),
188
      .write_en_val          (write_en_val),
189
      .data_mask_f           (data_mask_f),
190
      .data_mask_r           (data_mask_r),
191
      .write_data_falling    (write_data_falling),
192
      .write_data_rising     (write_data_rising),
193
      .read_fifo_rden        (read_fifo_rden),    // Added new signal
194
//debug signals
195
      .vio_out_dqs            (vio_out_dqs),
196
      .vio_out_dqs_en         (vio_out_dqs_en),
197
      .vio_out_rst_dqs_div    (vio_out_rst_dqs_div),
198
      .vio_out_rst_dqs_div_en (vio_out_rst_dqs_div_en)
199
      );
200
 
201
   ddr_infrastructure infrastructure0
202
     (
203
      .clk_int            (clk_int),
204
      .rst_calib1         (rst_calib),
205
      .delay_sel_val      (delay_sel_val),
206
      .delay_sel_val1_val (delay_sel),
207
      .dbg_delay_sel      (dbg_delay_sel),
208
      .dbg_rst_calib      (dbg_rst_calib)
209
      );
210
 
211
   ddr_iobs_0       iobs0
212
     (
213
      .clk               (clk_int),
214
      .clk90             (clk90_int),
215
      .ddr_rasb_cntrl    (ddr_rasb_cntrl),
216
      .ddr_casb_cntrl    (ddr_casb_cntrl),
217
      .ddr_web_cntrl     (ddr_web_cntrl),
218
      .ddr_cke_cntrl     (ddr_cke_cntrl),
219
      .ddr_csb_cntrl     (ddr_csb_cntrl),
220
      .ddr_odt_cntrl     (ddr_odt_cntrl),
221
      .ddr_address_cntrl (ddr_address_cntrl),
222
      .ddr_ba_cntrl      (ddr_ba_cntrl),
223
      .rst_dqs_div_int   (rst_dqs_div_int),
224
      .dqs_reset         (dqs_reset),
225
      .dqs_enable        (dqs_enable),
226
      .ddr_dqs           (ddr2_dqs),
227
       .ddr_dqs_n (ddr2_dqs_n),
228
      .ddr_dq            (ddr2_dq),
229
      .write_data_falling(write_data_falling),
230
      .write_data_rising (write_data_rising),
231
      .write_en_val      (write_en_val),
232
      .data_mask_f       (data_mask_f),
233
      .data_mask_r       (data_mask_r),
234
      .ddr2_ck           (ddr2_ck),
235
      .ddr2_ck_n         (ddr2_ck_n),
236
      .ddr_rasb          (ddr2_ras_n),
237
      .ddr_casb          (ddr2_cas_n),
238
      .ddr_web           (ddr2_we_n),
239
      .ddr_ba            (ddr2_ba),
240
      .ddr_address       (ddr2_a),
241
      .ddr_cke           (ddr2_cke),
242
      .ddr_csb           (ddr2_cs_n),
243
      .ddr_odt0          (ddr2_odt),
244
      .rst_dqs_div       (dqs_div_rst),
245
      .rst_dqs_div_in    (rst_dqs_div_in),
246
      .rst_dqs_div_out   (rst_dqs_div_out),
247
      .dqs_int_delay_in  (dqs_int_delay_in),
248
      .ddr_dm            (ddr2_dm),
249
      .dq                (dq)
250
      );
251
 
252
endmodule

powered by: WebSVN 2.1.0

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