📄 k7r323682m.vhd
字号:
---------------------------------------------------------------------------------- File Name: k7r323682m.vhd---------------------------------------------------------------------------------- Copyright (C) 2004-2006 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 V.Ljubisavljevic 04 Aug 25 Initial releas-- V1.1 V.Ljubisavljevic 05 Feb 22 BWxNeg are now sampled and on-- rising edge of KNeg for burst write-- V1.2 R. Munden 06 Feb 04 Changed initial values of PLL-- variables. Change pre-load to use-- flag, removed init loop-- V1.3 D. Need 06 Jun 14 Changed update of PLL from 4ns step-- to 7ns step, and the inital value-- from 0 to 5ns. This makes it lock-- faster, and makes it match the-- design in the mt54w512h36 model.-- (These are changes to KHalfPer and-- CHalfPer.)---------------------------------------------------------------------------------- PART DESCRIPTION:---- Technology: CMOS-- Part: k7r323682m---- Description: QDR II SRAM 512K x 36--------------------------------------------------------------------------------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 k7r323682m IS GENERIC ( -- tipd delays: interconnect path delays tipd_DLLNeg : VitalDelayType01 := VitalZeroDelay01; tipd_ZQ : 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_A14 : VitalDelayType01 := VitalZeroDelay01; tipd_A15 : VitalDelayType01 := VitalZeroDelay01; tipd_A16 : VitalDelayType01 := VitalZeroDelay01; tipd_A17 : VitalDelayType01 := VitalZeroDelay01; tipd_A18 : VitalDelayType01 := VitalZeroDelay01; tipd_D0 : VitalDelayType01 := VitalZeroDelay01; tipd_D1 : VitalDelayType01 := VitalZeroDelay01; tipd_D2 : VitalDelayType01 := VitalZeroDelay01; tipd_D3 : VitalDelayType01 := VitalZeroDelay01; tipd_D4 : VitalDelayType01 := VitalZeroDelay01; tipd_D5 : VitalDelayType01 := VitalZeroDelay01; tipd_D6 : VitalDelayType01 := VitalZeroDelay01; tipd_D7 : VitalDelayType01 := VitalZeroDelay01; tipd_D8 : VitalDelayType01 := VitalZeroDelay01; tipd_D9 : VitalDelayType01 := VitalZeroDelay01; tipd_D10 : VitalDelayType01 := VitalZeroDelay01; tipd_D11 : VitalDelayType01 := VitalZeroDelay01; tipd_D12 : VitalDelayType01 := VitalZeroDelay01; tipd_D13 : VitalDelayType01 := VitalZeroDelay01; tipd_D14 : VitalDelayType01 := VitalZeroDelay01; tipd_D15 : VitalDelayType01 := VitalZeroDelay01; tipd_D16 : VitalDelayType01 := VitalZeroDelay01; tipd_D17 : VitalDelayType01 := VitalZeroDelay01; tipd_D18 : VitalDelayType01 := VitalZeroDelay01; tipd_D19 : VitalDelayType01 := VitalZeroDelay01; tipd_D20 : VitalDelayType01 := VitalZeroDelay01; tipd_D21 : VitalDelayType01 := VitalZeroDelay01; tipd_D22 : VitalDelayType01 := VitalZeroDelay01; tipd_D23 : VitalDelayType01 := VitalZeroDelay01; tipd_D24 : VitalDelayType01 := VitalZeroDelay01; tipd_D25 : VitalDelayType01 := VitalZeroDelay01; tipd_D26 : VitalDelayType01 := VitalZeroDelay01; tipd_D27 : VitalDelayType01 := VitalZeroDelay01; tipd_D28 : VitalDelayType01 := VitalZeroDelay01; tipd_D29 : VitalDelayType01 := VitalZeroDelay01; tipd_D30 : VitalDelayType01 := VitalZeroDelay01; tipd_D31 : VitalDelayType01 := VitalZeroDelay01; tipd_D32 : VitalDelayType01 := VitalZeroDelay01; tipd_D33 : VitalDelayType01 := VitalZeroDelay01; tipd_D34 : VitalDelayType01 := VitalZeroDelay01; tipd_D35 : VitalDelayType01 := VitalZeroDelay01; tipd_RNeg : VitalDelayType01 := VitalZeroDelay01; tipd_WNeg : VitalDelayType01 := VitalZeroDelay01; tipd_BW0Neg : VitalDelayType01 := VitalZeroDelay01; tipd_BW1Neg : VitalDelayType01 := VitalZeroDelay01; tipd_BW2Neg : VitalDelayType01 := VitalZeroDelay01; tipd_BW3Neg : VitalDelayType01 := VitalZeroDelay01; tipd_K : VitalDelayType01 := VitalZeroDelay01; tipd_KNeg : VitalDelayType01 := VitalZeroDelay01; tipd_C : VitalDelayType01 := VitalZeroDelay01; tipd_CNeg : VitalDelayType01 := VitalZeroDelay01; tipd_TMS : VitalDelayType01 := VitalZeroDelay01; tipd_TDI : VitalDelayType01 := VitalZeroDelay01; tipd_TCK : VitalDelayType01 := VitalZeroDelay01; -- tpd delays tpd_C_Q0 : VitalDelayType01Z := VitalZeroDelay01Z; tpd_C_Q1 : VitalDelayType := UnitDelay; tpd_C_CQ : VitalDelayType01Z := VitalZeroDelay01Z; -- tpw values: pulse widths tpw_K_posedge : VitalDelayType := UnitDelay; tpw_K_negedge : VitalDelayType := UnitDelay; -- tperiod min (calculated as 1/max freq) tperiod_K : VitalDelayType := UnitDelay; -- tsetup values: setup times tsetup_A0_K : VitalDelayType := UnitDelay; tsetup_D0_K : VitalDelayType := UnitDelay; tsetup_RNeg_K : VitalDelayType := UnitDelay; -- thold values: hold times thold_A0_K : VitalDelayType := UnitDelay; thold_D0_K : VitalDelayType := UnitDelay; thold_RNeg_K : VitalDelayType := UnitDelay; -- tskew values: skew times tskew_K_C : VitalDelayType := UnitDelay; tskew_K_KNeg : VitalDelayType := UnitDelay; tskew_KNeg_K : VitalDelayType := UnitDelay; -- generic control parameters InstancePath : STRING := DefaultInstancePath; TimingChecksOn : BOOLEAN := DefaultTimingChecks; MsgOn : BOOLEAN := DefaultMsgOn; XOn : BOOLEAN := DefaultXon; SeverityMode : SEVERITY_LEVEL := WARNING; -- memory file to be loaded mem_file_name : STRING := "k7r323682m.mem"; -- For FMF SDF technology file usage TimingModel : STRING := DefaultTimingModel ); PORT ( DLLNeg : IN std_ulogic := 'U'; ZQ : 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'; A14 : IN std_ulogic := 'U'; A15 : IN std_ulogic := 'U'; A16 : IN std_ulogic := 'U'; A17 : IN std_ulogic := 'U'; A18 : IN std_ulogic := 'U'; D0 : IN std_ulogic := 'U'; D1 : IN std_ulogic := 'U'; D2 : IN std_ulogic := 'U'; D3 : IN std_ulogic := 'U'; D4 : IN std_ulogic := 'U'; D5 : IN std_ulogic := 'U'; D6 : IN std_ulogic := 'U'; D7 : IN std_ulogic := 'U'; D8 : IN std_ulogic := 'U'; D9 : IN std_ulogic := 'U'; D10 : IN std_ulogic := 'U'; D11 : IN std_ulogic := 'U'; D12 : IN std_ulogic := 'U'; D13 : IN std_ulogic := 'U'; D14 : IN std_ulogic := 'U'; D15 : IN std_ulogic := 'U'; D16 : IN std_ulogic := 'U'; D17 : IN std_ulogic := 'U'; D18 : IN std_ulogic := 'U'; D19 : IN std_ulogic := 'U'; D20 : IN std_ulogic := 'U'; D21 : IN std_ulogic := 'U'; D22 : IN std_ulogic := 'U'; D23 : IN std_ulogic := 'U'; D24 : IN std_ulogic := 'U'; D25 : IN std_ulogic := 'U'; D26 : IN std_ulogic := 'U'; D27 : IN std_ulogic := 'U'; D28 : IN std_ulogic := 'U'; D29 : IN std_ulogic := 'U'; D30 : IN std_ulogic := 'U'; D31 : IN std_ulogic := 'U'; D32 : IN std_ulogic := 'U'; D33 : IN std_ulogic := 'U'; D34 : IN std_ulogic := 'U'; D35 : IN std_ulogic := 'U'; RNeg : IN std_ulogic := 'U'; WNeg : IN std_ulogic := 'U'; BW0Neg : IN std_ulogic := 'U'; BW1Neg : IN std_ulogic := 'U'; BW2Neg : IN std_ulogic := 'U'; BW3Neg : IN std_ulogic := 'U'; K : IN std_ulogic := 'U'; KNeg : IN std_ulogic := 'U'; C : IN std_ulogic := 'U'; CNeg : IN std_ulogic := 'U'; TMS : IN std_ulogic := 'U'; TDI : IN std_ulogic := 'U'; TCK : IN std_ulogic := 'U'; Q0 : OUT std_ulogic := 'U'; Q1 : OUT std_ulogic := 'U'; Q2 : OUT std_ulogic := 'U'; Q3 : OUT std_ulogic := 'U'; Q4 : OUT std_ulogic := 'U'; Q5 : OUT std_ulogic := 'U'; Q6 : OUT std_ulogic := 'U'; Q7 : OUT std_ulogic := 'U'; Q8 : OUT std_ulogic := 'U'; Q9 : OUT std_ulogic := 'U'; Q10 : OUT std_ulogic := 'U'; Q11 : OUT std_ulogic := 'U'; Q12 : OUT std_ulogic := 'U'; Q13 : OUT std_ulogic := 'U'; Q14 : OUT std_ulogic := 'U'; Q15 : OUT std_ulogic := 'U'; Q16 : OUT std_ulogic := 'U'; Q17 : OUT std_ulogic := 'U'; Q18 : OUT std_ulogic := 'U'; Q19 : OUT std_ulogic := 'U'; Q20 : OUT std_ulogic := 'U'; Q21 : OUT std_ulogic := 'U'; Q22 : OUT std_ulogic := 'U'; Q23 : OUT std_ulogic := 'U'; Q24 : OUT std_ulogic := 'U'; Q25 : OUT std_ulogic := 'U'; Q26 : OUT std_ulogic := 'U'; Q27 : OUT std_ulogic := 'U'; Q28 : OUT std_ulogic := 'U'; Q29 : OUT std_ulogic := 'U'; Q30 : OUT std_ulogic := 'U'; Q31 : OUT std_ulogic := 'U'; Q32 : OUT std_ulogic := 'U'; Q33 : OUT std_ulogic := 'U'; Q34 : OUT std_ulogic := 'U'; Q35 : OUT std_ulogic := 'U'; CQ : OUT std_ulogic := 'U'; CQNeg : OUT std_ulogic := 'U'; TDO : OUT std_ulogic := 'U' ); ATTRIBUTE VITAL_LEVEL0 of k7r323682m : ENTITY IS TRUE;END k7r323682m;---------------------------------------------------------------------------------- ARCHITECTURE DECLARATION--------------------------------------------------------------------------------ARCHITECTURE vhdl_behavioral of k7r323682m IS ATTRIBUTE VITAL_LEVEL0 of vhdl_behavioral : ARCHITECTURE IS TRUE; CONSTANT partID : STRING := "k7r323682m";-- two banks(A and B), each has 2^19 (=524288)locations CONSTANT TotalLOC : NATURAL := 524287; CONSTANT MaxData : NATURAL := 511; CONSTANT HiAbit : NATURAL := 18; CONSTANT HiDbit : NATURAL := 8; SIGNAL DLLNeg_ipd : std_ulogic := 'U'; SIGNAL ZQ_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';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -