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

📄 mt47h64m16.vhd

📁 vhdl cod for ram.For sp3e
💻 VHD
📖 第 1 页 / 共 5 页
字号:
    ----------------------------------------------------------------------------    -- Wire Delays    ----------------------------------------------------------------------------    WireDelay : BLOCK    BEGIN        w_01 : VitalWireDelay (ODT_ipd, ODT, tipd_ODT);        w_02 : VitalWireDelay (CK_ipd, CK, tipd_CK);        w_03 : VitalWireDelay (CKNeg_ipd, CKNeg, tipd_CKNeg);        w_04 : VitalWireDelay (CKE_ipd, CKE, tipd_CKE);        w_05 : VitalWireDelay (CSNeg_ipd, CSNeg, tipd_CSNeg);        w_06 : VitalWireDelay (RASNeg_ipd, RASNeg, tipd_RASNeg);        w_07 : VitalWireDelay (CASNeg_ipd, CASNeg, tipd_CASNeg);        w_08 : VitalWireDelay (WENeg_ipd, WENeg, tipd_WENeg);        w_09 : VitalWireDelay (LDM_ipd, LDM, tipd_LDM);        w_10 : VitalWireDelay (UDM_ipd, UDM, tipd_UDM);        w_11 : VitalWireDelay (BA0_ipd, BA0, tipd_BA0);        w_12 : VitalWireDelay (BA1_ipd, BA1, tipd_BA1);        w_13 : VitalWireDelay (BA2_ipd, BA2, tipd_BA2);        w_14 : VitalWireDelay (A0_ipd, A0, tipd_A0);        w_15 : VitalWireDelay (A1_ipd, A1, tipd_A1);        w_16 : VitalWireDelay (A2_ipd, A2, tipd_A2);        w_17 : VitalWireDelay (A3_ipd, A3, tipd_A3);        w_18 : VitalWireDelay (A4_ipd, A4, tipd_A4);        w_19 : VitalWireDelay (A5_ipd, A5, tipd_A5);        w_20 : VitalWireDelay (A6_ipd, A6, tipd_A6);        w_21 : VitalWireDelay (A7_ipd, A7, tipd_A7);        w_22 : VitalWireDelay (A8_ipd, A8, tipd_A8);        w_23 : VitalWireDelay (A9_ipd, A9, tipd_A9);        w_24 : VitalWireDelay (A10_ipd, A10, tipd_A10);        w_25 : VitalWireDelay (A11_ipd, A11, tipd_A11);        w_26 : VitalWireDelay (A12_ipd, A12, tipd_A12);        w_27 : VitalWireDelay (DQ0_ipd, DQ0, tipd_DQ0);        w_28 : VitalWireDelay (DQ1_ipd, DQ1, tipd_DQ1);        w_29 : VitalWireDelay (DQ2_ipd, DQ2, tipd_DQ2);        w_30 : VitalWireDelay (DQ3_ipd, DQ3, tipd_DQ3);        w_31 : VitalWireDelay (DQ4_ipd, DQ4, tipd_DQ4);        w_32 : VitalWireDelay (DQ5_ipd, DQ5, tipd_DQ5);        w_33 : VitalWireDelay (DQ6_ipd, DQ6, tipd_DQ6);        w_34 : VitalWireDelay (DQ7_ipd, DQ7, tipd_DQ7);        w_35 : VitalWireDelay (DQ8_ipd, DQ8, tipd_DQ8);        w_36 : VitalWireDelay (DQ9_ipd, DQ9, tipd_DQ9);        w_37 : VitalWireDelay (DQ10_ipd, DQ10, tipd_DQ10);        w_38 : VitalWireDelay (DQ11_ipd, DQ11, tipd_DQ11);        w_39 : VitalWireDelay (DQ12_ipd, DQ12, tipd_DQ12);        w_40 : VitalWireDelay (DQ13_ipd, DQ13, tipd_DQ13);        w_41 : VitalWireDelay (DQ14_ipd, DQ14, tipd_DQ14);        w_42 : VitalWireDelay (DQ15_ipd, DQ15, tipd_DQ15);        w_43 : VitalWireDelay (UDQS_ipd, UDQS, tipd_UDQS);        w_44 : VitalWireDelay (UDQSNeg_ipd, UDQSNeg, tipd_UDQSNeg);        w_45 : VitalWireDelay (LDQS_ipd, LDQS, tipd_LDQS);        w_46 : VitalWireDelay (LDQSNeg_ipd, LDQSNeg, tipd_LDQSNeg);    END BLOCK;    ODT_nwv        <= To_UX01(ODT_ipd);    CK_nwv         <= To_UX01(CK_ipd);    CKNeg_nwv      <= To_UX01(CKNeg_ipd);    CKE_nwv        <= To_UX01(CKE_ipd);    CSNeg_nwv      <= To_UX01(CSNeg_ipd);    RASNeg_nwv     <= To_UX01(RASNeg_ipd);    CASNeg_nwv     <= To_UX01(CASNeg_ipd);    WENeg_nwv      <= To_UX01(WENeg_ipd);    LDM_nwv        <= To_UX01(LDM_ipd);    UDM_nwv        <= To_UX01(UDM_ipd);    BA0_nwv        <= To_UX01(BA0_ipd);    BA1_nwv        <= To_UX01(BA1_ipd);    BA2_nwv        <= To_UX01(BA2_ipd);    A0_nwv         <= To_UX01(A0_ipd);    A1_nwv         <= To_UX01(A1_ipd);    A2_nwv         <= To_UX01(A2_ipd);    A3_nwv         <= To_UX01(A3_ipd);    A4_nwv         <= To_UX01(A4_ipd);    A5_nwv         <= To_UX01(A5_ipd);    A6_nwv         <= To_UX01(A6_ipd);    A7_nwv         <= To_UX01(A7_ipd);    A8_nwv         <= To_UX01(A8_ipd);    A9_nwv         <= To_UX01(A9_ipd);    A10_nwv        <= To_UX01(A10_ipd);    A11_nwv        <= To_UX01(A11_ipd);    A12_nwv        <= To_UX01(A12_ipd);    DQ0_nwv        <= To_UX01(DQ0_ipd);    DQ1_nwv        <= To_UX01(DQ1_ipd);    DQ2_nwv        <= To_UX01(DQ2_ipd);    DQ3_nwv        <= To_UX01(DQ3_ipd);    DQ4_nwv        <= To_UX01(DQ4_ipd);    DQ5_nwv        <= To_UX01(DQ5_ipd);    DQ6_nwv        <= To_UX01(DQ6_ipd);    DQ7_nwv        <= To_UX01(DQ7_ipd);    DQ8_nwv        <= To_UX01(DQ8_ipd);    DQ9_nwv        <= To_UX01(DQ9_ipd);    DQ10_nwv       <= To_UX01(DQ10_ipd);    DQ11_nwv       <= To_UX01(DQ11_ipd);    DQ12_nwv       <= To_UX01(DQ12_ipd);    DQ13_nwv       <= To_UX01(DQ13_ipd);    DQ14_nwv       <= To_UX01(DQ14_ipd);    DQ15_nwv       <= To_UX01(DQ15_ipd);    UDQS_nwv       <= To_UX01(UDQS_ipd);    UDQSNeg_nwv    <= To_UX01(UDQSNeg_ipd);    LDQS_nwv       <= To_UX01(LDQS_ipd);    LDQSNeg_nwv    <= To_UX01(LDQSNeg_ipd);    ----------------------------------------------------------------------------    -- Main Behavior Block    ----------------------------------------------------------------------------    Behavior: BLOCK        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';            BAIn           : IN    std_logic_vector(2 DOWNTO 0) :=                                               (OTHERS => 'U');            AIn            : IN    std_logic_vector(12 DOWNTO 0) :=                                               (OTHERS => 'U');            DQIn_Hi        : IN    std_logic_vector(7 DOWNTO 0) :=                                               (OTHERS => 'U');            DQIn_Lo        : IN    std_logic_vector(7 DOWNTO 0) :=                                               (OTHERS => 'U');            DQOut          : OUT   std_ulogic_vector(15 DOWNTO 0) :=                                               (OTHERS => 'Z');            UDQSIn         : IN    std_ulogic := 'U';            UDQSOut        : OUT   std_ulogic := 'Z';            UDQSNegIn      : IN    std_ulogic := 'U';            UDQSNegOut     : OUT   std_ulogic := 'Z';            LDQSIn         : IN    std_ulogic := 'U';            LDQSOut        : OUT   std_ulogic := 'Z';            LDQSNegIn      : IN    std_ulogic := 'U';            LDQSNegOut     : OUT   std_ulogic := 'Z'        );        PORT MAP (            ODT       => ODT_nwv,            CK        => CK_nwv,            CKNeg     => CKNeg_nwv,            CKE       => CKE_nwv,            CSNeg     => CSNeg_nwv,            RASNeg    => RASNeg_nwv,            CASNeg    => CASNeg_nwv,            WENeg     => WENeg_nwv,            LDM       => LDM_nwv,            UDM       => UDM_nwv,            BAIn(0)   => BA0_nwv,            BAIn(1)   => BA1_nwv,            BAIn(2)   => BA2_nwv,            AIn(0)    => A0_nwv,            AIn(1)    => A1_nwv,            AIn(2)    => A2_nwv,            AIn(3)    => A3_nwv,            AIn(4)    => A4_nwv,            AIn(5)    => A5_nwv,            AIn(6)    => A6_nwv,            AIn(7)    => A7_nwv,            AIn(8)    => A8_nwv,            AIn(9)    => A9_nwv,            AIn(10)   => A10_nwv,            AIn(11)   => A11_nwv,            AIn(12)   => A12_nwv,            DQIn_Lo(0)=> DQ0_nwv,            DQIn_Lo(1)=> DQ1_nwv,            DQIn_Lo(2)=> DQ2_nwv,            DQIn_Lo(3)=> DQ3_nwv,            DQIn_Lo(4)=> DQ4_nwv,            DQIn_Lo(5)=> DQ5_nwv,            DQIn_Lo(6)=> DQ6_nwv,            DQIn_Lo(7)=> DQ7_nwv,            DQIn_Hi(0)=> DQ8_nwv,            DQIn_Hi(1)=> DQ9_nwv,            DQIn_Hi(2)=> DQ10_nwv,            DQIn_Hi(3)=> DQ11_nwv,            DQIn_Hi(4)=> DQ12_nwv,            DQIn_Hi(5)=> DQ13_nwv,            DQIn_Hi(6)=> DQ14_nwv,            DQIn_Hi(7)=> DQ15_nwv,            DQOut(0)  => DQ0,            DQOut(1)  => DQ1,            DQOut(2)  => DQ2,            DQOut(3)  => DQ3,            DQOut(4)  => DQ4,            DQOut(5)  => DQ5,            DQOut(6)  => DQ6,            DQOut(7)  => DQ7,            DQOut(8)  => DQ8,            DQOut(9)  => DQ9,            DQOut(10) => DQ10,            DQOut(11) => DQ11,            DQOut(12) => DQ12,            DQOut(13) => DQ13,            DQOut(14) => DQ14,            DQOut(15) => DQ15,            UDQSIn    => UDQS_nwv,            UDQSOut   => UDQS,            UDQSNegIn => UDQSNeg_nwv,            UDQSNegOut=> UDQSNeg,            LDQSIn    => LDQS_nwv,            LDQSOut   => LDQS,            LDQSNegIn => LDQSNeg_nwv,            LDQSNegOut=> LDQSNeg        );        --zero delay signals        SIGNAL DQOut_zd : std_logic_vector(15 DOWNTO 0) := (OTHERS => 'Z');        SIGNAL UDQSOut_zd : std_logic := 'Z';        SIGNAL UDQSNegOut_zd : std_logic := 'Z';        SIGNAL LDQSOut_zd : std_logic := 'Z';        SIGNAL LDQSNegOut_zd : std_logic := 'Z';        --differential inputs        SIGNAL CKDiff : std_logic := 'Z';        SIGNAL LDQSDiff : std_logic := 'Z';        SIGNAL UDQSDiff : std_logic := 'Z';        --DLL implementation        SIGNAL CKPeriod : time := 3 ns;        SIGNAL CKInt : std_ulogic := '0';        SIGNAL CKtemp : std_ulogic := '1';        SIGNAL CKHalfPer : time := 0 ns;        SIGNAL CKDLLDelay: time := 0 ns;        SIGNAL CK_stable : boolean := FALSE;        SIGNAL PoweredUp : boolean := FALSE;        SIGNAL In_d : boolean := FALSE;      --delay before first precharge all        SIGNAL Init_delay : boolean := FALSE;--command during initialization        SIGNAL Initialized : boolean := FALSE;--initialization completed        SIGNAL DLL_delay : std_logic := '0';       --delay between DLL        SIGNAL DLL_delay_elapsed : boolean := TRUE;--reset and read command        SIGNAL In_data : std_ulogic := '0';--start of write operation        SIGNAL preamble_gen : std_logic := 'Z';--preamble before read operation        SIGNAL Out_data : std_logic := 'Z';--start of read operation        -- timing check violation        SIGNAL Viol : X01 := '0';        --burst sequences        TYPE sequence IS ARRAY (0 TO 7) OF integer RANGE -7 TO 7;        TYPE seqtab   IS ARRAY (0 TO 7) OF sequence;        CONSTANT seq0 : sequence := (0, 1, 2, 3, 4, 5, 6, 7);        CONSTANT seq1 : sequence := (0, 1, 2,-1, 4, 5, 6, 3);        CONSTANT seq2 : sequence := (0, 1,-2,-1, 4, 5, 2, 3);        CONSTANT seq3 : sequence := (0,-3,-2,-1, 4, 1, 2, 3);        CONSTANT seq4 : sequence := (0, 1, 2, 3,-4,-3,-2,-1);        CONSTANT seq5 : sequence := (0, 1, 2,-1,-4,-3,-2,-5);        CONSTANT seq6 : sequence := (0, 1,-2,-1,-4,-3,-6,-5);        CONSTANT seq7 : sequence := (0,-3,-2,-1,-4,-7,-6,-5);        CONSTANT seq  : seqtab   := (seq0, seq1, seq2, seq3, seq4, seq5, seq6,                                     seq7);        CONSTANT inl0 : sequence := (0, 1, 2, 3, 4, 5, 6, 7);        CONSTANT inl1 : sequence := (0,-1, 2, 1, 4, 3, 6, 5);        CONSTANT inl2 : sequence := (0, 1,-2,-1, 4, 5, 2, 3);        CONSTANT inl3 : sequence := (0,-1,-2,-3, 4, 3, 2, 1);        CONSTANT inl4 : sequence := (0, 1, 2, 3,-4,-3,-2,-1);        CONSTANT inl5 : sequence := (0,-1, 2, 1,-4,-5,-2,-3);        CONSTANT inl6 : sequence := (0, 1,-2,-1,-4,-3,-6,-5);        CONSTANT inl7 : sequence := (0,-1,-2,-3,-4,-5,-6,-7);        CONSTANT inl  : seqtab   := (inl0, inl1, inl2, inl3, inl4, inl5, inl6,                               inl7);        --memory definition        TYPE MemStore IS ARRAY (0 TO MemSize) OF integer RANGE -2 TO MaxData;        TYPE MemBlock IS ARRAY (0 TO BankNum) OF MemStore;        SHARED VARIABLE Mem_Hi : MemBlock;        SHARED VARIABLE Mem_Lo : MemBlock;

⌨️ 快捷键说明

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