【Tessent】Scan and ATPG 【ch8 Test Pattern Generation】Timing-Aware ATPG

时序感知ATPG从标准延迟格式(Standard Delay Format ,SDF)文件读取时序信息,并尝试生成使用最长检测路径来检transition fault的向量。

1. Slack Calculation

Slack等于路径延迟和时钟周期之间的裕度(margin)。Small Delay Fault Model 中的 Slack 表示可以检测到的最小延迟故障
下图所示为slack的计算。假设三条路径R1,R2,R3可以检测到一个故障,其路径延时分别为 8.5ns,7.5ns 和 4.5ns。若时钟周期为10ns,则这三条路径的 slack 依次为 1.5ns,2.5ns 和 0.5ns。

对于最长的路径,从 leading edge 的 launch,到下一个时钟周期的 leading edge 的 capture ,具有 1.5 ns 的 slack,因此该路径能够检测到最小延时缺陷是1.5ns。
对于最短的路径,从 leading edge 的 launch 到当前时钟周期的 falling edge 的 captures,具有0.5ns 的 slack。为了检测故障点(fault site)的小延迟,应该生成能够通过该路径(Shortest)检测故障的测试向量,因为它具有最小的 slack。
在这里插入图片描述
=============================================================================
补充:

在每个周期中,第一个出现的边沿就是 leading edge,最后一个出现的边沿就是 trailing edge。
在这里插入图片描述
=============================================================================

Path Delay Calculation

当 clock skew 存在时,它会影响到达时间和传播时间。在计算路径延迟时,Tessent 工具使用以下算法来确保考虑到时clock skew 的影响:

  • 计算设计中每一个门的到达时间(arrival time)

时序单元到达时间的初始值等于其所有时钟端口之间的最大时钟延迟。这意味着任何gate的到达时间是和时钟输入端口的值合适改变相关,而不是驱动触发器何时改变值相关。

  • 计算传播时间(propagation time)

对于直接驱动时序单元(clock cone)时钟端口的门,初始传播延迟设置为零;
对于直接驱动时序单元(data path)数据端口的门,初始传播延迟设置为其时钟延迟的负值(而不是零)。

计算公式如下:
在这里插入图片描述
示例:
下图所示的示例电路的时钟周期是8,根据上述算法的延时信息计算结如图上内容所示:
在这里插入图片描述
根据计算结果,关键路径应该是 dff2 → g1 → g3 。

Slack Calculation When Timing Exceptions Are Present

False paths 和 multicycle paths 会影响 slack 和 path delay 的计算。

False Paths

multicycle paths

2. Synopsys Design Constraint Derived Clock Timing

timing-aware ATPG 使用来自 SDC(Synopsys Design Constraint)的 derived clocks 的 divided-by ratio 信息,并根据SDC中的定义对其进行调整。

如果图 8-48 示例中的时钟是一个 divided-by-two clock,那么其时钟周期是20ns。

3. Delay Test Coverage Calculation

ATPG计算一个称为延迟测试覆盖率(Delay Test Coverage)的参数(metric),以确定测试向量的质量。当启用timing-aware ATPG时,延迟测试覆盖覆盖率会自动包含在ATPG统计报告中。

每个待测故障的权重根据slack进行修改,slack 最接近最小动态 slack 的路径拥有更高的权重。

延迟测试覆盖率(delay test coverage,DTC)的公式:
在这里插入图片描述

  • max_static_interval —— 通过故障点的所有物理路径中,发射沿和捕获沿之间的时间间隔的最大值。下图的实例中,R1 和 R2 的时间间隔是一个完整的时钟周期,而R3的时间间隔是半个时钟周期,图8-48所给的示例中,通过故障点的最大动态时间间隔是一个时钟周期

  • dynamic_slack —— 用于检测故障的路径的延时和该路径的发射沿和捕获沿之间的时间间隔的差值。

  • static_slack —— 通过故障点的所有物理路径的slack的最小值

=============================================
结合7.3节的例子,对 DTC 的一些思考

时钟周期减去 slack 不就是路径延时
那么 max_static_interval - static_slack 其实就是通过故障点的最大路径延时,
max_static_interval - dynamic_slack 其实就是确定用以检测故障的路径的延时,
简单而言,应该是路径本身的延时越大,能够检测到的延时的范围就越大,所以这里就采用路径延时的比值来作为评估测试向量质量的参数,称之为延时测试覆盖率。
=============================================

在这里插入图片描述

在图 8 - 48 给出的示例中,minimum slack 是0.5ns,每条路径的延时测试覆盖率如下:

