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

📄 idt723626.vhd

📁 VHDL的ram和fifo model code 包含众多的厂家
💻 VHD
📖 第 1 页 / 共 5 页
字号:
    A(20)   	=> A20,    A(21)   	=> A21,    A(22)   	=> A22,    A(23)   	=> A23,    A(24)   	=> A24,    A(25)   	=> A25,    A(26)   	=> A26,    A(27)   	=> A27,    A(28)   	=> A28,    A(29)   	=> A29,    A(30)   	=> A30,    A(31)   	=> A31,    A(32)   	=> A32,    A(33)   	=> A33,    A(34)   	=> A34,    A(35)    	=> A35,    AEANeg  	=> AEANeg,    AEBNeg   	=> AEBNeg,    AFANeg   	=> AFANeg,    AFCNeg   	=> AFCNeg,    B(0)       	=> B0,    B(1)       	=> B1,    B(2)       	=> B2,    B(3)       	=> B3,    B(4)       	=> B4,    B(5)       	=> B5,    B(6)       	=> B6,    B(7)       	=> B7,    B(8)       	=> B8,    B(9)       	=> B9,    B(10)      	=> B10,    B(11)      	=> B11,    B(12)      	=> B12,    B(13)      	=> B13,    B(14)      	=> B14,    B(15)      	=> B15,    B(16)      	=> B16,    B(17)      	=> B17,    BEFWFT   	=> BEFWFT_ipd,    C(0)   	=> C0_ipd,     C(1)   	=> C1_ipd,    C(2)   	=> C2_ipd,    C(3)   	=> C3_ipd,    C(4)   	=> C4_ipd,    C(5)   	=> C5_ipd,    C(6)   	=> C6_ipd,    C(7)   	=> C7_ipd,    C(8)   	=> C8_ipd,    C(9)   	=> C9_ipd,    C(10)  	=> C10_ipd,    C(11)  	=> C11_ipd,    C(12)  	=> C12_ipd,    C(13)  	=> C13_ipd,    C(14)  	=> C14_ipd,    C(15)  	=> C15_ipd,    C(16)  	=> C16_ipd,    C(17)  	=> C17_ipd,    CLKA        => CLKA_ipd,    CLKB        => CLKB_ipd,    CLKC        => CLKC_ipd,    CSANeg      => CSANeg_ipd,    CSBNeg      => CSBNeg_ipd,    EFAORA   	=> EFAORA,    EFBORB   	=> EFBORB,    ENA         => ENA_ipd,    FFAIRA   	=> FFAIRA,    FFCIRC   	=> FFCIRC,    FS0SD       => FS0SD_ipd,    FS1SEN      => FS1SEN_ipd,    MBA         => MBA_ipd,    MBB         => MBB_ipd,    MBC         => MBC_ipd,    MBF1Neg     => MBF1Neg,    MBF2Neg     => MBF2Neg,    MRS1Neg     => MRS1Neg_ipd,    MRS2Neg     => MRS2Neg_ipd,    PRS1Neg     => PRS1Neg_ipd,    PRS2Neg     => PRS2Neg_ipd,    RENB        => RENB_ipd,    SIZEB       => SIZEB_ipd,    SIZEC       => SIZEC_ipd,    SPMNeg      => SPMNeg_ipd,    WRA         => WRA_ipd,    WENC        => WENC_ipd);      -- zero delayed outputs and bidirectional ports   -- (func. sec. uses these signals instead of =  --  actual outputs and bidirectional ports);  -- actual outputs are assigned in Path Delay Section    SIGNAL A_zd         : std_logic_vector (35 downto 0);  SIGNAL B_zd         : std_logic_vector (17 downto 0);   SIGNAL AEANeg_zd    : std_logic;   SIGNAL AEBNeg_zd    : std_logic;    SIGNAL AFANeg_zd    : std_logic;    SIGNAL AFCNeg_zd    : std_logic;    SIGNAL EFAORA_zd    : std_logic;       SIGNAL EFBORB_zd    : std_logic;       SIGNAL FFAIRA_zd    : std_logic;       SIGNAL FFCIRC_zd    : std_logic;       SIGNAL MBF1Neg_zd   : std_logic;      SIGNAL MBF2Neg_zd   : std_logic;     ------------------------------------------------------------------------------  -- FIFO memory definitions  ------------------------------------------------------------------------------  -- general  CONSTANT FIFOWordLength  :  positive := 36;  SUBTYPE  FIFOWord    IS std_logic_vector(FIFOWordLength - 1 DOWNTO 0);  TYPE     FIFOArray   IS ARRAY (0 TO FIFOSize - 1) OF FIFOWord;    CONSTANT MailWordLength  :  positive := 18;  SUBTYPE  MailWord    IS std_logic_vector(MailWordLength - 1 DOWNTO 0);    CONSTANT Offs_Par_Number :  positive := 4; -- Number of Words while  					     -- Parallel Offset Loading  CONSTANT Offs_Ser_Number :  positive := OffsetSize*4; -- Number of Bits while  					     -- Serial Offset Loading    -- special  CONSTANT FIFOWordBytes   :  positive := 4;    ------------------------------------------------------------------------------  -- internal constants   ------------------------------------------------------------------------------       CONSTANT SIZByte : std_logic := '1';	     CONSTANT SIZWord : std_logic := '0';        ------------------------------------------------------------------------------  -- internal signals   ------------------------------------------------------------------------------   -- FIFO Arrays       SIGNAL FIFOMemory1int : FIFOArray := (FIFOArray'range =>                                        FIFOWord'(OTHERS => 'X'));     SIGNAL FIFOMemory2int : FIFOArray := (FIFOArray'range =>                                        FIFOWord'(OTHERS => 'X'));                                          -- Main Registers                                              -- Input Registers           SIGNAL InputReg1int   : FIFOWord := (OTHERS => 'X');     SIGNAL InputReg2int   : FIFOWord := (OTHERS => 'X');           -- Output Registers           SIGNAL OutputReg1int  : FIFOWord := (OTHERS => 'X');     SIGNAL OutputReg2int  : FIFOWord := (OTHERS => 'X');          -- FIFO Pointers          SIGNAL ReadPtr1int    : Natural RANGE 0 TO FIFOSize-1;     SIGNAL ReadPtr2int    : Natural RANGE 0 TO FIFOSize-1;     SIGNAL WritePtr1int   : Natural RANGE 0 TO FIFOSize-1;     SIGNAL WritePtr2int   : Natural RANGE 0 TO FIFOSize-1;          -- FIFO Offset for Almoust Empty/Full Flags          SIGNAL X1int, X2int,            Y1int, Y2int   : Natural RANGE 0 TO FIFOSize-1;          -- Mail Registers          SIGNAL Mail1int,            Mail2int       : MailWord := (OTHERS => 'X');                 -- Flags for Standart and FWFT mode          SIGNAL EFANegint, EFBNegint, FFANegint, FFCNegint,	-- standard mode      	    ORAint, ORBint				-- FWFT mode     	    : std_ulogic;         -- Flags Flip-flop first stage (each flag is synchonized      -- to its Port Clock through two flip-flop stages)          SIGNAL EFA1int, EFB1int, FFA1int, FFC1int,             AEA1int, AEB1int, AFA1int, AFC1int : std_ulogic;           ---------- Input Registers Controlling Signals ------------           -- Flags "Input Register is loaded" - in this      -- model they will be loaded to FIFOMemory on CLK negedge                 SIGNAL InputReg1Readyint   : std_ulogic;      SIGNAL InputReg2Readyint   : std_ulogic;      SIGNAL InputReg2ReadyNextint   : std_ulogic;           -- Pointer for Byte/Word Access for PortB     SIGNAL InputReg2Ptrint  : Natural RANGE 0 TO FIFOWordBytes-1;          ---------- Output Registers Controlling Signals ------------           SIGNAL OutputReg1Readyint : std_ulogic; -- all 4-bytes have been     				 	    -- read to Port-B      SIGNAL OutputReg1ReadyNextint : std_ulogic;                                            -- all 4-bytes will be      				 	    -- read to Port-B next CLKB     				 	    -- posedge     -- Pointers for Byte/Word Access for PortB/PortC             SIGNAL OutputReg1Ptrint : Natural RANGE 0 TO FIFOWordBytes-1;            -- Pointers for Byte/Word Access that will be latched on CLKB posedge       	     						          SIGNAL OutputReg1PtrNextint   : Natural RANGE 0 TO FIFOWordBytes - 1;              SIGNAL OutputReg2Readyint : std_ulogic; -- word have been read to Port-A          SIGNAL FWFTFirst : std_ulogic; -- first word though in FWFT mode          -------------------------------------------------------------------------       -- Master Reset 1,2 / Partial Reset 1,2          SIGNAL RST1int, RST2int: std_ulogic;                         -- MRS1Neg AND PRS1Neg; MRS2Neg AND PRS2Neg          -- Master Reset (MRS1Neg = '0' and MRS2Neg = '0') done          SIGNAL MRSDoneint: std_ulogic := '0';          -- "Simultaneous Master Reset"        SIGNAL  MRSint: std_ulogic;          -- Counters of Clocks during Master/Partion Reset is active or just after     -- Reset          SIGNAL CountCLKA1int, CountCLKA2int, CountCLKBint, CountCLKCint: Natural;          -- MRS1Neg, MRS2Neg states on CLKA posedge           SIGNAL MRS1CLKAint, MRS2CLKAint: std_ulogic;          -- Big Endian ('1') / Little Endian ('0') Mode          SIGNAL BEint: std_ulogic;          -- Internal Control Signals          SIGNAL EnWrFIFO1int, EnRdFIFO1int, EnWrFIFO2int, EnRdFIFO2int,     	    EnWrMail1int, EnRdMail1int, EnWrMail2int, EnRdMail2int: std_ulogic;      	         ----------------------------------------------------------------------------     -- ALmost-Empty/Almost-Full Offsets Loading Mode          SIGNAL Offs_Par_Load_Modeint : bit := '0'; -- Parallel Offsets Loading Mode     SIGNAL Offs_Ser_Load_Modeint : bit := '0'; -- Serial Offsets Loading Mode          -- Word/Bit Counter while Offset Loading          SIGNAL CountLoadOffsetint: Natural;           ----------------------------------------------------------------------------     -- Additional Signals          SIGNAL SIZBint, SIZCint: std_ulogic;    BEGIN -- VitalBehavior block     ---------------------------------------------------------------------------------- Timing Check Section                                                         --------------------------------------------------------------------------------     TimingChecks: PROCESS ( A_ipd, BEFWFT, C, CLKA, CLKB, CLKC, CSANeg, CSBNeg,       ENA, FS0SD, FS1SEN, MBA, MBB, MBC, MRS1Neg, MRS2Neg, PRS1Neg, PRS2Neg,       RENB, SIZEB, SIZEC, SPMNeg, WRA, WENC)    -- Timing Check Variables    -- Pulse Width Check Variables      VARIABLE Pviol_CLKA          : X01 := '0';      VARIABLE PD_CLKA             : VitalPeriodDataType := VitalPeriodDataInit;      VARIABLE Pviol_CLKB          : X01 := '0';      VARIABLE PD_CLKB             : VitalPeriodDataType := VitalPeriodDataInit;      VARIABLE Pviol_CLKC          : X01 := '0';      VARIABLE PD_CLKC             : VitalPeriodDataType := VitalPeriodDataInit;        -- Setup/Hold Check Variables      VARIABLE Tviol_A0_CLKA       : X01 := '0';      VARIABLE TD_A0_CLKA          : VitalTimingDataType;      VARIABLE TViol_C0_CLKC       : X01 := '0';      VARIABLE TD_C0_CLKC          : VitalTimingDataType;      VARIABLE Tviol_CSANeg_CLKA   : X01 := '0';      VARIABLE TD_CSANeg_CLKA      : VitalTimingDataType;      VARIABLE Tviol_WRA_CLKA      : X01 := '0';      VARIABLE TD_WRA_CLKA         : VitalTimingDataType;      VARIABLE Tviol_ENA_CLKA      : X01 := '0';      VARIABLE TD_ENA_CLKA         : VitalTimingDataType;      VARIABLE Tviol_MBA_CLKA      : X01 := '0';      VARIABLE TD_MBA_CLKA         : VitalTimingDataType;      VARIABLE Tviol_RENB_CLKB     : X01 := '0';      VARIABLE TD_RENB_CLKB        : VitalTimingDataType;      VARIABLE Tviol_MBB_CLKB      : X01 := '0';      VARIABLE TD_MBB_CLKB         : VitalTimingDataType;      VARIABLE Tviol_WENC_CLKC     : X01 := '0';      VARIABLE TD_WENC_CLKC        : VitalTimingDataType;          VARIABLE Tviol_MBC_CLKC      : X01 := '0';      VARIABLE TD_MBC_CLKC         : VitalTimingDataType;          VARIABLE Tviol_MRS1Neg_CLKA  : X01 := '0';      VARIABLE TD_MRS1Neg_CLKA     : VitalTimingDataType;      VARIABLE Tviol_MRS1Neg_CLKB  : X01 := '0';      VARIABLE TD_MRS1Neg_CLKB     : VitalTimingDataType;      VARIABLE Tviol_MRS2Neg_CLKA  : X01 := '0';      VARIABLE TD_MRS2Neg_CLKA     : VitalTimingDataType;      VARIABLE Tviol_MRS2Neg_CLKC  : X01 := '0';      VARIABLE TD_MRS2Neg_CLKC     : VitalTimingDataType;      VARIABLE Tviol_PRS1Neg_CLKA  : X01 := '0';      VARIABLE TD_PRS1Neg_CLKA     : VitalTimingDataType;      VARIABLE Tviol_PRS1Neg_CLKB  : X01 := '0';      VARIABLE TD_PRS1Neg_CLKB     : VitalTimingDataType;      VARIABLE Tviol_PRS2Neg_CLKA  : X01 := '0';      VARIABLE TD_PRS2Neg_CLKA     : VitalTimingDataType;      VARIABLE Tviol_PRS2Neg_CLKC  : X01 := '0';      VARIABLE TD_PRS2Neg_CLKC     : VitalTimingDataType;

⌨️ 快捷键说明

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