Mentor-dft 学习笔记 day52-State Stability ExamplesⅡ

本文是Mentor DFT学习笔记的第52天,聚焦于State Stability Examples的第二部分。文章通过修改后的装载卸载和移位程序,解释了在load_unload过程中,工具如何处理未受约束的主输入引脚,并建议在test_setup结束时将受约束的管脚强制到其约束状态,以避免工具在写pattern时添加额外循环。
摘要由CSDN通过智能技术生成
Example 5 — Single Post Shift with Cycles Between Main and Post Shift
在本例中,存在post shift,但在main shift和post shift之间有一个额外的循环(以粗体显示)。这将导致在报告状态稳定性数据时显示另一组数据。
procedure load_unload =
scan_group grp1 ;
timeplate gen_tp1 ;
// First cycle, one PI event (force)
cycle =
force clk1 0 ;
force clk2 0 ;
force reset 0 ;
force scan_en 1 ;
force B 1;
force C 1;
end ;
// Second cycle, three PI events (force, pulse on, pulse off)
cycle =
force A 1;
pulse clk2;
end ;
apply shift 3;
// Third cycle, three PI events (force, pulse on, pulse off)
cycle =
force C 1;
force A 0;
pulse clk2;
end ;
apply shift 1;
end;
procedure shift =
scan_group grp1 ;
timeplate gen_tp1 ;
cycle =
force_sci ;
measure_sco ;
pulse clk1 ;
force C 0;
end;
end;
第四个数据组(以粗体突出显示)表示两个移位应用程序之间的循环(对于load_unload过程的第一个应用程序)。第五个数据组表示轮班后的应用程序,最后一个(第六个)组表示捕获。请注意引脚A和C如何因加载卸载和移位过程中施加在它们上的值而改变状态。
// /A primary_input
// (ts)( ld )(shift) ( ld) (shift)(cap)(stbl)
// A ( 1)(X111)(111~1) (000) ( 000 )(XXX)( X)
// /B primary_input
// (ts)( ld )(shift) ( ld) (shift)(cap)(stbl)
// B O ( 0)(1111)(111~1) (111) ( 111 )(XXX)( X)
// /C primary_input
// (ts)( ld )(shift) ( ld) (shift)(cap)(stbl)
// C O ( 0)(1111)(000~0) (111) ( 000 )(XXX)( X)
还要注意,在这种情况下,clk2仅在load_unload期间产生脉冲,而不是在test_setup中。以下是修改的test_setup程序(从第二个循环中删除clk2脉冲):
procedure test_setup =
scan_group grp1 ;
timeplate gen_tp1 ;
// First cycle, one event (force)
cycle =
force clk1 0 ;
force clk2 0 ;
force reset 0;
force A 0;
force B 0;
force C 0;
force D 0;
force E 0;
end ;
// Second cycle, two events (pulse on, pulse off)
cycle =
pulse reset ;
end;
// Third cycle, three events (force, pulse on, pulse off)
cycle =
force A 1;
pulse clk1 ;
end;
end;
This results in the following behavior for ff20, which is clocked by clk2:
// /ff20 dff
// (ts)( ld )(shift)( ld)(shift)(cap)(stbl)
// CLK I ( 0)(0010)(000~0)(010)( 000 )(0X0)( 0) /clk2
// D I ( 1)(X111)(111~1)(000)( 000 )(XXX)( X) /A
// Q O ( X)(XX11)(111~1)(100)( 000 )(0XX)( X)
// QB O ( X)(XX00)(000~0)(011)( 111 )(1XX)( X)
Example 6 — Cycles After Apply Shift Statement in Load_unload
这个示例重用了基本示例的load_unload过程(只有一个applyshift语句),但在应用shift之后添加了三个新的循环(以粗体显示)。
procedure load_unload =
scan_group grp1 ;
timeplate gen_tp1 ;
// First cycle, one PI event (force)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值