首页 > 其他分享 >第六章 内建自测试

第六章 内建自测试

时间:2023-08-07 09:35:10浏览次数:36  
标签:自测试 BIST Memory MBIST 测试 memory 第六章 fault

1 内建自测试概念

1.1 背景

       1.ATE测试成本

       2.Memory测试的特殊性

    • Memory内部需要测试的单元多
    • Memory内部单元规整

       3.客户对于在线测试的需求:汽车电子的可靠性要求

1.2 基本流程

  1. Start BIST:外部控制信号,开始自测试
  2. Test Controller控制Pattern Generator生成测试向量
  3. 测试向量与正常输入经过Input MUX选择后进入待测单元
  4. Compator输出结果压缩,得到Signature签名值
  5. 将期望签名值固化保存至ROM中
  6. Comparator进行对比输出最终结果

        

 1.3 两种自测试

  1. Memory BIST:利用特定算法和向量来测试Memory
  2. Logic BIST:利用伪随机测试向量来测试逻辑电路

1.4 自测试优缺点

  1. 优点:降低测试成本、缩短测试时间(内部全速测试)、在线测试
  2. 缺点:占用额外的电路面积、无法产生某些特殊的测试向量

2 Memory BIST基本架构

       

  •  TAP控制器:TDI、TMS等IJAT控制信号部分;
  • SIB:IJTAG控制开关,SIB打开意味着BIST电路连入IJTAG网络,SIB关闭不做测试处理;

2.1 BIST部分结构

     

  •  比较电路:可放在每个Memory附近,也可放在BIST控制器内。放在Memory附近可缩短大量Memory输出到比较电路之间的物理连线长度,比较电路只需要返回一根信号到BIST控制器,但这种放置会导致面积变大;相反,放在BIST呃逆面积小,但绕线难度大;

2.2 Tessent MBIST状态

        1.启动:

    • BIST控制器的输入:MBISTPG_EN = 1
    • BIST控制器的输入:BIST_SETUP[1] = 1,BIST_SETUP[0] = 0

        2.运转状态:

    • BIST运行时DONE为0.test结束后DONE为1
    • Test出错后GO为0,一直保持到test结束

2.3 BIST运行状态

  1. DONE = 0 且 GO = 0:测试未完成,但是已出错
  2. DONE = 1 且 GO = 0:测试完成,有memory出错
  3. DONE = 0 且 GO = 1:测试未完成,暂时没有memory出错
  4. DONE = 1 且 GO = 1:测试完成,所有memory通过测试

3 MBIST算法

        memory的Fault Model:Fault model通常是由IP开发商、生产制造商、EDA、客户共同参入指定的

        常见的fault model包括:

    • Stuck-at fault:固接1或0
    • Transition fault
    • Coupling fault
    • Address decoder fault

3.1 Transition fault

        Up Transition Fault:上升跳变错误

        Down Transition Fault:下降跳变错误

        

 3.2 Coupling Fault 耦合错误

        反向耦合错误:邻近的单元状态变化,导致单元取反

        状态耦合错误:临近单元状态变化,导致单元状态变化

        

 3.3 Address Decoder fault

  • 某一个有效的地址对应不上相应的存储单元
  • 某一个地址对应多个存储单元
  • 多个地址对应一个存储单元

3.4 MBIST基础算法

3.4.1 March-C算法

  1. 按地址从低到高:写0
  2. 读0,写1
  3. 读1,写0
  4. 读0
  5. 按地址从高到低:读0,写1
  6. 读1,写0
  7. 读0

3.4.2 Read-Only算法

  1. 按地址从低到高:读ROM里的数据,通过MISR压缩
  2. 比较压缩后的签名值与期望的签名值
  3. 按地址从高到低:读ROM里的数据,通过MISR压缩
  4. 比较压缩后的签名值与期望的签名值

4 Memory BIST修复功能

 4.1 Memory Redundancy

        Memory设计中Redundancy(Row,Column):额外增加一些冗余单元,牺牲面积提升Memory面积

 

        

 4.2 BIST修复功能

        

  1.  BISR regs(Build In Self Repairs):带有redanduncy的memory通常会额外多一些管脚,这些管脚会连到BISR regs上,寄存器存储memory repairs信息,控制哪些redanduncy替换哪些原本的存储单元;
  2. 每个memory的repairs信息不同,均有属于自己的regs,对于可修复的存储单元均可以加上BISR regs;
  3. 将BISR regs串成一条链路,链路信息从FUSE中获取;
  4. FUSE保存整个存储空间的修复信息(测试人员会将测试故障归纳得到修复信息,得出哪些单元需要修复,如何修复);

5 Tessent插入Memory BIST流程

5.1 主要步骤

  1. 读入网表
  2. 配置测试时钟等信号
  3. 配置MBIST
  4. 插入MBIST
  5. 生成综合脚本

5.2 读入网表

  1. set_context dft -no_rtl
  2. read_cell_library & read_verilog
  3. set_current_design
  4. set_design_level block
  5. Memory bist文件:

         

 

         

 5.3 配置时钟等信号

  1. 配置时钟信息:Add_clocks RAMCLK -period 10ns -label ramclk
  2. check_design_rules

