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/ddr2/ddr2_mem_iobs_0.vhd,v $
00015 --* $Revision: 1.2.2.4 $ *
00016 --* $Name: dev $ *
00017 --* $Author: mniegl $ *
00018 --* $Date: 2008/11/03 21:23:00 $ *
00019
00020
00021 --* *
00022 --**************************************************************
00023 -------------------------------------------------------------------------------
00024 -- Copyright (c) 2005 Xilinx, Inc.
00025 -- This design is confidential and proprietary of Xilinx, All Rights Reserved.
00026 -------------------------------------------------------------------------------
00027 -- ____ ____
00028 -- / /\/ /
00029 -- /___/ \ / Vendor: Xilinx
00030 -- \ \ \/ Version: 1.6
00031 -- \ \ Application : MIG
00032 -- / / Filename: ddr2_mem_iobs_0.vhd
00033 -- /___/ /\ Date Last Modified: Wed Jun 1 2005
00034 -- \ \ / \Date Created: Mon May 2 2005
00035 -- \___\/\___\
00036 --
00037 -- Device: Virtex-4
00038 -- Design Name: DDR2_V4
00039 -------------------------------------------------------------------------------
00040
00041
00042 library ieee;
00043
00044 use ieee.std_logic_1164.all;
00045
00046 use ieee.std_logic_unsigned.all;
00047
00048 use ieee.numeric_std.all;
00049 library work;
00050 use work.ddr2_mem_parameters_0.all;
00051 -- pragma translate_off
00052
00053 library unisim;
00054
00055 use unisim.vcomponents.all;
00056 -- pragma translate_on
00057
00058
00059
00060
00061 entity ddr2_mem_iobs_0 is
00062 port (
00063 CLK : in ;
00064 CLK90 : in ;
00065 DDR_CK : out ;
00066 DDR_CK_N : out ;
00067 CAL_CLK : in ;
00068 RESET0 : in ;
00069 RESET90 : in ;
00070 dqs_idelay_inc : in (ReadEnable-1 downto 0);
00071 dqs_idelay_ce : in (ReadEnable-1 downto 0);
00072 dqs_idelay_rst : in (ReadEnable-1 downto 0);
00073 dqs_rst : in ;
00074 dqs_en : in ;
00075 wr_en : in ;
00076 dqs_delayed : out (data_strobe_width-1 downto 0);
00077 data_idelay_inc : in (ReadEnable-1 downto 0);
00078 data_idelay_ce : in (ReadEnable-1 downto 0);
00079 data_idelay_rst : in (ReadEnable-1 downto 0);
00080 wr_data_rise : in (data_width-1 downto 0);
00081 wr_data_fall : in (data_width-1 downto 0);
00082 mask_data_rise : in (data_mask_width-1 downto 0);
00083 mask_data_fall : in (data_mask_width-1 downto 0);
00084 rd_data_rise : out (data_width-1 downto 0);
00085 rd_data_fall : out (data_width-1 downto 0);
00086 DDR_DQ : inout (data_width-1 downto 0);
00087 DDR_DQS : inout (data_strobe_width-1 downto 0);
00088 DDR_DQS_L : inout (data_strobe_width-1 downto 0);
00089 DDR_DM : out (data_mask_width-1 downto 0);
00090 DDR_ADDRESS : out (row_address-1 downto 0);
00091 DDR_BA : out (bank_address-1 downto 0);
00092 DDR_RAS_L : out ;
00093 DDR_CAS_L : out ;
00094 DDR_WE_L : out ;
00095 DDR_cs_L : out ;
00096 DDR_CKE : out ;
00097 DDR_ODT : out ;
00098 ctrl_ddr2_ras_L : in ;
00099 ctrl_ddr2_cas_L : in ;
00100 ctrl_ddr2_we_L : in ;
00101 ctrl_ddr2_odt : in ;
00102 ctrl_ddr2_cke : in ;
00103 ctrl_ddr2_cs_L : in ;
00104 ctrl_ddr2_ba : in (bank_address-1 downto 0);
00105 ctrl_ddr2_address : in (row_address-1 downto 0)
00106 );
00107 end entity;
00108
00109
00110
00111
00112 architecture arc_iobs of ddr2_mem_iobs_0 is
00113
00114
00115 component ddr2_mem_data_path_iobs_0
00116 port (
00117 CLK : in ;
00118 CLK90 : in ;
00119 CAL_CLK : in ;
00120 RESET0 : in ;
00121 RESET90 : in ;
00122 dqs_idelay_inc : in (ReadEnable-1 downto 0);
00123 dqs_idelay_ce : in (ReadEnable-1 downto 0);
00124 dqs_idelay_rst : in (ReadEnable-1 downto 0);
00125 dqs_rst : in ;
00126 dqs_en : in ;
00127 dqs_delayed : out (data_strobe_width-1 downto 0);
00128 data_idelay_inc : in (ReadEnable-1 downto 0);
00129 data_idelay_ce : in (ReadEnable-1 downto 0);
00130 data_idelay_rst : in (ReadEnable-1 downto 0);
00131 wr_data_rise : in (data_width-1 downto 0);
00132 wr_data_fall : in (data_width-1 downto 0);
00133 mask_data_rise : in (data_mask_width-1 downto 0);
00134 mask_data_fall : in (data_mask_width-1 downto 0);
00135 wr_en : in ;
00136 DDR_DQ : inout (data_width-1 downto 0);
00137 DDR_DQS : inout (data_strobe_width-1 downto 0);
00138 DDR_DQS_L : inout (data_strobe_width-1 downto 0);
00139 DDR_DM : out (data_mask_width-1 downto 0);
00140 rd_data_rise : out (data_width-1 downto 0);
00141 rd_data_fall : out (data_width-1 downto 0)
00142 );
00143 end component;
00144
00145
00146 component ddr2_mem_controller_iobs_0
00147 port (
00148 ctrl_ddr2_address : in (row_address-1 downto 0);
00149 ctrl_ddr2_ba : in (bank_address-1 downto 0);
00150 ctrl_ddr2_ras_L : in ;
00151 ctrl_ddr2_cas_L : in ;
00152 ctrl_ddr2_we_L : in ;
00153 ctrl_ddr2_cs_L : in ;
00154 ctrl_ddr2_cke : in ;
00155 ctrl_ddr2_odt : in ;
00156 DDR_ADDRESS : out (row_address-1 downto 0);
00157 DDR_BA : out (bank_address-1 downto 0);
00158 DDR_RAS_L : out ;
00159 DDR_CAS_L : out ;
00160 DDR_WE_L : out ;
00161 DDR_ODT : out ;
00162 DDR_CKE : out ;
00163 DDR_cs_L : out
00164 );
00165 end component;
00166
00167
00168 component ddr2_mem_infrastructure_iobs_0
00169 port (
00170 CLK : in ;
00171 DDR_CK : out ;
00172 DDR_CK_N : out
00173 );
00174 end component;
00175
00176 begin
00177
00178
00179 data_path_iobs_00 : ddr2_mem_data_path_iobs_0
00180 port map (
00181 CLK => CLK,
00182 CLK90 => CLK90,
00183 CAL_CLK => CAL_CLK,
00184 RESET0 => RESET0,
00185 RESET90 => RESET90,
00186 dqs_idelay_inc => dqs_idelay_inc,
00187 dqs_idelay_ce => dqs_idelay_ce,
00188 dqs_idelay_rst => dqs_idelay_rst,
00189 dqs_rst => dqs_rst,
00190 dqs_en => dqs_en,
00191 dqs_delayed => dqs_delayed,
00192 data_idelay_inc => data_idelay_inc,
00193 data_idelay_ce => data_idelay_ce,
00194 data_idelay_rst => data_idelay_rst,
00195 wr_data_rise => wr_data_rise,
00196 wr_data_fall => wr_data_fall,
00197 wr_en => wr_en,
00198 rd_data_rise => rd_data_rise,
00199 rd_data_fall => rd_data_fall,
00200 mask_data_rise => mask_data_rise,
00201 mask_data_fall => mask_data_fall,
00202 DDR_DQ => DDR_DQ,
00203 DDR_DQS => DDR_DQS,
00204 DDR_DQS_L => DDR_DQS_L,
00205 DDR_DM => DDR_DM
00206 );
00207
00208
00209 controller_iobs_00 : ddr2_mem_controller_iobs_0
00210 port map (
00211 DDR_ADDRESS => DDR_ADDRESS,
00212 DDR_BA => DDR_BA,
00213 DDR_RAS_L => DDR_RAS_L,
00214 DDR_CAS_L => DDR_CAS_L,
00215 DDR_WE_L => DDR_WE_L,
00216 DDR_cs_L => DDR_cs_L,
00217 DDR_CKE => DDR_CKE,
00218 DDR_ODT => DDR_ODT,
00219 ctrl_ddr2_address => ctrl_ddr2_address,
00220 ctrl_ddr2_ba => ctrl_ddr2_ba,
00221 ctrl_ddr2_ras_L => ctrl_ddr2_ras_L,
00222 ctrl_ddr2_cas_L => ctrl_ddr2_cas_L,
00223 ctrl_ddr2_we_L => ctrl_ddr2_we_L,
00224 ctrl_ddr2_cs_L => ctrl_ddr2_cs_L,
00225 ctrl_ddr2_cke => ctrl_ddr2_cke,
00226 ctrl_ddr2_odt => ctrl_ddr2_odt
00227 );
00228
00229
00230 infrastructure_iobs_00 : ddr2_mem_infrastructure_iobs_0
00231 port map (
00232 CLK => CLK ,
00233 DDR_CK => DDR_CK,
00234 DDR_CK_N => DDR_CK_N
00235 );
00236
00237 end arc_iobs;