首页 > 其他分享 >第三章 测试压缩技术

第三章 测试压缩技术

时间:2023-06-06 09:13:05浏览次数:29  
标签:逻辑 第三章 测试 压缩 扫描 EDT 向量

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.课后习题

 

标签:逻辑,第三章,测试,压缩,扫描,EDT,向量
From: https://www.cnblogs.com/jihexiansheng/p/17400387.html

相关文章

  • demo测试
    1.测试测试{"code":200,"msg":"","data":{"id":23,"userId":17,"name":"demo1","content":"发的范德萨范德萨分",......
  • rman测试备份跳过固定表空间后做全库恢复 (recover database skip tablespace )
    rman备份排除表空间:备份过程截图:备份脚本:run{allocatechannelt1devicetypedisk;allocatechannelt2devicetypedisk;backupascompressedbackupsetincrementallevel0filesperset10format'/u01/backup/data_%T_%U'database;sql'altersystemarc......
  • QA|定义的basepage在被a、b继承后,先后对a、b实例化调用后,存在b实例找不到driver问题|U
      iops登录后,需要对登录后的iops主页操作:点击对应按钮,如下 此时我需要调试一下iops_home_page.py中的代码,但需要先登录才调试这块代码,代码如下:运行:结果起来两个浏览器,没有点击进去 或者有时会报错:找不到ih的属性:self.driver()原因:因上面iops_homepage没有继承上lo......
  • 全志科技官方Ubuntu16.04根文件系统镜像的替换和测试方法
     本指导文档主要基于全志A40i开发板——TLA40i-EVM,一款基于全志科技A40i处理器设计的4核ARMCortex-A7高性能低功耗国产评估板,演示Ubuntu根文件系统镜像的替换和测试方法。创龙科技TLA40i-EVM评估板接口资源丰富,引出双路网口、双路CAN、双路USB、双路RS485等通信接口,板载Bluetoo......
  • go map gc的测试代码
    **本文章由githubcopilot协助生成**遇到一个离职同事写的代码,如下:```gopackagemapGCfuncmapGc(){lock:=sync.Mutex{}gofunc(){for{time.Sleep(12*time.Hour)tmp:=make(map[string]interface{})lo......
  • Web安全测试—工具安装之Firefox插件
    Firefox网页浏览器具有可扩展的附加组件架构,是可用于Web应用安全测试的最佳浏览器。https://www.mozilla.org/en-US/firefox/即使应用本身不是专门为Firefox兼容性而编写的,只要在使用Firefox时,不会彻底破坏功能的实现,仍然可以使用Firefox来测试运行在后台,与安全有关的内......
  • 使用powermock写springboot2.7业务类的测试用例
    1,引入powermock依赖<dependency><groupId>org.powermock</groupId><artifactId>powermock-core</artifactId><version>2.0.9</version><scope>test</......
  • 移动App测试概述:移动App特性
    移动App测试概述:移动App特性移动App在现代人的日常生活中扮演着越来越重要的角色,因而对于它们的质量和稳定性的要求也越来越高。为了确保App的质量,开发商需要进行充分的测试和检验。本文将讨论移动App的特性和需要测试的内容。移动App的特性包括:1.平台特性:移动App需要支持多种操作......
  • 自动化测试怎么用?自动化测试应用场景
    随着软件项目越来越复杂,传统的手动测试已经无法满足质量需求和时间效率。因此,自动化测试成为了越来越多项目的必要选择。自动化测试是指通过编写脚本或使用工具,将测试用例自动运行、自动执行和自动检查结果,以提高测试效率、降低测试成本和人为误差。这种方法比传统的手动测试更为准......
  • 【测试】反向测试用例
    正向测试用例和反向测试用例正向测试用例(PositiveTestCase)和反向测试用例(NegtivetestCase)是对测试用例的一种分类。反向测试用例:通常指,系统不支持的输入或状态,这类用例可以检查系统的容错能力和可靠性。举例如下:一个登陆输入框只能输入邮箱号,那么正向用例可以......