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

📄 k4s161622d.vhd

📁 vhdl cod for ram.For sp3e
💻 VHD
📖 第 1 页 / 共 5 页
字号:
            -- Functionality Results Variables            VARIABLE Violation  : X01 := '0';            VARIABLE DataDriveOut :  std_logic_vector(15 DOWNTO 0)                                   := (OTHERS => 'Z');            VARIABLE DataDrive  : OutWord;            VARIABLE DataDrive1 : OutWord;            VARIABLE DataDrive2 : OutWord;            VARIABLE DataDrive3 : OutWord;            VARIABLE LDQM_reg0  : UX01;            VARIABLE UDQM_reg0  : UX01;            VARIABLE LDQM_reg1  : UX01;            VARIABLE UDQM_reg1  : UX01;            VARIABLE LDQM_reg2  : UX01;            VARIABLE UDQM_reg2  : UX01;        BEGIN            --------------------------------------------------------------------            -- Timing Check Section            --------------------------------------------------------------------            IF (TimingChecksOn) THEN                VitalSetupHoldCheck (                    TestSignal      => BAIn,                    TestSignalName  => "BA",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_DQ0_CLK,                    SetupLow        => tsetup_DQ0_CLK,                    HoldHigh        => thold_DQ0_CLK,                    HoldLow         => thold_DQ0_CLK,                    CheckEnabled    => chip_en,                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_BA_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_BA_CLK );                VitalSetupHoldCheck (                    TestSignal      => LDQMIn,                    TestSignalName  => "LDQM",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_DQ0_CLK,                    SetupLow        => tsetup_DQ0_CLK,                    HoldHigh        => thold_DQ0_CLK,                    HoldLow         => thold_DQ0_CLK,                    CheckEnabled    => chip_en,                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_LDQM_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_LDQM_CLK );                VitalSetupHoldCheck (                    TestSignal      => UDQMIn,                    TestSignalName  => "UDQM",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_DQ0_CLK,                    SetupLow        => tsetup_DQ0_CLK,                    HoldHigh        => thold_DQ0_CLK,                    HoldLow         => thold_DQ0_CLK,                    CheckEnabled    => chip_en,                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_UDQM_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_UDQM_CLK );                VitalSetupHoldCheck (                    TestSignal      => DataIn,                    TestSignalName  => "Data",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_DQ0_CLK,                    SetupLow        => tsetup_DQ0_CLK,                    HoldHigh        => thold_DQ0_CLK,                    HoldLow         => thold_DQ0_CLK,                    CheckEnabled    => chip_en,                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_D0_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_D0_CLK );                VitalSetupHoldCheck (                    TestSignal      => CKEIn,                    TestSignalName  => "CKE",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_DQ0_CLK,                    SetupLow        => tsetup_DQ0_CLK,                    HoldHigh        => thold_DQ0_CLK,                    HoldLow         => thold_DQ0_CLK,                    CheckEnabled    => true,                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_CKE_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_CKE_CLK );                VitalSetupHoldCheck (                    TestSignal      => AddressIn,                    TestSignalName  => "Address",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_DQ0_CLK,                    SetupLow        => tsetup_DQ0_CLK,                    HoldHigh        => thold_DQ0_CLK,                    HoldLow         => thold_DQ0_CLK,                    CheckEnabled    => chip_en,                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_Address_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_Address_CLK );                VitalSetupHoldCheck (                    TestSignal      => WENegIn,                    TestSignalName  => "WENeg",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_DQ0_CLK,                    SetupLow        => tsetup_DQ0_CLK,                    HoldHigh        => thold_DQ0_CLK,                    HoldLow         => thold_DQ0_CLK,                    CheckEnabled    => chip_en,                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_WENeg_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_WENeg_CLK );                VitalSetupHoldCheck (                    TestSignal      => RASNegIn,                    TestSignalName  => "RASNeg",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_DQ0_CLK,                    SetupLow        => tsetup_DQ0_CLK,                    HoldHigh        => thold_DQ0_CLK,                    HoldLow         => thold_DQ0_CLK,                    CheckEnabled    => chip_en,                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_RASNeg_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_RASNeg_CLK );                VitalSetupHoldCheck (                    TestSignal      => CSNegIn,                    TestSignalName  => "CSNeg",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_DQ0_CLK,                    SetupLow        => tsetup_DQ0_CLK,                    HoldHigh        => thold_DQ0_CLK,                    HoldLow         => thold_DQ0_CLK,                    CheckEnabled    => chip_en,                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_CSNeg_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_CSNeg_CLK );                VitalSetupHoldCheck (                    TestSignal      => CASNegIn,                    TestSignalName  => "CASNeg",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_DQ0_CLK,                    SetupLow        => tsetup_DQ0_CLK,                    HoldHigh        => thold_DQ0_CLK,                    HoldLow         => thold_DQ0_CLK,                    CheckEnabled    => chip_en,                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_CASNeg_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_CASNeg_CLK );                VitalPeriodPulseCheck (                    TestSignal      =>  CLKIn,                    TestSignalName  =>  "CLK",                    Period          =>  tperiod_CLK_posedge,                    PulseWidthLow   =>  tpw_CLK_negedge,                    PulseWidthHigh  =>  tpw_CLK_posedge,                    PeriodData      =>  PD_CLK,                    XOn             =>  XOn,                    MsgOn           =>  MsgOn,                    Violation       =>  Pviol_CLK,                    HeaderMsg       =>  InstancePath & PartID,                    CheckEnabled    =>  CAS_Lat = 2 );                VitalPeriodPulseCheck (                    TestSignal      =>  CLKIn,                    TestSignalName  =>  "CLK",                    Period          =>  tperiod_CLK_negedge,                    PulseWidthLow   =>  tpw_CLK_negedge,                    PulseWidthHigh  =>  tpw_CLK_posedge,                    PeriodData      =>  PD_CLK,                    XOn             =>  XOn,                    MsgOn           =>  MsgOn,                    Violation       =>  Pviol_CLK,                    HeaderMsg       =>  InstancePath & PartID,                    CheckEnabled    =>  CAS_Lat = 3 );                Violation := Pviol_CLK OR Tviol_BA_CLK  OR Tviol_LDQM_CLK OR                             Tviol_UDQM_CLK OR Tviol_D0_CLK OR Tviol_CKE_CLK OR                              Tviol_Address_CLK OR Tviol_WENeg_CLK OR                              Tviol_RASNeg_CLK OR Tviol_CSNeg_CLK OR                              Tviol_CASNeg_CLK;                ASSERT Violation = '0'                    REPORT InstancePath & partID & ": simulation may be" &                           " inaccurate due to timing violations"                    SEVERITY SeverityMode;            END IF; -- Timing Check Section    --------------------------------------------------------------------    -- Functional Section    --------------------------------------------------------------------    IF (rising_edge(CLKIn)) THEN        CKEreg <= CKEIn;        IF (NOW > Next_Ref AND PoweredUp AND Ref_Cnt > 0) THEN            Ref_Cnt := Ref_Cnt - 1;            Next_Ref := NOW + tdevice_REF;        END IF;        IF CKEreg = '1' THEN            IF CSNegIn = '0' THEN                chip_en := true;            ELSE                chip_en := false;            END IF;        END IF;    END IF;    IF (rising_edge(CLKIn) AND CKEreg = '1' AND to_X01(CSNegIn) = '0') THEN        ASSERT (not(Is_X(LDQMIn)))            REPORT "Unusable value for LDQM"            SEVERITY ERROR;        ASSERT (not(Is_X(UDQMIn)))            REPORT "Unusable value for UDQM"            SEVERITY ERROR;        ASSERT (not(Is_X(WENegIn)))            REPORT "Unusable value for WENeg"            SEVERITY ERROR;        ASSERT (not(Is_X(RASNegIn)))            REPORT "Unusable value for RASNeg"            SEVERITY ERROR;        ASSERT (not(Is_X(CASNegIn)))            REPORT "Unusable value for CASNeg"            SEVERITY ERROR;        -- Command Decode        IF ((RASNegIn = '1') AND (CASNegIn = '1') AND (WENegIn = '1')) THEN            command := nop;        ELSIF ((RASNegIn = '0') AND (CASNegIn = '1') AND (WENegIn = '1')) THEN            command := act;        ELSIF ((RASNegIn = '1') AND (CASNegIn = '0') AND (WENegIn = '1')) THEN            command := read;        ELSIF ((RASNegIn = '1') AND (CASNegIn = '0') AND (WENegIn = '0')) THEN            command := writ;        ELSIF ((RASNegIn = '1') AND (CASNegIn = '1') AND (WENegIn = '0')) THEN            command := bst;        ELSIF ((RASNegIn = '0') AND (CASNegIn = '1') AND (WENegIn = '0')) THEN            command := pre;        ELSIF ((RASNegIn = '0') AND (CASNegIn = '0') AND (WENegIn = '1')) THEN

⌨️ 快捷键说明

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