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

2023-12-26 09:30

本文主要是介绍【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对目标列表中的所有故障执行这种类型的计算,并且总是低于测试覆盖值。

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

在这里插入图片描述
该报告包括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

在这里插入图片描述

3.2 Description

启用对故障的多重检测。

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

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

BCE的计算公式如下:
在这里插入图片描述

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

  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】Scan and ATPG 【ch2 Scan and ATPG Basics】(4) Multiple Detect(n-detect)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/538898

相关文章

Hbase Filter+Scan 查询效率优化

Hbase Filter+Scan 查询效率问题 众所周知,Hbase利用filter过滤器查询时候会进行全表扫描,查询效率低下,如果没有二级索引,在项目中很多情况需要利用filter,下面针对这种情况尝试了几种优化的方案,仅供参考,欢迎交流。 根据业务要求,作者需要根据时间范围搜索所需要的数据,所以作者设计的rowKey是以时间戳为起始字符串的。 正确尝试: 1.scan 设置 开始行和结

context:component-scan使用说明!

<!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 --> <context:component-scan base-package="com.yuanls"/> 在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controll

Stripe data files across multiple physical devices and locations

Stripe data files across multiple physical devices and locations 如果在没有做条带的磁盘(即从存储到OS没有做raid),那么就需要手工去做I/O的分布。切记,不应该将频繁使用的table和其index分开,这样会正大I/O; 针对tables、indexes、temp tablespace,首先调优SQL,其次如果真心无法再

【0323】Postgres内核之 hash table sequentially search(seq_scan_tables、num_seq_scans)

0. seq scan tracking 我们在这里跟踪活跃的 hash_seq_search() 扫描。 需要这种机制是因为如果扫描正在进行时发生桶分裂(bucket split),它可能会访问两次相同的条目,甚至完全错过某些条目(如果它正在访问同一个分裂的桶中的条目)。因此,如果正在向表中插入数据,我们希望抑制桶分裂。 在当前的使用中,这种情况非常罕见,因此只需将分裂推迟到下一次插入即可。

【SpringBoot】96、SpringBoot中使用RedisTemplate的scan方法查找所有的key

1、简介 Redis Scan 命令用于迭代数据库中的数据库键。SCAN 命令是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。SCAN 返回一个包含两个元素的数组, 第一个元素是用于进行下一次迭代的新游标, 而第二个元素则是一个数组, 这个数组中包含了所有被迭代的元素。如果新游标

Memorizing Normality to Detect Anomaly ——记忆正常以检测异常

Memorizing Normality to Detect Anomaly: Memory-augmented Deep Autoencoder for Unsupervised Anomaly Detection 记忆正常检测异常:记忆增强型深度自动编码器无监督异常检测 中国人挂了一堆外国人   Abstract 深度自动编码器在异常检测中得到了广泛的应用。通过对正常数据的训练,

SOMEIP_ETS_088: SD_Answer_multiple_subscribes_together

测试目的: 验证设备(DUT)是否能够接受它接收到的每个SubscribeEventgroup条目。 描述 本测试用例旨在检查DUT在接收到包含多个SubscribeEventgroup条目的消息时,是否能够为每个条目发送SubscribeEventgroupAck。 测试拓扑: 具体步骤: TESTER:发送包含多个SubscribeEventgroup条目的消息,用于事件组:

Page directive: illegal to have multiple occurrences of contentType with different values (x,X)之解

Question: Page directive: illegal to have multiple occurrences of contentType with different values (old: text/html; charset=utf-8, new: text/html;charset=UTF-8) Analysis: 出现这个的原因是这两个jsp的contentT

《Efficient Batch Processing for Multiple Keyword Queries on Graph Data》——论文笔记

ABSTRACT 目前的关键词查询只关注单个查询。对于查询系统来说,短时间内会接受大批量的关键词查询,往往不同查询包含相同的关键词。 因此本文研究图数据多关键词查询的批处理。为多查询和单个查询找到最优查询计划都是非常复杂的。我们首先提出两个启发式的方法使关键词的重叠最大并优先处理规模小的关键词。然后设计了一个同时考虑了数据统计信息和搜索语义的基于cardinality的成本估计模型。 1.

nable to execute dex: Multiple dex files define Lcom/chinaCEB/cebActivity/R

用proguaid 只混淆Android项目的src下的包的话,如果出现了上面的问题: nable to execute dex: Multiple dex files define Lcom/chinaCEB/cebActivity/R 1.如果你想开发Androidsdk 首先把你的项目的src下面打一个包。 2.然后用proguaid混淆。混淆的时候,有时候老是不成功,然你解决上面的