📄 timing_p.vhdl
字号:
-- -- Returns -- none -- -- ------------------------------------------------------------------------ PROCEDURE VitalPeriodPulseCheck ( VARIABLE Violation : OUT X01; VARIABLE PeriodData : INOUT VitalPeriodDataType; SIGNAL TestSignal : IN std_ulogic; CONSTANT TestSignalName : IN STRING := ""; CONSTANT TestDelay : IN TIME := 0 ns; CONSTANT Period : IN TIME := 0 ns; CONSTANT PulseWidthHigh : IN TIME := 0 ns; CONSTANT PulseWidthLow : IN TIME := 0 ns; CONSTANT CheckEnabled : IN BOOLEAN := TRUE; CONSTANT HeaderMsg : IN STRING := " "; CONSTANT XOn : IN BOOLEAN := TRUE; CONSTANT MsgOn : IN BOOLEAN := TRUE; CONSTANT MsgSeverity : IN SEVERITY_LEVEL := WARNING ); -- ------------------------------------------------------------------------ -- -- Function Name: VitalInPhaseSkewCheck -- -- Description: The VitalInPhaseSkewCheck procedure detects an in-phase -- skew violation between input signals Signal1 and Signal2. -- This is a timer based skew check in which a -- violation is detected if Signal1 and Signal2 are in -- different logic states longer than the specified skew -- interval. -- -- The timing constraints are specified through parameters -- representing the skew values for the different states -- of Signal1 and Signal2. -- -- -- Signal2 XXXXXXXXXXXX___________________________XXXXXXXXXXXXXXXXXXXXXX -- : -- : -->| |<-- -- : Signal2 should go low in this region -- : -- -- ____________ -- Signal1 \_________________________________________________ -- : | | -- : |<-------- tskew -------->| -- -- Arguments: -- -- IN Type Description -- Signal1 std_ulogic Value of first signal -- Signal1Name STRING Name of first signal -- Signal1Delay TIME Model's internal delay associated -- with Signal1 -- Signal2 std_ulogic Value of second signal -- Signal2Name STRING Name of second signal -- Signal2Delay TIME Model's internal delay associated -- with Signal2 -- SkewS1S2RiseRise TIME Absolute maximum time duration for -- which Signal2 can remain at "0" -- after Signal1 goes to the "1" state, -- without causing a skew violation. -- SkewS2S1RiseRise TIME Absolute maximum time duration for -- which Signal1 can remain at "0" -- after Signal2 goes to the "1" state, -- without causing a skew violation. -- SkewS1S2FallFall TIME Absolute maximum time duration for -- which Signal2 can remain at "1" -- after Signal1 goes to the "0" state, -- without causing a skew violation. -- SkewS2S1FallFall TIME Absolute maximum time duration for -- which Signal1 can remain at "1" -- after Signal2 goes to the "0" state, -- without causing a skew violation. -- CheckEnabled BOOLEAN Check performed if TRUE. -- HeaderMsg STRING String that will accompany any -- assertion messages produced. -- XOn BOOLEAN If TRUE, Violation output parameter -- is set to "X". Otherwise, Violation -- is always set to "0." -- MsgOn BOOLEAN If TRUE, skew timing violation -- messages will be generated. -- Otherwise, no messages are generated, -- even upon violations. -- MsgSeverity SEVERITY_LEVEL Severity level for the assertion. -- -- INOUT -- SkewData VitalSkewDataType -- VitalInPhaseSkewCheck information -- storage area. This is used -- internally to detect signal edges -- and record the time of the last edge. -- -- -- Trigger std_ulogic This signal is used to trigger the -- process in which the timing check -- occurs upon expiry of the skew -- interval. -- -- OUT -- Violation X01 This is the violation flag returned. -- -- Returns -- none -- -- ------------------------------------------------------------------------- PROCEDURE VitalInPhaseSkewCheck ( VARIABLE Violation : OUT X01; VARIABLE SkewData : INOUT VitalSkewDataType; SIGNAL Signal1 : IN std_ulogic; CONSTANT Signal1Name : IN STRING := ""; CONSTANT Signal1Delay : IN TIME := 0 ns; SIGNAL Signal2 : IN std_ulogic; CONSTANT Signal2Name : IN STRING := ""; CONSTANT Signal2Delay : IN TIME := 0 ns; CONSTANT SkewS1S2RiseRise : IN TIME := TIME'HIGH; CONSTANT SkewS2S1RiseRise : IN TIME := TIME'HIGH; CONSTANT SkewS1S2FallFall : IN TIME := TIME'HIGH; CONSTANT SkewS2S1FallFall : IN TIME := TIME'HIGH; CONSTANT CheckEnabled : IN BOOLEAN := TRUE; CONSTANT XOn : IN BOOLEAN := TRUE; CONSTANT MsgOn : IN BOOLEAN := TRUE; CONSTANT MsgSeverity : IN SEVERITY_LEVEL := WARNING; CONSTANT HeaderMsg : IN STRING := ""; SIGNAL Trigger : INOUT std_ulogic ); -- ------------------------------------------------------------------------ -- -- Function Name: VitalOutPhaseSkewCheck -- -- Description: The VitalOutPhaseSkewCheck procedure detects an -- out-of-phase skew violation between input signals Signal1 -- and Signal2. This is a timer based skew check in -- which a violation is detected if Signal1 and Signal2 are -- in the same logic state longer than the specified skew -- interval. -- -- The timing constraints are specified through parameters -- representing the skew values for the different states -- of Signal1 and Signal2. -- -- -- Signal2 XXXXXXXXXXXX___________________________XXXXXXXXXXXXXXXXXXXXXX -- : -- : -->| |<-- -- : Signal2 should go high in this region -- : -- -- ____________ -- Signal1 \_________________________________________________ -- : | | -- : |<-------- tskew -------->| -- -- Arguments: -- -- IN Type Description -- Signal1 std_ulogic Value of first signal -- Signal1Name STRING Name of first signal -- Signal1Delay TIME Model's internal delay associated -- with Signal1 -- Signal2 std_ulogic Value of second signal -- Signal2Name STRING Name of second signal -- Signal2Delay TIME Model's internal delay associated -- with Signal2 -- SkewS1S2RiseFall TIME Absolute maximum time duration for -- which Signal2 can remain at "1" -- after Signal1 goes to the "1" state, -- without causing a skew violation. -- SkewS2S1RiseFall TIME Absolute maximum time duration for -- which Signal1 can remain at "1" -- after Signal2 goes to the "1" state, -- without causing a skew violation. -- SkewS1S2FallRise TIME Absolute maximum time duration for -- which Signal2 can remain at "0" -- after Signal1 goes to the "0" state, -- without causing a skew violation. -- SkewS2S1FallRise TIME Absolute maximum time duration for -- which Signal1 can remain at "0" -- after Signal2 goes to the "0" state, -- without causing a skew violation. -- CheckEnabled BOOLEAN Check performed if TRUE. -- HeaderMsg STRING String that will accompany any -- assertion messages produced. -- XOn BOOLEAN If TRUE, Violation output parameter -- is set to "X". Otherwise, Violation -- is always set to "0." -- MsgOn BOOLEAN If TRUE, skew timing violation -- messages will be generated. -- Otherwise, no messages are generated, -- even upon violations. -- MsgSeverity SEVERITY_LEVEL Severity level for the assertion. -- -- INOUT -- SkewData VitalSkewDataType -- VitalInPhaseSkewCheck information -- storage area. This is used -- internally to detect signal edges -- and record the time of the last edge. -- -- Trigger std_ulogic This signal is used to trigger the -- process in which the timing check -- occurs upon expiry of the skew -- interval. -- -- OUT -- Violation X01 This is the violation flag returned. -- -- Returns -- none -- -- ------------------------------------------------------------------------- PROCEDURE VitalOutPhaseSkewCheck ( VARIABLE Violation : OUT X01; VARIABLE SkewData : INOUT VitalSkewDataType; SIGNAL Signal1 : IN std_ulogic; CONSTANT Signal1Name : IN STRING := ""; CONSTANT Signal1Delay : IN TIME := 0 ns; SIGNAL Signal2 : IN std_ulogic; CONSTANT Signal2Name : IN STRING := ""; CONSTANT Signal2Delay : IN TIME := 0 ns; CONSTANT SkewS1S2RiseFall : IN TIME := TIME'HIGH; CONSTANT SkewS2S1RiseFall : IN TIME := TIME'HIGH; CONSTANT SkewS1S2FallRise : IN TIME := TIME'HIGH; CONSTANT SkewS2S1FallRise : IN TIME := TIME'HIGH; CONSTANT CheckEnabled : IN BOOLEAN := TRUE; CONSTANT XOn : IN BOOLEAN := TRUE; CONSTANT MsgOn : IN BOOLEAN := TRUE; CONSTANT MsgSeverity : IN SEVERITY_LEVEL := WARNING; CONSTANT HeaderMsg : IN STRING := ""; SIGNAL Trigger : INOUT std_ulogic );END VITAL_Timing;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -