[可靠性杂坛]集成电路故障建模及ATPG原理( 三 )


基于某种故障类型 , 确定当前测试矢量能够覆盖多少物理缺陷;
对于特定的抽象电路 , 工具能够自动选择能够匹配的故障模型 。
这里涉及故障覆盖率的概念 , 故障覆盖率表示测试矢量集对于故障的覆盖程度:
故障覆盖率=被检测到的故障数目/被测电路的故障总数
可见 , ATPG的优点是明显的 。 首先 , 它是一个自动的过程 , 所以它可以减少向量生成的时间 , 并且生成的向量可以用故障覆盖率的标准来衡量好坏;其次 , ATPG是根据各类故障模型来生成向量的 , 因此一旦在测试机上发现错误 , 可以直接根据故障模型来追踪错误 , 能够很好地定位和诊断;另外 , ATPG生成向量的有效性非常高 , 这里的有效性是指每个时钟周期所增长的故障覆盖率 , 节约了时钟周期也就是节约了测试程序 , 最终表现出是测试成本的节约 。
另一种观点不利于ATPG的发展 , 有些人认为如果过于依赖ATPG , 就会造成前端的设计必须与ATPG的设计要求相匹配 , 可能造成的后果是破坏原有的设计流程 。 还有支持问题 , 成功的ATPG需要包括库和EDA软件的支持 。
四、ATPG的工作原理
ATPG采用故障模型 , 通过分析芯片的结构生成测试向量 , 进行结构测试 , 筛选出不合格的芯片 。 其中 , 最常用的故障模型就是固定故障模型 。 这在前面的存储器测试中提到过 , 下面就以这个模型来说明ATPG的工作原理 。
该故障假设芯片的一个节点存在缺陷 , 假设SA0表示节点恒为低电平 , 相对地 , SA1表示节点恒为高电平 , 即使控制目标节点的别的信号线都正常 。 例如 , 对于一个与门 , 只要将输入都变为1 , 就可以建立Stuck-At-0故障模型 , 如果输出为0则说明存在该故障 。 通过在芯片内建立这个故障模型 , 可以在芯片的顶层输入端口加上激励 , 在芯片的输出端口获取实际响应 , 根据希望响应与实际响应是否相同 , 来判断芯片是否存在制造缺陷 。 为了实现这样的目标 , 必须要求目标节点输入是可控制的 , 节点的输出是可观察的 , 并且目标节点不受别的节点影响 , 扫描链的结构为此提供了一切 。 对于ATPG软件来说 , 它的工作包括以下步骤 。
(1)故障类型的选择
ATPG可以处理的故障类型不仅仅是阻塞型故障 , 还有延时故障和路径延时故障等 , 一旦所有需要检测的故障类型被列举 , ATPG将对这些故障进行合理的排序 , 可能是按字母顺序、按层次结构排序 , 或者随机排序 。
(2)检测故障
在确定了故障类型后 , ATPG将决定如何对这类故障进行检测 , 并且需要考虑施加激励向量的测试点 , 需要计算所有会影响目标节点的可控制点 。
(3)检测故障传输路径
寻找传输路径可以说是向量生成中最困难的 , 需要花很多时间去寻找故障的观测点的传播 。 因为通常一个故障拥有很多的可观测点 , 一些工具一般会找到最近的那一个 。 不同目标节点的传输路径可能会造成重叠和冲突 , 当然这在扫描结构中是不会出现的 。
五、ATPG工具的使用步骤
目前 , 市场上的ATPG工具已经可以支持千万门级组合逻辑和全扫描电路的测试矢量生成 。 最有名的就是Synopsys的TetraMAX和Mentor的Fastscan 。
例如Synopsys的TetraMAX , 它支持全扫描设计和局部扫描设计 , 支持多种扫描风格 , 支持IEEE1149.1标准 。 设计步骤如下 。
①将含扫描结构的门级网表输入到ATPG工具 。
②输入库文件 。 必须与门级网表相对应并且能被ATPG工具识别 。
③建立ATPG模型 。 输入库文件后 , ATPG工具将根据库文件和网表文件建立模型 。
④根据STIL文件做DRC检测 。 STIL文件是标准测试接口文件 , 包含扫描结构的一系列信息和信号的约束 。
⑤生成向量 。 这里需要选择建立哪种故障模型 。
⑥压缩向量 。 这一步骤可以节约将来芯片测试时候的工作站资源和测试时间 。


推荐阅读