📄 memory_p.vhdl
字号:
-- TYPE VitalPortFlagType IS (-- UNDEF,-- READ,-- WRITE,-- CORRUPT,-- HIGHZ,-- NOCHANGE-- );-- VitalPortFlagType records runtime mode of port sub-word slicesTYPE VitalPortStateType IS ( UNDEF, READ, WRITE, CORRUPT, HIGHZ);TYPE VitalPortFlagType IS RECORD MemoryCurrent : VitalPortStateType; MemoryPrevious : VitalPortStateType; DataCurrent : VitalPortStateType; DataPrevious : VitalPortStateType; OutputDisable : BOOLEAN;END RECORD;CONSTANT VitalDefaultPortFlag : VitalPortFlagType := ( MemoryCurrent => READ, MemoryPrevious => UNDEF, DataCurrent => READ, DataPrevious => UNDEF, OutputDisable => FALSE);-- VitalPortFlagVectorType to be same width i as enables of a port-- or j multiples thereof, where j is the number of cross portsTYPE VitalPortFlagVectorType IS ARRAY (NATURAL RANGE <>) OF VitalPortFlagType;-- ------------------------------------------------------------------------------ Functions : VitalMemory path delay procedures -- - VitalMemoryInitPathDelay-- - VitalMemoryAddPathDelay-- - VitalMemorySchedulePathDelay---- Description: VitalMemoryInitPathDelay, VitalMemoryAddPathDelay and-- VitalMemorySchedulePathDelay are Level 1 routines used -- for selecting the propagation delay paths based on-- path condition, transition type and delay values and-- schedule a new output value.---- Following features are implemented in these procedures:-- o condition dependent path selection-- o Transition dependent delay selection-- o shortest delay path selection from multiple -- candidate paths-- o Scheduling of the computed values on the specified -- signal.-- o output retain behavior if outputRetain flag is set-- o output mapping to alternate strengths to model -- pull-up, pull-down etc. -- -- <More details to be added here>---- Following is information on overloading of the procedures.---- VitalMemoryInitPathDelay is overloaded for ScheduleDataArray and -- OutputDataArray---- ------------------------------------------------------------------------------ ScheduleDataArray OutputDataArray-- ------------------------------------------------------------------------------ Scalar Scalar-- Vector Vector-- ------------------------------------------------------------------------------ ---- VitalMemoryAddPathDelay is overloaded for ScheduleDataArray,-- PathDelayArray, InputSignal and delaytype.---- ------------------------------------------------------------------------------ DelayType InputSignal ScheduleData PathDelay-- Array Array-- ------------------------------------------------------------------------------ VitalDelayType Scalar Scalar Scalar-- VitalDelayType Scalar Vector Vector-- VitalDelayType Vector Scalar Vector -- VitalDelayType Vector Vector Vector-- VitalDelayType01 Scalar Scalar Scalar-- VitalDelayType01 Scalar Vector Vector-- VitalDelayType01 Vector Scalar Vector-- VitalDelayType01 Vector Vector Vector-- VitalDelayType01Z Scalar Scalar Scalar-- VitalDelayType01Z Scalar Vector Vector-- VitalDelayType01Z Vector Scalar Vector-- VitalDelayType01Z Vector Vector Vector-- VitalDelayType01XZ Scalar Scalar Scalar-- VitalDelayType01XZ Scalar Vector Vector-- VitalDelayType01XZ Vector Scalar Vector-- VitalDelayType01XZ Vector Vector Vector-- ------------------------------------------------------------------------------ ---- VitalMemorySchedulePathDelay is overloaded for ScheduleDataArray,-- and OutSignal---- ------------------------------------------------------------------------------ OutSignal ScheduleDataArray -- ------------------------------------------------------------------------------ Scalar Scalar-- Vector Vector-- -------------------------------------------------------------------------------- Procedure Declarations:------ Function : VitalMemoryInitPathDelay---- Arguments:---- INOUT Type Description---- ScheduleDataArray/ VitalMemoryScheduleDataVectorType/ -- ScheduleData VitalMemoryScheduleDataType -- Internal data variable for -- storing delay and schedule-- information for each output bit-- ---- IN---- OutputDataArray/ STD_LOGIC_VECTOR/Array containing current output-- OutputData STD_ULOGIC value------ NumBitsPerSubWord INTEGER Number of bits per subword.-- Default value of this argument-- is DefaultNumBitsPerSubword -- which is interpreted as no -- subwords---- -------------------------------------------------------------------------------- -- ScheduleDataArray - Vector-- OutputDataArray - Vector--PROCEDURE VitalMemoryInitPathDelay ( VARIABLE ScheduleDataArray : INOUT VitalMemoryScheduleDataVectorType; VARIABLE OutputDataArray : IN STD_LOGIC_VECTOR; CONSTANT NumBitsPerSubWord : IN INTEGER := DefaultNumBitsPerSubword);-- -- ScheduleDataArray - Scalar-- OutputDataArray - Scalar--PROCEDURE VitalMemoryInitPathDelay ( VARIABLE ScheduleData : INOUT VitalMemoryScheduleDataType; VARIABLE OutputData : IN STD_ULOGIC);-- -------------------------------------------------------------------------------- Function : VitalMemoryAddPathDelay---- Arguments---- INOUT Type Description---- ScheduleDataArray/ VitalMemoryScheduleDataVectorType/ -- ScheduleData VitalMemoryScheduleDataType -- Internal data variable for -- storing delay and schedule-- information for each output bit---- InputChangeTimeArray/ VitaltimeArrayT/Time -- InputChangeTime Holds the time since the last -- input change---- IN---- InputSignal STD_LOGIC_VECTOR-- STD_ULOGIC/ Array holding the input value---- OutputSignalName STRING The output signal name---- PathDelayArray/ VitalDelayArrayType01ZX, -- PathDelay VitalDelayArrayType01Z,-- VitalDelayArrayType01, -- VitalDelayArrayType/-- VitalDelayType01ZX,-- VitalDelayType01Z,-- VitalDelayType01,-- VitalDelayType Array of delay values-- -- ArcType VitalMemoryArcType -- Indicates the Path type. This-- can be SubwordArc, CrossArc or-- ParallelArc---- PathCondition BOOLEAN If True, the transition in-- the corresponding input signal-- is considered while -- caluculating the prop. delay-- else the transition is ignored.---- OutputRetainFlag BOOLEAN If specified TRUE,output retain-- (hold) behavior is implemented.---- -------------------------------------------------------------------------------- #1-- DelayType - VitalDelayType-- Input - Scalar -- Output - Scalar -- Delay - Scalar-- Condition - ScalarPROCEDURE VitalMemoryAddPathDelay ( VARIABLE ScheduleData : INOUT VitalMemoryScheduleDataType; SIGNAL InputSignal : IN STD_ULOGIC; CONSTANT OutputSignalName : IN STRING := ""; VARIABLE InputChangeTime : INOUT Time; CONSTANT PathDelay : IN VitalDelayType; CONSTANT ArcType : IN VitalMemoryArcType := CrossArc; CONSTANT PathCondition : IN BOOLEAN := TRUE);-- #2-- DelayType - VitalDelayType-- Input - Scalar -- Output - Vector -- Delay - Vector -- Condition - ScalarPROCEDURE VitalMemoryAddPathDelay ( VARIABLE ScheduleDataArray : INOUT VitalMemoryScheduleDataVectorType; SIGNAL InputSignal : IN STD_ULOGIC; CONSTANT OutputSignalName : IN STRING := ""; VARIABLE InputChangeTime : INOUT Time; CONSTANT PathDelayArray : IN VitalDelayArrayType; CONSTANT ArcType : IN VitalMemoryArcType := CrossArc; CONSTANT PathCondition : IN BOOLEAN := TRUE);-- #3-- DelayType - VitalDelayType-- Input - Scalar -- Output - Vector -- Delay - Vector -- Condition - VectorPROCEDURE VitalMemoryAddPathDelay ( VARIABLE ScheduleDataArray : INOUT VitalMemoryScheduleDataVectorType; SIGNAL InputSignal : IN STD_ULOGIC; CONSTANT OutputSignalName : IN STRING := ""; VARIABLE InputChangeTime : INOUT Time; CONSTANT PathDelayArray : IN VitalDelayArrayType; CONSTANT ArcType : IN VitalMemoryArcType := CrossArc; CONSTANT PathConditionArray: IN VitalBoolArrayT);-- #4-- DelayType - VitalDelayType-- Input - Vector-- Output - Scalar -- 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 VitalDelayArrayType; CONSTANT ArcType : IN VitalMemoryArcType := CrossArc; CONSTANT PathCondition : IN BOOLEAN := TRUE);-- #5-- DelayType - VitalDelayType-- 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 VitalDelayArrayType;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -