Mbist Test Basic

1687 ijtag network

1687 network 通过开关sib 来选通下级TDR,实现多层级管理,更加灵活。

Mbist introduce

MBIST为Memory Build-In-Self Test的简称,称为存储器内建自测试。针对存储器的测试向量不是由外部测试机台(ATE: Auto-Test-Equipment)生成,而是由插入的存储器测试逻辑自动生成,并进行compile。MBIST测试中,只需要从机台通过JTAG标准接口下达测试指令,从TDO接口获取测试结果。

  1. 存储器在很小的面积内集成了很多存储单元,对ATE的测试成本过高,不适用于从外部灌入针对存储器的测试向量。
  2. Memory需要测试的单元很多,但分布规整,可利用EDA的算法批量产生测试向量
  3. 车规芯片的安全性需要芯片在运行时仍保持在线测试(即不依赖测试机台,可集成于板级,芯片内或由软件调用,来随时测试),随时检测排除故障。

因此我们可总结出内建自测试的优势:因为测试向量由内部逻辑生成,相应模块可同被测试的存储器一同工作在内部的高速功能时钟下,而无需由机台慢速时钟移入测试向量,可节省大量的测试时间;另一方面,对比验证也同样交给内部逻辑自行完成,测试机台只需要收集测试结果,也可大幅减少测试时间。代价是内建自测试的逻辑对面积的占用很高,也不具备自由配置或更改测试向量的条件。

Mbist 架构

MBIST测试的框架由测试控制器,硬件向量生成,比较器组成

当测试控制模块接收到开始测试的指令后,首先会切换存储器的输入输出到测试模式,同时启动硬件向量生成模块开始产生和给出测试激励,同时计算存储器的输出期待值。存储器接收到测试向量之后,会间隔执行写//使能的操作,遍历测试所有地址下每个bit单元的写/读功能。最后,通过Q端输出的读取值,会与测试控制模块计算的期待值进行比较,是否正确的结果反馈到测试控制模块。

Tessent mbist逻辑结构

TAP: Test Access port

BAP: BIST Access port

SIB: Segment Insertion Bit

TMB: Tessent Memory BIST Controller

Tessent Mbist 结构基于IEEE1687标准(其中的TAP 为IEEE1149.1)。TAP的功能是由JTAG五组端口获取外部的测试指令,并转换到IJTAG扫描链上,并移位到其后的模块内;SIB可以开启或关闭其下对应的IJTAG扫描链,扫描链的开启意味着该部分的Memory进入测试状态;BAP起到SIB下发到MBIST Controller的接口作用;MBIST controller 内含对Memory测试控制的状态机逻辑和向量生成逻辑;Memory interface 包含了选择输入输出的MUX;而结果比较电路,包括ROM的期待值,则可以位于MBIST Controller中(面积优,时许和拥塞差)或位于Memory interface中。

Mbist 如何测试mem

MBIST测试中的关键指示信号有RUNGODONE信号,由MBIST Controller结合状态机和比较器的比较结果来给出。RUN信号指示当前Controller以及下属的Memory进入测试状态(MBIST Mode);GO=1信号指示开始向下属的Memory输入测试向量,测试开始,GO=0指示测试比较器报出FailDONE=1信号指示MBIST测试已结束。GODONE信号结合起来,可判定出当前Controller下属Memory的测试情况

  • GO一直未拉高或DONE一直未拉高:Controller执行有误;
  • GO拉高后,DONE尚未拉高:Memory测试执行中,尚未出错;
  • GO拉高后在DONE拉高前回落:有Memory测试失败;
  • GO拉高后,DONE拉高:Memory测试正确通过。

GO信号根据用户需求不同,可以有以下输出方案:

  • 全部测试信号汇总为一个GO信号移出,只指示设计的MBIST测试结果;
  • 每个Memory对应一个GO信号移出,可具体指示哪一块Memory有故障;
  • 每个Comparator对应一个GO信号移出,可细化到Memory的哪一位输出有故障;
  • 若要具体到哪一位BitCell有故障,默认不能实现,需要调用Tessent的Diagnosis Feature。

Mbist 时钟如何规划 

如上所示是Tessent MBIST逻辑的时钟和复位信号示意图。复位信号由TRSTTAPSIBBAP逐级提供给TMBMemory Interface,只有在需要的时候,下一级才会由上一级拿到复位信号开始工作。时钟信号方面,TAPSIBBAP三者都在IJTAG扫描链上,因此工作在机台的慢速时钟(TCK)之下;TMBMemory Interface则直接挂在待测试Memory的时钟源(FuncClk)之下,向量的产生和测试过程都是工作在高速时钟下,以节省测试时间和便于对memory进行全速测试。

因此我们可以很清楚地了解到,MBIST逻辑能正常工作,不依赖系统原有的复位,但需要保证Memory的时钟源准确有效。时钟网络中的时钟门控(Clock Gate)、时钟选择(Clock Mux)、时钟分频(Clock Divider)和晶振时钟(PLL),在功能模式下可能是正确有效的;但若未在代码设计时考虑到Memory在测试模式下的时钟路径,很有可能发现在电路切换到MBIST模式下之后,由于信号配置出错,或部分功能逻辑不能工作,而导致时钟路径不通,或时钟频率不匹配全速测试的要求。其结果是前端设计人员不得不返工修改代码,造成项目不必要的迭代。抑或由DFT工程师自行对电路结构进行ECO解决,但如此做的问题是代码难以达到完备标准,ECO修改工作需反复占用DFT工程师的工作时间,在每次项目更新、不同DFT工程师(如客户方)、和新老项目复用时都会造成重复劳动。另外,考虑到低功耗的设计,可能会将func 时钟特别分出一路专门给到mbist使用,这样在测试mem时,就能将func 时钟关掉,只让和mbist 相关的逻辑toggle,达到降低功耗的效果,而且,低功耗的设计还和mbist controller下挂载的mem 数量以及一个step下mem的数量相关,在设计的时候就需要考虑到功耗问题,尽量在合理的范围下使得同时一起能测试的mem数量最大。

另外,虽然MBIST逻辑不依赖系统原有复位,但时钟相关的逻辑,例如我们CPU中的时钟分频电路和SOC平台中的时钟管理模块,仍需要正常工作来提供正确的时钟。因此,时钟相关逻辑需要拿到一个与功能模式相同的复位上升沿信号。而其它无关的逻辑,在MBIST测试中需要保证其复位一直为低,保证无关逻辑在测试期间不会由于信号翻转而产生过高的功耗。如上图SOC平台中的复位处理方法。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值