第一章:Getting Started

Tessent TestKompress

Tessent TestKompress是一个DFT产品,创建test patterns并进行压缩。高级压缩减少ATE memory和channel要求,减少数据容量以减少测试时间,比传统ATPG具有更高的测试仪throughput。

Tessent TestKompress创建和嵌入压缩逻辑,并生成压缩测试向量,如下所示:

  • Test patterns——生成压缩测试向量并加载到ATE上。
  • Embedded logic——生成EDT逻辑并嵌入IC中为了:
    1.从ATE上接收压缩test patterns并解压它们。
    2.将解压后的test patterns传递给core design进行测试。
    3.接收压缩的测试结果并将结果返回到ATE。

EDT Technology

Embedded Deterministic Testing(EDT)是被Tessent TestKompress使用的技术。EDT技术是基于传统的,确定性ATPG,并使用相同的故障模型以使用常见的流程获得相似的test coverage。EDT扩展性ATPG(使用EDT进行test pattern生成),改进了扫描测试数据的压缩,减少了测试时间。

Tessent TestKompress通过使用少量scan channels来控制内部大量scan chains实现scan test data的压缩。scan channels可以被看作虚拟scan chains,因为,从tester的角度来说,它们的操作与传统的scan chains相同,因此能够应用传统scan patterns的任意tester,可以应用压缩patterns。

Scan Channels

使用Tessent TestKompress内部扫描链的数量明显大于EDT逻辑呈现给测试器的外部虚拟扫描链的数目。
在这里插入图片描述
在EDT方法下,虚拟扫描链被称为“scan channels”,为了区分它们和core内部的扫描链,其数量远少于内部扫描链的数量。压缩的数量由两个参数决定:

  • 在设计core中的扫描链的数量
  • 显示给tester的scan channels的数量

Structure and Function

EDT技术由logic embedded on-chip、EDT-specific DRCs、和deterministic pattern generation技术组成。

嵌入式逻辑包括一个decompressor,位于外部scan channel输入和内部scan chain输入之间,一个compactor,位于内部scan chain输出和外部scan channel输出之间。
在这里插入图片描述
还可以添加bypass 电路,没有额外的逻辑插入设计的core中,因此,EDT逻辑只影响scan channel的输入和输出,不影响功能路径。

上图显示了设计中有2条scan channels和20条内部短的扫描链,从ATE(自动测试设备)的角度来看,设计中似乎只有两条扫描链,每条链与内部扫描链一样长。每个压缩的test pattern有几个额外的移位周期,因此每个pattern总的移位数量稍多于每条链中扫描单元的数量。

可以使用下面的公式来预测工具添加到每个pattern load的initialization cycles,ceil是向上取整。
在这里插入图片描述### Test Patterns
Tessent Shell通过EDT逻辑生成专门用于片上处理的压缩test pattern。对于给定的可测试故障,压缩test pattern满足ATPG的约束,并且避免总线竞争,与传统的ATPG相似。

一组压缩test patterns被储存在ATE上,每个test pattern将数据应用到decompressor的输入端,并保存compactor的输出上观察到的响应。ATE通过decompressor应用压缩test patterns到电路上,从tester的角度来看,设计中有相对较少的scan chains(只能看到少量的scan channels )。

压缩test patterns,在通过decompressor之后,在scan chains上创建必要值来保证故障检测,functional input和output pins被tester直接控制和观察,和传统测试相同。在内部scan chains的输出一侧,硬件compactors减少内部scan chains的数量以提供给外部少量的channels。在scan cells中捕获的响应被compactor压缩,压缩的响应在tester上进行比较。compactor保证了故障不会被屏蔽,X-states不会扰断响应。

定义参数,例如scan channels和lockup cells插入的数量,工具会基于指定的参数、内部扫描链的数量、最长扫描连的长度以及每个链中第一个和最后一个扫描单元的时钟,自动确定EDT hardware的内部结构。

TestKompress compression Logic

Tessent TestKompress在blocks中生成hardware(VHDL或者Verilog RTL),可以使用Tessent Shell集成EDT逻辑进入设计中,然后工具会生成以下三个组件:

  • Decompressor——在core设计中从少量scan channels提供大量的scan chains,并且当移入(shift in)时解压EDT scan patterns。

