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

📄 std8980.vhd

📁 TDS510USB2.0接口DSP仿真器.rar
💻 VHD
📖 第 1 页 / 共 4 页
字号:
                            IF tdooutcnt = tdoincnt - 1 OR (tdooutcnt = 3 AND                                      tdoincnt = 0) THEN                                IF MODE = "000" THEN                                    ASSERT false                                        REPORT "ASP should be run in" &                                             " gated-clock mode"                                        SEVERITY ERROR;                                ELSE                                    clkrun := false;                                END IF;                            ELSE                                IF tdooutcnt = 3 THEN                                    tdooutcnt := 0;                                ELSE                                    tdooutcnt := tdooutcnt + 1;                                END IF;                            END IF;                        ELSE                            tdobitcnt := tdobitcnt + 1;                        END IF;                    END IF;                WHEN ASP_in =>                    IF Count = 0 THEN                        TAP_state := prev_state;                        OP_done := true;                        TDI_on := false;                        TDOint := 'Z';                        command(3 downto 0) := "0000";                        RDYint := '1';                    ELSE                        Count := Count - 1;                    END IF;                WHEN ASP_out =>                    IF Count = 0 THEN                        TAP_state := prev_state;                        OP_done := true;                        TDI_on := false;                        TDOint := 'Z';                        command(3 downto 0) := "0000";                        RDYint := '1';                    ELSE                        Count := Count - 1;                        TDOint := TDO_fifo(tdooutcnt)(tdobitcnt);                        IF tdobitcnt = 7 THEN                            TDOS := '0';                            tdobitcnt := 0;                            IF tdooutcnt = tdoincnt - 1 OR (tdooutcnt = 3 AND                                      tdoincnt = 0) THEN                                IF MODE = "000" THEN                                    ASSERT false                                        REPORT "ASP should be run in" &                                             " gated-clock mode"                                        SEVERITY ERROR;                                ELSE                                    clkrun := false;                                END IF;                            ELSE                                IF tdooutcnt = 3 THEN                                    tdooutcnt := 0;                                ELSE                                    tdooutcnt := tdooutcnt + 1;                                END IF;                            END IF;                        ELSE                            tdobitcnt := tdobitcnt + 1;                        END IF;                    END IF;            END CASE;            OPCOD := to_nat(command(3 downto 0));            Count32 := to_slv(Count,32);            Counter_reg(3) := Count32(31 downto 24);            Counter_reg(2) := Count32(23 downto 16);            Counter_reg(1) := Count32(15 downto 8);            Counter_reg(0) := Count32(7 downto 0);            CTRS := '0';        END IF;        -- TDI Buffer        IF TDI_on AND rising_edge(TCKsig) THEN            TDI_fifo(tdiincnt)(tdibitcnt) := TDI_nwv;            DTDI := TDI_nwv;            RDYint := '1';            TDIS := '1';            IF tdibitcnt = 7 THEN                tdibitcnt := 0;                IF tdiincnt = 3 THEN                    tdiincnt := 0;                ELSE                    tdiincnt := tdiincnt + 1;                END IF;            ELSE                tdibitcnt := tdibitcnt + 1;            END IF;        END IF;        -- Tri-State and discrete control        IF TOE_nwv = '1' OR NTOE = '1' THEN            TDO_zd := 'Z';            TMS_zd := 'Z';            TRST_zd := 'Z';            TCK_zd := 'Z';        ELSIF MODE = "010" THEN            clkrun := false;            TRST_zd := NTRST AND TRSTint;            TCK_zd := TCKint;   --         TDI_nwv := DTDI;        ELSE            TRST_zd := TRSTint;            TCK_zd := TCKint;        END IF;        -- Discrete Control        IF falling_edge(TCKsig) THEN            IF MODE = "010" THEN                TMS_zd := DTMS;                TDO_zd := DTDO;            ELSE                TMS_zd := TMSint;                TDO_zd := TDOint;            END IF;        END IF;        RDY_zd := RDYint;        --------------------------------------------------------------------        -- Path Delay Section        --------------------------------------------------------------------        VitalPathDelay01 (            OutSignal       => RDY,            OutSignalName   => "RDY",            OutTemp         => RDY_zd,            GlitchData      => RDY_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_RDY,                  PathCondition     => TRUE)            )        );        VitalPathDelay01Z (            OutSignal       => TCKsig,            OutSignalName   => "TCK",            OutTemp         => TCK_zd,            GlitchData      => TCK_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => CLKIN'LAST_EVENT,                  PathDelay         => VitalExtendToFillDelay(tpd_CLKIN_TCK),                  PathCondition     => TRUE),            1 => (InputChangeTime   => TOENeg'LAST_EVENT,                  PathDelay         => tpd_TOENeg_TDO,                  PathCondition     => TRUE),            2 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_TDO,                  PathCondition     => (MODE /= "010")),            3 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_TMS,                  PathCondition     => (MODE = "010"))            )        );        VitalPathDelay01Z (            OutSignal       => TDO,            OutSignalName   => "TDO",            OutTemp         => TDO_zd,            GlitchData      => TDO_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => RSTNeg'LAST_EVENT,                  PathDelay         => VitalExtendToFillDelay(tpd_RSTNeg_TDO),                  PathCondition     => TOE_nwv = '0'),            1 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_TDO,                  PathCondition     => (MODE /= "010")),            2 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_TMS,                  PathCondition     => (MODE = "010")),            3 => (InputChangeTime   => TOENeg'LAST_EVENT,                  PathDelay         => tpd_TOENeg_TDO,                  PathCondition     => TRUE)            )        );        VitalPathDelay01Z (            OutSignal       => TMS,            OutSignalName   => "TMS",            OutTemp         => TMS_zd,            GlitchData      => TMS_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => RSTNeg'LAST_EVENT,                  PathDelay         => VitalExtendToFillDelay(tpd_RSTNeg_TDO),                  PathCondition     => TOE_nwv = '0'),            1 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_TDO,                  PathCondition     => (MODE /= "010")),            2 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_TMS,                  PathCondition     => (MODE = "010")),            3 => (InputChangeTime   => TOENeg'LAST_EVENT,                  PathDelay         => tpd_TOENeg_TDO,                  PathCondition     => TRUE)            )        );        VitalPathDelay01Z (            OutSignal       => TRSTNeg,            OutSignalName   => "TRSTNeg",            OutTemp         => TRST_zd,            GlitchData      => TRST_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => RSTNeg'LAST_EVENT,                  PathDelay         => VitalExtendToFillDelay(tpd_RSTNeg_TDO),                  PathCondition     => TOE_nwv = '0'),            1 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_TDO,                  PathCondition     => (MODE /= "010")),            2 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_TMS,                  PathCondition     => (MODE = "010")),            3 => (InputChangeTime   => TOENeg'LAST_EVENT,                  PathDelay         => tpd_TOENeg_TDO,                  PathCondition     => TRUE)            )        );        VitalPathDelay01Z (            OutSignal       => DataOut(0),            OutSignalName   => "D0",            OutTemp         => DOut_zd(0),            GlitchData      => D0_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_D0,                  PathCondition     => TRUE)            )        );        VitalPathDelay01Z (            OutSignal       => DataOut(1),            OutSignalName   => "D1",            OutTemp         => DOut_zd(1),            GlitchData      => D1_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_D0,                  PathCondition     => TRUE)            )        );        VitalPathDelay01Z (            OutSignal       => DataOut(2),            OutSignalName   => "D2",            OutTemp         => DOut_zd(2),            GlitchData      => D2_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_D0,                  PathCondition     => TRUE)            )        );        VitalPathDelay01Z (            OutSignal       => DataOut(3),            OutSignalName   => "D3",            OutTemp         => DOut_zd(3),            GlitchData      => D3_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_D0,                  PathCondition     => TRUE)            )        );        VitalPathDelay01Z (            OutSignal       => DataOut(4),            OutSignalName   => "D4",            OutTemp         => DOut_zd(4),            GlitchData      => D4_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_D0,                  PathCondition     => TRUE)            )        );        VitalPathDelay01Z (            OutSignal       => DataOut(5),            OutSignalName   => "D5",            OutTemp         => DOut_zd(5),            GlitchData      => D5_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_D0,                  PathCondition     => TRUE)            )        );        VitalPathDelay01Z (            OutSignal       => DataOut(6),            OutSignalName   => "D6",            OutTemp         => DOut_zd(6),            GlitchData      => D6_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_D0,                  PathCondition     => TRUE)            )        );        VitalPathDelay01Z (            OutSignal       => DataOut(7),            OutSignalName   => "D7",            OutTemp         => DOut_zd(7),            GlitchData      => D7_GlitchData,            XOn             => XOn,            MsgOn           => MsgOn,            Paths           => (            0 => (InputChangeTime   => STRBNeg'LAST_EVENT,                  PathDelay         => tpd_STRBNeg_D0,                  PathCondition     => TRUE)            )        );    END PROCESS Behaviour;    END BLOCK;END vhdl_behavioral;

⌨️ 快捷键说明

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