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

Subversion Repositories ddr2_sdram

[/] [ddr2_sdram/] [trunk/] [ipcore_dir/] [DDR2_Ram_Core/] [user_design/] [rtl/] [DDR2_Ram_Core.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 john_fpga
--*****************************************************************************
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           : %module_name.vhd
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 module has the instantiations infrastructure_top and
52
--               main modules.
53
--*****************************************************************************
54
 
55
library ieee;
56
library UNISIM;
57
use ieee.std_logic_1164.all;
58
use UNISIM.VCOMPONENTS.all;
59
 
60
entity DDR2_Ram_Core is
61
  port (
62
      cntrl0_ddr2_dq                : inout std_logic_vector(15 downto 0);
63
      cntrl0_ddr2_a                 : out   std_logic_vector(12 downto 0);
64
      cntrl0_ddr2_ba                : out   std_logic_vector(1 downto 0);
65
      cntrl0_ddr2_cke               : out   std_logic;
66
      cntrl0_ddr2_cs_n              : out   std_logic;
67
      cntrl0_ddr2_ras_n             : out   std_logic;
68
      cntrl0_ddr2_cas_n             : out   std_logic;
69
      cntrl0_ddr2_we_n              : out   std_logic;
70
      cntrl0_ddr2_odt               : out   std_logic;
71
      cntrl0_ddr2_dm                : out   std_logic_vector(1 downto 0);
72
      cntrl0_rst_dqs_div_in         : in    std_logic;
73
      cntrl0_rst_dqs_div_out        : out   std_logic;
74
      sys_clk_in                    : in    std_logic;
75
      reset_in_n                    : in    std_logic;
76
      cntrl0_burst_done             : in    std_logic;
77
      cntrl0_init_done              : out   std_logic;
78
      cntrl0_ar_done                : out   std_logic;
79
      cntrl0_user_data_valid        : out   std_logic;
80
      cntrl0_auto_ref_req           : out   std_logic;
81
      cntrl0_user_cmd_ack           : out   std_logic;
82
      cntrl0_user_command_register  : in    std_logic_vector(2 downto 0);
83
      cntrl0_clk_tb                 : out   std_logic;
84
      cntrl0_clk90_tb               : out   std_logic;
85
      cntrl0_sys_rst_tb             : out   std_logic;
86
      cntrl0_sys_rst90_tb           : out   std_logic;
87
      cntrl0_sys_rst180_tb          : out   std_logic;
88
      cntrl0_user_output_data       : out   std_logic_vector(31 downto 0);
89
      cntrl0_user_input_data        : in    std_logic_vector(31 downto 0);
90
      cntrl0_user_data_mask         : in    std_logic_vector(3 downto 0);
91
      cntrl0_user_input_address     : in    std_logic_vector(24 downto 0);
92
      cntrl0_ddr2_dqs               : inout std_logic_vector(1 downto 0);
93
      cntrl0_ddr2_dqs_n             : inout std_logic_vector(1 downto 0);
94
      cntrl0_ddr2_ck                : out   std_logic_vector(0 downto 0);
95
      cntrl0_ddr2_ck_n              : out   std_logic_vector(0 downto 0)
96
    );
97
end DDR2_Ram_Core;
98
 
99
architecture arc_mem_interface_top of DDR2_Ram_Core is
100
 
101
  ATTRIBUTE X_CORE_INFO          : STRING;
102
  ATTRIBUTE CORE_GENERATION_INFO : STRING;
103
 
104
  ATTRIBUTE X_CORE_INFO of arc_mem_interface_top : ARCHITECTURE  IS "mig_v3_61_ddr2_sp3, Coregen 12.4";
105
  ATTRIBUTE CORE_GENERATION_INFO of arc_mem_interface_top  : ARCHITECTURE IS "ddr2_sp3,mig_v3_61,{component_name=ddr2_sp3, data_width=16, memory_width=8, clk_width=1, bank_address=2, row_address=13, column_address=10, no_of_cs=1, cke_width=1, registered=0, data_mask=1, mask_enable=1, load_mode_register=0010100110010, ext_load_mode_register=0000000000000, language=VHDL, synthesis_tool=ISE, interface_type=DDR2_SDRAM, no_of_controllers=1}";
106
 
107
  component DDR2_Ram_Core_top_0
108
    port(
109
      ddr2_dq               : inout std_logic_vector(15 downto 0);
110
      ddr2_a                : out   std_logic_vector(12 downto 0);
111
      ddr2_ba               : out   std_logic_vector(1 downto 0);
112
      ddr2_cke              : out   std_logic;
113
      ddr2_cs_n             : out   std_logic;
114
      ddr2_ras_n            : out   std_logic;
115
      ddr2_cas_n            : out   std_logic;
116
      ddr2_we_n             : out   std_logic;
117
      ddr2_odt              : out   std_logic;
118
      ddr2_dm               : out   std_logic_vector(1 downto 0);
119
      rst_dqs_div_in        : in    std_logic;
120
      rst_dqs_div_out       : out   std_logic;
121
      burst_done            : in    std_logic;
122
      init_done             : out   std_logic;
123
      ar_done               : out   std_logic;
124
      user_data_valid       : out   std_logic;
125
      auto_ref_req          : out   std_logic;
126
      user_cmd_ack          : out   std_logic;
127
      user_command_register : in    std_logic_vector(2 downto 0);
128
      clk_tb                : out   std_logic;
129
      clk90_tb              : out   std_logic;
130
      sys_rst_tb            : out   std_logic;
131
      sys_rst90_tb          : out   std_logic;
132
      sys_rst180_tb         : out   std_logic;
133
      user_output_data      : out   std_logic_vector(31 downto 0);
134
      user_input_data       : in    std_logic_vector(31 downto 0);
135
      user_data_mask        : in    std_logic_vector(3 downto 0);
136
      user_input_address    : in    std_logic_vector(24 downto 0);
137
      ddr2_dqs              : inout std_logic_vector(1 downto 0);
138
      ddr2_dqs_n            : inout std_logic_vector(1 downto 0);
139
      ddr2_ck               : out   std_logic_vector(0 downto 0);
140
      ddr2_ck_n             : out   std_logic_vector(0 downto 0);
141
      clk_int                : in std_logic;
142
      clk90_int              : in std_logic;
143
      wait_200us             : in std_logic;
144
      sys_rst                : in std_logic;
145
      sys_rst90              : in std_logic;
146
      sys_rst180             : in std_logic;
147
      delay_sel_val          : in std_logic_vector(4 downto 0);
148
      --Debug ports
149
 
150
      dbg_delay_sel          : out std_logic_vector(4 downto 0);
151
      dbg_rst_calib          : out std_logic;
152
      vio_out_dqs            : in  std_logic_vector(4 downto 0);
153
      vio_out_dqs_en         : in  std_logic;
154
      vio_out_rst_dqs_div    : in  std_logic_vector(4 downto 0);
155
      vio_out_rst_dqs_div_en : in  std_logic
156
    );
157
  end component;
158
 
159
  component DDR2_Ram_Core_infrastructure_top
160
    port (
161
            sys_clkb              : in    std_logic;
162
      sys_clk               : in    std_logic;
163
      sys_clk_in            : in    std_logic;
164
      reset_in_n            : in    std_logic;
165
      wait_200us             : out std_logic;
166
      delay_sel_val1_val     : out std_logic_vector(4 downto 0);
167
      sys_rst_val            : out std_logic;
168
      sys_rst90_val          : out std_logic;
169
      clk_int_val            : out std_logic;
170
      clk90_int_val          : out std_logic;
171
      sys_rst180_val         : out std_logic;
172
      dbg_phase_cnt          : out std_logic_vector(4 downto 0);
173
      dbg_cnt                : out std_logic_vector(5 downto 0);
174
      dbg_trans_onedtct      : out std_logic;
175
      dbg_trans_twodtct      : out std_logic;
176
      dbg_enb_trans_two_dtct : out std_logic
177
      );
178
  end component;
179
 
180
 
181
 
182
  signal sys_rst                : std_logic;
183
  signal wait_200us             : std_logic;
184
  signal sys_rst90              : std_logic;
185
  signal sys_rst180             : std_logic;
186
  signal clk_0                  : std_logic;
187
  signal clk90_0                : std_logic;
188
  signal delay_sel              : std_logic_vector(4 downto 0);
189
 -- debug signals
190
  signal dbg_phase_cnt          : std_logic_vector(4 downto 0);
191
  signal dbg_cnt                : std_logic_vector(5 downto 0);
192
  signal dbg_trans_onedtct      : std_logic;
193
  signal dbg_trans_twodtct      : std_logic;
194
  signal dbg_enb_trans_two_dtct : std_logic;
195
  signal dbg_delay_sel          : std_logic_vector(4 downto 0);
196
  signal dbg_rst_calib          : std_logic;
197
 -- chipscope signals
198
  signal dbg_data               : std_logic_vector(19 downto 0);
199
  signal dbg_trig               : std_logic_vector(3 downto 0);
200
  signal control0               : std_logic_vector(35 downto 0);
201
  signal control1               : std_logic_vector(35 downto 0);
202
  signal vio_out_dqs            : std_logic_vector(4 downto 0);
203
  signal vio_out_dqs_en         : std_logic;
204
  signal vio_out_rst_dqs_div    : std_logic_vector(4 downto 0);
205
  signal vio_out_rst_dqs_div_en : std_logic;
206
  signal vio_out                : std_logic_vector(11 downto 0);
207
  signal sys_clkb : std_logic;
208
  signal sys_clk : std_logic;
209
 
210
begin
211
 
212
  sys_clkb <= '0';
213
  sys_clk <= '0';
214
 
215
  top_00 : DDR2_Ram_Core_top_0
216
    port map (
217
      ddr2_dq               => cntrl0_ddr2_dq,
218
      ddr2_a                => cntrl0_ddr2_a,
219
      ddr2_ba               => cntrl0_ddr2_ba,
220
      ddr2_cke              => cntrl0_ddr2_cke,
221
      ddr2_cs_n             => cntrl0_ddr2_cs_n,
222
      ddr2_ras_n            => cntrl0_ddr2_ras_n,
223
      ddr2_cas_n            => cntrl0_ddr2_cas_n,
224
      ddr2_we_n             => cntrl0_ddr2_we_n,
225
      ddr2_odt              => cntrl0_ddr2_odt,
226
      ddr2_dm               => cntrl0_ddr2_dm,
227
      rst_dqs_div_in        => cntrl0_rst_dqs_div_in,
228
      rst_dqs_div_out       => cntrl0_rst_dqs_div_out,
229
      burst_done            => cntrl0_burst_done,
230
      init_done             => cntrl0_init_done,
231
      ar_done               => cntrl0_ar_done,
232
      user_data_valid       => cntrl0_user_data_valid,
233
      auto_ref_req          => cntrl0_auto_ref_req,
234
      user_cmd_ack          => cntrl0_user_cmd_ack,
235
      user_command_register => cntrl0_user_command_register,
236
      clk_tb                => cntrl0_clk_tb,
237
      clk90_tb              => cntrl0_clk90_tb,
238
      sys_rst_tb            => cntrl0_sys_rst_tb,
239
      sys_rst90_tb          => cntrl0_sys_rst90_tb,
240
      sys_rst180_tb         => cntrl0_sys_rst180_tb,
241
      user_output_data      => cntrl0_user_output_data,
242
      user_input_data       => cntrl0_user_input_data,
243
      user_data_mask        => cntrl0_user_data_mask,
244
      user_input_address    => cntrl0_user_input_address,
245
      ddr2_dqs              => cntrl0_ddr2_dqs,
246
      ddr2_dqs_n            => cntrl0_ddr2_dqs_n,
247
      ddr2_ck               => cntrl0_ddr2_ck,
248
      ddr2_ck_n             => cntrl0_ddr2_ck_n,
249
      wait_200us             => wait_200us,
250
      delay_sel_val          => delay_sel,
251
      clk_int                => clk_0,
252
      clk90_int              => clk90_0,
253
      sys_rst                => sys_rst,
254
      sys_rst90              => sys_rst90,
255
      sys_rst180             => sys_rst180,
256
 
257
    --Debug signals
258
 
259
      dbg_delay_sel          => dbg_delay_sel,
260
      dbg_rst_calib          => dbg_rst_calib,
261
      vio_out_dqs            => vio_out_dqs,
262
      vio_out_dqs_en         => vio_out_dqs_en,
263
      vio_out_rst_dqs_div    => vio_out_rst_dqs_div,
264
      vio_out_rst_dqs_div_en => vio_out_rst_dqs_div_en
265
      );
266
 
267
  infrastructure_top0 : DDR2_Ram_Core_infrastructure_top
268
    port map (
269
      wait_200us             => wait_200us,
270
      delay_sel_val1_val     => delay_sel,
271
      clk_int_val            => clk_0,
272
      clk90_int_val          => clk90_0,
273
      sys_rst_val            => sys_rst,
274
      sys_rst90_val          => sys_rst90,
275
      sys_rst180_val         => sys_rst180,
276
      dbg_phase_cnt          => dbg_phase_cnt,
277
      dbg_cnt                => dbg_cnt,
278
      dbg_trans_onedtct      => dbg_trans_onedtct,
279
      dbg_trans_twodtct      => dbg_trans_twodtct,
280
      dbg_enb_trans_two_dtct => dbg_enb_trans_two_dtct,
281
            sys_clkb              => sys_clkb,
282
      sys_clk               => sys_clk,
283
      sys_clk_in            => sys_clk_in,
284
      reset_in_n            => reset_in_n
285
      );
286
 
287
 
288
 
289
end arc_mem_interface_top;

powered by: WebSVN 2.1.0

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