【Tessent】Scan and ATPG 【ch2 Scan and ATPG Basics】(4) Multiple Detect(n-detect)

Multiple Detect

  • 1. Multiple Detect
    • Bridge Coverage Estiamte
  • 2. Embedded Multiple Detect
  • 3. set_multiple_detection命令
    • 3.1 Usage
    • 3.2 Description
    • 3.3 Arguments
    • 3.4 Examples

1. Multiple Detect

多重检测(n-detect)的基本思想是多次随机的以每个故障为目标(target each fault multiple times)。通过改变 the way the fault is targeted 和 测试集中的其他值,检测到桥接故障的的可能性增加。

该方法从一个标准的 stuck-at 或 transition 向量集开始,对每个故障进行分级,以便进行多次检测。然后,执行额外的ATPG,针对低于多重检测目标阈值的故障生成测试向量。

Bridge Coverage Estiamte

桥接覆盖率估计(Bridge coverage estimate,BCE)是用于报告多重检测策略检测到桥接缺陷的能力的度量。

如果目标故障站点和另一个 net 之间存在桥接故障,使用单一向量检测到故障的可能性为50%。如果对同一个故障应用第二个不同的测试向量,则检测到桥接故障的概率为1-0.52。BCE对目标列表中的所有故障执行这种类型的计算,并且总是低于测试覆盖值。

下图给出了启用多重检测或嵌入式多重检测时,工具自动生成的统计报告示例:

【Tessent】Scan and ATPG 【ch2 Scan and ATPG Basics】(4) Multiple Detect(n-detect)_第1张图片
该报告包括BCE值和各种检测小于目标检测值的故障数量。

2. Embedded Multiple Detect

嵌入式多重检测(Embedded multiple detect,EMD)是一种在不增加向量集中向量数量的情况下改进多重检测的方法。本质上,EMD生成与标准向量集相同质量的向量,但增加了改进的多重检测。额外多重检测的唯一成本是在向量创建期间大约增加了30%到50%的运行时间。因此,EMD通常被认为是一种无成本的附加值,并用于ATPG。

当执行ATPG时,工具试图在同一向量下并行检测到尽可能多的先前未检测到的故障。然而,**即使ATPG使每个向量检测到的先前未检测到的故障的数量最大化,也只有一小部分扫描单元具有检测所需的特定值。**该向量中,这些需要加载到扫描单元中的特定bit被称为 “测试立方体(test cube)”。未填充测试立方体值的剩余扫描单元被随机填充,用于fortuitous detection非目标故障。

EMD使用相同的ATPG起点来生成测试立方体,但随后会确定是否存在以前检测次数较少的一些故障。对于这些故障,EMD将额外的扫描单元值添加到测试立方体中,以在新的检测向量之上改进多重检测

EMD具有比正常ATPG更好的多重检测,但可能没有具有额外向量的 n-detect 所能产生的BCE那么高。在包含EDT电路的设计中,检测量取决于压缩的程度。压缩程度越高,编码容量越低,每个向量可以指定的测试立方体的位数就越少。如果设计的目标是200倍压缩,那么可用的测试立方体的位数可能大部分被许多其他向量填充,用于未检测到的故障。

因此,额外的EMD多重检测的BCE值可能不会显著高于标准向量集合。

标准多重检测具有额外的向量开销,但也具有比EMD更好的多重检测。EMD和多重检测之间的差异取决于特定设计的向量集和使用的压缩级别。

  1. Multiple Detect for EMD

可以使用set_multiple_delection命令启用EMD或多重检测,工具支 stuck-at 和 transition 向量,可以将以下参数与set_multiple_delection命令一起使用。

  • Guaranteed_atpg_detection —— 将每个故障设置多重检测目标。ATPG尝试针对每个故障进行指定次数的求解。ATPG并不保证它以完全不同的路径检测故障,而是随机改变激活和传播故障的方式。此外,随机填充是不同的,因此目标故障周围的值可能与以前的检测结果随机性的不同。

  • Desired_atpg_detections —— 设定EMD目标,通常将此目标设置为5左右。

  • Simulation_drop_limit —— BCE计算的准确性。通常,不会对其默认值10做出修改。默认值10意味着一旦故障被检测到10次,BCE仿真就会停止。故障的多次检测值设为10,其BEC值或者说,检测到缺陷的统计值为1 - 1/2e10(或0.99902),这样就只有0.0009%的不准确度,是可以忽略不计的。

  1. Logic BIST

Logic BIST具有自然的具有非常高的多次检测。用LBIST检测到的故障通常具有远高于10的多次检测。这在一定程度上是因为用于逻辑BIST的向量数量通常非常大。此外,电路的许多难以检测的区域是随机测试的,并且在LBIST期间插入测试逻辑更容易产生高的多重检测覆盖率。

  1. Multiple Detect and AU Faults

在多次检测ATPG期间,AU(ATPG_untestable)故障计数仅在每个ATPG循环的开始处而不是在循环期间改变。这是对ATPG使用NCP(named capture procedures)时的正常行为。该工具在循环结束时通过所有NCP后更新AU故障。

3. set_multiple_detection命令

Context: dft -edt, patterns -scan, patterns -scan_diagnosis
Mode: setup, analysis
Enables the multiple detection of faults.

3.1 Usage

【Tessent】Scan and ATPG 【ch2 Scan and ATPG Basics】(4) Multiple Detect(n-detect)_第2张图片

