第三章 测试压缩技术

发布时间 2023-06-06 09:06:00作者: 几何0814

1.常用的测试压缩技术

1.1 测试压缩的驱动力

  • 工艺复杂度导致错误类型的增加
  • 芯片复杂度导致扫描单元数的增加
  • 测试向量的增加
  • 测试管脚的有限性
  • 测试机台内存容量的有限性
  • 测试时间的增加

1.2测试压缩的目标

  1. 测试开销
    • 减轻测试机台需要存储的测试向量的大小
    • 减少测试时间
    • 减少测试需要的管脚数
  1. 测试质量
    • 支持所有测试向量的压缩
    • 保证测试覆盖率
    • 保证测试的可诊断性

1.3常用的测试压缩技术

  • 测试压缩技术分为:
    • 测试压缩:
      • XOR压缩
      • OPMISR压缩
    • 测试解压缩:
      • 广播解压
      • 可配置选择器解压
      • Ring Generator片上解压
  • 测试压缩技术
    • XOR扫描链压缩:在扫描链的尾部插入N级XOR树状结构,将扫描链压缩为1/2的N次方。空间压缩。
      • 压缩率较高
      • 逻辑增加较少
      • 扫描链上的X态会影响测试覆盖率
      • 不同扫描链的同一bit上同时出现fault,也会影响测试覆盖率
      • 为什么用异或门,而不用与门或门?因为异或门输出与两个输入都有关系,受两者的影响;同时,加入与门扫描链上出现一个状态“0”,那与该条扫描链相邻的都会被屏蔽掉

                         

    •  改进型XOR压缩树
      • 较好的可观测性
      • 扫描端口数较多
      • 扫描链上的X态会影响测试覆盖率
      • 优势在于,加入扫描链1上有未知态,则扫描链2上的状态可以通过扫描输出3观察,但同时存在如果扫描链2上有未知态,则未知态就会影响更多的扫描链了

                         

    •  OPMISR:片上多输入签名寄存器

                         

                        上图为典型MISR内部电路结构,下图为扫描链结构

                        

                        Si/So为双向扫描输入输出端口,可移入数据,也可移出数据。

                        Mask可过滤不定态。

                        MISR为压缩模块,mrun为控制压缩/移位信号,mrst为压缩复位信号。

                        工作流程:通过Si/So端口将数据移入扫描链,然后存到MISR线性移位寄存器中保存,同时可以将新一轮的测试向量移入扫描链,当所有测试向量都移入MISR完成压缩默认完成一次签名,最后通过sdir信号控制Si/So端口方向将压缩向量输出端机台。但OPMISR不是无损压缩,不能通过签名值反推出扫描链上所有可能错误。    

                    

    •  未知态掩膜(X masking)
      • 未知态引入:
        • 未串入扫描链的寄存器
        • False path
        • 未处在测试状态下的Memory
      • 未知态消除
        • 更改逻辑,通过增加阻塞逻辑阻止传播
        • 在压缩逻辑前面增加Masking逻辑

                            

  •  测试解压缩技术
    • 广播方式:优点:结构简单,不增加额外逻辑;缺点:扫描输入FanOut过大造成Pr绕线问题,同时移入相同向量一些逻辑是测试不到的

                  

    • 可编程广播方式:动态调整扫描输入(Synopsys解压工具)

                 

    • Ring Generator(环形测试向量生成器):Phase shifter减少线性相关性(Mentor公司)

                