Decompressor的主要部分是Linear Feedback Shift Machine(LFSM)和一个phase shifter(如何实现的?)。

  • Compactor——从scan chains压缩test responses进入scan output channels,当shifted out时。

Compactor主要由spatial compactor(s)和gating logic组成。

  • Bypass Module(optional)——使用MUX来bypassEDT逻辑,将内部scan chians连接成更少更长的chains,以使可以通过channel pins直接访问内部scan chains。默认会生成bypass module。

如果选择执行bypass电路,工具在EDT逻辑中会包含bypass MUX。

DRC Rules

在设计flatten之后,Tessent TestKompress执行与Tessent FastScan执行相同的ATPG设计规则检查。

此外,Tessent TestKompress也会对EDT执行一组特定的DRCs。

Internal Control

在许多情况下,最好使用internal controllers来控制EDT信号,例如edt_bypass, edt_update, scan_en, 并且在功能模式下禁用edt_clock。

Logic Clocking

默认EDT逻辑包含组合逻辑和flip-flops。所有flip-flops,除了latch cell,都是正沿触发的,并由一个专用的时钟信号(edt_clock),这个时钟信号与扫描时钟不同,在EDT逻辑中没有clock gating,因此不会以任何方式干扰system clock。

可以设置clock为专用引脚(被默认命名为edt_clock),或者和功能非时钟引脚共享时钟。共享可能会造成test coverage下降,因为工具会在test pattern generation期间对clock pin进行约束。一定不能共享edt_clock和其他的时钟或者RAM的控制引脚,有几点原因:

  • 如果和scan clock共享,当edt_clk在pattern generation期间,在load_unload程序中被pulsed时,scan cells可能被干扰。
  • 如果和RAM控制信号共享,RAM的sequential patterns和多个load patterns可能不适用。
  • 如果和non-scan clock共享,test coverage可能会下降,因为edt_clk在capture周期内被约束为关闭状态。

因为在EDT中使用的时钟域scan clock不同,lockup cells会根据需要被自动地插入EDT逻辑和scan chians之间,工具会插入lockup cells作为EDT逻辑的一部分,不会改变design core。

ASCII and Binary Patterns

压缩ATPG test patterns可以以ASCII和binary格式写出,也能够被读回工具中。与未压缩pattern一样,使用这些格式主要时为了调试pattern不匹配和存档,但是压缩和非压缩patterns有几点差异,如下:

  • 压缩和非压缩ASCII patterns在几种方式是不同地,当创建压缩向量时,captured data根据internal scan chains进行存储,Load data根据external scan channels进行存储。pattern文件中的load data数据采用压缩格式——与提供给decompressor的格式相同。
  • 使用压缩向量的仿真,Xs可能不是源自于capture;它们可能来自于对compactor的仿真。

Fault Models and Test Patterns

对于压缩,工具使用与fault-model无关的和与pattern-type无关的压缩算法。压缩技术支持非压缩ATPG支持或生成的所有故障模型和确定性patterns类型。

总之,压缩技术:

  • 同uncompressed ATPG接受相同的fault模型。
  • 同uncompressed ATPG接受相同的确定性pattern类型,除了Macro Test,不被支持。
  • 同uncompressed ATPG产生相同的测试覆盖率。

** Effective Compression**

“Effective compression”是针对特定测试应用所实现的时间压缩,有效的压缩是通过EDT压缩特性和测试环境/设计需求来确定的。

effective compression被很多参数所限制,包括:

  • 设计core中的scan chains的数量
  • 显示给tester的scan channels的数量

在这里插入图片描述
effective compression总是少于chain/channel的比率,因为EDT计数比传统的ATPG生成更多的test patterns。使用EDT计数,通过减少每个test pattern的数据的数量来实现压缩,而不是减少生成的test patterns的数量。因此额外的test patterns要求额外的shift cycles以全面减少压缩。

