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

📄 mt47h64m16.vhd

📁 vhdl cod for ram.For sp3e
💻 VHD
📖 第 1 页 / 共 5 页
字号:
----------------------------------------------------------------------------------  File Name: mt47h64m16.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     M.Milanovic        06 Feb 06   Initial release--    V1.1     I.Milutinovic      07 Jan 20   CKtemp generation changed--    V1.2     R. MUnden          07 Jun 29   Added warning message if tRFCMIN is--                                            violated. Suggested by Barry--                                            Grieveson.--    V1.3     B.Colakovic        08 Aug 27   CKE condition added------------------------------------------------------------------------------------  PART DESCRIPTION:----  Library:    RAM--  Technology: CMOS--  Part:       MT47H64M16----  Description: 1Gb (8 Meg x 16 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 mt47h64m16 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_LDM          : VitalDelayType01 := VitalZeroDelay01;        tipd_UDM          : 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_DQ0          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ1          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ2          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ3          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ4          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ5          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ6          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ7          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ8          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ9          : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ10         : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ11         : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ12         : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ13         : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ14         : VitalDelayType01 := VitalZeroDelay01;        tipd_DQ15         : VitalDelayType01 := VitalZeroDelay01;        tipd_UDQS         : VitalDelayType01 := VitalZeroDelay01;        tipd_UDQSNeg      : VitalDelayType01 := VitalZeroDelay01;        tipd_LDQS         : VitalDelayType01 := VitalZeroDelay01;        tipd_LDQSNeg      : VitalDelayType01 := VitalZeroDelay01;        -- tpd delays        tpd_CK_DQ0        : VitalDelayType01Z := UnitDelay01Z; -- tAC(max), tHZ        tpd_CK_DQ1        : VitalDelayType := UnitDelay; -- tAC(min)        tpd_CK_LDQS       : VitalDelayType01Z := UnitDelay01Z; -- tDQSCK(max)        -- tsetup values        tsetup_DQ0_LDQS   : VitalDelayType := UnitDelay; -- tDSb        tsetup_A0_CK      : VitalDelayType := UnitDelay; -- tISb        tsetup_LDQS_CK_CL3_negedge_posedge: VitalDelayType := UnitDelay; -- tDSS        tsetup_LDQS_CK_CL4_negedge_posedge: VitalDelayType := UnitDelay; -- tDSS        tsetup_LDQS_CK_CL5_negedge_posedge: VitalDelayType := UnitDelay; -- tDSS        tsetup_LDQS_CK_CL6_negedge_posedge: VitalDelayType := UnitDelay; -- tDSS        -- thold values        thold_DQ0_LDQS    : VitalDelayType := UnitDelay; -- tDHb        thold_A0_CK       : VitalDelayType := UnitDelay; -- tIHb        thold_LDQS_CK_CL3_posedge_posedge : VitalDelayType := UnitDelay; -- tDSH        thold_LDQS_CK_CL4_posedge_posedge : VitalDelayType := UnitDelay; -- tDSH        thold_LDQS_CK_CL5_posedge_posedge : VitalDelayType := UnitDelay; -- tDSH        thold_LDQS_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_LDQS_normCL3_posedge : VitalDelayType := UnitDelay; -- tDQSH        tpw_LDQS_normCL3_negedge : VitalDelayType := UnitDelay; -- tDQSL        tpw_LDQS_normCL4_posedge : VitalDelayType := UnitDelay; -- tDQSH        tpw_LDQS_normCL4_negedge : VitalDelayType := UnitDelay; -- tDQSL        tpw_LDQS_normCL5_posedge : VitalDelayType := UnitDelay; -- tDQSH        tpw_LDQS_normCL5_negedge : VitalDelayType := UnitDelay; -- tDQSL        tpw_LDQS_normCL6_posedge : VitalDelayType := UnitDelay; -- tDQSH        tpw_LDQS_normCL6_negedge : VitalDelayType := UnitDelay; -- tDQSL        tpw_LDQS_preCL3_negedge  : VitalDelayType := UnitDelay; -- tWPRE        tpw_LDQS_preCL4_negedge  : VitalDelayType := UnitDelay; -- tWPRE        tpw_LDQS_preCL5_negedge  : VitalDelayType := UnitDelay; -- tWPRE        tpw_LDQS_preCL6_negedge  : VitalDelayType := UnitDelay; -- tWPRE        tpw_LDQS_postCL3_negedge : VitalDelayType := UnitDelay; -- tWPST        tpw_LDQS_postCL4_negedge : VitalDelayType := UnitDelay; -- tWPST        tpw_LDQS_postCL5_negedge : VitalDelayType := UnitDelay; -- tWPST        tpw_LDQS_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_LDQS_CL3_posedge_posedge: VitalDelayType := UnitDelay; -- tDQSS        tskew_CK_LDQS_CL4_posedge_posedge: VitalDelayType := UnitDelay; -- tDQSS        tskew_CK_LDQS_CL5_posedge_posedge: VitalDelayType := UnitDelay; -- tDQSS        tskew_CK_LDQS_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';        LDM             : IN    std_ulogic := 'U';        UDM             : 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';        DQ0             : INOUT std_ulogic := 'U';        DQ1             : INOUT std_ulogic := 'U';        DQ2             : INOUT std_ulogic := 'U';        DQ3             : INOUT std_ulogic := 'U';        DQ4             : INOUT std_ulogic := 'U';        DQ5             : INOUT std_ulogic := 'U';        DQ6             : INOUT std_ulogic := 'U';        DQ7             : INOUT std_ulogic := 'U';        DQ8             : INOUT std_ulogic := 'U';        DQ9             : INOUT std_ulogic := 'U';        DQ10            : INOUT std_ulogic := 'U';        DQ11            : INOUT std_ulogic := 'U';        DQ12            : INOUT std_ulogic := 'U';        DQ13            : INOUT std_ulogic := 'U';        DQ14            : INOUT std_ulogic := 'U';        DQ15            : INOUT std_ulogic := 'U';        UDQS            : INOUT std_ulogic := 'U';        UDQSNeg         : INOUT std_ulogic := 'U';        LDQS            : INOUT std_ulogic := 'U';        LDQSNeg         : INOUT std_ulogic := 'U'    );    ATTRIBUTE VITAL_LEVEL0 OF mt47h64m16 : ENTITY IS TRUE;END mt47h64m16;---------------------------------------------------------------------------------- ARCHITECTURE DECLARATION--------------------------------------------------------------------------------ARCHITECTURE vhdl_behavioral OF mt47h64m16 IS    ATTRIBUTE VITAL_LEVEL0 OF vhdl_behavioral : ARCHITECTURE IS TRUE;    CONSTANT PartID         : string := "MT47H64M16";    CONSTANT BankNum        : natural := 7;    CONSTANT MaxData        : natural := 16#FF#;    CONSTANT MemSize        : natural := 16#7FFFFF#;    CONSTANT RowNum         : natural := 16#1FFF#;    CONSTANT ColNum         : natural := 16#3FF#;    -- 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 LDM_ipd          : std_ulogic := 'U';    SIGNAL UDM_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';

⌨️ 快捷键说明

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