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_controller_iobs_0.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           : DDR2_Ram_Core_controller_iobs_0.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 IOB instantiations to address and control
52
--               signals.
53
--*****************************************************************************
54
library ieee;
55
library UNISIM;
56
use ieee.std_logic_1164.all;
57
use ieee.std_logic_unsigned.all;
58
use UNISIM.VCOMPONENTS.all;
59
use work.DDR2_Ram_Core_parameters_0.all;
60
 
61
entity DDR2_Ram_Core_controller_iobs_0 is
62
  port(
63
    clk0              : in  std_logic;
64
    ddr_rasb_cntrl    : in  std_logic;
65
    ddr_casb_cntrl    : in  std_logic;
66
    ddr_web_cntrl     : in  std_logic;
67
    ddr_cke_cntrl     : in  std_logic;
68
    ddr_csb_cntrl     : in  std_logic;
69
    ddr_odt_cntrl     : in  std_logic;
70
    ddr_address_cntrl : in  std_logic_vector((ROW_ADDRESS -1) downto 0);
71
    ddr_ba_cntrl      : in  std_logic_vector((BANK_ADDRESS -1) downto 0);
72
    rst_dqs_div_int   : in  std_logic;
73
    ddr_odt           : out std_logic;
74
    ddr_rasb          : out std_logic;
75
    ddr_casb          : out std_logic;
76
    ddr_web           : out std_logic;
77
    ddr_ba            : out std_logic_vector((BANK_ADDRESS -1) downto 0);
78
    ddr_address       : out std_logic_vector((ROW_ADDRESS -1) downto 0);
79
    ddr_cke           : out std_logic;
80
    ddr_csb           : out std_logic;
81
    rst_dqs_div       : out std_logic;
82
    rst_dqs_div_in    : in  std_logic;
83
    rst_dqs_div_out   : out std_logic
84
    );
85
end DDR2_Ram_Core_controller_iobs_0;
86
 
87
architecture arc of DDR2_Ram_Core_controller_iobs_0 is
88
 
89
  signal ddr_web_q       : std_logic;
90
  signal ddr_rasb_q      : std_logic;
91
  signal ddr_casb_q      : std_logic;
92
  signal ddr_cke_q       : std_logic;
93
  signal ddr_cke_int     : std_logic;
94
  signal ddr_address_reg : std_logic_vector((ROW_ADDRESS -1) downto 0);
95
  signal ddr_ba_reg      : std_logic_vector((BANK_ADDRESS -1) downto 0);
96
  signal ddr_odt_reg     : std_logic;
97
  signal clk180          : std_logic;
98
 
99
  attribute iob          : string;
100
  attribute syn_useioff  : boolean;
101
 
102
  attribute iob of iob_rasb         : label is "FORCE";
103
  attribute iob of iob_casb         : label is "FORCE";
104
  attribute iob of iob_web          : label is "FORCE";
105
  attribute iob of iob_cke          : label is "FORCE";
106
  attribute iob of iob_odt          : label is "FORCE";
107
  attribute syn_useioff of iob_rasb : label is true;
108
  attribute syn_useioff of iob_casb : label is true;
109
  attribute syn_useioff of iob_web  : label is true;
110
  attribute syn_useioff of iob_cke  : label is true;
111
  attribute syn_useioff of iob_odt  : label is true;
112
 
113
begin
114
 
115
  clk180 <= not clk0;
116
 
117
---- *******************************************  ----
118
----  Includes the instantiation of FD for cntrl  ----
119
----            signals                           ----
120
---- *******************************************  ----
121
 
122
  iob_web : FD
123
    port map (
124
      Q => ddr_web_q,
125
      D => ddr_web_cntrl,
126
      C => clk180
127
      );
128
 
129
  iob_rasb : FD
130
    port map (
131
      Q => ddr_rasb_q,
132
      D => ddr_rasb_cntrl,
133
      C => clk180
134
      );
135
 
136
  iob_casb : FD
137
    port map (
138
      Q => ddr_casb_q,
139
      D => ddr_casb_cntrl,
140
      C => clk180
141
      );
142
 
143
---- *************************************  ----
144
----  Output buffers for control signals    ----
145
---- *************************************  ----
146
 
147
  r16 : OBUF
148
    port map (
149
      I => ddr_web_q,
150
      O => ddr_web
151
      );
152
 
153
  r17 : OBUF
154
    port map (
155
      I => ddr_rasb_q,
156
      O => ddr_rasb
157
      );
158
 
159
  r18 : OBUF
160
    port map (
161
      I => ddr_casb_q,
162
      O => ddr_casb
163
      );
164
 
165
  r19 : OBUF
166
    port map (
167
      I => ddr_csb_cntrl,
168
      O => ddr_csb
169
      );
170
 
171
  iob_cke1 : FD
172
    port map(
173
      Q => ddr_cke_int,
174
      D => ddr_cke_cntrl,
175
      C => clk0
176
      );
177
 
178
  iob_cke : FD
179
    port map(
180
      Q => ddr_cke_q,
181
      D => ddr_cke_int,
182
      C => clk180
183
      );
184
 
185
  r20 : OBUF
186
    port map (
187
      I => ddr_cke_q,
188
      O => ddr_cke
189
      );
190
 
191
  iob_odt : FD
192
    port map (
193
      Q => ddr_ODT_reg,
194
      D => ddr_ODT_cntrl,
195
      C => clk180
196
      );
197
 
198
  ODT_iob_obuf : OBUF
199
    port map (
200
      I => ddr_ODT_reg,
201
      O => ddr_ODT
202
      );
203
 
204
---- *******************************************  ----
205
----  Includes the instantiation of FD and OBUF   ----
206
----  for row address and bank address            ----
207
---- *******************************************  ----
208
 
209
  gen_addr : for i in (ROW_ADDRESS -1) downto 0 generate
210
    attribute IOB of iob_addr         : label is "FORCE";
211
    attribute syn_useioff of iob_addr : label is true;
212
  begin
213
    iob_addr : FD
214
      port map (
215
        Q => ddr_address_reg(i),
216
        D => ddr_address_cntrl(i),
217
        C => clk180
218
        );
219
    r : OBUF
220
      port map (
221
        I => ddr_address_reg(i),
222
        O => ddr_address(i)
223
        );
224
  end generate;
225
 
226
  gen_ba : for i in (BANK_ADDRESS -1) downto 0 generate
227
    attribute IOB of iob_ba         : label is "FORCE";
228
    attribute syn_useioff of iob_ba : label is true;
229
  begin
230
    iob_ba : FD
231
      port map (
232
        Q => ddr_ba_reg(i),
233
        D => ddr_ba_cntrl(i),
234
        C => clk180
235
        );
236
    r : OBUF
237
      port map (
238
        I => ddr_ba_reg(i),
239
        O => ddr_ba(i)
240
        );
241
  end generate;
242
 
243
  rst_iob_inbuf : IBUF
244
    port map(
245
      I => rst_dqs_div_in,
246
      O => rst_dqs_div
247
      );
248
 
249
  rst_iob_outbuf : OBUF
250
    port map (
251
      I => rst_dqs_div_int,
252
      O => rst_dqs_div_out
253
      );
254
 
255
end arc;

powered by: WebSVN 2.1.0

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