Mentor-dft 学习笔记 day16-Test Points Special Topics

发布于:2022-11-01 ⋅ 阅读:(399) ⋅ 点赞:(0)
Control Point and Observe Point Enable Signal Handling
默认情况下,该工具使用test_point_en信号启用控制点和观察点。 建议 对控制点和观察点使用单独的启用信号,以保持它们的控制在模式集中的独立性和灵活性。

可以使用set_test_point_insertion_options命令为控制点和观察点指定不同的启用信号,如下所示:以下示例使用单独的控制点启用和观察点启用信号:

set_test_point_insertion_options -control_point_enable control_tp_enable
set_test_point_insertion_options -observe_point_enable obs_tp_enable
以下示例使用来自不同内部寄存器输出的单独控制点启用和观察点启用信号:
set_test_point_insertion_options -control_point_enable CR_reg/Q \
-observe_point_enable TR_reg[0]/Q
Test Point Analysis With Multiple Power Domains
如果设计包含多个电源域,则不应跨电源域共享测试点。 通过使用read_cpf或read_upf文件加载电源数据,可以防止跨电源域共享任何测试点。 以下是(部分)CPF文件的示例:
set_design design_top
create_power_domain -name PD1 -default
create_power_domain -name PD2 -instances {b1}
create_power_domain -name PD3 -instances {b2}
下图:处于不同电源域中的两个块b1和b2的示例。在这种情况下,\b1\u1\z处的测试点永远不会与\b2块中的任何测试点合并。

 

Test Point Analysis Multicycle and False Path Handling
在测试点分析和插入过程中,您可以识别使用read_SDC命令读入工具的功能SDC文件中的多循环路径和错误路径。该工具不会在这些路径上插入观察点或控制点, 如果想在MCP(多周期路径)/错误路径中添加测试点以进行低速测试,则不要读取工具中的功能sdc。
另一方面,如果没有功能性SDC,并且希望从MCP/FP中排除测试点,则使用以下命令:
set_test_point_analysis_options -exclude_cross_domain_paths on
用果由于SDC文件中列出的MCP/错误路径定时异常,导致大部分设计被排除在测试点插入之外,则在发出analyze_test_points命令时,工具将生成警告消息。例如:
// command: analyze_test_points
// Analyzing false and multicycle paths ...
// False and multicycle path summary : 112 false paths, 25 multicycle
paths
// Warning: The paths have 5 errors.
// Use the commands "report_false_paths -debug_error" and
"report_multicycle_paths -debug_error" to
// report the causes of the errors/warnings.
// Warning: Test points cannot be inserted at 1534865 (20.6%) gate-pins.
// This may increase the number of test points needed to reduce
pattern counts.
// 1302614 (17.5%) gate-pins are located on clock lines or on the
scan path.

如果看到上面的警告消息,并且设计中被排除在测试点插入之外的部分超过大约20%,这可能会影响插入测试点的能力,从而在低速测试期间提高测试覆盖率。为了避免这种情况,在测试点分析期间不要读取SDC文件。然而,在速度转换测试期间,您应该读取ATPG的SDC文件,以便排除MCP/错误路径。在转换测试期间,控制点在捕获周期内捕获自身,不会创建转换,但定时异常路径中的观察点可能捕获无效值。为了防止这种情况,在速度测试期间,通过将观察控制启用设置为0来关闭观察点。对于stuck-at测试,可以使用观察点和控制点。确保对工具插入的观察点和控制点分别启用,以便可以独立管理控制点和观察点。

Test Point Analysis Critical Path Handling
在测试点分析过程中,可以排除未通过读取功能SDC文件指定的关键路径,以便沿该路径不添加观察或控制测试点。

•要从测试点分析和插入中排除特定实例或特定路径,请使用add_notest_points命令。

add_notest_points {pin_pathname…
| instance_pathname… | instance_expression \ [-Observe_scan_cell]}
| -Path filename
PrimeTime Script for Preventing Test Points on Critical Paths
脚本“tessent_write_no_tpi_paths.tcl”是一个tcl脚本,它读取PrimeTime提取的关键路径列表,并将其标记为无效的测试点位置。 在时序关闭期间最小化问题的一种方法是在测试点分析和插入之前识别关键路径。这种方法依赖于准确识别关键路径,这通常需要布局和全局路由信息。提供的PrimeTime脚本可用于基于当前PrimeTime环境(最好带有放置信息)提取关键路径列表,并生成Tessent Shell命令,用适当的属性标记这些路径,以避免在这些路径上插入测试点。

 PrimeTime Script Usage

