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

📄 cy2318anz.vhd

📁 Vhdl cod for a clock for sp3e
💻 VHD
📖 第 1 页 / 共 3 页
字号:
----------------------------------------------------------------------------------  File Name: cy2318anz.vhd----------------------------------------------------------------------------------  Copyright (C) 2000-2008 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    00 JUL 18   Initial release--    V1.1    R. Munden    02 MAR 30   Corrected for ModelSim 5.6--    V1.2    R. Munden    08 APR 22   Corrected typo in path delays-- ----------------------------------------------------------------------------------  PART DESCRIPTION:-- --  Library:    CLOCK--  Technology: LVTTL--  Part:       CY2318ANZ-- --  Description: Clock Buffer with 3-State Control and I2C--------------------------------------------------------------------------------LIBRARY IEEE;   USE IEEE.std_logic_1164.ALL;                USE IEEE.VITAL_timing.ALL;                USE IEEE.VITAL_primitives.ALL;LIBRARY FMF;    USE FMF.gen_utils.ALL;---------------------------------------------------------------------------------- ENTITY DECLARATION--------------------------------------------------------------------------------ENTITY cy2318anz IS    GENERIC (        -- tipd delays: interconnect path delays        tipd_BUFIN               : VitalDelayType01 := VitalZeroDelay01;        tipd_SDATA               : VitalDelayType01 := VitalZeroDelay01;        tipd_SCLK                : VitalDelayType01 := VitalZeroDelay01;        tipd_OE                  : VitalDelayType01 := VitalZeroDelay01;        -- tpd delays        tpd_BUFIN_SDR0           : VitalDelayType01 := UnitDelay01;        tpd_OE_SDR0              : VitalDelayType01Z := UnitDelay01Z;        tpd_SCLK_SDATA           : VitalDelayType01Z := UnitDelay01Z;        -- tsetup values: setup times        tsetup_SDATA_SCLK        : VitalDelayType := UnitDelay;        -- thold values: hold times        thold_SDATA_SCLK         : VitalDelayType := UnitDelay;        -- tpw values: pulse widths        tpw_BUFIN_posedge        : VitalDelayType := UnitDelay;        tpw_BUFIN_negedge        : VitalDelayType := UnitDelay;        tpw_SCLK_posedge         : VitalDelayType := UnitDelay;        tpw_SCLK_negedge         : VitalDelayType := UnitDelay;        -- tperiod_min: minimum clock period = 1/max freq        tperiod_BUFIN_posedge    : VitalDelayType := UnitDelay;        tperiod_SCLK_posedge     : VitalDelayType := UnitDelay;        -- generic control parameters        InstancePath        : STRING    := DefaultInstancePath;        TimingChecksOn      : BOOLEAN   := DefaultTimingChecks;        MsgOn               : BOOLEAN   := DefaultMsgOn;        XOn                 : BOOLEAN   := DefaultXon;        -- For FMF SDF technology file usage        TimingModel         : STRING    := DefaultTimingModel    );    PORT (        BUFIN           : IN    std_ulogic := 'U';        OE              : IN    std_ulogic := 'U';        SDATA           : INOUT std_ulogic := 'H';        SCLK            : IN    std_ulogic := 'H';        SDR0            : OUT   std_ulogic := 'U';        SDR1            : OUT   std_ulogic := 'U';        SDR2            : OUT   std_ulogic := 'U';        SDR3            : OUT   std_ulogic := 'U';        SDR4            : OUT   std_ulogic := 'U';        SDR5            : OUT   std_ulogic := 'U';        SDR6            : OUT   std_ulogic := 'U';        SDR7            : OUT   std_ulogic := 'U';        SDR8            : OUT   std_ulogic := 'U';        SDR9            : OUT   std_ulogic := 'U';        SDR10           : OUT   std_ulogic := 'U';        SDR11           : OUT   std_ulogic := 'U';        SDR12           : OUT   std_ulogic := 'U';        SDR13           : OUT   std_ulogic := 'U';        SDR14           : OUT   std_ulogic := 'U';        SDR15           : OUT   std_ulogic := 'U';        SDR16           : OUT   std_ulogic := 'U';        SDR17           : OUT   std_ulogic := 'U'    );    ATTRIBUTE VITAL_LEVEL0 of cy2318anz : ENTITY IS TRUE;END cy2318anz;---------------------------------------------------------------------------------- ARCHITECTURE DECLARATION--------------------------------------------------------------------------------ARCHITECTURE vhdl_behavioral of cy2318anz IS    ATTRIBUTE VITAL_LEVEL0 of vhdl_behavioral : ARCHITECTURE IS TRUE;    SIGNAL BUFIN_ipd         : std_ulogic := 'U';    SIGNAL OE_ipd            : std_ulogic := 'U';    SIGNAL SDATA_ipd         : std_ulogic := 'U';    SIGNAL SCLK_ipd          : std_ulogic := 'U';    SIGNAL OE_nwv            : X01 := 'X';    SIGNAL Byte0             : std_logic_vector(7 downto 0) := (OTHERS => '1');     SIGNAL Byte1             : std_logic_vector(7 downto 0) := (OTHERS => '1');     SIGNAL Byte2             : std_logic_vector(7 downto 0) := (OTHERS => '1');     CONSTANT Address         : std_logic_vector(7 downto 0) := "01001011"; BEGIN    ----------------------------------------------------------------------------    -- Wire Delays    ----------------------------------------------------------------------------    WireDelay : BLOCK    BEGIN        w_1 : VitalWireDelay (BUFIN_ipd, BUFIN, tipd_BUFIN);        w_2 : VitalWireDelay (OE_ipd, OE, tipd_OE);        w_3 : VitalWireDelay (SDATA_ipd, SDATA, tipd_SDATA);        w_4 : VitalWireDelay (SCLK_ipd, SCLK, tipd_SCLK);    END BLOCK;    ----------------------------------------------------------------------------    -- Concurrent procedure calls    ----------------------------------------------------------------------------    OE_nwv <= to_X01(OE_ipd);    ----------------------------------------------------------------------------    -- Main Behavior Process    ----------------------------------------------------------------------------    VitalBehavior1 : PROCESS (BUFIN_ipd, OE_nwv, Byte0, Byte1, Byte2)        -- Timing Check Variables        VARIABLE Pviol_BUFIN       : X01 := '0';        VARIABLE PD_BUFIN          : VitalPeriodDataType := VitalPeriodDataInit;        VARIABLE Violation         : X01 := '0';        -- Functionality Results Variables        VARIABLE SDR0_zd           : std_ulogic;        VARIABLE SDR1_zd           : std_ulogic;        VARIABLE SDR2_zd           : std_ulogic;        VARIABLE SDR3_zd           : std_ulogic;        VARIABLE SDR4_zd           : std_ulogic;        VARIABLE SDR5_zd           : std_ulogic;        VARIABLE SDR6_zd           : std_ulogic;        VARIABLE SDR7_zd           : std_ulogic;        VARIABLE SDR8_zd           : std_ulogic;        VARIABLE SDR9_zd           : std_ulogic;        VARIABLE SDR10_zd          : std_ulogic;        VARIABLE SDR11_zd          : std_ulogic;        VARIABLE SDR12_zd          : std_ulogic;        VARIABLE SDR13_zd          : std_ulogic;        VARIABLE SDR14_zd          : std_ulogic;        VARIABLE SDR15_zd          : std_ulogic;        VARIABLE SDR16_zd          : std_ulogic;        VARIABLE SDR17_zd          : std_ulogic;        -- Output Glitch Detection Variables        VARIABLE SDR0_GlitchData   : VitalGlitchDataType;        VARIABLE SDR1_GlitchData   : VitalGlitchDataType;        VARIABLE SDR2_GlitchData   : VitalGlitchDataType;        VARIABLE SDR3_GlitchData   : VitalGlitchDataType;        VARIABLE SDR4_GlitchData   : VitalGlitchDataType;        VARIABLE SDR5_GlitchData   : VitalGlitchDataType;        VARIABLE SDR6_GlitchData   : VitalGlitchDataType;        VARIABLE SDR7_GlitchData   : VitalGlitchDataType;        VARIABLE SDR8_GlitchData   : VitalGlitchDataType;        VARIABLE SDR9_GlitchData   : VitalGlitchDataType;        VARIABLE SDR10_GlitchData  : VitalGlitchDataType;        VARIABLE SDR11_GlitchData  : VitalGlitchDataType;        VARIABLE SDR12_GlitchData  : VitalGlitchDataType;        VARIABLE SDR13_GlitchData  : VitalGlitchDataType;        VARIABLE SDR14_GlitchData  : VitalGlitchDataType;        VARIABLE SDR15_GlitchData  : VitalGlitchDataType;        VARIABLE SDR16_GlitchData  : VitalGlitchDataType;        VARIABLE SDR17_GlitchData  : VitalGlitchDataType;    BEGIN        ------------------------------------------------------------------------        -- Timing Check Section        ------------------------------------------------------------------------        IF (TimingChecksOn) THEN            VitalPeriodPulseCheck (                TestSignal      => BUFIN_ipd,                TestSignalName  => "BUFIN_ipd",                Period          => tperiod_BUFIN_posedge,                PulseWidthHigh  => tpw_BUFIN_posedge,                PulseWidthLow   => tpw_BUFIN_negedge,                CheckEnabled    => TRUE,                HeaderMsg       => InstancePath & "/cy2318anz",                PeriodData      => PD_BUFIN,                XOn             => XOn,                MsgOn           => MsgOn,                Violation       => Pviol_BUFIN            );        END IF;        ------------------------------------------------------------------------        -- Functionality Section        ------------------------------------------------------------------------        Violation := Pviol_BUFIN;        IF (Violation = '0') THEN            SDR0_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte0(0) AND OE_nwv );            SDR1_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte0(1) AND OE_nwv );            SDR2_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte0(2) AND OE_nwv );            SDR3_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte0(3) AND OE_nwv );            SDR4_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte0(4) AND OE_nwv );            SDR5_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte0(5) AND OE_nwv );            SDR6_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte0(6) AND OE_nwv );            SDR7_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte0(7) AND OE_nwv );            SDR8_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte1(0) AND OE_nwv );            SDR9_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte1(1) AND OE_nwv );            SDR10_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte1(2) AND OE_nwv );            SDR11_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte1(3) AND OE_nwv );            SDR12_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte1(4) AND OE_nwv );            SDR13_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte1(5) AND OE_nwv );            SDR14_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte1(6) AND OE_nwv );            SDR15_zd := VitalBUFIF1 (data => BUFIN_ipd,                                    enable => Byte1(7) AND OE_nwv );

⌨️ 快捷键说明

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