在测试点分析过程中,可以排除未通过读取功能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中的触发器。当在扇出或扇入中仅找到单个时钟域时,将使用该域。否则,将使用控制点扇出(或观察点扇入)中最参考的时钟域
接下来,它选择一个连接点,如下所述:
•它连接到扇出(用于控制点)或扇入(用于观察点)中一个触发器的时钟端口。如果连接的扫描单元的时钟端口无法直接访问,则它将通过时钟网络中的敏感路径进行跟踪,以找到最接近的可能连接点。
•如果如上所述找不到有效的连接点,它将尝试连接到最近的模块输入端口处的识别时钟,并向上移动层次结构。
•否则,它连接到时钟源。