PrimeTime脚本将PrimeTime提取的关键路径列表转换为set_attribute_value命令列表,这些命令用适当的属性标记关键路径上的所有管脚。

Usage

tessent_write_no_tpi_paths $paths filename
The script is located at
<Tessent_Tree_Path>/share/TestPoints/tessent_write_no_tpi_paths.tcl

 Description

“tessent_write_no_tpi_paths.tcl”脚本将PrimeTime提取的关键路径列表转换set_attribute_options命令列表,这些命令用适当的属性标记关键路径上的所有管脚。通常会在测试点分析和插入之前执行此操作。

Arguments
$paths
Environmental variable that points to the critical paths extracted by PrimeTime.
filename
Specifies the file name for the Tessent Shell dofile generated by the script.
例子:
Step 1: From PrimeTime:
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

首先,使用PrimeTime“get_timing_path”命令提取关键路径。此命令需要下面描述的许多重要参数,这些参数应根据您的设计进行调整。接下来,调用“tessent_write_no_tpi_paths”脚本读取PrimeTime提取的关键路径,并写出一个tessent Shell文件。

Step 2: From Tessent Shell: dofile critical_paths.dofile

dofile将适当的属性添加到关键路径上的所有管脚,以防止测试点被放置在那里。

User-Defined Test Points Handling

可以使用add_control_points和add_observe_point命令指定用户定义的测试点。 该工具如何处理用户定义的测试点取决于是否已按如下方式插入工具生成的测试点:

Adding Test Points Before Test Point Analysis— The following command sequence demonstrates this:

ANALYSIS> add_control_point -location OY4 -type and
// Adds a user-defined control point
ANALYSIS> analyze_test_points
// Performs the analysis and generates test points
ANALYSIS> insert_test_logic
...
发出analyze_test_points命令时,该工具会考虑用户定义的测试点。
Adding Test Points After Test Point Analysis — The following command sequence
demonstrates this:
ANALYSIS> analyze_test_points
// Performs the analysis and generates test points
ANALYSIS> add_control_point -location OY4 -type and
// Tool gives preference to the user-defined test points
ANALYSIS> insert_test_logic
...
如果在分析之后但在插入之前使用add_control_points或add_observe_point命令指定用户定义的测试点,则工具会将这些测试点插入设计中。如果用户定义的测试点与工具生成的测试点位于同一位置,则会优先选择用户定义的检测点。
Test Point Deletion
发出analyze_test_points命令后,不能使用set_test_poont_analysis_options命令减少测试点的数量。但是,可以使用以下方法之一删除测试点:delete_test_points命令或修改测试点Dofile。
delete_test_points Command
可以删除工具生成的测试点的子集。 使用delete_test_points命令指定要从已识别测试点列表中删除的位置。 如果只有少量测试点要删除,则应使用此方法。
Modifying the Test Point Dofile
如果有大量测试点需要删除,则可以通过修改dofile来删除
Procedure:
1.使用write_test_point_dofile命令写出包含测试点的dofile。例如:
ANALYSIS> write_test_point_dofile -output_file my_test_points.dofile
2.编辑此dofile并删除不需要的测试点。
3.在Tessent Shell中,使用delete_test_points命令删除所有测试点,如下所示:
ANALYSIS> delete_test_points -all
4.使用dofile命令将修改后的测试点dofile读回工具。例如:
ANALYSIS> dofile my_test_points_modified.dofile
Back to Back Command Handling
analyze_test_points命令根据默认设置或指定的任何分析选项生成测试点。如果再次发出analyze_test_points命令,则不会生成新的测试点。
ANALYSIS> analyze_test_points // Performs the analysis and generates test points
ANALYSIS> analyze_test_points // No new test points are generated
如果在发出analyze_test_points命令之前更改了任何分析选项 第二次,该工具将基于当前选项生成新的测试点。例如:
ANALYSIS> analyze_test_points // Performs the analysis and generates test points
ANALYSIS> set_test_point_analysis_options -total_number 2000
ANALYSIS> analyze_test_points // New test points are generated
可以使用delete_test_points命令删除所有现有测试点,并使用analyze_test_points命令生成新的测试点。
ANALYSIS> delete_test_points -all // Deletes all existing test points
ANALYSIS> analyze_test_points // Generates new test points
如果在back to back analyze_test_points命令之间发出任何不影响测试点分析的命令,该工具将再次报告相同的测试点。
 
Static Timing Analysis for Test Points
本节介绍如何使用测试点运行静态计时分析(STA)。 对于控制点,由于控制点触发器在捕获周期期间捕获自身,因此不存在时序影响。 对于到达控制测试点的“control_point_en”信号,使用“set_case_analysis”确保:

•源触发器的保持路径不会relax。

•从源触发器到下一个SI引脚的扫描路径也不会relax。

> set_case_analysis control_point_en 0
如果要在高速测试期间使用观察点,则它们必须满足数据来源点的单循环计时。在STA期间,用作“observe_point_en”的信号将不受约束,以允许STA工具检查捕获和移位的定时 这些cell的路径。

如果在速度测试期间没有关闭定时以满足观察点上的单循环定时,必须通过使用“add_input_constraints observe_point_en-C0”在高速ATPG期间禁用该路径。“静态计时分析”和“放置和布线”工具的操作方式不同。正是由于这个原因,在STA期间用于防止检查给定路径上的定时的“set_case_analysis”将阻止Place and Route工具在同一路径上固定定时。在慢速测试期间,这些单元的保持路径必须满足时间要求,因此应使用“set_false_path–setup–to<all observe point flops>”等命令。

Test Points and At-Speed Testing
 
Impact on Transition-Delay Fault

测试点可以安全地用于针对总延迟缺陷的transition pattern的高速测试。根据定义,transition pattern使用transition 故障模型,该模型针对每个故障点的“总”延迟。转换模式将通过触发从扫描触发器并在下游扫描触发器处捕获结果。故障模型不关心所使用的路径。正是由于这个原因,在transition pattern期间使用的测试点不会干扰过渡故障的检测。一旦电路处于捕获功能模式,控制点保持静止。这意味着控制点仅有助于使路径敏感,而不会将功能路径缩短为小于电路的功能。一个例外是如果使用了LoS(launch off shift)pattern。在这种情况下,可以在扫描使能下降时启动从控制测试点的高速转换。通过定义来自测试点的错误路径或测试点可以使non-pipelined scan enable signal,当功能逻辑使用流水线扫描启用信号。

Impact on Timing-Aware ATPG

与 transition-delay故障模型不同,用于检测小延迟缺陷的定时感知ATPG考虑了测试期间使用的实际路径。在定时感知ATPG期间,读取电路的定时,ATPG在创建模式时自动查找并使用故障点周围最长的可感知路径。因此,测试点的添加不会妨碍瞄准和检测定时感知ATPG测试的能力。如果在位置和路线定时关闭期间观察点的定时未关闭,则可能需要关闭观察点。将观察点使能信号设置为关闭状态,并像之前一样继续计时感知ATPG。

Impact on Path-Delay ATPG

路径延迟测试针对从静态时序分析程序中提取的特定路径,并将特定故障位置读入ATPG以确定目标。Stimulus and response通常以特定的方式沿着特定的路径展开。正是因为这个原因,观察点应该对路径延迟测试没有影响。插入测试点时,通过在测试点插入过程中调用read_sdc或add_false_path命令,可以在分析过程中忽略错误和多循环路径。

Clock Selection for Test Point Flops

如果您没有明确指定测试点触发器的时钟,该工具首先根据控制fanin和/或fanout。在时钟域选择期间,该工具将忽略任何既不是现有扫描单元,也不是扫描插入目标的触发器。此外,初始搜索将限于与测试点位置在同一power_domain_island中的触发器。当在扇出或扇入中仅找到单个时钟域时,将使用该域。否则,将使用控制点扇出(或观察点扇入)中最参考的时钟域

接下来,它选择一个连接点,如下所述:

•它连接到扇出(用于控制点)或扇入(用于观察点)中一个触发器的时钟端口。如果连接的扫描单元的时钟端口无法直接访问,则它将通过时钟网络中的敏感路径进行跟踪,以找到最接近的可能连接点。

•如果如上所述找不到有效的连接点,它将尝试连接到最近的模块输入端口处的识别时钟,并向上移动层次结构。

•否则,它连接到时钟源。

 
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到