推广 热搜: page  小红  红书  考试  数据  论文  数据分析  关键词  哪些  搜索 

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

   日期:2025-01-02     移动:https://sicmodule.kub2b.com/mobile/quote/18024.html

ASIC/IC DFT 方法的概述,以及如何在典型的DFT设计流程中使用Siemens EDA的 ASIC/IC DFT产品。

Tessent 的 Scan 和 ATPG 相关的工具包括 Tessent Scan、Tessent FastScan 和 Tessent TestKompress,通过在 tessent shell 中设置 context 启动对应的工具。



可测试性(Testability是一种设计属性(design attribute,用来衡量全面测试制造出的芯片质量的难易程度。

传统上,设计和测试过程是分开的,只有在设计周期的最后阶段才考虑测试。但是在当代的设计流程中,测试与设计在 IC 流程的早期合并,创建了称之为**DFT(Design-for-test)**的流程。

电路的可测试性包括可控制性可观察性( controllable and observable)。

在可测试的设计中,在原始输入端(primary inputs)设置特定的值,使得原始输出端(primary outputs)上的值能够表明内部电路是否正常工作。

为了确保电路设计具有最大程度的可测试性,设计人员必须在开发过程的特定阶段采用特定的DFT技术。



At the highest level, there are two main approaches to DFT: ad hoc and structured.

Ad Hoc DFT

Ad Hoc DFT 是使用良好的设计惯例(design practices)来增强设计的可测试性,而无需对设计风格(design style)进行重大更改,一些具体的方法如下

  • 最小化冗余逻辑
  • 最小化异步逻辑
  • 隔离时钟和逻辑电路
  • 增加内部控制点和观察点

在整个设计过程中使用这些惯例可以提高设计的整体可测试性。然而,将结构化 DFT 技术与 Siemens EDA DFT 工具结合使用,可以极大程度提升良率(yield。因此,本文的其余部分将集中讨论 structured DFT 技术。

Structured DFT

结构化DFT提供了一种更加**系统和自动化(systematic and automatic)**的方法来增强设计的可测试性。

结构化DFT的目标是提高电路的可控性和可观察性。有很多方法可以做到这一点,一些常见的技术如下

  • Scan Design 修改电路内部的时序单元
  • Built-in- Self-Test 在设备(devices)中插入自测试功能模块
  • Boundary Scan 在芯片(chip)上添加电路来增加板级可测试性( board testability


下图展示了典型的 ASIC 自顶向下(top-down)设计流程的基本步骤和该流程中可能使用到的Tessent工具。

该流程只是在自顶向下的设计流程中使用结构化DFT策略的简单描述,主要讨论的内容时是图中灰色部分。

如上图所示,任何设计流程中的第一个任务都是创建初始的 RTL 级设计。在 Tessent 环境中,可以选择使用Questa™SIM 创建高级 Verilog 描述,或者使用 Design Architect™创建原理图。然后,通过使用 Questa SIM 或其他供应商的 Verilog 仿真器执行功能仿真来验证设计的功能。

完成 RTL 设计之后,就可以使用 Tessent Scan 在设计中插入内部扫描电路(internal scan circuitry)。因为添加了扫描电路,所以需要重新验证设计的时序( re-verify the timing)。在确定设计的功能满足需求之后,就可以生成测试向量,这一步可以使用 ATPG 工具生成适当格式的测试集。

完成上述任务之后,需要验证在添加了适当的时序信息后,设计和测试集仍然能够正确地运行。可以使用 Questa SIM 或其仿真器来实现这一目标。

此外,在将设计交付制造和测试之前,可能还需要执行一些额外步骤以满足 ASIC 客户的特殊需求。

Note
在设计过程的早期和客户一起检查可能影响DFT策略的特定要求和限制是很重要的。例如,供应商的测试设备可能只能处理单个扫描链,具有内存限制,或具有影响生成扫描电路和测试向量的特殊时序要求等。



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

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

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” 的设计很难将其初始化到已知状态,这就使得通过设计的原始输入输出端口控制内部电路和观察输出行为变得很困难。

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

扫描电路的工作过程如下(使用 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】



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 质量保证,包含这种电路的部件可以在芯片制造过程中进行彻底的测试


在规模大、复杂度高的设计中,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,从而提高了测试的覆盖率和运行时间。

图中所示的设计被划分为三个部分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的时序单元可以作为内部扫描的候选单元。



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



ATPG:Automatic Test Pattern Generation

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

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



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工具使用外部向量测试生成。

本文地址:https://sicmodule.kub2b.com/quote/18024.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号