【Tessent Scan and ATPG】【Ch2】Scan and ATPG Basics (1) Overview

扫描电路有助于测试生成过程,并可以减少外部测试设备的使用。主要有两种类型的扫描电路:

  • 内部扫描( internal scan):又称为 scan design,是对电路的内部进行修改,以增加其可测试性。(对original design进行了修改。)
  • 边界扫描( boundary scan):在设计的外围增加扫描电路,使芯片的内部电路通过标准板级接口(standard board interface)进行访问。增加的外围电路增强了芯片、芯片I/O pads 以及芯片与其他板级电路的互连线的可测试性。

1. Scan Design Overview


Internal scan (or scan design) 是对电路的内部进行修改,以增加其可测试性。

扫描设计(Scan Design)的目标是将难以测试的时序电路(在测试过程中)的行为变成易于测试的组合电路
The goal of scan design is to make a difficult-to-test sequential circuit behave (during the testing process) like an easier-to-test combinational circuit.

实现这一目标需要使用扫描时序单元(scannable sequential elements,scan cells)替换时序单元(sequential elements),然后将扫描单元串联起来形成扫描寄存器或扫描链(scan chain)。这样,当设计处于扫描模式(scan mode)时,可以使用这些串连的扫描单元将数据移进和移出。

下图所示的设计包含组合和时序两部分。在添加 scan 之前,设计有三个输入端口A、 B、 C,两个输出端口OUT1,、OUT2。这种 “Before
scan” 的设计很难将其初始化到已知状态,这就使得通过设计的原始输入输出端口控制内部电路和观察输出行为变得很困难。

在这里插入图片描述

在添加扫描电路之后,该设计有两个额外的输入sc_insc_en,以及一个额外的输出sc_out。扫描存储单元(Scan memory elements)替换原来的存储单元,这样当您使能 shifting(sc_en激活) 时,工具将从sc_in读入扫描数据。

扫描电路的工作过程如下(使用 atpg 工具生成的 scan patterns 的施加过程):

  1. 启用扫描功能,允许移位(shift),初始化 scan cells(加载数据到scan cells)。【扫描使能信号连接到了所有的 scan cells】
  2. 扫描单元数据加载完毕之后,保持扫描时钟关闭,在 PI 施加激励
  3. 记录(measure)输出端口数据。【电路稳定之后,PO 的输出相应使和预期的 fault-free 响应进行对比,该过程也可以称之为 parallel measure】
  4. 给定时钟(one or more clocks),将新的数据(组合电路的 steady-state output response)捕获到 scan cells 中;【parallel capture】
  5. 启用扫描功能,取出(unload)并记录捕获到得数据值,同时通过 shift 过程加载新的值到 scan cells 中。

这里,scan cells 其实可以称之为 pseudo-primary outputs 。【PPI、PPO】

在这里插入图片描述
【该图来自 DFTC manual】


1.1 About Scan Design Methodology


Scan是一种扫描设计方法,它将设计中的所有存储单元(memory elements)替换为等效的可扫描单元,然后将它们连接起来形成扫描链(scan chain)。其目标是控制和观察设计中的所有存储单元中的值,这样就可以使时序电路的测试生成故障仿真像组合电路一样简单。

图2-2中的黑色矩形代表扫描单元(scan elements),连接它们的线就是扫描路径(scan path)。因为这是一个扫描设计,所有的存储单元都被替换并连接在扫描路径中。圆形的方框表示电路的组合部分。

在这里插入图片描述

Scan 的优点

  • Highly automated process 使用 scan insertion 工具自动进行扫描链插入,需要的 manual effort 极少
  • Highly-effective, predictable method 提高测试覆盖率的一种简单有效,易于理解和接受的方法
  • Ease of use 容易上手和操作,不需要测试工程师帮助就可以进行扫描链的插入和运行ATPG
  • Assured quality 质量保证,包含这种电路的部件可以在芯片制造过程中进行彻底的测试

1.2 About Wrapper Chains


在规模大、复杂度高的设计中,ATPG 过程通常是**不可预测(unpredictable)**的,尤其是对于大型时序扫描或部分扫描设计而言。

为了减少这种不可预测性,大量用于测试结构插入和测试生成的层次化技术开始出现,创建 wrapper chains 就是其中之一,该技术(wrapper chains)对分块(design blocks)的大规模设计十分有益。

Wrapper chains通过分层封装(wrapper)扫描链增加了设计的可控性和可观察性。

A wrapper chain is a series of scan cells connected around the boundary of a design partition that is accessible at the design level.

wrapper chain 通过将从外部看具有较低的可测试性(可控制性和可观察性)的 block 的输入端口和输出端口的 sequential elements 转换为 scan cells,从而提高了测试的覆盖率和运行时间。

Wrapper chain的结构如下图所示:
在这里插入图片描述

图中所示的设计被划分为三个部分A、B、C,粗线表示 block A 的输入和输出,这些输入和输出在设计层面(desing level)上不能直接控制或观察(因为他们不是design 的 PI 和 PO)。由于这些连线不能直接访问,被这些引脚控制的部分电路可能会导致整体设计的可测试性降低。

图2-4显示了如何向 block A 添加 wrapper chains 结构,从而在 design level 提高分区 A 的可控性和可观察性。

在这里插入图片描述

