⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mt47h256m4.vhd

📁 vhdl cod for ram.For sp3e
💻 VHD
📖 第 1 页 / 共 5 页
字号:
----------------------------------------------------------------------------------  File Name: mt47h256m4.vhd----------------------------------------------------------------------------------  Copyright (C) 2006-2008 Free Model Foundry; http://www.FreeModelFoundry.com----  This program is free software; you can redistribute it and/or modify--  it under the terms of the GNU General Public License version 2 as--  published by the Free Software Foundation.----  MODIFICATION HISTORY:----  version: |  author:         | mod date: | changes made:--    V1.0     D.Randjelovic      06 Mar 15   Initial release--    V1.1     B.Colakovic        08 Aug 27   CKE condition added------------------------------------------------------------------------------------  PART DESCRIPTION:----  Library:    RAM--  Technology: CMOS--  Part:       MT47H256M4----  Description: 1Gb (32 Meg x 4 x 8 banks) DDR2 SDRAM--------------------------------------------------------------------------------LIBRARY IEEE;      USE IEEE.std_logic_1164.ALL;                   USE IEEE.VITAL_timing.ALL;                   USE IEEE.VITAL_primitives.ALL;                   USE STD.textio.ALL;LIBRARY FMF;       USE FMF.gen_utils.ALL;                   USE FMF.conversions.ALL;---------------------------------------------------------------------------------- ENTITY DECLARATION--------------------------------------------------------------------------------ENTITY mt47h256m4 IS    GENERIC (        -- tipd delays: interconnect path delays        tipd_ODT          : VitalDelayType01 := VitalZeroDelay01;        tipd_CK           : VitalDelayType01 := VitalZeroDelay01;        tipd_CKNeg        : VitalDelayType01 := VitalZeroDelay01;        tipd_CKE          : VitalDelayType01 := VitalZeroDelay01;        tipd_CSNeg        : VitalDelayType01 := VitalZeroDelay01;        tipd_RASNeg       : VitalDelayType01 := VitalZeroDelay01;        tipd_CASNeg       : VitalDelayType01 := VitalZeroDelay01;        tipd_WENeg        : VitalDelayType01 := VitalZeroDelay01;        tipd_DM           : VitalDelayType01 := VitalZeroDelay01;        tipd_BA0          : VitalDelayType01 := VitalZeroDelay01;        tipd_BA1          : VitalDelayType01 := VitalZeroDelay01;        tipd_BA2          : VitalDelayType01 := VitalZeroDelay01;        tipd_A0           : VitalDelayType01 := VitalZeroDelay01;        tipd_A1           : VitalDelayType01 := VitalZeroDelay01;        tipd_A2           : VitalDelayType01 := VitalZeroDelay01;        tipd_A3           : VitalDelayType01 := VitalZeroDelay01;        tipd_A4           : VitalDelayType01 := VitalZeroDelay01;        tipd_A5           : VitalDelayType01 := VitalZeroDelay01;        tipd_A6           : VitalDelayType01 := VitalZeroDelay01;        tipd_A7           : VitalDelayType01 := VitalZeroDelay01;        tipd_A8           : VitalDelayType01 := VitalZeroDelay01;        tipd_A9           : VitalDelayType01 := VitalZeroDelay01;        tipd_A10          : VitalDelayType01 := VitalZeroDelay01;        tipd_A11          : VitalDelayType01 := VitalZeroDelay01;        tipd_A12          : VitalDelayType01 := VitalZeroDelay01;        tipd_A13          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ0          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ1          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ2          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ3          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQS          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQSNeg       : VitalDelayType01 := VitalZeroDelay01;        -- tpd delays        tpd_CK_DQ0        : VitalDelayType01Z := UnitDelay01Z; -- tAC(max), tHZ        tpd_CK_DQ1        : VitalDelayType := UnitDelay; -- tAC(min)        tpd_CK_DQS        : VitalDelayType01Z := UnitDelay01Z; -- tDQSCK(max)        -- tsetup values        tsetup_DQ0_DQS    : VitalDelayType := UnitDelay; -- tDSb        tsetup_A0_CK      : VitalDelayType := UnitDelay; -- tISb        tsetup_DQS_CK_CL3_negedge_posedge: VitalDelayType := UnitDelay; -- tDSS        tsetup_DQS_CK_CL4_negedge_posedge: VitalDelayType := UnitDelay; -- tDSS        tsetup_DQS_CK_CL5_negedge_posedge: VitalDelayType := UnitDelay; -- tDSS        tsetup_DQS_CK_CL6_negedge_posedge: VitalDelayType := UnitDelay; -- tDSS        -- thold values        thold_DQ0_DQS     : VitalDelayType := UnitDelay; -- tDHb        thold_A0_CK       : VitalDelayType := UnitDelay; -- tIHb        thold_DQS_CK_CL3_posedge_posedge : VitalDelayType := UnitDelay; -- tDSH        thold_DQS_CK_CL4_posedge_posedge : VitalDelayType := UnitDelay; -- tDSH        thold_DQS_CK_CL5_posedge_posedge : VitalDelayType := UnitDelay; -- tDSH        thold_DQS_CK_CL6_posedge_posedge : VitalDelayType := UnitDelay; -- tDSH        -- tpw values        tpw_CK_CL3_posedge: VitalDelayType := UnitDelay; -- tCHAVG        tpw_CK_CL3_negedge: VitalDelayType := UnitDelay; -- tCLAVG        tpw_CK_CL4_posedge: VitalDelayType := UnitDelay; -- tCHAVG        tpw_CK_CL4_negedge: VitalDelayType := UnitDelay; -- tCLAVG        tpw_CK_CL5_posedge: VitalDelayType := UnitDelay; -- tCHAVG        tpw_CK_CL5_negedge: VitalDelayType := UnitDelay; -- tCLAVG        tpw_CK_CL6_posedge: VitalDelayType := UnitDelay; -- tCHAVG        tpw_CK_CL6_negedge: VitalDelayType := UnitDelay; -- tCLAVG        tpw_A0_CL3        : VitalDelayType := UnitDelay; -- tIPW        tpw_A0_CL4        : VitalDelayType := UnitDelay; -- tIPW        tpw_A0_CL5        : VitalDelayType := UnitDelay; -- tIPW        tpw_A0_CL6        : VitalDelayType := UnitDelay; -- tIPW        tpw_DQ0_CL3       : VitalDelayType := UnitDelay; -- tDIPW        tpw_DQ0_CL4       : VitalDelayType := UnitDelay; -- tDIPW        tpw_DQ0_CL5       : VitalDelayType := UnitDelay; -- tDIPW        tpw_DQ0_CL6       : VitalDelayType := UnitDelay; -- tDIPW        tpw_DQS_normCL3_posedge : VitalDelayType := UnitDelay; -- tDQSH        tpw_DQS_normCL3_negedge : VitalDelayType := UnitDelay; -- tDQSL        tpw_DQS_normCL4_posedge : VitalDelayType := UnitDelay; -- tDQSH        tpw_DQS_normCL4_negedge : VitalDelayType := UnitDelay; -- tDQSL        tpw_DQS_normCL5_posedge : VitalDelayType := UnitDelay; -- tDQSH        tpw_DQS_normCL5_negedge : VitalDelayType := UnitDelay; -- tDQSL        tpw_DQS_normCL6_posedge : VitalDelayType := UnitDelay; -- tDQSH        tpw_DQS_normCL6_negedge : VitalDelayType := UnitDelay; -- tDQSL        tpw_DQS_preCL3_negedge  : VitalDelayType := UnitDelay; -- tWPRE        tpw_DQS_preCL4_negedge  : VitalDelayType := UnitDelay; -- tWPRE        tpw_DQS_preCL5_negedge  : VitalDelayType := UnitDelay; -- tWPRE        tpw_DQS_preCL6_negedge  : VitalDelayType := UnitDelay; -- tWPRE        tpw_DQS_postCL3_negedge : VitalDelayType := UnitDelay; -- tWPST        tpw_DQS_postCL4_negedge : VitalDelayType := UnitDelay; -- tWPST        tpw_DQS_postCL5_negedge : VitalDelayType := UnitDelay; -- tWPST        tpw_DQS_postCL6_negedge : VitalDelayType := UnitDelay; -- tWPST        -- tperiod values        tperiod_CK_CL3    : VitalDelayType := UnitDelay; -- tCKAVG(min)        tperiod_CK_CL4    : VitalDelayType := UnitDelay; -- tCKAVG(min)        tperiod_CK_CL5    : VitalDelayType := UnitDelay; -- tCKAVG(min)        tperiod_CK_CL6    : VitalDelayType := UnitDelay; -- tCKAVG(min)        -- tskew values        tskew_CK_DQS_CL3_posedge_posedge: VitalDelayType := UnitDelay; -- tDQSS        tskew_CK_DQS_CL4_posedge_posedge: VitalDelayType := UnitDelay; -- tDQSS        tskew_CK_DQS_CL5_posedge_posedge: VitalDelayType := UnitDelay; -- tDQSS        tskew_CK_DQS_CL6_posedge_posedge: VitalDelayType := UnitDelay; -- tDQSS        -- tdevice values: values for internal delays        tdevice_tRC       : VitalDelayType    := 54 ns; -- tRC        tdevice_tRRD      : VitalDelayType    := 10 ns; -- tRRD        tdevice_tRCD      : VitalDelayType    := 12 ns; -- tRCD        tdevice_tFAW      : VitalDelayType    := 50 ns; -- tFAW        tdevice_tRASMIN   : VitalDelayType    := 40 ns; -- tRAS(min)        tdevice_tRASMAX   : VitalDelayType    := 70 us; -- tRAS(max)        tdevice_tRTP      : VitalDelayType    := 7.5 ns; -- tRTP        tdevice_tWR       : VitalDelayType    := 15 ns; -- tWR        tdevice_tWTR      : VitalDelayType    := 7.5 ns; -- tWTR        tdevice_tRP       : VitalDelayType    := 12 ns; -- tRP        tdevice_tRFCMIN   : VitalDelayType    := 127.5 ns; -- tRFC(min)        tdevice_tRFCMAX   : VitalDelayType    := 70 us; -- tRFC(max)        tdevice_REFPer    : VitalDelayType    := 64 ms; -- refresh period        tdevice_tCKAVGMAX : VitalDelayType    := 8 ns; -- tCKAVG(max)        -- generic control parameters        InstancePath      : string    := DefaultInstancePath;        TimingChecksOn    : boolean   := DefaultTimingChecks;        MsgOn             : boolean   := DefaultMsgOn;        XOn               : boolean   := DefaultXon;        -- memory file to be loaded        mem_file_name     : string    := "none";        UserPreload       : boolean   := FALSE;        -- For FMF SDF technology file usage        TimingModel       : string    := DefaultTimingModel    );    PORT (        ODT             : IN    std_ulogic := 'U';        CK              : IN    std_ulogic := 'U';        CKNeg           : IN    std_ulogic := 'U';        CKE             : IN    std_ulogic := 'U';        CSNeg           : IN    std_ulogic := 'U';        RASNeg          : IN    std_ulogic := 'U';        CASNeg          : IN    std_ulogic := 'U';        WENeg           : IN    std_ulogic := 'U';        DM              : IN    std_ulogic := 'U';        BA0             : IN    std_ulogic := 'U';        BA1             : IN    std_ulogic := 'U';        BA2             : IN    std_ulogic := 'U';        A0              : IN    std_ulogic := 'U';        A1              : IN    std_ulogic := 'U';        A2              : IN    std_ulogic := 'U';        A3              : IN    std_ulogic := 'U';        A4              : IN    std_ulogic := 'U';        A5              : IN    std_ulogic := 'U';        A6              : IN    std_ulogic := 'U';        A7              : IN    std_ulogic := 'U';        A8              : IN    std_ulogic := 'U';        A9              : IN    std_ulogic := 'U';        A10             : IN    std_ulogic := 'U';        A11             : IN    std_ulogic := 'U';        A12             : IN    std_ulogic := 'U';        A13             : IN    std_ulogic := 'U';        DQ0             : INOUT std_ulogic := 'U';        DQ1             : INOUT std_ulogic := 'U';        DQ2             : INOUT std_ulogic := 'U';        DQ3             : INOUT std_ulogic := 'U';        DQS             : INOUT std_ulogic := 'U';        DQSNeg          : INOUT std_ulogic := 'U'    );    ATTRIBUTE VITAL_LEVEL0 OF mt47h256m4 : ENTITY IS TRUE;END mt47h256m4;---------------------------------------------------------------------------------- ARCHITECTURE DECLARATION------------------------------------------------------------------------------------------------------------------------------------------------------------------  ARCHITECTURE DECLARATION - DYNAMIC MEMORY ALLOCATION--------------------------------------------------------------------------------ARCHITECTURE vhdl_behavioral_dynamic_memory_allocation OF mt47h256m4 IS    ATTRIBUTE VITAL_LEVEL0        OF vhdl_behavioral_dynamic_memory_allocation : ARCHITECTURE IS TRUE;    CONSTANT PartID         : string := "MT47H256M4";    CONSTANT BankNum        : natural := 7;    CONSTANT MaxData        : natural := 16#F#;    CONSTANT MemSize        : natural := 16#1FFFFFF#;    CONSTANT RowNum         : natural := 16#3FFF#;    CONSTANT ColNum         : natural := 16#7FF#;    -- ipd    SIGNAL ODT_ipd          : std_ulogic := 'U';    SIGNAL CK_ipd           : std_ulogic := 'U';    SIGNAL CKNeg_ipd        : std_ulogic := 'U';    SIGNAL CKE_ipd          : std_ulogic := 'U';    SIGNAL CSNeg_ipd        : std_ulogic := 'U';    SIGNAL RASNeg_ipd       : std_ulogic := 'U';    SIGNAL CASNeg_ipd       : std_ulogic := 'U';    SIGNAL WENeg_ipd        : std_ulogic := 'U';    SIGNAL DM_ipd           : std_ulogic := 'U';    SIGNAL BA0_ipd          : std_ulogic := 'U';    SIGNAL BA1_ipd          : std_ulogic := 'U';    SIGNAL BA2_ipd          : std_ulogic := 'U';    SIGNAL A0_ipd           : std_ulogic := 'U';    SIGNAL A1_ipd           : std_ulogic := 'U';    SIGNAL A2_ipd           : std_ulogic := 'U';    SIGNAL A3_ipd           : std_ulogic := 'U';    SIGNAL A4_ipd           : std_ulogic := 'U';    SIGNAL A5_ipd           : std_ulogic := 'U';    SIGNAL A6_ipd           : std_ulogic := 'U';    SIGNAL A7_ipd           : std_ulogic := 'U';    SIGNAL A8_ipd           : std_ulogic := 'U';    SIGNAL A9_ipd           : std_ulogic := 'U';    SIGNAL A10_ipd          : std_ulogic := 'U';    SIGNAL A11_ipd          : std_ulogic := 'U';    SIGNAL A12_ipd          : std_ulogic := 'U';    SIGNAL A13_ipd          : std_ulogic := 'U';    SIGNAL DQ0_ipd          : std_ulogic := 'U';    SIGNAL DQ1_ipd          : std_ulogic := 'U';    SIGNAL DQ2_ipd          : std_ulogic := 'U';    SIGNAL DQ3_ipd          : std_ulogic := 'U';    SIGNAL DQS_ipd          : std_ulogic := 'U';    SIGNAL DQSNeg_ipd       : std_ulogic := 'U';    -- nwv    SIGNAL ODT_nwv          : std_ulogic := 'U';    SIGNAL CK_nwv           : std_ulogic := 'U';    SIGNAL CKNeg_nwv        : std_ulogic := 'U';    SIGNAL CKE_nwv          : std_ulogic := 'U';    SIGNAL CSNeg_nwv        : std_ulogic := 'U';    SIGNAL RASNeg_nwv       : std_ulogic := 'U';    SIGNAL CASNeg_nwv       : std_ulogic := 'U';    SIGNAL WENeg_nwv        : std_ulogic := 'U';    SIGNAL DM_nwv           : std_ulogic := 'U';    SIGNAL BA0_nwv          : std_ulogic := 'U';    SIGNAL BA1_nwv          : std_ulogic := 'U';    SIGNAL BA2_nwv          : std_ulogic := 'U';    SIGNAL A0_nwv           : std_ulogic := 'U';    SIGNAL A1_nwv           : std_ulogic := 'U';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -