📄 k7r321882m.vhd
字号:
VARIABLE TD_A0_KNeg : VitalTimingDataType; VARIABLE Tviol_D0_K : X01 := '0'; VARIABLE TD_D0_K : VitalTimingDataType; VARIABLE Tviol_D1_K : X01 := '0'; VARIABLE TD_D1_K : VitalTimingDataType; VARIABLE Tviol_D0_KNeg : X01 := '0'; VARIABLE TD_D0_KNeg : VitalTimingDataType; VARIABLE Tviol_D1_KNeg : X01 := '0'; VARIABLE TD_D1_KNeg : VitalTimingDataType; VARIABLE Tviol_RNeg_K : X01 := '0'; VARIABLE TD_RNeg_K : VitalTimingDataType; VARIABLE Tviol_WNeg_K : X01 := '0'; VARIABLE TD_WNeg_K : VitalTimingDataType; VARIABLE Tviol_BW0Neg_K : X01 := '0'; VARIABLE TD_BW0Neg_K : VitalTimingDataType; VARIABLE Tviol_BW1Neg_K : X01 := '0'; VARIABLE TD_BW1Neg_K : VitalTimingDataType; VARIABLE Tviol_BW0Neg_KNeg : X01 := '0'; VARIABLE TD_BW0Neg_KNeg : VitalTimingDataType; VARIABLE Tviol_BW1Neg_KNeg : X01 := '0'; VARIABLE TD_BW1Neg_KNeg : VitalTimingDataType; VARIABLE Pviol_C : X01 := '0'; VARIABLE TD_C : VitalPeriodDataType := VitalPeriodDataInit; VARIABLE Pviol_CNeg : X01 := '0'; VARIABLE TD_CNeg : VitalPeriodDataType := VitalPeriodDataInit; VARIABLE Pviol_K : X01 := '0'; VARIABLE TD_K : VitalPeriodDataType := VitalPeriodDataInit; VARIABLE Pviol_KNeg : X01 := '0'; VARIABLE TD_KNeg : VitalPeriodDataType := VitalPeriodDataInit; VARIABLE Sviol_KNeg_CNeg : X01 := '0'; VARIABLE SD_KNeg_CNeg : VitalSkewDataType := VitalSkewDataInit; VARIABLE Sviol_K_C : X01 := '0'; VARIABLE SD_K_C : VitalSkewDataType := VitalSkewDataInit; VARIABLE Sviol_K_KNeg : X01 := '0'; VARIABLE SD_K_KNeg : VitalSkewDataType := VitalSkewDataInit; VARIABLE Sviol_C_CNeg : X01 := '0'; VARIABLE SD_C_CNeg : VitalSkewDataType := VitalSkewDataInit; -- Functionality Results Variables VARIABLE Violation : X01 := '0'; VARIABLE CQ_zd : std_ulogic := 'U'; VARIABLE CQNeg_zd : std_ulogic := 'U'; VARIABLE CQ_GlitchData : VitalGlitchDataType; VARIABLE CQNeg_GlitchData : VitalGlitchDataType; -- Memory array declaration TYPE MemStore IS ARRAY (0 to TotalLOC) OF INTEGER RANGE -2 TO MaxData; VARIABLE MemData0A : MemStore; VARIABLE MemData1A : MemStore; VARIABLE MemData0B : MemStore; VARIABLE MemData1B : MemStore; VARIABLE wrop : boolean := false; VARIABLE rdop : boolean := false; VARIABLE waddr : NATURAL; VARIABLE raddr : NATURAL; VARIABLE datatmp : INTEGER; -- No Weak Values Variables VARIABLE BW0Neg_nwv : UX01 := 'U'; VARIABLE BW1Neg_nwv : UX01 := 'U'; VARIABLE BW0Neg_reg : UX01 := 'U'; VARIABLE BW1Neg_reg : UX01 := 'U'; VARIABLE RNeg_nwv : UX01 := 'U'; VARIABLE WNeg_nwv : UX01 := 'U'; VARIABLE dat0_reg : std_logic_vector(HiDbit downto 0); VARIABLE dat1_reg : std_logic_vector(HiDbit downto 0); VARIABLE dout_tmpA : std_logic_vector(17 downto 0):= (OTHERS=>'Z'); VARIABLE dout_tmpB : std_logic_vector(17 downto 0):= (OTHERS=>'Z'); VARIABLE dout_regA : std_logic_vector(17 downto 0); VARIABLE dout_regB : std_logic_vector(17 downto 0); -- mem file FILE mem_file : text IS mem_file_name; VARIABLE ind : NATURAL := 0; VARIABLE buf : line; BEGIN BW0Neg_nwv := To_UX01 (s => BW0NIn); BW1Neg_nwv := To_UX01 (s => BW1NIn); RNeg_nwv := To_UX01 (s => RInt); WNeg_nwv := To_UX01 (s => WInt); -------------------------------------------------------------------- -- Timing Check Section -------------------------------------------------------------------- IF (TimingChecksOn) THEN VitalSetupHoldCheck ( TestSignal => RInt, TestSignalName => "RNeg", RefSignal => KIn, RefSignalName => "K", SetupLow => tsetup_RNeg_K, HoldLow => thold_RNeg_K, CheckEnabled => TRUE, RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_RNeg_K, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_RNeg_K ); VitalSetupHoldCheck ( TestSignal => WInt, TestSignalName => "WNeg", RefSignal => KIn, RefSignalName => "K", SetupLow => tsetup_RNeg_K, HoldLow => thold_RNeg_K, CheckEnabled => TRUE, RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_WNeg_K, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_WNeg_K ); VitalSetupHoldCheck ( TestSignal => BW0NIn, TestSignalName => "BW0Neg", RefSignal => KIn, RefSignalName => "K", SetupLow => tsetup_RNeg_K, HoldLow => thold_RNeg_K, CheckEnabled => ( WNeg_nwv = '0'), RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_BW0Neg_K, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_BW0Neg_K ); VitalSetupHoldCheck ( TestSignal => BW1NIn, TestSignalName => "BW1Neg", RefSignal => KIn, RefSignalName => "K", SetupLow => tsetup_RNeg_K, HoldLow => thold_RNeg_K, CheckEnabled => ( WNeg_nwv = '0'), RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_BW1Neg_K, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_BW1Neg_K ); VitalSetupHoldCheck ( TestSignal => BW0NIn, TestSignalName => "BW0Neg", RefSignal => KNegIn, RefSignalName => "KNeg", SetupLow => tsetup_RNeg_K, HoldLow => thold_RNeg_K, CheckEnabled => ( WNeg_nwv = '0'), RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_BW0Neg_KNeg, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_BW0Neg_KNeg ); VitalSetupHoldCheck ( TestSignal => BW1NIn, TestSignalName => "BW1Neg", RefSignal => KNegIn, RefSignalName => "KNeg", SetupLow => tsetup_RNeg_K, HoldLow => thold_RNeg_K, CheckEnabled => ( WNeg_nwv = '0'), RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_BW1Neg_KNeg, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_BW1Neg_KNeg ); VitalSetupHoldCheck ( TestSignal => Dat0In, TestSignalName => "Dat0In", RefSignal => KNegIn, RefSignalName => "KNeg", SetupLow => tsetup_D0_K, HoldLow => thold_D0_K, CheckEnabled => ( WNeg_nwv = '0' AND BW0Neg_nwv = '0'), RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_D0_KNeg, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_D0_KNeg ); VitalSetupHoldCheck ( TestSignal => Dat1In, TestSignalName => "Dat1In", RefSignal => KNegIn, RefSignalName => "KNeg", SetupLow => tsetup_D0_K, HoldLow => thold_D0_K, CheckEnabled => ( WNeg_nwv = '0' AND BW1Neg_nwv = '0'), RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_D1_KNeg, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_D1_KNeg ); VitalSetupHoldCheck ( TestSignal => Dat0In, TestSignalName => "Dat0In", RefSignal => KIn, RefSignalName => "K", SetupLow => tsetup_D0_K, HoldLow => thold_D0_K, CheckEnabled => ( WNeg_nwv = '0' AND BW0Neg_nwv = '0'), RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_D0_K, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_D0_K ); VitalSetupHoldCheck ( TestSignal => Dat1In, TestSignalName => "Dat1In", RefSignal => KIn, RefSignalName => "K", SetupLow => tsetup_D0_K, HoldLow => thold_D0_K, CheckEnabled => ( WNeg_nwv = '0' AND BW1Neg_nwv = '0'), RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_D1_K, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_D1_K ); VitalSetupHoldCheck ( TestSignal => AddressIn, TestSignalName => "Address", RefSignal => KNegIn, RefSignalName => "KNeg", SetupLow => tsetup_A0_K, HoldLow => thold_A0_K, CheckEnabled => TRUE, RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_A0_KNeg, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_A0_KNeg ); VitalSetupHoldCheck ( TestSignal => AddressIn, TestSignalName => "Address", RefSignal => KIn, RefSignalName => "K", SetupLow => tsetup_A0_K, HoldLow => thold_A0_K, CheckEnabled => TRUE, RefTransition => '/', HeaderMsg => InstancePath & PartID, TimingData => TD_A0_K, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_A0_K ); VitalPeriodPulseCheck ( TestSignal => CIn, TestSignalName => "C", Period => tperiod_K, PulseWidthLow => tpw_K_negedge, PulseWidthHigh => tpw_K_posedge, PeriodData => TD_C, XOn => XOn, MsgOn => MsgOn, HeaderMsg => InstancePath & PartID, CheckEnabled => (mode = c), Violation => Pviol_C ); VitalPeriodPulseCheck ( TestSignal => CNegIn, TestSignalName => "CNeg", Period => tperiod_K, PulseWidthLow => tpw_K_negedge, PulseWidthHigh => tpw_K_posedge,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -