缺陷仿真
问题与动机
缺陷仿真算法
串行算法
并行算法
演绎算法
并发
随机缺陷采样
小结
问题与动机
缺陷仿真问题:
给定 :
一个电路
测试向量序列
缺陷模型
确定 :
缺陷覆盖率- 测试向量检测到的已建模缺陷的比例(或百分比)
未发现的缺陷集
动机
确定测试质量,从而确定产品质量
找到未未检测到的缺陷目标以改善测试
VLSI设计过程中的缺陷仿真器
图 1 VLSI设计过程中的缺陷仿真器
缺陷仿真方案
电路模型:混合电路
大多数具有高阻抗(Z)和双向信号的开关电平的逻辑
具有引脚缺陷的高阶模型(内存等)
信号状态:逻辑
布尔逻辑电路的两个状态(0,1)或三个(0,1,X)状态
时序MOS电路的四种状态(0, 1,X,Z)
时序:
组合和同步电路的零延迟
大多数带反馈的电路是单位延迟
缺陷:
多数是单次粘滞缺陷 single stuck-at
有时会出现开路粘滞缺陷,瞬态和路径延迟缺陷;模拟电路缺陷仿真器尚未普遍使用
单个粘滞缺陷的等效合并缺陷
缺陷去除- 随着更多测试矢量的仿真,缺陷一旦被检测到就去除不再考虑; 这些缺陷被压缩以进行诊断
缺陷采样- 当电路较大时,随机选择缺陷样本来仿真
缺陷仿真算法
串行算法
并行算法
演绎算法
并发算法
差异算法
串行算法
算法:仿真无缺陷电路并保存响应。
对缺陷列表中的每个缺陷模式重复以下步骤:
通过注入一个缺陷来修改网表
对修改后的网表逐个向量地仿真,将响应与保存的无缺陷电路响应进行比较
如果与理想响应不同,记录检测到的缺陷,并暂停对剩余测试向量的仿真
优点:
易于实施; 只需要一个真值仿真器,需要较少的内存
可以仿真大多数缺陷,包括模拟电路缺陷
缺点: 重复计算很多; 对于大的电路占用CPU时间过长
替代方案:一起仿真多种缺陷
图 2 串行算法
并行缺陷仿真
编译码方法; 最好只有两种状态(0,1)
利用计算机字的逻辑运算固有的位并行性
存储:每行一字的双态(0,1)仿真
多遍仿真:每遍仿真w-1个新缺陷,其中w为机器字长
通过串行方式加快速度 〜 w-1
不适用于具有时序难于收敛和非布尔逻辑的电路
图 3 并行缺陷仿真例子
演绎缺陷仿真
单程仿真
每行k包含一个可在k上检测到的缺陷列表Lk
在对每个向量进行真值仿真之后,将使用设定理论规则,信号值和门输入缺陷列表来更新所有门输出线的缺陷列表
输出缺陷列表提供检测数据
限制:
难以推论非布尔门的集合理论规则
难以使用门控延迟
图 4 演绎缺陷仿真例子
并发缺陷仿真
事件驱动的无缺陷电路仿真,仅缺陷电路中信号状态与无缺陷电路不同的部分。
每个门的列表,其中包含该门不同的所有缺陷电路的门副本。 列表元素包含缺陷ID,门输入和输出值以及内部状态(如果有)。
所有无缺陷电路和有缺陷电路的事件均被隐式仿真。
可以用任何建模风格或真值仿真所支持的细节来仿真缺陷(提供最大的灵活性)。
比其他仿真方法更快,但使用的内存最多。
图 5 并发缺陷仿真例子
缺陷采样
仿真随机选择的缺陷子集(样本)。
在样本中测得的覆盖率用于估算整个电路中的缺陷覆盖率。
优点:节省计算资源(CPU时间和内存)。
缺点:关于未检测到的缺陷的数据有限。
抽样动机
缺陷仿真的复杂度取决于:
逻辑门数
缺陷数量
测试向量数
缺陷仿真与缺陷采样的复杂度取决于:
逻辑门数
测试向量数
随机抽样模型
图 6 随机抽样模型
样品覆盖率的概率密度
图 7 样品覆盖率的概率密度
采样误差范围
求解C的二次方程,我们得到 3-sigma(置信度为99.7%)估算:
其中Ns是样本量,x是测得的缺陷样本中的覆盖率。
示例:一个有39,096个缺陷的电路实际缺陷覆盖率为87.1%。 随机抽取1000个缺陷,测得的覆盖率为88.7%。 从以上公式得出覆盖率的估算值为88.7%+-3%。 用于样本仿真的CPU时间约为所有缺陷仿真CPU时间的10%,就是牺牲一点覆盖率(在可接受的范围内),但极大的提高了测试速度,降低了测试成本。
小结:
缺陷仿真器是测试开发的必备工具。
并发缺陷仿真算法提供了最佳选择。
对于受限的电路类别(仅布尔原语的组合和同步时序),差分算法可以提供更好的速度和存储效率
对于大型电路,随机缺陷采样的准确性仅取决于样本大小(1,000至2,000个缺陷),而与电路大小无关。
该方法在减少仿真器的CPU时间和内存需求方面具有显着优势。