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

📄 idt72v815.vhd

📁 VHDL的ram和fifo model code 包含众多的厂家
💻 VHD
📖 第 1 页 / 共 5 页
字号:
            IF Depth_Expanint='1' THEN                IF (Rd_RAM_Onint='1') and (Read_Pointerint= (RAMSize-1)) THEN                    Read_Enableint <= '0';                END IF;            END IF;        END IF;    END PROCESS;    Read_Enable_Delay:PROCESS (RSNeg, RCLK)    BEGIN        IF RSNeg = '0' THEN            Read_En_Delint <= '0' ;        ELSIF RCLK'event and RCLK='1' THEN            Read_En_Delint <= Read_Enableint ;        END IF;    END PROCESS;    -- WXONeg Output    ----------------------------------------------------------------------------    WXOHFNeg_zd <= not WXOint WHEN (Depth_Expanint='1') ELSE                   not HFint ;    WX0_Trigger1: PROCESS (RSNeg,WXO_Tg2int,WCLK)    BEGIN        IF (RSNeg='0') or (WXO_Tg2int='1') THEN            WXO_Tg1int <= '0';        ELSIF WCLK'event and WCLK='1' THEN                IF (Wr_RAM_Onint='1') and (Write_Pointerint=(RAMSize-1)) THEN                    WXO_Tg1int<= '1';                END IF;        END IF;    END PROCESS;    WX0_Trigger2: PROCESS (RSNeg, WCLK)    BEGIN        IF (RSNeg='0') THEN            WXO_Tg2int <= '0';        ELSIF WCLK'event and WCLK='0' THEN            WXO_Tg2int <= WXO_Tg1int;        END IF;    END PROCESS;    WXOint<= WXO_Tg1int and (not WXO_Tg2int);    -- RXONeg_zd Output    ----------------------------------------------------------------------------    RX0_Trigger1: PROCESS (RSNeg,RXO_Tg2int,RCLK)    BEGIN        IF (RSNeg='0') or (RXO_Tg2int='1') THEN            RXO_Tg1int <= '0';        ELSIF RCLK'event and RCLK='1' THEN                IF (Rd_RAM_Onint='1') and (Read_Pointerint=(RAMSize-1)) THEN                    RXO_Tg1int<= '1';                END IF;        END IF;    END PROCESS;    RX0_Trigger2: PROCESS (RSNeg, RCLK)    BEGIN        IF (RSNeg='0') THEN            RXO_Tg2int <= '0';        ELSIF RCLK'event and RCLK='0' THEN            RXO_Tg2int <= RXO_Tg1int;        END IF;    END PROCESS;    RXONeg_zd <= not (RXO_Tg1int and (not RXO_Tg2int)) ;    ----------------------------------------------------------------------------    --  Output Logic                                                          --    ----------------------------------------------------------------------------    Zerosint <=(others =>'0');        Data_Outint <= RAM(Read_Pointerint)             WHEN (LDNeg='1') and (Emptyint='0') ELSE        Zerosint&PAE_Offset_Regint            WHEN (FWFTint='0') and (LDNeg='0') and (Rd_Offset_Pntint='0') ELSE        Zerosint&PAF_Offset_Regint            WHEN (FWFTint='0') and (LDNeg='0') and (Rd_Offset_Pntint='1') ELSE        Output_Regint;    Fst_Wrdint <='1' WHEN ((FWFTint='1') and (EmpDint='1') and                            (Emptyint ='0')) ELSE '0'; 	    Output_Register: PROCESS (RSNeg, RCLK)    BEGIN        IF RSNeg = '0' THEN            Output_Regint <= (others =>'0') ;        ELSIF RCLK'event and RCLK='1' THEN		IF (Fst_Wrdint ='1') THEN		    Output_Regint <= RAM(Read_Pointerint);		ELSE                    IF (RENNeg='0') and (Read_Enableint='1') THEN                        Output_Regint <= Data_Outint;                    END IF;		END IF;        END IF;    END PROCESS;    Q_zd <= Output_Regint WHEN (OENeg='0') and (Read_En_Delint='1') ELSE             (others => 'Z') ;    ----------------------------------------------------------------------------    -- Path Delay Section                                                     --    ----------------------------------------------------------------------------    -- Path delay for EFORNeg ;    PathDelay_EFORNeg: PROCESS (EFORNeg_zd)        VARIABLE EFORNeg_GlitchData: VitalGlitchDataType;    BEGIN        VitalPathDelay01(            OutSignal    => EFORNeg,            OutSignalName=> "EFORNeg",            OutTemp      => EFORNeg_zd,            GlitchData   => EFORNeg_GlitchData,            Paths        =>                (                   0 => (InputChangeTime => RSNeg'LAST_EVENT,--                        PathDelay       => tpd_RSNeg_EFORNeg,--tRSF                        PathCondition   => TRUE                       ),                  1 => (InputChangeTime => RCLK'LAST_EVENT,--                        PathDelay       => tpd_RCLK_EFORNeg,--tREF                        PathCondition   => TRUE                       )                )        );    END PROCESS;    -- Path delay for PAENeg ;    PathDelay_PAENeg: PROCESS (PAENeg_zd)        VARIABLE PAENeg_GlitchData: VitalGlitchDataType;    BEGIN	IF Syncint='0' THEN -- (asynchronous)            VitalPathDelay01(            OutSignal    => PAENeg,            OutSignalName=> "PAENeg",            OutTemp      => PAENeg_zd,            GlitchData   => PAENeg_GlitchData,            Paths        =>                (                   0 => (InputChangeTime => RSNeg'LAST_EVENT,--                        PathDelay       => tpd_RSNeg_EFORNeg,--tRSF                        PathCondition   => TRUE                       ),                  1 => (InputChangeTime => RCLK'LAST_EVENT,--                        PathDelay       => tpd_WCLK_PAENeg,--tPAEA                        PathCondition   => (RENNeg='0')                       ),                  2 => (InputChangeTime => WCLK'LAST_EVENT,--                        PathDelay       => tpd_WCLK_PAENeg,--tPAEA                        PathCondition   => (WENNeg='0')                       )                )            );	ELSE -- (synchronous)            VitalPathDelay01(            OutSignal    => PAENeg,            OutSignalName=> "PAENeg",            OutTemp      => PAENeg_zd,            GlitchData   => PAENeg_GlitchData,            Paths        =>                (                   0 => (InputChangeTime => RSNeg'LAST_EVENT,--                        PathDelay       => tpd_RSNeg_EFORNeg,--tRSF                        PathCondition   => TRUE                       ),                  1 => (InputChangeTime => RCLK'LAST_EVENT,--                        PathDelay       => tpd_RCLK_PAENeg,--tPAES                        PathCondition   => TRUE                       )                )            );	END IF;--    END PROCESS;    -- Path delay for PAFNeg ;    PathDelay_PAFNeg: PROCESS (PAFNeg_zd)        VARIABLE PAFNeg_GlitchData: VitalGlitchDataType;    BEGIN	IF Syncint='0' THEN -- (asynchronous)             VitalPathDelay01(            OutSignal    => PAFNeg,            OutSignalName=> "PAFNeg",            OutTemp      => PAFNeg_zd,            GlitchData   => PAFNeg_GlitchData,            Paths        =>                (                  0 => (InputChangeTime => RSNeg'LAST_EVENT,--                        PathDelay       => tpd_RSNeg_EFORNeg,--tRSF                        PathCondition   => TRUE                       ),                  1 => (InputChangeTime => RCLK'LAST_EVENT,--                        PathDelay       => tpd_RCLK_PAFNeg,--tPAFA                        PathCondition   => (RENNeg='0')                       ),                  2 => (InputChangeTime => WCLK'LAST_EVENT,--                        PathDelay       => tpd_RCLK_PAFNeg,--tPAFA                        PathCondition   => (WENNeg='0')                       )                )            );	ELSE -- (synchronous)            VitalPathDelay01(            OutSignal    => PAFNeg,            OutSignalName=> "PAFNeg",            OutTemp      => PAFNeg_zd,            GlitchData   => PAFNeg_GlitchData,            Paths        =>                (                  0 => (InputChangeTime => RSNeg'LAST_EVENT,--                        PathDelay       => tpd_RSNeg_EFORNeg,--tRSF                        PathCondition   => TRUE                       ),                  1 => (InputChangeTime => WCLK'LAST_EVENT,--                        PathDelay       => tpd_WCLK_PAFNeg,--tPAFS                        PathCondition   => TRUE                       )                )            );	END IF;--    END PROCESS;    -- Path delay for FFIRNeg  ;    PathDelay_FFIRNeg: PROCESS (FFIRNeg_zd)        VARIABLE FFIRNeg_GlitchData: VitalGlitchDataType;    BEGIN        VitalPathDelay01(            OutSignal    => FFIRNeg,            OutSignalName=> "FFIRNeg",            OutTemp      => FFIRNeg_zd,            GlitchData   => FFIRNeg_GlitchData,            Paths        =>                (                  0 => (InputChangeTime => RSNeg'LAST_EVENT,--                        PathDelay       => tpd_RSNeg_EFORNeg,--tRSF                        PathCondition   => TRUE                       ),                  1 => (InputChangeTime => WCLK'LAST_EVENT,--                        PathDelay       => tpd_WCLK_FFIRNeg,--tWFF                        PathCondition   => TRUE                       )                )        );    END PROCESS;    -- Path delay for WXOHFNeg ;    PathDelay_WXOHFNeg: PROCESS (WXOHFNeg_zd)        VARIABLE WXOHFNeg_GlitchData: VitalGlitchDataType;    BEGIN        VitalPathDelay01(            OutSignal    => WXOHFNeg,            OutSignalName=> "WXOHFNeg",            OutTemp      => WXOHFNeg_zd,    	    Mode 	 => VitalTransport,            GlitchData   => WXOHFNeg_GlitchData,            Paths        =>   -- HF                (                  0 => (InputChangeTime => RSNeg'LAST_EVENT,--                        PathDelay       => tpd_RSNeg_EFORNeg,--tRSF                        PathCondition   => TRUE                       ),                  1 => (InputChangeTime => RCLK'LAST_EVENT,--                        PathDelay       => tpd_RCLK_WXOHFNeg,--tHF                        PathCondition   => (Depth_Expanint ='0')                                            and (RENNeg='0')                       ),                  2 => (InputChangeTime => WCLK'LAST_EVENT,--                        PathDelay       => tpd_RCLK_WXOHFNeg,--tHF                        PathCondition   => (Depth_Expanint ='0')                                           and (WENNeg='0')                       ),                                -- WXO                  3 => (InputChangeTime => WCLK'LAST_EVENT,--                        PathDelay       => tpd_RCLK_RXONeg,--tXO                        PathCondition   => (Depth_Expanint ='1')                       )                )        );    END PROCESS;    -- Path delay for RXONeg ;    PathDelay_RXONeg: PROCESS (RXONeg_zd)        VARIABLE RXONeg_GlitchData: VitalGlitchDataType;    BEGIN        VitalPathDelay01(            OutSignal    => RXONeg,            OutSignalName=> "RXONeg",            OutTemp      => RXONeg_zd,    	    Mode 	 => VitalTransport,            GlitchData   => RXONeg_GlitchData,            Paths        =>                (                   0 => (InputChangeTime => RSNeg'LAST_EVENT,--                        PathDelay       => tpd_RSNeg_EFORNeg,--tRSF                        PathCondition   => TRUE                       ),                  1 => (InputChangeTime => RCLK'LAST_EVENT,--                        PathDelay       => tpd_RCLK_RXONeg,--tXO                        PathCondition   => TRUE                       )                )        );    END PROCESS;    -- Path delay for Q      ;    PathDelay_Q_Gen: FOR i IN RAMWordLength-1 DOWNTO 0 GENERATE        PathDelay_Q: PROCESS (Q_zd(i))            VARIABLE Q_GlitchData: VitalGlitchDataType;        BEGIN            VitalPathDelay01Z(                OutSignal    => Q(i),                OutSignalName=> "Q",                OutTemp      => Q_zd(i),                GlitchData   => Q_GlitchData,                Paths        =>                    (                      0 => (InputChangeTime => OENeg'LAST_EVENT,--                            PathDelay       => tpd_OENeg_Q0,-- tOLZ/tOE/tOHZ                            PathCondition  => TRUE                           ),                      1 => (InputChangeTime => RSNeg'LAST_EVENT,--                            PathDelay       => tpd_RSNeg_Q0,--tRSF                            PathCondition  => TRUE                           ),                      2 => (InputChangeTime => RCLK'LAST_EVENT,--                            PathDelay       => tpd_RCLK_Q0,--tA                            PathCondition  => (RENNeg='0')                           )                    ),                MsgOn   => False            );        END PROCESS;    END GENERATE;END BLOCK VITALBehavior;END vhdl_behavioral;

⌨️ 快捷键说明

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