在这里插入图片描述

Undetected faults 的延时测试覆盖率为 0,DI faults 的延时测试覆盖率为100%。

Chip-level 延时测试覆盖率的计算是对所有的故障的延时测试覆盖求平均值。

4. Timing-Aware ATPG Versus Transition ATPG

表 8-4 给出了transition fault ATPG 和 tinming-aware ATPG 的对比。

测试用例 STARC03 的特征如下:

  • Design Size: 2.4M sim_gate
  • Number of FFs: 69,153
  • CPU: 2.2Ghz
  • 315 sec to read SDF file that has 10,674,239 lines

在这里插入图片描述

ATPG运行时的相关参数通过set_atpg_timing命令设置。

5. Timing-Aware ATPG Limitations

执行 timing-aware ATPG的一些限制:

  • SDF文件的读取有一定的限制,read_sdf命令中有具体的描述
  • 不支持 Launch-off shift
  • timing-aware ATPG 的运行速度要比常规的 transition fault ATPG 慢8倍。Targeting critical faults may help
  • 大规模的组合回路可能会减慢计算静态松弛(static slack)的分析速度。这也使得实际的延迟分析不那么准确。
  • timing-aware ATPG 的 transition 测试覆盖率可能会低于常规的transition fault ATPG,因为timing-aware ATPG试图通过更长的路径来检测故障,因此更有可能达到中止限制。可以使用creat_patterns命令的-coverage_effort high选项来提高transition测试覆盖率,但是同时,改选项也会增加运行时间。
  • NCP(Named Capture Procedure)中的时序信息不包括在静态松弛计算中。
  • 保存检查点(check point)时,不会存储SDF数据库。使用 flattened model 时,必须使用read_SDF命令重新加载SDF数据
  • 当指定-Slack_margin_for_fault_dropping时,不能使用Static Compression(compress_patterns命令)和 pattern ordering(order_patterns指令)。
  • SDF文件不会影响good machine simulation的值。SDF文件主要用于引导 timing-aware ATPG 检测 long path 上的故障以及计算延迟测试覆盖范围。也就是说,工具不会从SDF文件中的延迟提取(或推断)false path 和 multicycle paths 。您须通过SDC文件或add_false_paths命令来提供该信息。

6. Inaccuracies in Timing Calculations

基于SDF文件执行timing-aware ATPG时,导致时序计算不准确的部分原因如下:

  • 不支持 Device Delay
  • 不支持 Conditional delay。对于给定的 IOPATH 或 INTERCONNECT 引脚对,工具在计算静态和实际延迟时,使用的是为该引脚对定义的所有条件延迟中的最大值。
  • 支持Negative delay。但是,如果路径延迟是负数,则在计算延迟覆盖率、路径延迟和松弛等参数时,工具会强制延迟值为0

7. Running Timing-Aware ATPG

使用ATPG工具执行Timing-Aware ATPG的基本步骤

7.1 Prerequisites

  1. 因为 timing-aware ATPG是建立在 transition ATPG 技术之上的,所以在开始此过程之前,必须先设置transition ATPG。

  2. STA(static timing analysis)得到的 SDF 文件

7.2 Procedure

  1. 使用read_sdf命令从SDF文件中加载时序信息
ANALYSIS> read_sdf top_worst.sdf
  1. 使用set_atpg_timing命令定义时钟信息。您必须为设计中的所有时钟定义时钟信息,即使是那些未用于ATPG(未用于NCP过程)的时钟。
ANALYSIS> set_atpg_timing -clock clk_in 36000 18000 18000
ANALYSIS> set_atpg_timing -clock default 36000 18000 18000
  1. 使用set_ATPG_timing命令启用 timing-aware ATPG。
ANALYSIS> set_atpg_timing on -slack_margin_for_fault_dropping 50%

如果为故障排除 (fault dropping) 指定了裕度 (slack margin),则故障仿真会保留故障以生成向量,直到达到阈值为止。在正常的 transition fault 仿真过程中,一旦检测到故障,故障就会被丢弃(drop)。

  1. 使用set_atpg_timing命令选择时序关键的故障
ANALYSIS> set_atpg_timing -timing_critical 90%
  1. 运行ATPG
ANALYSIS> create_patterns -coverage_effort high
  1. 使用report_statistics命令报告 delay_fault 的测试覆盖率
ANALYSIS> report_statistics

7.3 Examples

