插入test point的一些总结

首先为什么要插入额外的测试点逻辑?

某些dc_fault点控制和观察无法处理到位。需要插入逻辑,敏化路径让故障能够可控传播出来。

带来的好处?

只能读入dc_faults.rpt,不只支ac_faults.rpt。

降低DC和AC的pat量,覆盖率也稍微提高。

可以在串链前设置环境,先插入测试点,再串链。

注意的问题?

1、测试点的使能方式:默认为tp_en ,为控制点和观察点使用单独的启用信号,以保持它们的控件在模式集之间的独立性和灵活性。tp_contr_en tp_obser_en

2、设计包含多个Power_domain,则不应该跨功率域共享测试点。(会影响scan_timing以及pr绕线)通过使用read_cpf或read_upf文件加载电源数据,可以防止跨电源域共享任何测试点。

3、在测试点分析和插入期间,您在使用read_sdc命令读入工具的功能SDC文件中识别多循环路径和假路径。工具不会在这些路径上插入观察点或控制点。如果没有一个功能SDC,并且希望从MCP/FP中排除测试点,那么您可以使用以下命令:set_test_point_analysis_options -exclude_cross_domain_paths on

在dc_atpg中,一般不会读入sdc,因为dc_timing一般不会有问题,假如读入func_sdc_exception如果有警告消息告知排除在测试点插入之外的设计部分超过了20%,这可能会影响dc速测试期间插入测试点以提高测试覆盖率的能力。为了避免这种情况,不要在测试点分析期间读取SDC文件。但是,在高速转换测试期间,您应该读取ATPG的SDC文件,以便排除MCP/false路径。因为在转换测试期间,控制点在捕获周期中捕获它们自己,并且不创建转换,但是timing_exception_path中的观察点可能捕获无效的值。要防止这种情况,请在ac测试期间通过将tp_obser_en设置为0来关闭观察点。对于dc测试,观察点和控制点都可以使用。确保您对工具插入的观察点和控制点具有单独的启用项,以便您可以独立地管理控制点和观察点。

4、特殊instance不加入测试点:例如*tessent*   *edt*  ,还有一些non_scan点。

5、对设计中的关键路径(时序较紧张)不添加测试点,避免影响时序:

方法一:

采用tessent下的share下的tessent_write_no_tpi_paths.pt_tcl脚本可以把PT吐出来的关键路径转换为set_attribute_options命令列表,这些命令用适当的属性标记关键路径上的所有引脚,以防止测试点被放置在那里。

set paths [get_timing_path -delay_type max -max_paths 10 -nworst 1 -slack_lesser_than 4] 
tessent_write_no_tpi_paths $paths critical_paths

dofile critical_paths.no_tpi

方法二:

采用tessent_write_no_tpi_paths.tempus_tcl脚本将Tempus提取的关键路径列表转换为set_attribute_options命令列表。

set paths [report_timing -late -collection -max_paths 5 -nworst 2 -max_slack 10.0]
tessent_write_no_tpi_paths $paths critical_paths

dofile critical_paths.no_tpi

6、STA中测试点的考虑:

对于控制点,没有timing影响,因为控制点触发器在捕获周期中捕获自己。对于到达控制测试点的“control_point_en”信号,使用“set_case_analysis”来确保这一点:

 set_case_analysis control_point_en 0

源触发器的保持路径不是放松的;从源触发器到下一个SI引脚的扫描路径也没有放松。

如果在AC期间使用观察点,则它们必须满足数据来源点的single_cycle_timing。在STA期间,用作“observe_point_en”的信号不受约束,以使STA工具能够检查这些单元的capture和shift路径的timing。

如果您在AC测试期间没有close_timing以满足观察点上的单周期timing,则必须在ac_ATPG期间使用“add_input_constraints observe_point_en -C0”禁用该路径。

静态定时分析和放置路径工具的操作方式不同。在STA期间使用“set_case_analysis”来防止检查给该路径的timing,同时也阻止Place and Route工具在同一路径上fix_timing。在dc测试期间,这些cell的保持路径必须满足timing要求,通常使用:“set_false - setup - to <all_观察点flops>”之类的命令。

7、测试点的时钟选择:

连接到fanout(用于控制点)或fanin(用于观测点)中一个触发器的时钟端口。如果所连接的扫描单元的时钟端口不能直接访问,则通过时钟网络中的敏化路径进行跟踪,以找到最近的可能连接点。如果它没有找到前面描述的有效连接点,它尝试连接到最近的模块输入端口向上移动的标识时钟。否则,连接clock source。

8.测试点的共享:

控制点和观察点一般设置为3。但是控制点共享设置值大小需要try_run。因为它会影响控制点的有效性,可能会阻塞故障的传播。

测试点的数量多少,需要根据设计去try_run,分析结果;同时害的考虑带来的逻辑量以及时序对pr的影响。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值