📄 idt72264.vhd
字号:
Tviol_WENNeg_PRSNeg := '0'; Tviol_RENNeg_PRSNeg := '0'; Tviol_RTNeg_PRSNeg := '0'; Tviol_SENNeg_PRSNeg := '0'; Tviol_FWFTSI_MRSNeg := '0'; Rviol_WENNeg_MRSNeg := '0'; Rviol_RENNeg_MRSNeg := '0'; Rviol_LDNeg_MRSNeg := '0'; Rviol_FWFTSI_MRSNeg := '0'; Rviol_WENNeg_PRSNeg := '0'; Rviol_RENNeg_PRSNeg := '0'; --1 WCLK pulse (low & high) width and period check -- (tWCLK, tWCLKH, tWCLKL) IF WCLK'event THEN VitalPeriodPulseCheck ( TestSignal => WCLK, TestSignalName => "WCLK", Period => tperiod_WCLK_posedge, PulseWidthHigh => tpw_WCLK_posedge, PulseWidthLow => tpw_WCLK_negedge, CheckEnabled => TRUE, HeaderMsg => InstancePath & partID, PeriodData => PD_WCLK, XOn => XOn, MsgOn => MsgOn, Violation => Pviol_WCLK); END IF; --2 RCLK pulse (low & high) width and period check -- (tperiod_RCLK_posedge, tperiod_RCLK_posedgeH, -- tperiod_RCLK_posedgeL) IF RCLK'event THEN VitalPeriodPulseCheck ( TestSignal => RCLK, TestSignalName => "RCLK", Period => tperiod_RCLK_posedge, PulseWidthHigh => tpw_RCLK_posedge, PulseWidthLow => tpw_RCLK_negedge, CheckEnabled => TRUE, HeaderMsg => InstancePath & partID, PeriodData => PD_RCLK, XOn => XOn, MsgOn => MsgOn, Violation => Pviol_RCLK); END IF; --3 MRSNeg low pulse width check (tRS) IF MRSNeg'event THEN VitalPeriodPulseCheck ( TestSignal => MRSNeg, TestSignalName => "MRSNEg", PulseWidthLow => tpw_MRSNeg_negedge, CheckEnabled => TRUE, HeaderMsg => InstancePath & partID, PeriodData => PD_MRSNeg, XOn => XOn, MsgOn => MsgOn, Violation => Pviol_MRSNeg); END IF; --4 PRSNeg low pulse width check (tRS) IF PRSNeg'event THEN VitalPeriodPulseCheck ( TestSignal => PRSNeg, TestSignalName => "PRSNEg", PulseWidthLow => tpw_MRSNeg_negedge, CheckEnabled => TRUE, HeaderMsg => InstancePath & partID, PeriodData => PD_PRSNeg, XOn => XOn, MsgOn => MsgOn, Violation => Pviol_PRSNeg); END IF; IF FIFOWStateint /= MRS AND FIFOWStateint /= PRS AND FIFORStateint /= MRS AND FIFORStateint /= PRS THEN --(exclude 5-8 if reset) --5 D/WCLK setup/hold time check (tDS, tDH) IF D'event OR (WCLK'event AND WCLK = '1') THEN VitalSetupHoldCheck ( TestSignal => D, TestSignalName => "D", RefSignal => WCLK, RefSignalName => "WCLK", SetupHigh => tsetup_D0_WCLK_noedge_posedge, SetupLow => tsetup_D0_WCLK_noedge_posedge, HoldHigh => thold_D0_WCLK_noedge_posedge, HoldLow => thold_D0_WCLK_noedge_posedge, CheckEnabled => True, RefTransition => '/', HeaderMsg => InstancePath & partID, TimingData => TD_D0_WCLK, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_D0_WCLK); END IF; --6 WENNeg/WCLK setup/hold time check (tENS, tENH) IF WENNeg'event OR (WCLK'event AND WCLK = '1') THEN VitalSetupHoldCheck ( TestSignal => WENNEg, TestSignalName => "WENNeg", RefSignal => WCLK, RefSignalName => "WCLK", SetupLow => tsetup_RENNeg_RCLK_noedge_posedge, HoldHigh => thold_RENNeg_RCLK_noedge_posedge, CheckEnabled => True, RefTransition => '/', HeaderMsg => InstancePath & partID, TimingData => TD_WENNeg_WCLK, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_WENNeg_WCLK); END IF; -- SENNeg/WCLK setup/hold time check (tENS, tENH) IF SENNeg'event OR (WCLK'event AND WCLK = '1') THEN VitalSetupHoldCheck ( TestSignal => SENNEg, TestSignalName => "SENNeg", RefSignal => WCLK, RefSignalName => "WCLK", SetupLow => tsetup_RENNeg_RCLK_noedge_posedge, HoldHigh => thold_RENNeg_RCLK_noedge_posedge, CheckEnabled => True, RefTransition => '/', HeaderMsg => InstancePath & partID, TimingData => TD_SENNeg_WCLK, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_SENNeg_WCLK); END IF; --7 RENNeg/RCLK setup/hold time check (tENS, tENH) IF RENNeg'event OR (RCLK'event AND RCLK = '1') THEN VitalSetupHoldCheck ( TestSignal => RENNEg, TestSignalName => "RENNeg", RefSignal => RCLK, RefSignalName => "RCLK", SetupLow => tsetup_RENNeg_RCLK_noedge_posedge, HoldHigh => thold_RENNeg_RCLK_noedge_posedge, CheckEnabled => True, RefTransition => '/', HeaderMsg => InstancePath & partID, TimingData => TD_RENNeg_RCLK, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_RENNeg_RCLK); END IF; --8 LDNeg/WCLK setup/hold time check (tLDS/tLDH) IF (( LDNeg'event OR (WCLK'event AND WCLK = '1' )) AND (WENNeg ='0'OR SENNeg = '0')) AND ((RENNeg ='1') OR NOT RENNeg'event ) THEN VitalSetupHoldCheck ( TestSignal => LDNEg, TestSignalName => "LDNeg", RefSignal => WCLK, RefSignalName => "WCLK", SetupLow => tsetup_LDNeg_WCLK_noedge_posedge, HoldHigh => thold_LDNeg_WCLK_noedge_posedge, CheckEnabled => (RENNeg ='1'), RefTransition => '/', HeaderMsg => InstancePath & partID, TimingData => TD_LDNeg_WCLK, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_LDNeg_WCLK); END IF; --8 LDNeg/RCLK setup/hold time check (tLDS/tLDH) IF (LDNeg'event OR (RCLK'event AND RCLK = '1')) AND ( RENNeg = '0') THEN VitalSetupHoldCheck ( TestSignal => LDNEg, TestSignalName => "LDNeg", RefSignal => RCLK, RefSignalName => "RCLK", SetupLow => tsetup_LDNeg_RCLK_noedge_posedge, HoldHigh => thold_LDNeg_RCLK_noedge_posedge, CheckEnabled => True, RefTransition => '/', HeaderMsg => InstancePath & partID, TimingData => TD_LDNeg_RCLK, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_LDNeg_RCLK); END IF; END IF; --9 RENNeg/MRSNeg setup time check (tRSS) IF RENNeg'event OR (MRSNeg'event AND MRSNeg = '1') THEN VitalSetupHoldCheck ( TestSignal => RENNEg, TestSignalName => "RENNeg", RefSignal => MRSNEg, RefSignalName => "MRSNEg", SetupHigh => tsetup_LDNeg_MRSNeg_noedge_posedge, CheckEnabled => True, RefTransition => '/', HeaderMsg => InstancePath & partID, TimingData => TD_RENNeg_MRSNeg, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_RENNeg_MRSNeg); END IF; --10 WENNeg/MRSNeg setup time check (tRSS) IF WENNeg'event OR (MRSNeg'event AND MRSNeg = '1') THEN VitalSetupHoldCheck ( TestSignal => WENNEg, TestSignalName => "WENNeg", RefSignal => MRSNEg, RefSignalName => "MRSNEg", SetupHigh => tsetup_LDNeg_MRSNeg_noedge_posedge, CheckEnabled => True, RefTransition => '/', HeaderMsg => InstancePath & partID, TimingData => TD_WENNeg_MRSNeg, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_WENNeg_MRSNeg); END IF; --11 LDNeg/MRSNeg setup time check (tRSS) IF LDNeg'event OR (MRSNeg'event AND MRSNeg = '1') THEN VitalSetupHoldCheck ( TestSignal => LDNEg, TestSignalName => "LDNeg", RefSignal => MRSNEg, RefSignalName => "MRSNEg", SetupHigh => tsetup_LDNeg_MRSNeg_noedge_posedge, SetupLow => tsetup_LDNeg_MRSNeg_noedge_posedge, CheckEnabled => True, RefTransition => '/', HeaderMsg => InstancePath & partID, TimingData => TD_LDNeg_MRSNeg, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_LDNeg_MRSNeg); END IF; --12 RTNeg/MRSNeg setup time check (tRSS) IF RTNeg'event OR (MRSNeg'event AND MRSNeg = '1') THEN VitalSetupHoldCheck ( TestSignal => RTNEg, TestSignalName => "RTNeg", RefSignal => MRSNEg, RefSignalName => "MRSNEg", SetupHigh => tsetup_LDNeg_MRSNeg_noedge_posedge, CheckEnabled => True, RefTransition => '/', HeaderMsg => InstancePath & partID, TimingData => TD_RTNeg_MRSNeg, XOn => XOn, MsgOn => MsgOn, Violation => Tviol_RTNeg_MRSNeg); END IF; --13 SENNeg/MRSNeg setup time check (tRSS) IF SENNeg'event OR (MRSNeg'event AND MRSNeg = '1') THEN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -