📄 mt47h64m16.vhd
字号:
---------------------------------------------------------------------------- -- 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 + -