5.4 配置MBIST

  1. set_dft_specification_requirements -memory_test on
    • -memory_bist
    • -memory_bisr_chains:repairs寄存器
    • -memory_bisr_controller:控制器
    • on表示上述三个均打开,off均关闭

5.5 配置MBIST

  1. Create_dft_specification:根据工具内部规则将memory分组,每个分组配置不同
  2. Report_dft_specification

          

 5.6 插入MBIST

  1. Process_dft_specification:生成相应的MBIST模块的RTL,插入现有网表
  2. Extract_icl
    • ICL是描述IEEE1687网络的连接关系
    • 这一步会检查网表的连接关系是否正确
    • 必须pass,才能保证后面的test pattern generation正确

5.7 生成综合脚本

  1. run_synthesis(-generate_scripts_only)
    • 在tessent shell内部调用综合工具
    • 只生成综合脚本,用户在外部调用综合工具
  2. write_design_import_script

最终插入MBIST的总体框架如下

         

 6. 实训环节

 

标签:自测试,BIST,Memory,MBIST,测试,memory,第六章,fault
From: https://www.cnblogs.com/jihexiansheng/p/17573138.html

相关文章

  • 《软件测试的艺术》原书第三版 - 第六章 - 更高级别的测试
    第六章更高级别的测试软件产品开发周期的模型软件最终用户的要求转换为一系列书面的需求。这些需求就是该软件产品要实现的目标。通过评估可行性与成本、消除相抵触的用户需求、建立优先级和平衡关系,将用户需求转换为具体的目标。将上述目标转换为一个准确的产品规格说明,将......
  • 第六章应用层
    1.应用层概述应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分。早期基于文本的应用(电子邮件、远程登录、文件传输、新闻组)20世纪90年代将因特网带入千家万户的万维网www当今流行的即时通信、P2P文件共享及各种音......
  • 第六章 注解式控制器详解 SpringMVC强大的数据绑定(2)
    6.6.2、@RequestParam绑定单个请求参数值@RequestParam用于将请求参数区数据映射到功能处理方法的参数上。1.publicStringrequestparam1(@RequestParam请求中包含username参数(如/requestparam1?username=zhang),则自动传入。 此处要特别注意:右击项目,选择“属性”,打开“属性对......
  • python嵩天课后题答案第六章
    Python嵩天课后题答案第六章实现流程概述本文将指导刚入行的小白如何实现“python嵩天课后题答案第六章”。我们将按照以下步骤进行操作,并逐步给出具体的代码实现。实现步骤步骤操作1导入所需模块2定义一个函数answer_chapter_six()3在函数内部实现题目的解......
  • 《摆与混》第六章--7月8日--周六
    我的周六,愉快的周六,我爱周六!!!!!1.今天做了什么:不要对周六的早晨有所期待,一觉醒来快到中午,中午跟好哥们开黑打游戏(又连跪了,难绷),下午的健身一切如常,晚上来了一次家庭聚餐。怒放吧,我的周末!!!2.解决了什么问题:吃嘛嘛香,没有学习。3.明天干什么:预计继续学习Java,PTA同步跟进,狠狠的休息;PS:周......
  • 数据结构(第六章)
    数据结构(第六章)图定义:图是由顶点的有穷非空集合和顶点之间边的集合组成的,通常表示为G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。特性:​在图中数据元素,我们称之为顶点。任意两个顶点之间都有可能有关系,顶点之间的逻辑关系用边来表示。无向图定义:如......
  • 第六章 使用Mysqli操作数据库
    demo1.php<?php//使用mysqli对象操作数据库//创建mysqli对象(资源句柄)$_mysqli=newmysqli();//连接数据库1.主机名(ip)2.账户3.密码4.数据库//mysqli_connect()函数==$_mysqli->connect()$_mysqli->connect('localhost','root','yangfan',......
  • 第六章 远程登录
    官网:http://www.hostbuf.com/‍FinalShell的特点:​‍1.多平台支持Windows,MacOSX,Linux2.多标签,批量服务器管理.3.支持登录Ssh和Windows远程桌面.4.漂亮的平滑字体显示,内置100多个配色方案.5.shell,sftp同屏显示,同步切换目录.6.命令自动提示,智能匹配,输入更快......
  • 第六章 面向对象编程(基础)
    1.面向对象内容的三条主线Java类以及类的成员:属性,方法,构造器,代码块,内部类面向对象的特征:封装,继承,多态面向对象的关键字:this、super、package、import、static、final、interface、abstract等2.类和对象2.1类和对象概述‍类:具有相同特征的事务......
  • 第六章:分区
    对于非常大的数据集,或非常高的吞吐量,仅仅进行复制是不够的:我们需要将数据进行分区(partitions),也称为分片(sharding)。分区(partition),在MongoDB,Elasticsearch和SolrCloud中被称为分片(shard),在HBase中称之为区域(Region),Bigtable中则是表块(tablet),Cassandra和Riak中是虚节点(v......