这里,只有和不可控或者不可观察的 PI(或 PO)直接相连的第一个存储单元才会被放置到 wrapper chain 上。(这里的 PI 和 PO 针对的是 design block 而言)

wrapper chain由两种类型的单元组成:

  • 直接连接到 partitions 的不可控制的 PI 的时序单元
  • 直接连接到 partitions 的不可观察的 PO 的时序单元

为了直接访问之前不可控或不可观察的电路,该分区还需要两个设计级的引脚(design-level pins),scan in和scan out。
可以将wrapper chain与扫描结构结合使用。不符合wrapper chain的时序单元可以作为内部扫描的候选单元。


1.3 Test Structure Insertion With Tessent Scan


Tessent Scan 是西门子 EDA 的 internal scan synthesis 工具,它可以识别并将时序单元(sequential elements) 转换为 scan cells ,然后将这些扫描单元连接形成扫描链。

Tessent Scan的特性如下:

  • Verilog format
    Verilog门级网表进行读写操作

  • Multiple scan types
    支持插入两种不同类型的 scan types:mux-DFF and clocked-scan.

  • Multiple test structures
    支持识别和插入scan(both sequential ATPG-based and scan sequential procedure-based)、 wrapper chains 和 test point。

  • Scannability checking
    为设计中的时序单元提供强大的可扫描性检查/报告功能。

  • Design rules checking
    在实际插入扫描之前,执行设计规则检查以确保scan的配置和操作的正确性。此规则检查还保证 Tessent scan 执行的扫描插入的结果在ATPG工具中正常运行。

  • Interface to ATPG tools
    自动为 ATPG 工具生成关于如何使用 Tessent scan 创建的扫描电路的相关信息

  • Optimal partial scan selection
    提供最佳的部分扫描链的分析和插入功能。

  • Flexible scan configurations
    灵活性强,例如可以选择 scan cells 的连接顺序,一条或者多条scan chains,对一条scan chain使用多个时钟等。

  • Test logic
    提供在不可控的设置、复位、时钟、三态使能和RAM读/写控制线上插入测试逻辑电路的功能。

  • User specified pins
    Enables user-specified pin names for test and other I/O pins. 【自定义用于测试的引脚的名称】

  • Multiple model levels
    Handles gate-level, as well as gate/transistor-level models.

  • Online help
    Provides online help for every command along with online manuals


2. ATPG Overivew


ATPG:Automatic Test Pattern Generation

test patterns 有时称为 test vectors,是在制造测试过程中施加在原始输入引脚上的一组 01 逻辑值,用以确定芯片是否正常工作。

当施加 test pattern 时,自动测试设备(Automatic Test Equipment,ATE)通过将测试向量中包含的无故障输出(fault-free output)与ATE测量的实际输出进行比较,来确定电路是否没有制造缺陷。


2.1 The ATPG Process


ATPG的目标是创建可以满足给定测试覆盖率(test coverage)的测试集。

ATPG主要包括两个步骤:

  1. 生成测试向量
  2. 故障仿真,确定测试集能够检测哪些故障

Tessent ATPG 工具自动完成以上步骤,可以生成各种格式的patterns,满足不同的测试需求。

两种最典型的向量生成方法是随机性测试向量生成确定性测试向量生成

此外,ATPG工具可以对来自外部的向量进行故障仿真,并将那些检测到故障的向量放置在测试集中。

Random Pattern Test Generation

ATPG工具生成许多随机向量,识别其中可以检测到故障的向量,然后只将这些向量存储到测试集中。

随机测试向量生成中使用的故障仿真不能取代确定性测试生成,因为它永远不能识别冗余故障(redundant faults),它也不能为检测概率非常低的故障创建测试向量。但是,它可以作为确定性测试生成的初始步骤,使用少量随机向量可以提高 ATPG 性能。

Deterministic Pattern Test Generation

ATPG 针对给定的故障生成测试集,其过程是从故障列表(fault list)中选择一个故障,创建一个向量来检测故障,对向量进行故障仿真,确保向量能够检测到故障。

更具体来说,工具给可控点(control point)赋值,使故障点(fault site)的状态 (state) 和无故障的状态(fault-free state)相反,这样故障值和无故障值之间就存在一个可以检测到的差异。

工具还必须找到一种方法,将这种差异传播到它可以观察到故障影响的点。【ATPG 算法】

如果工具用尽所有可能的选择都没有找到一个成功的测试向量,那么它必须在对故障进行分类之前执行进一步的分析。

需要进行该分析的故障(Fault)类型包括 redundant, ATPG-untestable, 和 possible-detected-untestable 。

识别这些故障类型是确定性测试生成的一个重要部分,它对于实现高测试覆盖率至关重要。例如,如果工具证明了一个故障是 redundant,那么它就可以安全地将该故障标记为不可测试的(untestable)。否则,它将被分类为潜在的可检测故障(potentially detectable fault),在计算测试覆盖率时作为未测试故障(untest fault)计数。

External Pattern Test Generation

当 ATPG 的初始内容是一组预先存在的外部向量时,ATPG工具使用外部向量测试生成。

工具分析该外部向量集,以确定哪些向量可以检测故障列表中的故障。然后,它将这些有效的向量放入内部测试向量集中。在这种情况下,工具最终 " 生成的向量(generated patterns)" 中是包含从外部集合中选择的能够有效帮助达到最高测试覆盖率的向量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值