📄 ecp2_misc.vhd
字号:
-- ---------------------------------------------------------------------- >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<-- ---------------------------------------------------------------------- Copyright (c) 2005 by Lattice Semiconductor Corporation-- -------------------------------------------------------------------------- Lattice Semiconductor Corporation-- 5555 NE Moore Court-- Hillsboro, OR 97214-- U.S.A.---- TEL: 1-800-Lattice (USA and Canada)-- 1-408-826-6000 (other locations)---- web: http://www.latticesemi.com/-- email: techsupport@latticesemi.com---- ------------------------------------------------------------------------ Simulation Library File for ECP2---- $Header: /home/pradeep/fndry_src/env/vhdl/pkg/vhdsclibs/data/ecp2/src/RCS/ECP2_MISC.vhd,v 1.3 2005/07/13 21:48:49 rag Exp pradeep $ -----------cell dp16kb------library ieee;use ieee.std_logic_1164.all;use ieee.vital_timing.all;use ieee.vital_primitives.all;use ieee.std_logic_unsigned.all;use work.global.gsrnet;use work.global.purnet;use work.mem3.all;-- entity declaration --ENTITY dp16kb IS GENERIC ( DATA_WIDTH_A : Integer := 18; DATA_WIDTH_B : Integer := 18; REGMODE_A : String := "NOREG"; REGMODE_B : String := "NOREG"; RESETMODE : String := "SYNC"; CSDECODE_A : std_logic_vector(2 downto 0) := "000"; CSDECODE_B : std_logic_vector(2 downto 0) := "000"; WRITEMODE_A : String := "NORMAL"; WRITEMODE_B : String := "NORMAL"; GSR : String := "DISABLED"; initval_00 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_01 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_02 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_03 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_04 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_05 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_06 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_07 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_08 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_09 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_0a : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_0b : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_0c : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_0d : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_0e : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_0f : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_10 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_11 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_12 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_13 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_14 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_15 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_16 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_17 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_18 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_19 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_1a : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_1b : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_1c : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_1d : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_1e : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_1f : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_20 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_21 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_22 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_23 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_24 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_25 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_26 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_27 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_28 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_29 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_2a : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_2b : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_2c : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_2d : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_2e : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_2f : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_30 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_31 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_32 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_33 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_34 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_35 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_36 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_37 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_38 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_39 : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_3a : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_3b : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_3c : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_3d : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_3e : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; initval_3f : String := "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; -- miscellaneous vital GENERICs TimingChecksOn : boolean := TRUE; XOn : boolean := FALSE; MsgOn : boolean := TRUE; InstancePath : string := "dp16kb"; -- input SIGNAL delays tipd_ada13 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada12 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada11 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada10 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada9 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada8 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada7 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada6 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada5 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada4 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada3 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada2 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada1 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ada0 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia17 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia16 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia15 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia14 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia13 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia12 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia11 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia10 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia9 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia8 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia7 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia6 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia5 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia4 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia3 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia2 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia1 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dia0 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_clka : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_cea : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_wea : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_csa0 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_csa1 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_csa2 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_rsta : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb13 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb12 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb11 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb10 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb9 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb8 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb7 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb6 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb5 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb4 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb3 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb2 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb1 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_adb0 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib17 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib16 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib15 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib14 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib13 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib12 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib11 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib10 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib9 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib8 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib7 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib6 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib5 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib4 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib3 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib2 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib1 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_dib0 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_clkb : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_ceb : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_web : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_csb0 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_csb1 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_csb2 : VitalDelayType01 := (0.0 ns, 0.0 ns); tipd_rstb : VitalDelayType01 := (0.0 ns, 0.0 ns); -- propagation delays -- setup and hold constraints -- pulse width constraints tperiod_clka : VitalDelayType := 0.001 ns; tpw_clka_posedge : VitalDelayType := 0.001 ns; tpw_clka_negedge : VitalDelayType := 0.001 ns; tperiod_clkb : VitalDelayType := 0.001 ns; tpw_clkb_posedge : VitalDelayType := 0.001 ns; tpw_clkb_negedge : VitalDelayType := 0.001 ns); PORT( dia0, dia1, dia2, dia3, dia4, dia5, dia6, dia7, dia8 : in std_logic := 'X'; dia9, dia10, dia11, dia12, dia13, dia14, dia15, dia16, dia17 : in std_logic := 'X'; ada0, ada1, ada2, ada3, ada4, ada5, ada6, ada7, ada8 : in std_logic := 'X'; ada9, ada10, ada11, ada12, ada13 : in std_logic := 'X'; cea, clka, wea, csa0, csa1, csa2, rsta : in std_logic := 'X'; dib0, dib1, dib2, dib3, dib4, dib5, dib6, dib7, dib8 : in std_logic := 'X'; dib9, dib10, dib11, dib12, dib13, dib14, dib15, dib16, dib17 : in std_logic := 'X'; adb0, adb1, adb2, adb3, adb4, adb5, adb6, adb7, adb8 : in std_logic := 'X'; adb9, adb10, adb11, adb12, adb13 : in std_logic := 'X'; ceb, clkb, web, csb0, csb1, csb2, rstb : in std_logic := 'X'; doa0, doa1, doa2, doa3, doa4, doa5, doa6, doa7, doa8 : out std_logic := 'X'; doa9, doa10, doa11, doa12, doa13, doa14, doa15, doa16, doa17 : out std_logic := 'X'; dob0, dob1, dob2, dob3, dob4, dob5, dob6, dob7, dob8 : out std_logic := 'X'; dob9, dob10, dob11, dob12, dob13, dob14, dob15, dob16, dob17 : out std_logic := 'X' ); ATTRIBUTE Vital_Level0 OF dp16kb : ENTITY IS TRUE;END dp16kb ;-- ARCHITECTURE body --ARCHITECTURE V OF dp16kb IS ATTRIBUTE Vital_Level0 OF V : ARCHITECTURE IS TRUE;--SIGNAL DECLARATIONS---- SIGNAL ada_ipd : std_logic_vector(13 downto 0) := (others => '0'); SIGNAL dia_ipd : std_logic_vector(17 downto 0) := (others => '0'); SIGNAL clka_ipd : std_logic := '0'; SIGNAL cea_ipd : std_logic := '0'; SIGNAL wrea_ipd : std_logic := '0'; SIGNAL csa_ipd : std_logic_vector(2 downto 0) := "000"; SIGNAL rsta_ipd : std_logic := '0'; SIGNAL adb_ipd : std_logic_vector(13 downto 0) := "XXXXXXXXXXXXXX"; SIGNAL dib_ipd : std_logic_vector(17 downto 0) := "XXXXXXXXXXXXXXXXXX"; SIGNAL clkb_ipd : std_logic := '0'; SIGNAL ceb_ipd : std_logic := '0'; SIGNAL wreb_ipd : std_logic := '0'; SIGNAL csb_ipd : std_logic_vector(2 downto 0) := "000"; SIGNAL rstb_ipd : std_logic := '0'; SIGNAL csa_en : std_logic := '0'; SIGNAL csb_en : std_logic := '0'; SIGNAL g_reset : std_logic := '0'; CONSTANT ADDR_WIDTH_A : integer := data2addr_w(DATA_WIDTH_A); CONSTANT ADDR_WIDTH_B : integer := data2addr_w(DATA_WIDTH_B); CONSTANT new_data_width_a : integer := data2data_w(DATA_WIDTH_A); CONSTANT new_data_width_b : integer := data2data_w(DATA_WIDTH_B); CONSTANT div_a : integer := data2data(DATA_WIDTH_A); CONSTANT div_b : integer := data2data(DATA_WIDTH_B); SIGNAL dia_node : std_logic_vector((new_data_width_a - 1) downto 0) := (others => '0'); SIGNAL dib_node : std_logic_vector((new_data_width_b - 1) downto 0) := (others => '0'); SIGNAL ada_node : std_logic_vector((ADDR_WIDTH_A - 1) downto 0); SIGNAL adb_node : std_logic_vector((ADDR_WIDTH_B - 1) downto 0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -