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

📄 idt6167.vhd

📁 vhdl cod for ram.For sp3e
💻 VHD
📖 第 1 页 / 共 2 页
字号:
----------------------------------------------------------------------------------  File Name: idt6167.vhd----------------------------------------------------------------------------------  Copyright (C) 2002 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     R. Munden   02 MAR 24   Initial release--    V1.1     R. Munden   02 DEC 28   Changed VITAL2000 to IEEE-- ----------------------------------------------------------------------------------  PART DESCRIPTION:-- --  Library:     RAM--  Technology:  CMOS--  Part:        IDT6167-- --  Description: 16K X 1 SRAM--------------------------------------------------------------------------------LIBRARY IEEE;   USE IEEE.std_logic_1164.ALL;                USE IEEE.vital_memory.ALL;                USE IEEE.VITAL_timing.ALL;                USE IEEE.VITAL_primitives.ALL;LIBRARY FMF;    USE FMF.gen_utils.ALL;                USE FMF.conversions.ALL;                USE FMF.memory.ALL;---------------------------------------------------------------------------------- ENTITY DECLARATION--------------------------------------------------------------------------------ENTITY idt6167 IS    GENERIC (        -- tipd delays: interconnect path delays        tipd_WENeg          : VitalDelayType01 := VitalZeroDelay01;        tipd_CENeg          : VitalDelayType01 := VitalZeroDelay01;        tipd_D              : 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;        -- tpd delays        -- tWHZ        tpd_WENeg_Q         : VitalDelayType01ZX := UnitDelay01ZX;        -- tACS, tCLZ, tCHZ        tpd_CENeg_Q         : VitalDelayType01ZX := UnitDelay01ZX;        -- tAA, tOH        tpd_A0_Q            : VitalDelayType01ZX := UnitDelay01ZX;        -- tpw values: pulse widths        -- tRC        tpw_CENeg_negedge        : VitalDelayType    := UnitDelay;        -- tWP        tpw_WENeg_negedge        : VitalDelayType    := UnitDelay;        -- tsetup values: setup times        -- tAS        tsetup_A0_WENeg          : VitalDelayType := UnitDelay;        -- tDW        tsetup_D_WENeg           : VitalDelayType    := UnitDelay;        -- thold values: hold times        -- tWR        thold_A0_WENeg           : VitalDelayType    := UnitDelay;        -- tDH        thold_D_WENeg            : VitalDelayType    := UnitDelay;        -- generic control parameters        InstancePath        : STRING    := DefaultInstancePath;        TimingChecksOn      : BOOLEAN   := DefaultTimingChecks;        MsgOn               : BOOLEAN   := DefaultMsgOn;        XOn                 : BOOLEAN   := DefaultXOn;        SeverityMode        : SEVERITY_LEVEL := WARNING;        MemLoadFileName     : STRING    := "idt6167.data";        -- For FMF SDF technology file usage        TimingModel         : STRING    := DefaultTimingModel    );    PORT (        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';        D               : IN    std_ulogic := 'U';        Q               : OUT   std_ulogic := 'U';        WENeg           : IN    std_ulogic := 'U';        CENeg           : IN    std_ulogic := 'U'    );    ATTRIBUTE VITAL_LEVEL0 of idt6167 : ENTITY IS TRUE;END idt6167;---------------------------------------------------------------------------------- ARCHITECTURE DECLARATION--------------------------------------------------------------------------------ARCHITECTURE vhdl_behavioral of idt6167 IS    ATTRIBUTE VITAL_LEVEL0 of vhdl_behavioral : ARCHITECTURE IS TRUE;    CONSTANT partID         : STRING := "IDT6167";    CONSTANT MaxData        : NATURAL := 1;    CONSTANT TotalLOC       : NATURAL := 16383;    CONSTANT HiAbit         : NATURAL := 13;    CONSTANT HiDbit         : NATURAL := 0;    CONSTANT DataWidth      : NATURAL := 1;    CONSTANT DlyArraySize   : NATURAL := 14;    SIGNAL D_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';    SIGNAL A6_ipd           : std_ulogic := 'U';    SIGNAL A7_ipd           : std_ulogic := 'U';    SIGNAL A8_ipd           : std_ulogic := 'U';    SIGNAL A9_ipd           : std_ulogic := 'U';    SIGNAL A10_ipd          : std_ulogic := 'U';    SIGNAL A11_ipd          : std_ulogic := 'U';    SIGNAL A12_ipd          : std_ulogic := 'U';    SIGNAL A13_ipd          : std_ulogic := 'U';    SIGNAL WENeg_ipd        : std_ulogic := 'U';    SIGNAL CENeg_ipd        : std_ulogic := 'U';BEGIN    ----------------------------------------------------------------------------    -- Wire Delays    ----------------------------------------------------------------------------    WireDelay : BLOCK    BEGIN        w_2: VitalWireDelay (WENeg_ipd, WENeg, tipd_WENeg);        w_3: VitalWireDelay (CENeg_ipd, CENeg, tipd_CENeg);        w_5: VitalWireDelay (D_ipd, D, tipd_D);        w_13: VitalWireDelay (A0_ipd, A0, tipd_A0);        w_14: VitalWireDelay (A1_ipd, A1, tipd_A1);        w_15: VitalWireDelay (A2_ipd, A2, tipd_A2);        w_16: VitalWireDelay (A3_ipd, A3, tipd_A3);        w_17: VitalWireDelay (A4_ipd, A4, tipd_A4);        w_18: VitalWireDelay (A5_ipd, A5, tipd_A5);        w_19: VitalWireDelay (A6_ipd, A6, tipd_A6);        w_20: VitalWireDelay (A7_ipd, A7, tipd_A7);        w_21: VitalWireDelay (A8_ipd, A8, tipd_A8);        w_22: VitalWireDelay (A9_ipd, A9, tipd_A9);        w_23: VitalWireDelay (A10_ipd, A10, tipd_A10);        w_24: VitalWireDelay (A11_ipd, A11, tipd_A11);        w_25: VitalWireDelay (A12_ipd, A12, tipd_A12);        w_26: VitalWireDelay (A13_ipd, A13, tipd_A13);    END BLOCK;    ----------------------------------------------------------------------------    -- Main Behavior Block    ----------------------------------------------------------------------------    Behavior: BLOCK        PORT (            AddressIn       : IN    std_logic_vector(HiAbit downto 0);            DataIn          : IN    std_logic_vector(HiDbit downto 0);            QOut            : OUT   std_logic_vector(HiDbit downto 0);            WENegIn         : IN    std_ulogic := 'U';            CENegIn         : IN    std_ulogic := 'U'        );        PORT MAP (            QOut(0)      =>  Q,            DataIn(0)    => to_UX01(D_ipd),            AddressIn(0) => A0_ipd,            AddressIn(1) => A1_ipd,            AddressIn(2) => A2_ipd,            AddressIn(3) => A3_ipd,            AddressIn(4) => A4_ipd,            AddressIn(5) => A5_ipd,            AddressIn(6) => A6_ipd,            AddressIn(7) => A7_ipd,            AddressIn(8) => A8_ipd,            AddressIn(9) => A9_ipd,            AddressIn(10) => A10_ipd,            AddressIn(11) => A11_ipd,            AddressIn(12) => A12_ipd,            AddressIn(13) => A13_ipd,            WENegIn => to_UX01(WENeg_ipd),            CENegIn => to_UX01(CENeg_ipd)        );    BEGIN         ------------------------------------------------------------------------        -- Behavior Process        ------------------------------------------------------------------------        Behavior : PROCESS (WENegIn, CENegIn, AddressIn,                            DataIn)                                     CONSTANT WENeg_Q_Delay :VitalDelayArrayType01ZX                      (HiDbit downto 0) := (OTHERS => tpd_WENeg_Q);            CONSTANT CENeg_Q_Delay :VitalDelayArrayType01ZX                      (HiDbit downto 0) := (OTHERS => tpd_CENeg_Q);            CONSTANT Addr_Q_Delay : VitalDelayArrayType01ZX                      (DlyArraySize downto 0) := (OTHERS => tpd_A0_Q);

⌨️ 快捷键说明

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