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

📄 k7a163600a.vhd

📁 vhdl cod for ram.For sp3e
💻 VHD
📖 第 1 页 / 共 5 页
字号:
                    HoldLow         => thold_WEANeg_CLK,                    CheckEnabled    => (ZZIn ='0'),                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_WEDN_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_WEDN_CLK );                VitalSetupHoldCheck (                    TestSignal      => WECNIn,                    TestSignalName  => "WEC",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_WEANeg_CLK,                    SetupLow        => tsetup_WEANeg_CLK,                    HoldHigh        => thold_WEANeg_CLK,                    HoldLow         => thold_WEANeg_CLK,                    CheckEnabled    => (ZZIn ='0'),                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_WECN_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_WECN_CLK );                VitalSetupHoldCheck (                    TestSignal      => WEBNIn,                    TestSignalName  => "WEB",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_WEANeg_CLK,                    SetupLow        => tsetup_WEANeg_CLK,                    HoldHigh        => thold_WEANeg_CLK,                    HoldLow         => thold_WEANeg_CLK,                    CheckEnabled    => (ZZIn ='0'),                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_WEBN_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_WEBN_CLK );                VitalSetupHoldCheck (                    TestSignal      => WEANIn,                    TestSignalName  => "WEA",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_WEANeg_CLK,                    SetupLow        => tsetup_WEANeg_CLK,                    HoldHigh        => thold_WEANeg_CLK,                    HoldLow         => thold_WEANeg_CLK,                    CheckEnabled    => (ZZIn ='0'),                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_WEAN_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_WEAN_CLK );                VitalSetupHoldCheck (                    TestSignal      => ADVNIn,                    TestSignalName  => "ADV",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_ADVNeg_CLK,                    SetupLow        => tsetup_ADVNeg_CLK,                    HoldHigh        => thold_ADVNeg_CLK,                    HoldLow         => thold_ADVNeg_CLK,                    CheckEnabled    => (ZZIn ='0'),                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_ADVNIn_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_ADVNIn_CLK );                VitalSetupHoldCheck (                    TestSignal      => ADSPNIn,                    TestSignalName  => "ADSP",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_ADSCNeg_CLK,                    SetupLow        => tsetup_ADSCNeg_CLK,                    HoldHigh        => thold_ADSCNeg_CLK,                    HoldLow         => thold_ADSCNeg_CLK,                    CheckEnabled    => (ZZIn ='0'),                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_ADSPNIn_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_ADSPNIn_CLK );                VitalSetupHoldCheck (                    TestSignal      => ADSCNIn,                    TestSignalName  => "ADSC",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_ADSCNeg_CLK,                    SetupLow        => tsetup_ADSCNeg_CLK,                    HoldHigh        => thold_ADSCNeg_CLK,                    HoldLow         => thold_ADSCNeg_CLK,                    CheckEnabled    => (ZZIn ='0'),                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_ADSCNIn_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_ADSCNIn_CLK );                VitalSetupHoldCheck (                    TestSignal      => CS1NegIn,                    TestSignalName  => "CS1Neg",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_CS2_CLK,                    SetupLow        => tsetup_CS2_CLK,                    HoldHigh        => thold_CS2_CLK,                    HoldLow         => thold_CS2_CLK,                    CheckEnabled    => (ZZIn ='0'),                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_CS1NegIn_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_CS1NegIn_CLK );                VitalSetupHoldCheck (                    TestSignal      => CS2NegIn,                    TestSignalName  => "CS2Neg",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_CS2_CLK,                    SetupLow        => tsetup_CS2_CLK,                    HoldHigh        => thold_CS2_CLK,                    HoldLow         => thold_CS2_CLK,                    CheckEnabled    => (ZZIn ='0'),                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_CS2NegIn_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_CS2NegIn_CLK );                VitalSetupHoldCheck (                    TestSignal      => CS2In,                    TestSignalName  => "CS2",                    RefSignal       => CLKIn,                    RefSignalName   => "CLK",                    SetupHigh       => tsetup_CS2_CLK,                    SetupLow        => tsetup_CS2_CLK,                    HoldHigh        => thold_CS2_CLK,                    HoldLow         => thold_CS2_CLK,                    CheckEnabled    => (ZZIn ='0'),                    RefTransition   => '/',                    HeaderMsg       => InstancePath & PartID,                    TimingData      => TD_CS2In_CLK,                    XOn             => XOn,                    MsgOn           => MsgOn,                    Violation       => Tviol_CS2In_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    =>  (ZZIn ='0') );                Violation := Pviol_CLK OR Tviol_DatAIn_CLK OR Tviol_DatBIn_CLK                             OR Tviol_DatCIn_CLK OR Tviol_DatDIn_CLK                             OR Tviol_AddressIn_CLK OR Tviol_ADSCNIn_CLK OR                             Tviol_CS2In_CLK OR Tviol_CS2NegIn_CLK OR                             Tviol_CS1NegIn_CLK OR Tviol_ADVNIn_CLK OR                             Tviol_ADSPNIn_CLK OR Tviol_WEAN_CLK OR                             Tviol_WEBN_CLK OR Tviol_WECN_CLK OR                             Tviol_WEDN_CLK OR Tviol_BWEN_CLK OR                             Tviol_GWN_CLK;                ASSERT Violation = '0'                    REPORT InstancePath & partID & ": simulation may be" &                           " inaccurate due to timing violations"                    SEVERITY SeverityMode;            END IF;    ----------------------------------------------------------------------------    -- Functional Section    ----------------------------------------------------------------------------    IF rising_edge(CLKIn) AND (ZZIn = '0') AND zz_reset AND PoweredUp THEN        ASSERT (not(Is_X(WEANIn)))            REPORT InstancePath & partID & ": Unusable value for WEAN"            SEVERITY SeverityMode;        ASSERT (not(Is_X(WEBNIn)))            REPORT InstancePath & partID & ": Unusable value for WEBN"            SEVERITY SeverityMode;        ASSERT (not(Is_X(WECNIn)))            REPORT InstancePath & partID & ": Unusable value for WECN"            SEVERITY SeverityMode;        ASSERT (not(Is_X(WEDNIn)))            REPORT InstancePath & partID & ": Unusable value for WEDN"            SEVERITY SeverityMode;        ASSERT (not(Is_X(GWNIn)))            REPORT InstancePath & partID & ": Unusable value for GWN"            SEVERITY SeverityMode;        ASSERT (not(Is_X(BWENIn)))            REPORT InstancePath & partID & ": Unusable value for BWEN"            SEVERITY SeverityMode;        ASSERT (not(Is_X(ADVNIn)))            REPORT InstancePath & partID & ": Unusable value for ADVN"            SEVERITY SeverityMode;        ASSERT (not(Is_X(ADSPNIn)))            REPORT InstancePath & partID & ": Unusable value for ADSPN"            SEVERITY SeverityMode;        ASSERT (not(Is_X(ADSCNIn)))            REPORT InstancePath & partID & ": Unusable value for ADSCN"            SEVERITY SeverityMode;        ASSERT (not(Is_X(CS2In)))            REPORT InstancePath & partID & ": Unusable value for CS2"            SEVERITY SeverityMode;        ASSERT (not(Is_X(CS1NegIn)))            REPORT InstancePath & partID & ": Unusable value for CS1Neg"            SEVERITY SeverityMode;        ASSERT (not(Is_X(CS2NegIn)))            REPORT InstancePath & partID & ": Unusable value for CS2Neg"            SEVERITY SeverityMode;        ASSERT (not(Is_X(LBONIn)))            REPORT InstancePath & partID & ": Unusable value for LBONeg"            SEVERITY SeverityMode;        -- Command Decode        IF (GWNIn = '1' AND (BWENIn = '1' OR (BWENIn = '0' AND WEANIn = '1'           AND WEBNIn = '1' AND WECNIn = '1' AND WEDNIn = '1'))) THEN            R := '1';        ELSE            R := '0';        END IF;        IF ((CS2NegIn = '1' AND CS1NegIn = '0') AND            (ADSPNIn = '0' OR ADSCNIn = '0')) OR            (CS1NegIn = '1' AND ADSCNIn = '0') OR            ((CS2In = '0' AND CS1NegIn = '0') AND            (ADSPNIn = '0' OR ADSCNIn = '0')) THEN            command := ds;        ELSIF ((CS2NegIn = '0' AND CS2In = '1' AND CS1NegIn = '0')            AND (ADSPNIn = '0' OR (ADSPNIn = '1' AND            ADSCNIn = '0' AND R = '1'))) THEN            command := begin_rw;        ELSIF (ADSCNIn = '1' AND (ADSPNIn = '1' OR CS1NegIn = '1')            AND R = '1') THEN            IF ADVNIn = '0' THEN                command := read_burst;            ELSE                command := read_susp;            END IF;        ELSIF (ADSCNIn = '1' AND (ADSPNIn = '1' OR CS1NegIn = '1')            AND R = '0') THEN            IF ADVNIn = '0' THEN                command := SPwr_burst;            ELSE                command := SPwr_susp;            END IF;        ELSIF (CS2NegIn = '0' AND CS2In = '1' AND CS1NegIn = '0' AND            ADSPNIn = '1' AND ADSCNIn = '0' AND R = '0') THEN            command := SCwr;        ELSE            ASSERT false                REPORT InstancePath & partID & ": Could not decode "

⌨️ 快捷键说明

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