平衡压缩目标和测试资源以及设计需求很重要,使用过大的压缩目标可以回在压缩,测试质量和设计布局上产生负面影响:

  • Lower Test Coverage——更高的压缩比例会增加每个test pattern的压缩,但是也会增加生成不能被压缩的test patterns的可能性,可能导致低覆盖率。
  • Decrease in Overall Compression——更高的压缩比例会导致动态压缩能够适应test pattern的故障数量更少,这将会增加总的test patterns数量,从而减少总体压缩。
  • Routing Congestion——在internal scan chains上没有限制,但是routing约束可能会限制压缩比例,大多数实际配置不能超过压缩能了。
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录(Table of Contents)   前言(Preface)   第一部分(Part I) 基础(Foundations)   第一章 计算中算法的角色(The Role of Algorithms in Computing)   第二章 开始(Getting Started)   第三章 函数的增长率(Growth of Functions)   第四章 递归(Recurrences)   第五章 概率分析与随机化算法(Probabilistic Analysis and Randomized Algorithms)   第二部分(Part II) 排序与顺序统计(Sorting and Order Statistics)   第六章 堆排序(Heapsort)   第七章 快速排序(Quicksort)   第八章 线性时间中的排序(Sorting in Linear Time)   第九章 中值与顺序统计(Medians and Order Statistics)   第三部分(Part III) 数据结构(Data Structures)   第十章 基本的数据结构(Elementary Data Structures)   第十一章 散列表(Hash Tables)   第十二章 二叉查找树(Binary Search Trees)   第十三章 红-黑树(Red-Black Trees)   第十四章 扩充的数据结构(Augmenting Data Structures)   第四部分(Part IV) 高级的设计与分析技术(Advanced Design and Analysis Techniques)   第十五章 动态规划(Dynamic Programming)   第十六章 贪婪算法(Greedy Algorithms)   第十七章 分摊分析(Amortized Analysis)   第五部分(Part V) 高级的数据结构(Advanced Data Structures)   第十八章 B-树(B-Trees)   第十九章 二项式堆(Binomial Heaps)   第二十章 斐波纳契堆(Fibonacci Heaps)   第二十一章 不相交集的数据结构(Data Structures for Disjoint Sets)   第六部分(Part VI) 图算法(Graph Algorithms)   第二十二章 基本的图算法(Elementary Graph Algorithms)   第二十三章 最小生成树(Minimum Spanning Trees)   第二十四章 单源最短路径(Single-Source Shortest Paths)   第二十五章 全对的最短路径(All-Pairs Shortest Paths)
Erlang是一种功能性编程语言,最初是为了电话交换系统而设计的,具有并发、容错和分布式计算的能力。在功能性编程中,我们将程序视为一系列函数的集合,而不是一系列指令的序列。这种思维方式使得编写可靠、可扩展和可维护的软件变得更加容易。 要开始学习Erlang,我们首先需要安装它。Erlang可在多个操作系统上运行,包括Windows、Linux和Mac OS。我们可以从Erlang官方网站下载适合自己操作系统的安装程序,并按照提示进行安装。 安装完Erlang后,我们可以在命令行界面(或终端)中启动Erlang Shell(也称为Erlang交互式环境)。在Shell中,我们可以输入并执行Erlang代码。 Erlang的基本语法与其他编程语言有些不同。在Erlang中,函数定义使用"fun"关键字,比如:Add = fun(X, Y) -> X + Y end. 这将定义一个名为Add的函数,它接受两个参数X和Y,并返回它们的和。 在Erlang中,我们可以使用模式匹配来处理不同的情况。例如,我们可以编写一个函数来计算一个列表中所有元素的和,如下所示: sum([]) -> 0; sum([H|T]) -> H + sum(T). 当我们传递一个空列表[ ]给sum函数时,它将返回0。而当我们传递一个非空列表[H|T]时,它将把列表的头部元素H与剩余部分T的和相加。 在学习Erlang时,重要的是要尝试编写简单的程序和函数,以便熟悉基本的语法和概念。您可以使用Erlang Shell来交互式地测试和执行您的代码。 除了基本的语法和概念之外,Erlang还具有许多强大的特性,例如并发编程、消息传递和模式匹配。这些功能使Erlang成为开发可靠、高可扩展性的分布式系统的理想选择。 总之,Erlang是一种功能强大的功能性编程语言,它具有并发、容错和分布式计算的能力。我们可以通过安装Erlang并在Erlang Shell中尝试编写简单的程序,来快速上手Erlang。在学习过程中,我们将逐步掌握Erlang的基本语法和概念,为开发可靠和高可扩展的系统打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值