00001 --**************************************************************
00002 --* *
00003 --* The source code for the ATLAS BCM "AAA" FPGA is made *
00004 --* available via the GNU General Public License (GPL) *
00005 --* unless otherwise stated below. *
00006 --* *
00007 --* In case of problems/questions/bug reports etc. please *
00008 --* contact michael.niegl@cern.ch *
00009 --* *
00010 --**************************************************************
00011
00012 --**************************************************************
00013 --* *
00014 --* $Source: /local/reps/bcmfpga/bcm_aaa/bcm_aaa/ddr/mem_interface_top_infrastructure_iobs_0.vhd,v $ *
00015 --* $Revision: 1.3.2.3 $ *
00016 --* $Name: dev $ *
00017 --* $Author: mniegl $ *
00018 --* $Date: 2008/11/03 17:57:43 $ *
00019 --* *
00020 --**************************************************************
00021 -------------------------------------------------------------------------------
00022 -- Copyright (c) 2005 Xilinx, Inc.
00023 -- This design is confidential and proprietary of Xilinx, All Rights Reserved.
00024 -------------------------------------------------------------------------------
00025 -- ____ ____
00026 -- / /\/ /
00027 -- /___/ \ / Vendor: Xilinx
00028 -- \ \ \/ Version: 1.6
00029 -- \ \ Application : MIG
00030 -- / / Filename: mem_interface_top_infrastructure_iobs_0.vhd
00031 -- /___/ /\ Date Last Modified: Wed Jun 1 2005
00032 -- \ \ / \Date Created: Mon May 2 2005
00033 -- \___\/\___\
00034 -- Device: Virtex-4
00035 -- Design Name: DDR1_SDRAM
00036 -- Description: The DDR memory clocks are generated here using the differential buffers
00037 -- and the ODDR elemnts in the IOBs.
00038 -------------------------------------------------------------------------------
00039
00040
00041 library ieee;
00042
00043 use ieee.std_logic_1164.all;
00044
00045 library unisim;
00046
00047 use unisim.vcomponents.all;
00048 use work.mem_interface_top_parameters_0.all;
00049
00050 entity mem_interface_top_infrastructure_iobs_0 is
00051 port( CLK : in ;
00052 DDR_CK : out ((clk_width-1) downto 0);
00053 DDR_CK_N : out ((clk_width-1) downto 0)
00054 );
00055 end mem_interface_top_infrastructure_iobs_0;
00056
00057 architecture arch of mem_interface_top_infrastructure_iobs_0 is
00058
00059 component OBUFDS
00060 port (
00061
00062 I : in ;
00063 O : out ;
00064 OB : out
00065 );
00066 end component;
00067
00068 component ODDR
00069 generic( SRTYPE : := "SYNC";
00070 DDR_CLK_EDGE : := "OPPOSITE_EDGE"
00071 );
00072 port( Q : out ;
00073 C : in ;
00074 CE : in ;
00075 D1 : in ;
00076 D2 : in ;
00077 R : in ;
00078 S : in
00079 );
00080 end component;
00081
00082 signal DDR_CK_q : ((clk_width-1) downto 0);
00083 signal DDR_CK_N_q : ((clk_width-1) downto 0);
00084 signal vcc : ;
00085 signal gnd : ;
00086
00087
00088
00089
00090
00091 begin
00092
00093 vcc <= '1';
00094 gnd <= '0';
00095 --DDR_CK <= DDR_CK_q;
00096 --DDR_CK_N <= DDR_CK_N_q;
00097
00098
00099 oddr_clk0: ODDR
00100 port map( Q => DDR_CK_q(0),
00101 C => CLK ,
00102 CE => vcc ,
00103 D1 => gnd ,
00104 D2 => vcc ,
00105 R => gnd ,
00106 S => gnd
00107 );
00108
00109
00110
00111 oddr_clk1: ODDR
00112 port map( Q => DDR_CK_q(1),
00113 C => CLK ,
00114 CE => vcc ,
00115 D1 => gnd ,
00116 D2 => vcc ,
00117 R => gnd ,
00118 S => gnd
00119 );
00120
00121
00122
00123
00124 oddr_clk0n: ODDR
00125 port map( Q => DDR_CK_N_q(0),
00126 C => CLK ,
00127 CE => vcc ,
00128 D1 => vcc ,
00129 D2 => gnd ,
00130 R => gnd ,
00131 S => gnd
00132 );
00133
00134
00135
00136 oddr_clk1n: ODDR
00137 port map( Q => DDR_CK_N_q(1),
00138 C => CLK ,
00139 CE => vcc ,
00140 D1 => vcc ,
00141 D2 => gnd ,
00142 R => gnd ,
00143 S => gnd
00144 );
00145
00146
00147
00148 OBUFDS0 : OBUFDS
00149 port map (
00150 I => DDR_CK_q(0),
00151 O => DDR_CK(0),
00152 OB => DDR_CK_N(0)
00153 );
00154
00155
00156 OBUFDS1 : OBUFDS
00157 port map (
00158 I => DDR_CK_q(1),
00159 O => DDR_CK(1),
00160 OB => DDR_CK_N(1)
00161 );
00162
00163
00164
00165 end arch;