2.Tessent压缩模块EDT的简介

 2.1 Tessent EDT逻辑

      EDT:Embedded Deterministic Test

       

  •  解压逻辑:解压测试向量,并将外部极少的测试输入端转换成内部较多的扫描链输入端;
  • 旁路逻辑:保证模型模式下,测试人员可以通过旁路逻辑Bypass掉EDT压缩逻辑的影响,用全扫描的方式进行诊断;
  • 掩膜逻辑:减少扫描链上的未知态对正常逻辑的产生结果的影响;
  • 压缩逻辑:EDT压缩逻辑采用XOR压缩技术;
    • EDT时钟:测试时钟,用来驱动EDT内部解压逻辑和掩膜逻辑内部的寄存器,和普通移位时钟不同,但可通过他特定逻辑产生移位时钟;
    • EDT扫描输入:扫描数据输入;;
    • EDT Update:复位EDT内部逻辑;
    • EDT旁路逻辑信号:Bypass掉EDT的压缩逻辑;
    • EDT扫描输出:扫描结果输出;

  2.1.1 解压逻辑

       少量测试管脚通过解压逻辑,将一系列测试向量灌输到内部环形向量发生器内以产生更多的向量。同时利用异或门组成的Phase Shifter来减少环形向量发生器产生的线性相关的向量;将通过Phase Shifter解压的向量输送到内部众多的扫描链上。最终实现完整的解压过程。

       通过解压模块产生的向量是针对性的测试,测试时会向芯片内全部单元扫入向量,但是测试fault的单元只会是一部分,每次扫描只会是系统全部单元的5%-10%,而这部分的扫描寄存器需要确定的测试值用于测试,其他不测fault的单元测试向量不感知。

    

       如上图所示,图中只有5个寄存器的值需要特定的测试向量测试,其他的单元不在意测试向量值。

 旁路逻辑

        旁路逻辑由一组选择器组成,下面是简单版本的EDT示例。每个选择器是加载到每个扫描链内部头上,选择器一端是EDT的解压逻辑,另外一端是扫描输入端或扫描输出端,压缩逻辑之后还有一个选择器,用以选择扫描输出的数据。

        问题:如果扫描链是在不同时钟域上,这种串行的数据通路应该如何处理?

           

 压缩逻辑+掩膜逻辑

       EDT掩膜两种模式:XOR解码器、One-Hot解码器。如果测试时有过多的未知态,就使用One-Hot模式,只让关心的那条扫描链输出到扫描端口,或者只想诊断某条扫描链上的fault。平时测试时未知态不会太多,一般使用XOR模式,然后使用掩膜逻辑中的与门直接将整条扫描链都掩膜掉,防止未知态传播到压缩逻辑中,影响测试结果。

       

       问题:掩膜向量是如何进入芯片中?EDT有两组寄存器,分别是掩膜移位寄存器、掩膜保持寄存器。在ATE机台将测试向量打入测试逻辑时,会在测试向量尾端增加一节掩膜向量,在测试向量移入Ring Generator后,还需要几个测试时钟周期将掩膜向量移入掩膜移位寄存器中,掩膜保持寄存器就会保持住移位寄存器中掩膜向量,并通过一段逻辑Decode产生各种需要的信号。

       问题:为什么需要掩膜保持寄存器呢?因为需要确保当前测试向量的掩膜逻辑不变,防止有新的测试向量进来后,原来的掩膜向量仍然能够起到作用。

2.2 Tessent EDT插入流程

        插入EDT压缩逻辑按照位置分为Core内插入和Core外插入。

        

        具体区别示意图如下:

       

 2.2.1 Core外插入EDT的流程

        Tessent不支持综合网表,需要拿到综合后的网标文件进行扫描链的插入。

        具体流程图如下:

        

         流程命令如下:

        

    •  set_context dft -edt 
    • read_verilog/read_cell_library
    • dofile scan.dofile:dofile文件是在扫描链插入时工具自动生成的文件,里面包含了扫描链信息与时钟复位信息;
    • set_edt_options
    • check_design_rules
    • write_edt_files
    • create_patterns

        写出EDT相关网表:

    • EDT.v:EDT模块代码;
    • EDT_TOP.v:新增的外层逻辑代码;
    • EDT_core_blackbox.v:防止在综合与插入过程中修改core逻辑,这里使用一个black作为core的代替;
    • DC综合脚本:用于综合EDT的脚本;
    • EDT compressed/bypass do/proc:包含压缩后生成的do/proc文件、将压缩逻辑旁路掉的do/proc文件,用以产生压缩与不压缩的测试向量,预估测试覆盖率;

 

3.实训环节:插入EDT

 

4.课后习题