library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.VITAL_Timing.all; package VCOMPONENTS is constant DefaultTimingChecksOn : Boolean := True; constant DefaultXon : Boolean := True; constant DefaultMsgOn : Boolean := False; --------------------- entity declaration ---------------------- entity X_AND2 is generic( TimingChecksOn : Boolean := True; InstancePath : STRING := "*"; Xon: Boolean := True; MsgOn: Boolean := False; tpd_I1_O : VitalDelayType01 := (0.100 ns, 0.100 ns); tpd_I0_O : VitalDelayType01 := (0.100 ns, 0.100 ns); tipd_I1 : VitalDelayType01 := (0.000 ns, 0.000 ns); tipd_I0 : VitalDelayType01 := (0.000 ns, 0.000 ns)); port( O : out STD_ULOGIC; I1 : in STD_ULOGIC; I0 : in STD_ULOGIC); attribute VITAL_LEVEL0 of X_AND2 : entity is TRUE; end X_AND2; --------------------- architecture body ---------------------- library IEEE; use IEEE.VITAL_Primitives.all; library simprim; use simprim.VPACKAGE.all; architecture X_AND2_V of X_AND2 is attribute VITAL_LEVEL1 of X_AND2_V : architecture is TRUE; SIGNAL I1_ipd : STD_ULOGIC := 'X'; SIGNAL I0_ipd : STD_ULOGIC := 'X'; begin --------------------- -- INPUT PATH DELAYs --------------------- WireDelay : block begin VitalWireDelay (I1_ipd, I1, tipd_I1); VitalWireDelay (I0_ipd, I0, tipd_I0); end block; -------------------- -- BEHAVIOR SECTION -------------------- VITALBehavior : process (I1_ipd, I0_ipd) -- functionality results VARIABLE Results : STD_LOGIC_VECTOR(1 to 1) := (others => 'X'); ALIAS O_zd : STD_LOGIC is Results(1); -- output glitch detection variables VARIABLE O_GlitchData : VitalGlitchDataType; begin ------------------------- -- Functionality Section ------------------------- O_zd := (I0_ipd) AND (I1_ipd); ---------------------- -- Path Delay Section ---------------------- VitalPathDelay01 ( OutSignal => O, GlitchData => O_GlitchData, OutSignalName => "O", OutTemp => O_zd, Paths => (0 => (I1_ipd'last_event, tpd_I1_O, TRUE), 1 => (I0_ipd'last_event, tpd_I0_O, TRUE)), Mode => OnEvent, Xon => Xon, MsgOn => MsgOn, MsgSeverity => WARNING); end process; end X_AND2_V;