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_parameters_0.vhd,v $
00015 --* $Revision: 1.4.2.4 $ *
00016 --* $Name: dev $ *
00017 --* $Author: mniegl $ *
00018 --* $Date: 2008/11/03 17:57:44 $ *
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_parameters_0.vhd
00033 -- /___/ /\ Date Last Modified: Wed Jun 1 2005
00034 -- \ \ / \Date Created: Mon May 2 2005
00035 -- \___\/\___\
00036 -- Device: Virtex-4
00037 -- Design Name: DDR2_SDRAM
00038 -------------------------------------------------------------------------------
00039
00040
00041 library ieee;
00042
00043 use ieee.std_logic_1164.all;
00044
00045 use ieee.std_logic_unsigned.all;
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 package ddr2_mem_parameters_0 is
00057
00058 -------------------------------------------------------------------------------
00059 -- constants
00060 -------------------------------------------------------------------------------
00061
00062 constant data_width : := 64;
00063 constant data_strobe_width : := 8;
00064 constant data_mask_width : := 8;
00065 constant clk_width : := 1;
00066 constant fifo : := 4;
00067 constant ecc_cntrl_bits : := 0;
00068 constant ReadEnable : := 3;
00069 constant cs_width : := 1;
00070 constant odt_width : := 1;
00071 constant cke_width : := 1;
00072 constant deep_memory : := 1;
00073 constant row_address : := 14;
00074 constant column_address : := 10;
00075 constant bank_address : := 2;
00076 constant memory_width : := 8;
00077 constant registered : := 1;
00078 constant unbuffered : := 0;
00079 constant col_ap_width : := 11;
00080 constant DatabitsPerStrobe : := 8;
00081 constant DatabitsPerMask : := 8;
00082 constant no_of_CS : := 1;
00083 constant RESET : := 1;
00084 constant data_mask : := 1;
00085 constant ecc_enable : := 0;
00086 constant ecc_disable : := 1;
00087 constant ecc_width : := 0;
00088 constant dq_width : := 64;
00089 constant dm_width : := 8;
00090 constant tb_enable : := 0;
00091 constant tb_disable : := 1;
00092 constant dcm_enable : := 1;
00093 constant dcm_disable : := 0;
00094 constant low_frequency : := 0;
00095 constant high_frequency : := 1;
00096 constant foundation_ise : := 1;
00097 constant Data8PerReadEnable : := 1;
00098 constant Data4PerReadEnable : := 0;
00099 constant burst_length : (2 downto 0) := "011";
00100 constant burst_type : := '0';
00101 constant cas_latency_value : (2 downto 0) := "100";
00102 constant mode : := '0';
00103 constant dll_rst : := '0';
00104 constant write_recovery : (2 downto 0) := "010";
00105 constant pd_mode : := '0';
00106 constant load_mode_register : (13 downto 0) := "00010001000011";
00107 constant output : := '0';
00108 constant rdqs_ena : := '0';
00109 constant dqs_n_ena : := '0';
00110 constant ocd_operation : (2 downto 0) := "000";
00111 constant odt_enable : (1 downto 0) := "00";
00112 constant additive_latency_value : (2 downto 0) := "010";
00113 constant dll_ena : := '0';
00114 constant op_drive_strength : := '0';
00115 constant ext_load_mode_register : (13 downto 0) := "00000000010000";
00116 constant chip_address : := 1;
00117 constant rcd_count_value : (2 downto 0) := "010";
00118 constant ras_count_value : (3 downto 0) := "0111";
00119 constant mrd_count_value : := '1';
00120 constant rp_count_value : (2 downto 0) := "010";
00121 constant rfc_count_value : (5 downto 0) := "001110";
00122 constant trtp_count_value : (2 downto 0) := "001";
00123 constant twr_count_value : (2 downto 0) := "011";
00124 constant twtr_count_value : (2 downto 0) := "001";
00125 constant max_ref_width : := 7;
00126 constant max_ref_cnt : (6 downto 0) := "1011111";
00127 constant Phy_Mode : := '1';
00128 constant cs_h0 : (3 downto 0) := "0000";
00129 constant cs_h1 : (3 downto 0) := "0001";
00130 constant cs_h2 : (3 downto 0) := "0010";
00131 constant cs_h3 : (3 downto 0) := "0011";
00132 constant cs_h5 : (3 downto 0) := "0101";
00133 constant cs_h6 : (3 downto 0) := "0110";
00134 constant cs_h7 : (3 downto 0) := "0111";
00135 constant cs_hA : (3 downto 0) := "1010";
00136 constant cs_hB : (3 downto 0) := "1011";
00137 constant cs_hD : (3 downto 0) := "1101";
00138 constant cs_hE : (3 downto 0) := "1110";
00139 constant cs_hF : (3 downto 0) := "1111";
00140 constant cs_D100 : (7 downto 0) := X"64";
00141 constant cs_D1000 : (11 downto 0) := X"3E8";
00142 constant add_const1 : (15 downto 0) := X"0100";
00143 constant add_const2 : (15 downto 0) := X"0380";
00144 constant add_const3 : (15 downto 0) := X"0000";
00145 constant add_const4 : (15 downto 0) := X"FBFF";
00146 constant add_const5 : (15 downto 0) := X"FFFF";
00147
00148 -------------------------------------------------------------------------------
00149 -- typedefs
00150 -------------------------------------------------------------------------------
00151
00152
00153 type STATE_MACHINE1 is (rise_idle, rise_first_data, rise_second_data, rise_comp_over);
00154
00155 type STATE_MACHINE2 is (fall_idle, fall_first_data, fall_second_data, fall_comp_over);
00156
00157 end package ddr2_mem_parameters_0;