📄 vital_timing.vhdl
字号:
-- are kept as is. -- -- The function is overloaded based on input type. -- -- There is no function to fill a 12 value delay -- type. -- -- Arguments: -- -- IN Type Description -- Delay A one, two or six delay value Vital- -- DelayType is passed and a six delay, -- VitalDelayType01Z, item is returned. -- -- INOUT -- none -- -- OUT -- none -- -- Returns -- VitalDelayType01Z -- -- ------------------------------------------------------------------------- FUNCTION VitalExtendToFillDelay ( CONSTANT Delay : IN VitalDelayType ) RETURN VitalDelayType01Z; FUNCTION VitalExtendToFillDelay ( CONSTANT Delay : IN VitalDelayType01 ) RETURN VitalDelayType01Z; FUNCTION VitalExtendToFillDelay ( CONSTANT Delay : IN VitalDelayType01Z ) RETURN VitalDelayType01Z; -- ------------------------------------------------------------------------ -- -- Function Name: VitalCalcDelay -- -- Description: This function accepts a 1, 2 or 6 value delay and -- chooses the correct delay time to delay the NewVal -- signal. This function is overloaded based on the -- delay type passed. The function returns a single value -- of time. -- -- This function is provided for Level 0 models in order -- to calculate the delay which should be applied -- for the passed signal. The delay selection is performed -- using the OldVal and the NewVal to determine the -- transition to select. The default value of OldVal is X. -- -- This function cannot be used in a Level 1 model since -- the VitalPathDelay routines perform the delay path -- selection and output driving function. -- -- Arguments: -- -- IN Type Description -- NewVal New value of the signal to be -- assigned -- OldVal Previous value of the signal. -- Default value is 'X' -- Delay The delay structure from which to -- select the appropriate delay. The -- function overload is based on the -- type of delay passed. In the case of -- the single delay, VitalDelayType, no -- selection is performed, since there -- is only one value to choose from. -- For the other cases, the transition -- from the old value to the new value -- decide the value returned. -- -- INOUT -- none -- -- OUT -- none -- -- Returns -- Time The time value selected from the -- Delay INPUT is returned. -- -- ------------------------------------------------------------------------- FUNCTION VitalCalcDelay ( CONSTANT NewVal : IN std_ulogic := 'X'; CONSTANT OldVal : IN std_ulogic := 'X'; CONSTANT Delay : IN VitalDelayType ) RETURN TIME; FUNCTION VitalCalcDelay ( CONSTANT NewVal : IN std_ulogic := 'X'; CONSTANT OldVal : IN std_ulogic := 'X'; CONSTANT Delay : IN VitalDelayType01 ) RETURN TIME; FUNCTION VitalCalcDelay ( CONSTANT NewVal : IN std_ulogic := 'X'; CONSTANT OldVal : IN std_ulogic := 'X'; CONSTANT Delay : IN VitalDelayType01Z ) RETURN TIME; -- ------------------------------------------------------------------------ -- -- Function Name: VitalPathDelay -- -- Description: VitalPathDelay is the Level 1 routine used to select -- the propagation delay path and schedule a new output -- value. -- -- For single and dual delay values, VitalDelayType and -- VitalDelayType01 are used. The output value is -- scheduled with a calculated delay without strength -- modification. -- -- For the six delay value, VitalDelayType01Z, the output -- value is scheduled with a calculated delay. The drive -- strength can be modified to handle weak signal strengths -- to model tri-state devices, pull-ups and pull-downs as -- an example. -- -- The correspondence between the delay type and the -- path delay function is as follows: -- -- Delay Type Path Type -- -- VitalDelayType VitalPathDelay -- VitalDelayType01 VitalPathDelay01 -- VitalDelayType01Z VitalPathDelay01Z -- -- For each of these routines, the following capabilities -- is provided: -- -- o Transition dependent path delay selection -- o User controlled glitch detection with the ability -- to generate "X" on output and report the violation -- o Control of the severity level for message generation -- o Scheduling of the computed values on the specified -- signal. -- -- Selection of the appropriate path delay begins with the -- candidate paths. The candidate paths are selected by -- identifying the paths for which the PathCondition is -- true. If there is a single candidate path, then that -- delay is selected. If there is more than one candidate -- path, then the shortest delay is selected using -- transition dependent delay selection. If there is no -- candidate paths, then the delay specified by the -- DefaultDelay parameter to the path delay is used. -- -- Once the delay is known, the output signal is then -- scheduled with that delay. In the case of -- VitalPathDelay01Z, an additional result mapping of -- the output value is performed before scheduling. The -- result mapping is performed after transition dependent -- delay selection but before scheduling the final output. -- -- In order to perform glitch detection, the user is -- obligated to provide a variable of VitalGlitchDataType -- for the propagation delay functions to use. The user -- cannot modify or use this information. -- -- Arguments: -- -- IN Type Description -- OutSignalName string The name of the output signal -- OutTemp std_logic The new output value to be driven -- Paths VitalPathArrayType A list of paths of VitalPathArray -- VitalPathArrayType01 type. The VitalPathDelay routine -- VitalPathArrayType01Z is overloaded based on the type -- of constant passed in. With -- VitalPathArrayType01Z, the -- resulting output strengths can be -- mapped. -- DefaultDelay VitalDelayType The default delay can be changed -- VitalDelayType01 from zero-delay to another set of -- VitalDelayType01Z values. -- Mode VitalGlitchKindType The value of this constant -- selects the type of glitch -- detection. -- OnEvent Glitch on transition event -- | OnDetect Glitch immediate on detection -- | VitalInertial No glitch, use INERTIAL -- assignment -- | VitalTransport No glitch, use TRANSPORT -- assignment -- XOn BOOLEAN Control for generation of 'X' on -- glitch. When TRUE, 'X's are -- scheduled for glitches, otherwise -- no are generated. -- MsgOn BOOLEAN Control for message generation on -- glitch detect. When TRUE, -- glitches are reported, otherwise -- they are not reported. -- MsgSeverity SEVERITY_LEVEL The level at which the message, -- or assertion, will be reported. -- OutputMap VitalOutputMapType For VitalPathDelay01Z, the output -- can be mapped to alternate -- strengths to model tri-state -- devices, pull-ups and pull-downs. -- -- INOUT -- GlitchData VitalGlitchDataType The internal data storage -- variable required to detect -- glitches. -- -- OUT -- OutSignal std_logic The output signal to be driven -- -- Returns -- none -- -- ------------------------------------------------------------------------- PROCEDURE VitalPathDelay ( SIGNAL OutSignal : OUT std_logic; VARIABLE GlitchData : INOUT VitalGlitchDataType; CONSTANT OutSignalName : IN string; CONSTANT OutTemp : IN std_logic; CONSTANT Paths : IN VitalPathArrayType; CONSTANT DefaultDelay : IN VitalDelayType := VitalZeroDelay; CONSTANT Mode : IN VitalGlitchKindType := OnEvent; CONSTANT XOn : IN BOOLEAN := TRUE; CONSTANT MsgOn : IN BOOLEAN := TRUE; CONSTANT MsgSeverity : IN SEVERITY_LEVEL := WARNING
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -