- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
全扫描结构在MCU设计中应用
全扫描结构在MCU设计中应用
摘要:本文在8位RISC MCU设计实例中用Synopsys公司的DFT Compiler进行全扫描设计,在此基础上,总结出了在复杂芯片中进行扫扫描链插入时所遇到的普遍性问题,并提出了相应的解决方法。
关键词:可测性设计;全扫描;MCU
引言
可测性设计有多种结构。基于扫描的可测性设计具有结构简单、对芯片的面积影响小、覆盖率高以及可以与EDA工具紧密结合的特点,是目前应用最为广泛的芯片可测性实现方法。synopsys的DFTC(DFT Compiler)可以在综合过程中将普通时序单元替换为具有扫描功能的时序单元,进而插入扫描链,实现芯片的可测性。在国内对MCU的可测性设计与研究多是基于功能测试的角度,但这类方法的覆盖率仍然有待提高。目前的高性能处理器大多采用基于全扫描的可测性设计,如AMD-K6、McKinley。本文将结合一款8位RISC MCU的设计实践,介绍如何实现一个满足要求的扫描设计。
扫描结构原理
基于扫描的可测性设计技术的基本原理,是使用扫描寄存器来代替原始电路中的存储单元,从而使存储单元变为一个测试输入点和一个响应观察点,进而将对时序电路的测试转化为对组合电路的测试。图1是一个时序电路在插入扫描链后的示意图。
对于采用全扫描结构的电路,其测试过程分为如下5个阶段。
①扫描输入(scan-In):在这个阶段,SE=1,触发器被首尾相接成链状结构,测试向量随着Clk的变化由SI端被移位进扫描寄存器。
②并行测量(Parallel Measure):此时,时钟保持不变,SE=0,xs端的测试向量被加载。这样,整个组合逻辑由于所有输入端给定,其状态成为已知,Zs的响应被记录。
③并行取值(Parallel Capture):SE不变,时钟跳变一次,测试响应被加载到了扫描单元中。之后,组合逻辑部分处于无关紧要状态(don’t-care state)。
④链首扫描输出(First Scan―Out):SE=1,时钟保持不变,扫描链的首位由SO端输出。
⑤扫描输出(Scan-Out):SE保持不变,存储在扫描单元中的响应数据随着测试时钟被串行输出。
需要注意的是,①⑤两个阶段是并行的,即在测试响应移位输出时,下一个测试向量同时被加载到扫描链中。
扫描插入过程中的具体问题
本文设计的MCU为8位数据总线,35条精简指令集,芯片规模约为4万门。采用1024×14 EPROM作为程序存储区,64×8 SRAM通用寄存器。下面将对在可测性设计过程中遇到的一些具体问题进行探讨。
MCU中扫描单元的选择
DFTC支持的扫描单元有多路选择器型触发器(Mutiplexed Flip-Flop)、时钟扫描(Clocked Scan)、电平敏感扫描设计(LSSD)、辅助时钟电平敏感扫描设计(Auxiliary ClockLSSD)。
其中,目前时钟最多的是多路选择器型触发器和LSSD。LSSD要求所设计的电路是电平敏感电路,该类电路中的基本存储单元为电平敏感锁存器,需要至少两个互不重叠的时钟输入。而本设计中普遍采用的时序单元是D触发器,因此更适合采用多路选择器型扫描单元。其特点是仅使用一个时钟输入端,面积消耗少,结构简单。但是由于在数据通路上增加了一个多路选择器,从而增加了延时开销,可能引起时序违反(多为建立时间违反,setup-time violations),如果不能有效地加以处理,将导致工作频率的下降。
MCU中存储器模块的处理
MCU中的EPROM和SRAM无法使用门级stuck-at-fault技术进行检测。在扫描插入时,存储器模块将被作为黑匣子处理。然而,由于黑匣子的输入/输出信号无法观察和控制,在黑匣子周围就会出现无法检测的逻辑,称为阴影逻辑(shadow logic)。对阴影逻辑的测试可以通过在存储器周围添加测试包络(test wrapper)实现。测试包络实际就是在存储器周围增加扫描寄存器,从而增加控制点和测试点,使得阴影逻辑成为可控、可测的组合逻辑,如图2 b所示。
以设计中作为寄存器文件的SRAM模块为例,该模块的引脚有dat_i[7:0]、addr[8:0]、dat_o[7:0]、wr_en、rd_en、clk。其中,clk为时钟端;wr_en为写使能端,高电平有效;rd_en为读使能,高电平有效;addr[8:0]为地址端;dat_i[7:0]、dat_o[7:0]为数据输入输出端口。
在默认情况下,DFTC的shadow LogicDFT功能是默认关闭的,所以要在包络插入之前先打开此项
文档评论(0)