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

📄 idt72105.vhd

📁 VHDL的ram和fifo model code 包含众多的厂家
💻 VHD
📖 第 1 页 / 共 3 页
字号:
                    END IF;                ELSIF Count < Half THEN                    FFNeg_zd := '1';                    HFNeg_zd := '1';                    IF mode = single THEN                        RSOX_zd := '1';                    END IF;                ELSIF Count < Aeh THEN                    HFNeg_zd := '0';                    FFNeg_zd := '0';                    IF mode = single THEN                        RSOX_zd := '1';                    END IF;                ELSIF Count < TotalLOC THEN                    HFNeg_zd := '0';                    FFNeg_zd := '1';                    IF mode = single THEN                        RSOX_zd := '0';                    END IF;                ELSE                    FFNeg_zd := '0';                    HFNeg_zd := '0';                    IF mode = single THEN                        RSOX_zd := '0';                    ELSE                         RSOX_zd := '1';                                            END IF;                    wr_inhibit := true;                END IF;            END IF;    ELSIF rising_edge(WNeg) THEN        IF EFNeg_zd = '0' AND SOCPIn = '0' THEN            EF_pzd := '1';        END IF;            END IF;    -- Serial out --    IF rising_edge(SOCPIn) AND EFNeg_zd = '1' AND reset_done THEN         IF rd_stat = act THEN                        IF MemData(RDPoint) >= 0 THEN                DataDrive := to_slv(MemData(RDPoint), DataWidth);            ELSE                DataDrive := (OTHERS=>'X');            END IF;            IF FLNegIn='0' THEN                     DataDriveOut := DataDrive(BitPoint); -- DIR='1' LSB out first            ELSE                 -- DIR='0' MSB out first                DataDriveOut := DataDrive(HiDbit - BitPoint);            END IF;            IF BitPoint = HiDbit THEN                BitPoint := 0;                IF RDPoint = TotalLoc THEN                    RDPoint := 0;                ELSE                    RDPoint := RDPoint + 1;                END IF;                    Count := Count - 1;                IF Count = 0 THEN                     EFNeg_zd := '0';                     IF mode /= single THEN                         RSOX_zd := '1';                         rd_stat := inact;                      END IF;                END IF;            ELSE                BitPoint := BitPoint + 1;            END IF;            IF Count < Ael THEN               FFNeg_zd := '1';               HFNeg_zd := '1';               IF mode = single THEN                   RSOX_zd := '0';               END IF;            ELSIF Count < Half THEN               FFNeg_zd := '1';               HFNeg_zd := '1';               IF mode = single THEN                   RSOX_zd := '1';               END IF;            ELSIF Count < Aeh THEN               FFNeg_zd := '1';               HFNeg_zd := '0';               IF mode = single THEN                   RSOX_zd := '1';               END IF;            ELSIF Count < TotalLOC THEN               FFNeg_zd := '1';               HFNeg_zd := '0';               IF mode = single THEN                   RSOX_zd := '0';               END IF;            ELSE               FFNeg_zd := '0';               HFNeg_zd := '0';               IF mode = single THEN                  RSOX_zd := '0';               END IF;            END IF;            wr_inhibit := false;            IF FFNeg_zd = '0' AND WNegIn = '0' THEN                FF_pzd := '1';            END IF;                END IF;    END IF;    IF falling_edge(FLNegIn) THEN        IF RSIXIn = '1' THEN            RDPoint := 0;            Count := WRPoint;            IF Count = 0 THEN                EFNeg_zd := '0';            ELSIF Count < Ael THEN                FFNeg_zd := '1';                RSOX_zd := '0';                HFNeg_zd := '1';            ELSIF Count < Half THEN                FFNeg_zd := '1';                RSOX_zd := '0';                HFNeg_zd := '1';            ELSIF Count < Aeh THEN                FFNeg_zd := '1';                RSOX_zd := '0';                HFNeg_zd := '0';            ELSIF Count < TotalLOC THEN                FFNeg_zd := '1';                RSOX_zd := '0';                HFNeg_zd := '0';            ELSE                FFNeg_zd := '0';                RSOX_zd := '1';                HFNeg_zd := '0';            END IF;        END IF;    ELSIF rising_edge(RSIXIn) AND mode = other_exp THEN        IF wr_stat = inact THEN            wr_stat := act;        ELSE            rd_stat := act;        END IF;    END IF;    IF rising_edge(EF_pulse) THEN         EFNeg_zd := '0';         EF_pulse <= '0';    ELSIF rising_edge(FF_pulse) THEN         FFNeg_zd := '0';         FF_pulse <= '0';    END IF;    IF falling_edge(SOCPIn) THEN        DataDriveOut := 'Z';    END IF;    SO_zd <= DataDriveOut;    ----------------------------------------------------------------------------    -- Path Delay Section    ----------------------------------------------------------------------------    VitalPathDelay01 (        OutSignal       => EF_pulse,        OutSignalName   => "EF_pulse",        OutTemp         => EF_pzd,        GlitchData      => EFp_GlitchData,        XOn             => false,        MsgOn           => false,        Paths           => (        0 => (InputChangeTime   => WNeg'LAST_EVENT,              PathDelay         => tpd_WNeg_EFNeg,              PathCondition     => true)        )    );    VitalPathDelay01 (        OutSignal       => FF_pulse,        OutSignalName   => "FF_pulse",        OutTemp         => FF_pzd,        GlitchData      => FFp_GlitchData,        XOn             => false,        MsgOn           => false,        Paths           => (        0 => (InputChangeTime   => SOCP'LAST_EVENT,              PathDelay         => tpd_SOCP_FFNeg,              PathCondition     => true)        )    );      VitalPathDelay01 (        OutSignal       => FFNegOut,        OutSignalName   => "FFNeg",        OutTemp         => FFNeg_zd,        GlitchData      => FF_GlitchData,        XOn             => XOn,        MsgOn           => MsgOn,        Paths           => (            0 => (InputChangeTime   => SOCP'LAST_EVENT,                  PathDelay         => tpd_SOCP_FFNeg,                  PathCondition     => TRUE),            1 => (InputChangeTime   => WNeg'LAST_EVENT,                  PathDelay         => tpd_WNeg_FFNeg,                  PathCondition     => TRUE),            2 => (InputChangeTime   => FF_pulse'LAST_EVENT,                  PathDelay         => tpd_WNeg_EFNeg,                  PathCondition     => true)            )    );    VitalPathDelay01 (        OutSignal       => EFNegOut,        OutSignalName   => "EFNeg",        OutTemp         => EFNeg_zd,        GlitchData      => EF_GlitchData,        XOn             => XOn,        MsgOn           => MsgOn,        Paths           => (        0 => (InputChangeTime   => SOCP'LAST_EVENT,              PathDelay         => tpd_SOCP_EFNeg,              PathCondition     => (mode = single)),        1 => (InputChangeTime   => WNeg'LAST_EVENT,              PathDelay         => tpd_WNeg_EFNeg,              PathCondition     => (mode = single)),        2 => (InputChangeTime   => SOCP'LAST_EVENT,              PathDelay         => tpd_SOCP_EFNeg,              PathCondition     => (mode /= single)),        3 => (InputChangeTime   => WNeg'LAST_EVENT,              PathDelay         => tpd_WNeg_EFNeg,              PathCondition     => (mode /= single)),        4 => (InputChangeTime   => EF_pulse'LAST_EVENT,              PathDelay         => tpd_SOCP_EFNeg,              PathCondition     => true)        )    );    VitalPathDelay01 (        OutSignal       => HFNegOut,        OutSignalName   => "HFNeg",        OutTemp         => HFNeg_zd,        GlitchData      => HF_GlitchData,        XOn             => XOn,        MsgOn           => MsgOn,        Paths           => (        0 => (InputChangeTime   => SOCP'LAST_EVENT,              PathDelay         => tpd_SOCP_HFNeg,              PathCondition     => (mode = single)),        1 => (InputChangeTime   => WNeg'LAST_EVENT,              PathDelay         => tpd_WNeg_HFNeg,              PathCondition     => (mode = single)),        2 => (InputChangeTime   => SOCP'LAST_EVENT,              PathDelay         => tpd_SOCP_HFNeg,              PathCondition     => (mode /= single)),        3 => (InputChangeTime   => WNeg'LAST_EVENT,              PathDelay         => tpd_WNeg_HFNeg,              PathCondition     => (mode /= single))        )    );    VitalPathDelay01 (        OutSignal       => RSOXOut,        OutSignalName   => "RSOX",        OutTemp         => RSOX_zd,        GlitchData      => RSOX_GlitchData,        XOn             => XOn,        MsgOn           => MsgOn,        Paths           => (        0 => (InputChangeTime   => SOCP'LAST_EVENT,              PathDelay         => tpd_SOCP_RSOX,              PathCondition     => true),        1 => (InputChangeTime   => WNeg'LAST_EVENT,              PathDelay         => tpd_WNeg_RSOX,              PathCondition     => true)        )    );   VitalPathDelay01Z (       OutSignal       => SOout,       OutSignalName   => "SO",       OutTemp         => SO_zd,       Mode            => VitalTransport,       GlitchData      => SO_GlitchData,       Paths           => (       0 => (InputChangeTime => SOCPIn'LAST_EVENT,             PathDelay       => tpd_SOCP_SO,             PathCondition   => TRUE)       )   );       END PROCESS;    END BLOCK;END vhdl_behavioral;

⌨️ 快捷键说明

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