图8-52显示了一个测试用例,其中有17个扫描触发器和10个组合门。
每个门具有1ns的延迟,并且扫描触发器上没有延迟。G5/Y 处插入了一个 slow-to-rise fault。测试周期为12ns。最后一个扫描触发器(U17)具有 OX 单元约束,因此它不能用作观察点。

最长的路径从U1开始,经过 G1 到 G10,并在U17结束。总路径延迟为10ns。因为U17不能用作观测点,所以timing-aware ATPG 使用从U1开始、经过 G1 到 G9 并在 U16 结束的路径。总路径延迟为9ns。

因此,
静态最小松弛度(static minimum slack)为 12ns-10ns = 2ns;
最佳实际松弛度(the best actual slack) 为 12ns-9ns = 3ns。

在这里插入图片描述

图 8-53 显示了本例中使用的dofile。如注释所述,dofile将执行 7.2 小节中描述的过程。
在这里插入图片描述
图8-54显示了故障统计报告。timing-aware ATPG使用了最长的可能路径,即延时为9ns的路径。静态最长路径(Static longest path)延时为10ns。延迟测试覆盖率为 9ns / 10ns = 90%。

在这里插入图片描述

8. Troubleshooting Topics

该部分描述了与 timing-aware ATPG 相关的常见问题。(troubleshoot,疑难解答)

Run Time Reduction for Timing-Aware ATPG

Errors and Warnings While Reading SDF Files

Warnings During ATPG

Actual Slack Smaller Than Tms

### 回答1: Tessent Scan和ATPG是半导体行业中常用的测试技术。Tessent Scan是一种基于扫描链的测试方法,可以在芯片设计中嵌入扫描逻辑,通过扫描链来控制和观察芯片内部的信号,从而实现对芯片的测试和故障诊断。ATPG(Automatic Test Pattern Generation)是一种自动测试模式生成技术,可以根据芯片设计的特征和测试要求,自动生成测试模式,以检测芯片中的故障和缺陷。这两种技术在芯片设计和制造过程中都起着重要的作用,可以提高芯片的可靠性和性能。 ### 回答2: Tessent扫描和ATPG是芯片测试中常用的两种技术。它们都旨在帮助芯片制造商在芯片制造之后有效地测试和验证芯片的正确性和可靠性。 Tessent扫描是一种芯片测试技术,它通过在电路设计中嵌入测试功能来实现有效的测试。这些测试功能可以在芯片制造之后检测出在制造过程中可能存在的一些问题。Tessent扫描除了能够检测出短路和断路外,还能够检测出芯片中其他可能存在的问题,例如故障处理器、存储器和其他复杂的电路结构。 Tessent扫描技术需要在设计、验证和制造过程中广泛应用,以确保芯片的稳定性和可靠性。 ATPG(自动测试程序生成)是另一种芯片测试技术,它通过自动生成测试程序来实现高效的测试。ATPG技术的主要目的是识别出芯片中存在的故障和问题,以便在为芯片部署之前进行修复。ATPG技术可以生成数百个甚至上千个测试用例,以检测芯片中可能存在的所有不良故障。这种技术的优势在于可以快速地定位芯片中的故障,在芯片制造过程中节省时间和成本。 总之,Tessent扫描和ATPG技术可以使芯片制造商更轻松地测试、验证和修复芯片中的问题,从而确保芯片的稳定性和可靠性。这两种技术在芯片制造过程中的应用范围广泛,对于芯片制造商来说是非常重要的。 ### 回答3: Tessent扫描和ATPG(自动测试程序生成)是在半导体测试过程中使用的两种重要工具。 Tessent扫描是一种基于扫描链的测试方法,用于检测芯片中的故障。它的基本原理是将所有可供测试的寄存器组成一个长链,称为扫描链。扫描链的两端分别连接到测试仪器。在测试过程中,测试仪器会通过扫描链逐个读取和写入寄存器中的数据,以检测故障。Tessent扫描可以大大缩短测试时间,并提高测试覆盖率。它适用于数字电路和芯片级别设计。 ATPG是一种自动化生成测试程序的工具,通过分析电路结构来生成一系列测试用例,以发现故障和缺陷。ATPG可以自动生成大量测试用例,并通过模拟电路的运行来确定测试用例的有效性。ATPG主要用于分析和检查芯片级别的设计,以确保芯片的可靠性和性能。 总的来说,Tessent扫描和ATPG都是半导体测试过程中非常重要的工具,它们可以帮助设计人员和测试人员发现故障和缺陷,提高产品质量和可靠性。同时也因此成为了半导体工业中不可或缺的两种工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值