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

Subversion Repositories pulse_processing_algorithm

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 panda_emc
--******************************************************************************
2
--
3
--  Xilinx, Inc. 2002                 www.xilinx.com
4
--
5
--
6
--*******************************************************************************
7
--
8
--  File name :       s3_ddr_iob.vhd
9
--
10
--  Description :     This module instantiates DDR IOB output flip-flops, an 
11
--                    output buffer with registered tri-state, and an input buffer  
12
--                    for a single data bit. The DDR input flip-flops are not used
13
--                    since data is captured in the CLB flip-flops. 
14
--                    
15
--  Date - revision : 07/28/2003
16
--
17
--
18
-- 
19
--*****************************************************************************
20
library ieee;
21
use ieee.std_logic_1164.all;
22
use ieee.std_logic_unsigned.all;
23
--library synplify; 
24
--use synplify.attributes.all;
25
--
26
-- pragma translate_off
27
library UNISIM;
28
use UNISIM.VCOMPONENTS.ALL;
29
-- pragma translate_on
30
--
31
 
32
entity s3_ddr_iob is
33
port (
34
      ddr_dq_inout       : inout std_logic; --Bi-directional SDRAM data bus
35
      write_data_falling : in std_logic;    --Transmit data, output on falling edge
36
      write_data_rising  : in std_logic;    --Transmit data, output on rising edge
37
      read_dq_ce  : in std_logic;    --Transmit data, output on rising edge
38
      clk_rx  : in std_logic;    --
39
      read_data_in_rising   : out std_logic;   --Receive data, captured on rising edge
40
      read_data_in_falling  : out std_logic;   --Receive data, captured on falling edge
41
--old      read_data_in       : out std_logic;   -- Received data
42
      clk90              : in std_logic;    --Clock 90
43
      clk270             : in std_logic;
44
      write_en_val       : in std_logic;    --Transmit enable
45
      reset              : in std_logic);
46
 --attribute xc_props of ddr_dq_inout : signal is "IOB=TRUE";       
47
end s3_ddr_iob;
48
 
49
architecture arc_s3_ddr_iob of s3_ddr_iob is
50
 
51
 
52
 
53
 
54
component FDDRRSE
55
port( Q  : out std_logic;
56
      C0 : in std_logic;
57
      C1 : in std_logic;
58
      CE : in std_logic;
59
      D0 : in std_logic;
60
      D1 : in std_logic;
61
      R  : in std_logic;
62
      S  : in std_logic);
63
end component;
64
 
65
component FDCE
66
port(
67
       D   : in std_logic;
68
       CLR : in std_logic;
69
       C   : in std_logic;
70
       Q   : out std_logic;
71
       CE  : in std_logic);
72
end component;
73
 
74
component OBUFT
75
port (
76
       I : in std_logic;
77
       T : in std_logic;
78
       O : out std_logic);
79
end component;
80
 
81
component IBUF
82
port (
83
       I : in std_logic;
84
       O : out std_logic);
85
end component;
86
 
87
component FDRE
88
port(
89
       D  : in std_logic;
90
       R  : in std_logic;
91
       C  : in std_logic;
92
       Q  : out std_logic;
93
       CE : in std_logic);
94
end component;
95
 
96
 
97
--***********************************************************************\
98
--     Internal signal declaration
99
--***********************************************************************/
100
 
101
signal ddr_en       : std_logic;  -- Tri-state enable signal
102
signal ddr_dq_q     : std_logic;  -- Data output intermediate signal
103
--signal ddr_dq_o     : std_logic;  -- Data output intermediate signal
104
signal GND          : std_logic;
105
signal clock_en     : std_logic := '1';
106
signal enable_b     : std_logic;
107
 
108
signal ddr_dq_ibuf  : std_logic;
109
signal clk_rx_rise  : std_logic;
110
signal clk_rx_fall  : std_logic;
111
 
112
 
113
begin
114
 
115
--PL: om van een warning af te komen... doet hetzelfde als de default waarde
116
clock_en <= '1';
117
--
118
GND    <= '0';
119
enable_b <= not write_en_val;
120
 
121
-- Transmission data path
122
 
123
 
124
DDR_OUT : FDDRRSE port map
125
            (Q  => ddr_dq_q,
126
             C0 => clk270,
127
             C1 => clk90,
128
             CE => clock_en,
129
             D0 => write_data_rising,
130
             D1 => write_data_falling,
131
             R  => GND,
132
             S  => GND);
133
 
134
DQ_T   :   FDCE port map
135
           ( D   => enable_b,
136
             CLR => reset,
137
             C   => clk270,
138
             Q   => ddr_en,
139
             CE  => clock_en);
140
 
141
 
142
DQ_OBUFT : OBUFT port map
143
             ( I => ddr_dq_q,
144
               T => ddr_en,
145
               O => ddr_dq_inout);
146
 
147
-- Receive data path
148
 
149
--old DQ_IBUF :  IBUF port map
150
--old              ( I => ddr_dq_inout,
151
--old                O => read_data_in);
152
 
153
 
154
 
155
 
156
-- Receive data path
157
 
158
 
159
clk_rx_rise  <=      clk_rx ;
160
clk_rx_fall  <=  not clk_rx ;
161
 
162
 
163
DQ_IBUF :  IBUF port map
164
             ( I => ddr_dq_inout,
165
               O => ddr_dq_ibuf);
166
 
167
-- Clock data in
168
DQ_RISE : FDRE port map
169
           ( D  => ddr_dq_ibuf,
170
             R  => GND,
171
             C  => clk_rx_rise,
172
             Q  => read_data_in_rising,
173
             CE => read_dq_ce);
174
 
175
DQ_FALL : FDRE port map
176
           ( D  => ddr_dq_ibuf,
177
             R  => GND,
178
             C  => clk_rx_fall,
179
             Q  => read_data_in_falling,
180
             CE => read_dq_ce);
181
 
182
 
183
 
184
 end arc_s3_ddr_iob;
185
 

powered by: WebSVN 2.1.0

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