📄 memory_p.vhdl
字号:
-- Delay - Vector-- Condition - ScalarPROCEDURE VitalMemoryAddPathDelay ( VARIABLE ScheduleData : INOUT VitalMemoryScheduleDataType; SIGNAL InputSignal : IN STD_LOGIC_VECTOR; CONSTANT OutputSignalName : IN STRING := ""; VARIABLE InputChangeTimeArray : INOUT VitalTimeArrayT; CONSTANT PathDelayArray : IN VitalDelayArrayType01ZX; CONSTANT ArcType : IN VitalMemoryArcType := CrossArc; CONSTANT PathCondition : IN BOOLEAN := TRUE; CONSTANT OutputRetainFlag : IN BOOLEAN := FALSE; CONSTANT OutputRetainBehavior : IN OutputRetainBehaviorType := BitCorrupt);-- #23-- DelayType - VitalDelayType01ZX-- Input - Vector-- Output - Vector-- Delay - Vector-- Condition - ScalarPROCEDURE VitalMemoryAddPathDelay ( VARIABLE ScheduleDataArray : INOUT VitalMemoryScheduleDataVectorType; SIGNAL InputSignal : IN STD_LOGIC_VECTOR; CONSTANT OutputSignalName : IN STRING := ""; VARIABLE InputChangeTimeArray : INOUT VitalTimeArrayT; CONSTANT PathDelayArray : IN VitalDelayArrayType01ZX; CONSTANT ArcType : IN VitalMemoryArcType := CrossArc; CONSTANT PathCondition : IN BOOLEAN := TRUE; CONSTANT OutputRetainFlag : IN BOOLEAN := FALSE; CONSTANT OutputRetainBehavior : IN OutputRetainBehaviorType := BitCorrupt);-- #24-- DelayType - VitalDelayType01ZX-- Input - Vector-- Output - Vector-- Delay - Vector-- Condition - VectorPROCEDURE VitalMemoryAddPathDelay ( VARIABLE ScheduleDataArray : INOUT VitalMemoryScheduleDataVectorType; SIGNAL InputSignal : IN STD_LOGIC_VECTOR; CONSTANT OutputSignalName : IN STRING := ""; VARIABLE InputChangeTimeArray : INOUT VitalTimeArrayT; CONSTANT PathDelayArray : IN VitalDelayArrayType01ZX; CONSTANT ArcType : IN VitalMemoryArcType := CrossArc; CONSTANT PathConditionArray : IN VitalBoolArrayT; CONSTANT OutputRetainFlag : IN BOOLEAN := FALSE; CONSTANT OutputRetainBehavior : IN OutputRetainBehaviorType := BitCorrupt);-- -------------------------------------------------------------------------------- Function : VitalMemorySchedulePathDelay---- Arguments:---- OUT Type Description-- OutSignal STD_LOGIC_VECTOR/ The output signal for -- STD_ULOGIC scheduling---- IN-- OutputSignalName STRING The name of the output signal---- IN-- PortFlag VitalPortFlagType Port flag variable from -- functional procedures---- IN-- OutputMap VitalOutputMapType For VitalPathDelay01Z, the -- output can be mapped to -- alternate strengths to model-- tri-state devices, pull-ups-- and pull-downs.---- INOUT-- ScheduleDataArray/ VitalMemoryScheduleDataVectorType/ -- ScheduleData VitalMemoryScheduleDataType -- Internal data variable for -- storing delay and schedule-- information for each -- output bit-- -- -------------------------------------------------------------------------------- ScheduleDataArray - Vector-- OutputSignal - Vector--PROCEDURE VitalMemorySchedulePathDelay ( SIGNAL OutSignal : OUT std_logic_vector; CONSTANT OutputSignalName : IN STRING := ""; CONSTANT PortFlag : IN VitalPortFlagType := VitalDefaultPortFlag; CONSTANT OutputMap : IN VitalOutputMapType := VitalDefaultOutputMap; VARIABLE ScheduleDataArray : INOUT VitalMemoryScheduleDataVectorType);---- ScheduleDataArray - Vector-- OutputSignal - Vector--PROCEDURE VitalMemorySchedulePathDelay ( SIGNAL OutSignal : OUT std_logic_vector; CONSTANT OutputSignalName : IN STRING := ""; CONSTANT PortFlag : IN VitalPortFlagVectorType; CONSTANT OutputMap : IN VitalOutputMapType := VitalDefaultOutputMap; VARIABLE ScheduleDataArray : INOUT VitalMemoryScheduleDataVectorType);---- ScheduleDataArray - Scalar-- OutputSignal - Scalar--PROCEDURE VitalMemorySchedulePathDelay ( SIGNAL OutSignal : OUT std_ulogic; CONSTANT OutputSignalName : IN STRING := ""; CONSTANT PortFlag : IN VitalPortFlagType := VitalDefaultPortFlag; CONSTANT OutputMap : IN VitalOutputMapType := VitalDefaultOutputMap; VARIABLE ScheduleData : INOUT VitalMemoryScheduleDataType);-- ----------------------------------------------------------------------------FUNCTION VitalMemoryTimingDataInit RETURN VitalMemoryTimingDataType;-- -------------------------------------------------------------------------------- Function Name: VitalMemorySetupHoldCheck---- Description: The VitalMemorySetupHoldCheck procedure detects a setup or a -- hold violation on the input test signal with respect-- to the corresponding input reference signal. The timing -- constraints are specified through parameters -- representing the high and low values for the setup and-- hold values for the setup and hold times. This -- procedure assumes non-negative values for setup and hold -- timing constraints. ---- It is assumed that negative timing constraints-- are handled by internally delaying the test or-- reference signals. Negative setup times result in-- a delayed reference signal. Negative hold times-- result in a delayed test signal. Furthermore, the-- delays and constraints associated with these and-- other signals may need to be appropriately-- adjusted so that all constraint intervals overlap-- the delayed reference signals and all constraint-- values (with respect to the delayed signals) are-- non-negative.---- This function is overloaded based on the input-- TestSignal and reference signals. Parallel, Subword and-- Cross Arc relationships between test and reference-- signals are supported.-- -- TestSignal XXXXXXXXXXXX____________________________XXXXXXXXXXXXXXXXXXXXXX-- :-- : -->| error region |<---- :-- _______________________________-- RefSignal \______________________________-- : | | |-- : | -->| |<-- thold-- : -->| tsetup |<------ Arguments: ---- IN Type Description -- TestSignal std_logic_vector Value of test signal-- TestSignalName STRING Name of test signal-- TestDelay VitalDelayArrayType Model's internal delay associated-- with TestSignal-- RefSignal std_ulogic Value of reference signal-- std_logic_vector-- RefSignalName STRING Name of reference signal-- RefDelay TIME Model's internal delay associated-- VitalDelayArrayType with RefSignal-- SetupHigh VitalDelayArrayType Absolute minimum time duration -- before the transition of RefSignal-- for which transitions of -- TestSignal are allowed to proceed-- to the "1" state without causing-- a setup violation. -- SetupLow VitalDelayArrayType Absolute minimum time duration -- before the transition of RefSignal-- for which transitions of -- TestSignal are allowed to proceed -- to the "0" state without causing-- a setup violation. -- HoldHigh VitalDelayArrayType Absolute minimum time duration -- after the transition of RefSignal-- for which transitions of -- TestSignal are allowed to-- proceed to the "1" state without-- causing a hold violation. -- HoldLow VitalDelayArrayType Absolute minimum time duration-- after the transition of RefSignal-- for which transitions of -- TestSignal are allowed to-- proceed to the "0" state without-- causing a hold violation. -- CheckEnabled BOOLEAN Check performed if TRUE.-- RefTransition VitalEdgeSymbolType-- Reference edge specified. Events -- on the RefSignal which match the-- edge spec. are used as reference -- edges. -- ArcType VitalMemoryArcType-- NumBitsPerSubWord INTEGER-- 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, set and hold violation -- message will be generated.-- Otherwise, no messages are-- generated, even upon violations. -- MsgSeverity SEVERITY_LEVEL Severity level for the assertion. -- MsgFormat VitalMemoryMsgFormatType-- Format of the Test/Reference -- signals in violation messages.-- -- INOUT-- TimingData VitalMemoryTimingDataType -- VitalMemorySetupHoldCheck information-- storage area. This is used-- internally to detect reference -- edges and record the time of the -- last edge.---- OUT-- Violation X01 This is the violation flag returned. -- X01ArrayT Overloaded for array type.------ ----------------------------------------------------------------------------PROCEDURE VitalMemorySetupHoldCheck ( VARIABLE Violation : OUT X01ArrayT; VARIABLE TimingData : INOUT VitalMemoryTimingDataType; SIGNAL TestSignal : IN std_ulogic; CONSTANT TestSignalName : IN STRING := ""; CONSTANT TestDelay : IN TIME := 0 ns; SIGNAL RefSignal : IN std_ulogic; CONSTANT RefSignalName : IN STRING := ""; CONSTANT RefDelay : IN TIME := 0 ns; CONSTANT SetupHigh : IN VitalDelayType; CONSTANT SetupLow : IN VitalDelayType; CONSTANT HoldHigh : IN VitalDelayType; CONSTANT HoldLow : IN VitalDelayType; CONSTANT CheckEnabled : IN VitalBoolArrayT; CONSTANT RefTransition : IN VitalEdgeSymbolType; CONSTANT HeaderMsg : IN STRING := " "; CONSTANT XOn : IN BOOLEAN := TRUE; CONSTANT MsgOn : IN BOOLEAN := TRUE; CONSTANT MsgSeverity : IN SEVERITY_LEVEL := WARNING; CONSTANT EnableSetupOnTest : IN BOOLEAN := TRUE; CONSTANT EnableSetupOnRef : IN BOOLEAN := TRUE; CONSTANT EnableHoldOnRef : IN BOOLEAN := TRUE; CONSTANT EnableHoldOnTest : IN BOOLEAN := TRUE ); PROCEDURE VitalMemorySetupHoldCheck ( VARIABLE Violation : OUT X01ArrayT; VARIABLE TimingData : INOUT VitalMemoryTimingDataType; SIGNAL TestSignal : IN std_logic_vector; CONSTANT TestSignalName : IN STRING := ""; CONSTANT TestDelay : IN VitalDelayArrayType; SIGNAL RefSignal : IN std_ulogic; CONSTANT RefSignalName : IN STRING := ""; CONSTANT RefDelay : IN TIME := 0 ns; CONSTANT SetupHigh : IN VitalDelayArrayType; CONSTANT SetupLow : IN VitalDelayArrayType; CONSTANT HoldHigh : IN VitalDelayArrayType; CONSTANT HoldLow : IN VitalDelayArrayType; CONSTANT CheckEnabled : IN BOOLEAN := TRUE; CONSTANT RefTransition : IN VitalEdgeSymbolType; CONSTANT HeaderMsg : IN STRING := " "; CONSTANT XOn : IN BOOLEAN := TRUE; CONSTANT MsgOn : IN BOOLEAN := TRUE; CONSTANT MsgSeverity : IN SEVERITY_LEVEL := WARNING; CONSTANT MsgFormat : IN VitalMemoryMsgFormatType; CONSTANT EnableSetupOnTest : IN BOOLEAN := TRUE; CONSTANT EnableSetupOnRef : IN BOOLEAN := TRUE; CONSTANT EnableHoldOnRef : IN BOOLEAN := TRUE; CONSTANT EnableHoldOnTest : IN BOOLEAN := TRUE ); PROCEDURE VitalMemorySetupHoldCheck ( VARIABLE Violation : OUT X01ArrayT; VARIABLE TimingData : INOUT VitalMemoryTimingDataType; SIGNAL TestSignal : IN std_logic_vector;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -