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

📄 idt723614.vhd

📁 VHDL的ram和fifo model code 包含众多的厂家
💻 VHD
📖 第 1 页 / 共 5 页
字号:
          MsgOn           => MsgOn,          Violation       => Tviol_SIZ1_CLKB);                -- BENeg/CLKB setup/hold time check      VitalSetupHoldCheck (          TestSignal      => BENeg,          TestSignalName  => "BENeg",          RefSignal       => CLKB,          RefSignalName   => "CLKB",          SetupHigh       => tSZS,          SetupLow        => tSZS,          HoldHigh        => tSZH,          HoldLow         => tSZH,          CheckEnabled    => True,          RefTransition   => '/',          HeaderMsg       => InstancePath & partID,          TimingData      => TD_BENeg_CLKB,          XOn             => XOn,          MsgOn           => MsgOn,          Violation       => Tviol_BENeg_CLKB);                -- SW0/CLKB setup/hold time check      VitalSetupHoldCheck (          TestSignal      => SW0,          TestSignalName  => "SW0",          RefSignal       => CLKB,          RefSignalName   => "CLKB",          SetupHigh       => tSWS,          SetupLow        => tSWS,          HoldHigh        => tSWH,          HoldLow         => tSWH,          CheckEnabled    => True,          RefTransition   => '/',          HeaderMsg       => InstancePath & partID,          TimingData      => TD_SW0_CLKB,          XOn             => XOn,          MsgOn           => MsgOn,          Violation       => Tviol_SW0_CLKB);      -- SW1/CLKB setup/hold time check      VitalSetupHoldCheck (          TestSignal      => SW1,          TestSignalName  => "SW1",          RefSignal       => CLKB,          RefSignalName   => "CLKB",          SetupHigh       => tSWS,          SetupLow        => tSWS,          HoldHigh        => tSWH,          HoldLow         => tSWH,          CheckEnabled    => True,          RefTransition   => '/',          HeaderMsg       => InstancePath & partID,          TimingData      => TD_SW1_CLKB,          XOn             => XOn,          MsgOn           => MsgOn,          Violation       => Tviol_SW1_CLKB);      -- ODDEVEN/CLKA setup/hold time check      VitalSetupHoldCheck (          TestSignal      => ODDEVEN,          TestSignalName  => "ODDEVEN",          RefSignal       => CLKA,          RefSignalName   => "CLKA",          SetupHigh       => tPGS,          SetupLow        => tPGS,          HoldHigh        => tPGH,          HoldLow         => tPGH,          CheckEnabled    => True,          RefTransition   => '/',          HeaderMsg       => InstancePath & partID,          TimingData      => TD_ODDEVEN_CLKA,          XOn             => XOn,          MsgOn           => MsgOn,          Violation       => Tviol_ODDEVEN_CLKA);      -- PGA/CLKA setup/hold time check      VitalSetupHoldCheck (          TestSignal      => PGA,          TestSignalName  => "PGA",          RefSignal       => CLKA,          RefSignalName   => "CLKA",          SetupHigh       => tPGS,          SetupLow        => tPGS,          HoldHigh        => tPGH,          HoldLow         => tPGH,          CheckEnabled    => True,          RefTransition   => '/',          HeaderMsg       => InstancePath & partID,          TimingData      => TD_PGA_CLKA,          XOn             => XOn,          MsgOn           => MsgOn,          Violation       => Tviol_PGA_CLKA);      -- ODDEVEN/CLKB setup/hold time check      VitalSetupHoldCheck (          TestSignal      => ODDEVEN,          TestSignalName  => "ODDEVEN",          RefSignal       => CLKB,          RefSignalName   => "CLKB",          SetupHigh       => tPGS,          SetupLow        => tPGS,          HoldHigh        => tPGH,          HoldLow         => tPGH,          CheckEnabled    => True,          RefTransition   => '/',          HeaderMsg       => InstancePath & partID,          TimingData      => TD_ODDEVEN_CLKB,          XOn             => XOn,          MsgOn           => MsgOn,          Violation       => Tviol_ODDEVEN_CLKB);      -- PGB/CLKB setup/hold time check      VitalSetupHoldCheck (          TestSignal      => PGB,          TestSignalName  => "PGB",          RefSignal       => CLKB,          RefSignalName   => "CLKB",          SetupHigh       => tPGS,          SetupLow        => tPGS,          HoldHigh        => tPGH,          HoldLow         => tPGH,          CheckEnabled    => True,          RefTransition   => '/',          HeaderMsg       => InstancePath & partID,          TimingData      => TD_PGB_CLKB,          XOn             => XOn,          MsgOn           => MsgOn,          Violation       => Tviol_PGB_CLKB);      -- RSTNeg/CLKA setup/hold time check      VitalSetupHoldCheck (          TestSignal      => RSTNeg,          TestSignalName  => "RSTNeg",          RefSignal       => CLKA,          RefSignalName   => "CLKA",          SetupHigh       => tRSTS,          SetupLow        => tRSTS,          HoldHigh        => tRSTH,          HoldLow         => tRSTH,          CheckEnabled    => True,          RefTransition   => '/',          HeaderMsg       => InstancePath & partID,          TimingData      => TD_RSTNeg_CLKA,          XOn             => XOn,          MsgOn           => MsgOn,          Violation       => Tviol_RSTNeg_CLKA);      -- RSTNeg/CLKB setup/hold time check      VitalSetupHoldCheck (          TestSignal      => RSTNeg,          TestSignalName  => "RSTNeg",          RefSignal       => CLKB,          RefSignalName   => "CLKB",          SetupHigh       => tRSTS,          SetupLow        => tRSTS,          HoldHigh        => tRSTH,          HoldLow         => tRSTH,          CheckEnabled    => True,          RefTransition   => '/',          HeaderMsg       => InstancePath & partID,          TimingData      => TD_RSTNeg_CLKB,          XOn             => XOn,          MsgOn           => MsgOn,          Violation       => Tviol_RSTNeg_CLKB);      -- FS0/RSTNegNeg setup/hold time check      VitalSetupHoldCheck (          TestSignal      => FS0,          TestSignalName  => "FS0",          RefSignal       => RSTNeg,          RefSignalName   => "RSTNeg",          SetupHigh       => tFSS,          SetupLow        => tFSS,          HoldHigh        => tFSH,          HoldLow         => tFSH,          CheckEnabled    => True,          RefTransition   => '/',          HeaderMsg       => InstancePath & partID,          TimingData      => TD_FS0_RSTNeg,          XOn             => XOn,          MsgOn           => MsgOn,          Violation       => Tviol_FS0_RSTNeg);      -- FS1/RSTNegNeg setup/hold time check      VitalSetupHoldCheck (          TestSignal      => FS1,          TestSignalName  => "FS1",          RefSignal       => RSTNeg,          RefSignalName   => "RSTNeg",          SetupHigh       => tFSS,          SetupLow        => tFSS,          HoldHigh        => tFSH,          HoldLow         => tFSH,          CheckEnabled    => True,          RefTransition   => '/',          HeaderMsg       => InstancePath & partID,          TimingData      => TD_FS1_RSTNeg,          XOn             => XOn,          MsgOn           => MsgOn,          Violation       => Tviol_FS1_RSTNeg);  Violation := Pviol_CLKA          OR               Pviol_CLKB          OR               Tviol_A0_CLKA       OR               TViol_B0_CLKB       OR               Tviol_CSANeg_CLKA   OR               Tviol_WRA_CLKA      OR               Tviol_ENA_CLKA      OR               Tviol_MBA_CLKA      OR                     Tviol_ENB_CLKB      OR               Tviol_WRB_CLKB      OR               Tviol_CSBNeg_CLKB   OR               Tviol_SIZ0_CLKB     OR               Tviol_SIZ1_CLKB     OR               Tviol_BENeg_CLKB    OR               Tviol_SW0_CLKB      OR               Tviol_SW1_CLKB      OR               Tviol_ODDEVEN_CLKA  OR               Tviol_PGA_CLKA      OR               Tviol_ODDEVEN_CLKB  OR               Tviol_PGB_CLKB      OR               Tviol_RSTNeg_CLKA   OR               Tviol_RSTNeg_CLKB   OR               Tviol_FS0_RSTNeg    OR               Tviol_FS1_RSTNeg;                               ASSERT   Violation = '0'                REPORT   InstancePath & partID & " : signal values may be" &                         " incorret due timing violation(s)"                SEVERITY Warning;  END IF;  END PROCESS TimingChecks;---------------------------------------------------------------------------------- Functionality Section                                                      ----------------------------------------------------------------------------------  									  --------------------------------------------------------------------------------  -- Store Control Input Buses  --------------------------------------------------------------------------------  SWint <= (SW1, SW0);     MBBint <= '1' when (SIZ0, SIZ1) = SIZMail else '0';     Store_SIZB: PROCESS (CLKB)  BEGIN    IF CLKB'Event AND CLKB = '1' THEN     IF MBBint = '0' THEN       SIZBint <= (SIZ1, SIZ0);     END IF;     END IF;    END PROCESS;     Store_SIZBprev: PROCESS (CLKB)  BEGIN    IF CLKB'Event AND CLKB = '1' THEN      SIZBprevint <= SIZBint;    END IF;    END PROCESS;    Store_BENeg: PROCESS (CLKB)  BEGIN    IF CLKB'Event AND CLKB = '1' THEN     IF MBBint = '0' THEN       BEint <= NOT BENeg;     END IF;      END IF;    END PROCESS;     Story_Almost_Flags_Offs: PROCESS (RSTNeg)  VARIABLE Offs: Natural RANGE 0 TO FIFOSize-1;  VARIABLE FS: std_logic_vector(1 DOWNTO 0);  BEGIN    IF RSTNeg'Event AND (RSTNeg = '1') AND (RSTNeg'LAST_VALUE = '0') THEN      FS := (FS1 & FS0);      CASE  FS IS        WHEN "00"	=> Offs := 4;        WHEN "01" 	=> Offs := 8;        WHEN "10" 	=> Offs := 12;        WHEN "11" 	=> Offs := 16;        WHEN OTHERS 	=> NULL;      END CASE;      EmptyOffsRegint 	<= Offs;               FullOffsRegint 	<= FIFOSize - Offs;             END IF;    END PROCESS;      --------------------------------------------------------------------------------  -- Count Clocks during RSTNeg is active or passive  --------------------------------------------------------------------------------    Count_CLKA: PROCESS (CLKA, CLKB, CLKB, RSTNeg)  BEGIN    IF RSTNeg'Event THEN       IF (RSTNeg = '0') OR (RSTNeg'LAST_VALUE = '0') THEN            IF RSTNeg'LAST_VALUE = '0' THEN             IF (CountCLKAint < 4) OR (CountCLKBint < 4) OR (CountCLKBint < 4)                 THEN		ASSERT FALSE REPORT InstancePath & partID & 	    	  ": During RESET should be 4 posedges on CLKA, CLKB, CLKB"; 	     END IF; 	  	  END IF;		    	            CountCLKAint <= 0;          CountCLKBint <= 0;          CountCLKBint <= 0;       END IF;                   ELSE          IF CLKA'EVENT AND CLKA = '1' THEN          IF CountCLKAint < 4 THEN             	CountCLKAint <= CountCLKAint + 1;            END IF;          ELSIF CLKB'EVENT AND CLKB = '1' THEN          IF CountCLKBint < 4 THEN        	CountCLKBint <= CountCLKBint + 1;            END IF;          ELSIF CLKB'EVENT AND CLKB = '1' THEN          IF CountCLKBint < 4 THEN	        CountCLKBint <= CountCLKBint + 1;          END IF;          END IF;     

⌨️ 快捷键说明

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