3.2 Description

启用对故障的多重检测。

多重检测是获得桥接故障覆盖率的一种统计方法。默认情况下,该工具生成单一检测的向量集,每个故障被检测一次,然后从仿真中移除。

启用多重检测时,DS故障类别表示检测到一次或多次的故障,而不仅仅是检测到阈值次数的故障。create_patterns命令在对每一批向量的统计中包括一个累积的BCE的计算。使用simulation_drop_limit参数可以提高BCE的精度,同时要意识到提高的准确性需要更长的运行时间。

BCE的计算公式如下:
【Tessent】Scan and ATPG 【ch2 Scan and ATPG Basics】(4) Multiple Detect(n-detect)_第3张图片

启用多重检测会更改以下命令的行为:

  1. analyze_compression —

  2. create_patterns — 根据需要执行多次迭代(循环),以确保每一个可测试故障都被检测到 guaranteed_atpg_detections次,并在仿真的每一批向量的统计中包括累积BCE的计算。对于任何特定故障,每个向量最多只计数一次检测。

  3. report_statistics — 报告中列出最终的BCE,还包括一个直方图,显示多重检测 DS 故障的检测次数概况。

  4. report_environment — 列出显示当前多重检测设置的“multiple detection =…”行。如果该行不存在,则表示多重检测被禁用。

  5. report_faults — 对于每一个 DS 故障,显示“num_detections…”,用以表示故障检测的次数。

  6. write_faults — 对于每一个多重检测的 DS 故障,会写一行“num_detections…”,用以表示故障检测的次数。

发出此命令时不带任何参数,以报告当前设置。如果多次发出带有参数的此命令,最后一个命令将覆盖之前的设置。

当故障类型为UDFM时,set_multiple_delection命令仅适用于仿真,而不适用于ATPG。

3.3 Arguments

  1. -Guaranteed_atpg_detections guaranteed_atpg_detections

一个可选的开关(switch)和整数的组合,用于指定每个可测试故障所需的检测次数guaranteed_atpg_detections可以是介于1和255之间的任何整数,确定了create_patterns命令在向量生成期间应该针对每个故障的检测次数。在工具将故障从故障列表中删除之前,在故障仿真过程中保证每个故障的指定检测次数

guaranteed_atpg_detections的默认值是1,增大该值会显著增加向量的数量和ATPG的运行时间。

  1. -Desired_atpg_detections desired_atpg_detections

一个可选的开关和整数,用于指定每个可测试故障所需的检测次数。这些故障是使用**嵌入式多重检测(EMD)**功能检测到的。desired_atpg_detections可以是介于1和255之间的任何整数。

desired_atpg_detections设为1表示不启用EMD。

默认情况下,desired_atpg_detections 的值等于 guaranteed_atpg_detections

desired_atpg_detections 的值不能小于 guaranteed_atpg_detections , 除非不使用EMD功能(此时desired_atpg_ detections 的值为1)

和改变guaranteed_atpg_detections不同的是,增大 desired_atpg_detections的值不会增加向量的数量,但是同样会增加ATPG运行时间。为了获得最佳性能,不建议将desired_atpg_detections设置为大于5。

  1. -Simulation_drop_limit simulation_drop_limit

一个可选的开关和整数,用于指定故障的最大检测次数。工具在simulation_drop_limit之后从仿真中删除故障。

默认情况下,simulation_drop_limit为1。

当故障类型为UDFM时,可以将simulation_drop_limit设置为任何正整数。

对于所有其他故障类型,simulation_drop_limit不能小于 guaranteed_atpg_detectionsdesired_atpg_detections值。如果未指定值,simulation_drop_limit 将自动设置为以下值之一:

  • guaranteed_atpg_detections = desired_atpg_detections = 1
    The simulation_drop_limit is set to 1.

  • guaranteed_atpg_detections <= 10 AND 2 <= desired_atpg_detections <= 10
    The simulation_drop_limit is set to 10.

  • guaranteed_atpg_detections > 10 OR desired_atpg_detections > 10
    The simulation_drop_limit is set to the greater of the guaranteed_atpg_detections or desired_atpg_detections values.

  1. -REPort_incremental_statistics {ON | OFF}

一个可选的开关和文字,使该工具能够在每个多重检测ATPG循环结束时报告增量多重检测测试覆盖率统计信息。默认情况下,该工具不报告此类统计信息。

  1. OFF

禁用多重检测功能。

3.4 Examples

  1. 以下示例生成了一个没有EMD的 3-detection 向量集,其中故障在5次检测后从仿真中删除:

set_multiple_detection -guaranteed_atpg_detections 3 -desired_atpg_detections 1 -simulation_drop_limit 5

  1. 以下示例生成一个向量集,满足每个可测试故障必须检测两次,并且应该被检测至少8次:
    (The following example generates a pattern set where each testable fault must be detected twice
    and should be detected at least 8 times:)

set_multiple_detection -guaranteed_atpg_detections 2 -desired_atpg_detections 8

此时 Simulation_drop_limit被自动设为10。

(结合该示例,以及这两个参数的名字来看,guaranteed_atpg_detections 应该是必须满足的检测次数,而desired_atpg_detections 是可以不满足的,是期望达到的检测次数。)

  1. 以下示例禁用故障的多重检测:

set_multiple_detection off

你可能感兴趣的:(#,Tessent,shell,Scan,and,ATPG,其他)