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

Subversion Repositories pulse_processing_algorithm

[/] [pulse_processing_algorithm/] [ddr_clk_dcm.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 panda_emc
--******************************************************************************
2
--
3
--*******************************************************************************
4
--
5
--  File name :       ddr_clk_dcm.vhd
6
--
7
--*****************************************************************************
8
library ieee;
9
use ieee.std_logic_1164.all;
10
--
11
-- pragma translate_off
12
library UNISIM;
13
use UNISIM.VCOMPONENTS.ALL;
14
-- pragma translate_on
15
--
16
entity ddr_clk_dcm is
17
port(
18
   sys_clk  : in std_logic;
19
   rst        : in std_logic;
20
   clk_int         : out std_logic;
21
   clk180_int      : out std_logic;
22
   clk90_int       : out std_logic;
23
   clk270_int       : out std_logic;
24
   dcm_lock   : out std_logic;
25
   ddr1_clk    : out std_logic;
26
   ddr1_clkb   : out std_logic;
27
   ddr2_clk    : out std_logic;
28
   ddr2_clkb   : out std_logic);
29
end ddr_clk_dcm;
30
 
31
 
32
 
33
architecture arc_ddr_clk_dcm of ddr_clk_dcm is
34
 
35
attribute syn_keep : boolean;
36
attribute xc_props : string;
37
 
38
 
39
component DCM
40
-- pragma translate_off
41
    generic (
42
             DLL_FREQUENCY_MODE    : string := "LOW";
43
             DUTY_CYCLE_CORRECTION : boolean := TRUE
44
            );
45
-- pragma translate_on
46
 
47
    port ( CLKIN     : in  std_logic;
48
           CLKFB     : in  std_logic;
49
           DSSEN     : in  std_logic;
50
           PSINCDEC  : in  std_logic;
51
           PSEN      : in  std_logic;
52
           PSCLK     : in  std_logic;
53
           RST       : in  std_logic;
54
           CLK0      : out std_logic;
55
           CLK90     : out std_logic;
56
           CLK180    : out std_logic;
57
           CLK270    : out std_logic;
58
           CLK2X     : out std_logic;
59
           CLK2X180  : out std_logic;
60
           CLKDV     : out std_logic;
61
           CLKFX     : out std_logic;
62
           CLKFX180  : out std_logic;
63
           LOCKED    : out std_logic;
64
           PSDONE    : out std_logic;
65
           STATUS    : out std_logic_vector(7 downto 0)
66
          );
67
end component;
68
 
69
 
70
 
71
 component myBUFG
72
  port ( I : in std_logic;
73
         O : out std_logic);
74
 end component;
75
 
76
 
77
 
78
 component FDDRRSE
79
 port( Q  : out std_logic;
80
       C0 : in std_logic;
81
       C1 : in std_logic;
82
       CE : in std_logic;
83
       D0 : in std_logic;
84
       D1 : in std_logic;
85
       R  : in std_logic;
86
       S  : in std_logic);
87
 end component;
88
 
89
 component OBUF
90
 port (
91
   O : out std_logic;
92
   I : in std_logic);
93
 end component;
94
 
95
 
96
 
97
signal clk0dcm             : std_logic;
98
signal clk90dcm            : std_logic;
99
 
100
signal clk0            : std_logic;
101
signal clk0_buf            : std_logic;
102
 
103
signal clk90_buf           : std_logic;
104
 
105
signal vcc                 : std_logic;
106
signal gnd                 : std_logic;
107
signal dcm1_lock           : std_logic;
108
 
109
 
110
signal ddr1_clk_q          :std_logic;
111
signal ddr1_clkb_q         :std_logic;
112
signal ddr2_clk_q          :std_logic;
113
signal ddr2_clkb_q         :std_logic;
114
 
115
signal clk180               :std_logic;
116
--signal clk270               : std_logic;
117
 
118
 
119
attribute DLL_FREQUENCY_MODE : string;
120
attribute DUTY_CYCLE_CORRECTION : string;
121
attribute CLKIN_DIVIDE_BY_2     : string;
122
 
123
attribute DLL_FREQUENCY_MODE of DCM_INST1    : label is "LOW";
124
attribute DUTY_CYCLE_CORRECTION of DCM_INST1 : label is "TRUE";
125
--attribute CLKIN_DIVIDE_BY_2 of DCM_100       : label is "TRUE";
126
 
127
 
128
---- **************************************************
129
---- iob attributes for instantiated FDDRRSE components
130
---- **************************************************
131
 
132
--PL:
133
--attribute xc_props of U1: label is "IOB=TRUE";
134
--attribute xc_props of U2: label is "IOB=TRUE";
135
--attribute xc_props of U3: label is "IOB=TRUE";
136
--attribute xc_props of U4: label is "IOB=TRUE";
137
--:LP
138
 
139
--attribute syn_keep of clk0 : signal is true;
140
--attribute syn_keep of clk180 : signal is true;
141
--attribute syn_keep of clk270 : signal is true;
142
 
143
 
144
 
145
 
146
begin
147
 
148
 
149
vcc <= '1';
150
gnd <= '0';
151
 
152
 
153
 
154
 
155
DCM_INST1 :  DCM
156
                 port map ( CLKIN    => sys_clk,
157
                            CLKFB    => clk0_buf,
158
                            DSSEN    => gnd,
159
                            PSINCDEC => gnd,
160
                            PSEN     => gnd,
161
                            PSCLK    => gnd,
162
                            RST      => RST,
163
                            CLK0     => clk0dcm,
164
                            CLK90    => clk90dcm,
165
                            CLK180   => open,
166
                            CLK270   => open,
167
                                  CLK2X    => open,
168
                            CLK2X180 => open,
169
                            CLKDV    => open,
170
                            CLKFX    => open,
171
                            CLKFX180 => open,
172
                            LOCKED   => dcm1_lock,
173
                            PSDONE   => open,
174
                            STATUS   => open);
175
 
176
 
177
BUFG_CLK0    : myBUFG port map ( I => clk0dcm ,
178
                               O => clk0_buf);
179
 
180
BUFG_CLK90   : myBUFG port map ( I => clk90dcm,
181
                               O => clk90_buf);
182
 
183
clk_int       <=       clk0_buf;
184
clk180_int    <=   not clk0_buf;
185
 
186
clk90_int     <=       clk90_buf;
187
clk270_int    <=   not clk90_buf;
188
 
189
 
190
dcm_lock <= dcm1_lock; -- and dcm_100_lock;
191
 
192
 
193
 
194
 clk0 <=   clk0_buf;
195
 clk180 <= not clk0_buf;
196
 
197
 
198
 
199
---- ***********************************************************
200
----     Output DDR generation
201
----     This includes instantiation of the output DDR flip flop
202
----     for ddr clk's and dimm clk's
203
---- ***********************************************************
204
 
205
U1 : FDDRRSE port map (
206
                        Q  => ddr1_clk_q ,
207
                        C0 => clk0,
208
                        C1 => clk180,
209
                        CE => vcc,
210
                        D0 => vcc,
211
                        D1 => gnd,
212
                         R => gnd,
213
                         S => gnd);
214
 
215
U2 : FDDRRSE port map (
216
                        Q => ddr1_clkb_q ,
217
                        C0 => clk0,
218
                        C1 => clk180,
219
                        CE => vcc,
220
                        D0 => gnd,
221
                        D1 => vcc,
222
                         R => gnd,
223
                         S => gnd);
224
 
225
 
226
U3 : FDDRRSE port map (
227
                        Q  => ddr2_clk_q ,
228
                        C0 => clk0,
229
                        C1 => clk180,
230
                        CE => vcc,
231
                        D0 => vcc,
232
                        D1 => gnd,
233
                         R => gnd,
234
                         S => gnd);
235
 
236
U4 : FDDRRSE port map (
237
                        Q => ddr2_clkb_q ,
238
                        C0 => clk0,
239
                        C1 => clk180,
240
                        CE => vcc,
241
                        D0 => gnd,
242
                        D1 => vcc,
243
                         R => gnd,
244
                         S => gnd);
245
 
246
 
247
---- ******************************************
248
---- Ouput BUffers for ddr clk's and dimm clk's
249
---- ******************************************
250
 
251
 
252
r1 : OBUF port map (
253
                     I => ddr1_clk_q,
254
                     O => ddr1_clk);
255
 
256
r2 : OBUF port map (
257
                     I => ddr1_clkb_q,
258
                     O => ddr1_clkb);
259
 
260
r3 : OBUF port map (
261
                     I => ddr2_clk_q,
262
                     O => ddr2_clk);
263
 
264
r4 : OBUF port map (
265
                     I => ddr2_clkb_q,
266
                     O => ddr2_clkb);
267
 
268
 
269
end arc_ddr_clk_dcm;

powered by: WebSVN 2.1.0

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