




已阅读5页,还剩55页未读, 继续免费阅读
(微电子学与固体电子学专业论文)存储器内建自测试及内核功能测试研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 集成电路制造工艺的不断进步和基于i p 复用的设计方法学革新,使得s o c 芯片得 到越来越广泛的应用;同时这又使得s o c 芯片结构日益复杂,规模日益扩大,如何有效 地对s o c 芯片进行测试成为一个迫切需要解决的问题。 y r a g 接口是一种标准的测试接口,利用该接口可以对芯片内部逻辑进行测试和调 试。在本文中a r m 核的测试是利用j t a g 接口进行的,根据j t a g 接口协议,可以生 成所需的测试矢量。利用a r m 7 t d m i 提供的扩展j t a g 接口和扫描链的能力,本文使 用 t a g 接口对m b i s t 进行初始化配置并串行移出最终的测试结果。 各种类型的嵌入式存储器大量集成已经成为s o c 芯片的一个重要特征。由于a t e 所能存储的测试矢量十分有限,因此无法直接由a t e 提供存储器测试所需的测试矢量。 为了压缩测试所需的矢量,本文利用一种新的m b i s t 结构对存储器进行测试,所有的 测试矢量都由m b i s t 自动生成,因此它能够很好地解决测试矢量压缩问题。该m b i s t 结构能够支持各种类型的嵌入式存储器,例如单端口、双端口s r a m ,c a c h e 以及c a m ( c o n t e n ta d d r e s s , a b l em e m o r i e s ) 等。为了鳃决c a m 的测试这一难题,本文应用了一 种新的c a m 测试算法并验证了该算法的有效性。 在s o c 测试尤其是宏模块的测试过程中,测试效率比较低。通过测试调度可以提高 测试效率,充分利用测试带宽和测试资源。本文采用了一种通过简单的测试调度整合测 试矢量、提高测试效率的方案。通过分析,可以得出最终的测试矢量压缩比最高可以达 到5 0 ,测试时间也仅为调度前的一半。 论文最后总结了研究成果,指出了尚需解决的几个问题以及今后的研究方向。 关键词 系统芯片存储器测试内建白测试测试矢量压缩测试调度 a b s t r a c t w 弛t h ep r o g r e s si ni cm a n u f a c t u r i n gp r o c e s sa n di n n o v a t i o ni nm e t h o d o l o g yb a s e do n1 p ( i n t e l l e c t u a lp r o p e r t y ) n 徽s o c ( s y s t e m - o n - a - c h i p ) i sw i d e l yu s e di nc o n s u i m f rc l e c l r o r 五c s a tt h e 文i m e t i m e , t h ec o m p l e x i t yo fs o ca r c h i t e c t ei n c r e a s e sd r a m a t i c a l l y , t h i sf a c t o rh a sh a dap r o f o u n di m p a c ti n h o ws o cc a nb et e s t e de f f e c t i v e l y i th a sb e c o m eat r e n dt h a tav a r i e t yo f e m b e d d e dm e m o r i e sa r ei n t e g r a t e d0 1 1s o c s d u e t ot h el i m i to ft h ea 旺s t o r a g ec a p a c 咄i ti si m p o s s i b l et oa p p l yt e s tv e c t o r sf r o ma t e d i r e c t l y i no r d e r t oc o m p r e s st e s tv e c t o r s ,ai 删m b i s ta r c h i t e c t u r ei sp r o p o s e di 1 1t h i sp a p e r a l lt h ev e c t o r sn e e d e da t eg e n e r a t e db yt h em b i s tc i r c u i t ,a n dt h ee m b e d d e dm e m o r i e sa r e t e s t e da u t o m a t i c a l l y t h i sa r c h i t e c t u r es u p p o r t sv a r i o u sk i n d so f m e m o r i e s ,s u c ha ss i n g l e p o r t , d u a l - p o r ts r a m , c a c h em e m o r y , c a m , e t c an e wa l g o r i t h mf o rc a m t e s ti sa l s ou s e dt o r e l e a s et h ed i f f i c u 时i nt e s t i n gc a m a a gp o r ti sas t a n d a r dt e s ti n t e r f a c e , j fu s 雌b o u n d a r y - s c a nt e c h n o l o g y , w h i c he n a b l e s e n g i n e e r st op e r f o r me x t e n s i v ed e b u g g i n ga n dd i a g n o s t i c s o nas y s t e mt h r o u g has m a l l n u m b e ro fd e d i c a t e dt e s tp i n s i nt h i sp a p e r , j t a gi n t e r f a c ei su s e dt o t e s ta r mc o r e b y m a k i n gu s eo f t h ea h i l 酊o f e x t e n d i n gs c a nc h a i n s ,i ti sa l s ou s e dt oi n i t i a l i z em b i s t a n ds c a n o u tt h ef m a lr e s u i t i ng e n e r a li nt h ep r o c e s so f t e s t i n gs o c ,e s p e c i a l l yf o rs o m em a c r oc e l l s ,t h ee f f i c i e n c y i sf a i r l yl o w at e s ts c h e d u l i n ga n dv e c t o r - m e r g em e t h o di sp r o p o s e dt os o l v et h ep r o b l e m i t s h o w st h a tt h en u m b e ro ft e s tp a t t e r n sa n dt i m er e q u i r e dt ot e s tt h ec p uc o r ei sr e d u c e db y 5 0 o rs o k e vw o r d s s o c m e m o r y t e s t b i s t ( b u i l t - i ns e l f t e s t ) t e s ts c h e d u l e t e s tc o m p r e s s v 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过 的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 研究生签名:盏。兰= 弛日期:塑1 6 :虫3 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印 件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质 论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括 刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 研究生签名:盏:主:蛰i 导师签名: 第一章绪论 第一章绪论 随着集成电路制造工艺的不断进步,以及基于i p ( i n t e l l e c t u a lp r o p e r t y ) 重用的设计方法革新, s o c 目益成为l c 设计的主流之一【i 】。通常s o c 芯片可能包含下列模块:c p u c o r e 、嵌入式存储器、 d s p c o r e ,片上总线、各种外设以及a d c d a c 等,有时甚至包括r f 模块。s o c 芯片的高度复杂性 给测试带来了极大的挑战【z j 根据摩尔定律,芯片上集成的晶体管数每1 8 个月翻一番。因为摩尔定律的作用单个晶体管的制 造成本不断下降,与此同时单个晶体管的测试成本却基本不变( 如图l ,l 所示) 。为了使得晶体管测试 成本随着制造成本同步下降,低成本的测试方法研究显得尤为重要。 o 1 占0 0 1 雪o 0 0 1 星0 0 0 0 1 o o0 0 0 0 0 1 0 。0 0 0 0 0 1 c a p t i a lc o s tp e rt r a n s i s t o r k 、l 1 m a n u f a c t u r e 。、 、- t e s t i n a 一一一一二 1 9 8 51 9 9 0 1 9 9 52 0 0 02 0 0 52 0 1 02 0 1 5 圈1 1 测试成本与制造成本的变化趋势 1 1s o c 测试面临的挑战 1 系统性鸵的不斯提升 随着集成电路工艺的进步。芯片性能不断提升,时钟频率越来越高,这也对测试提出了新 的挑战。首先,芯片性能的提高要求a t e ( a u t o m a t i ct e s te q u i p m e n t ) 性能也同步提高,然而a t e 性能提高的速度远低于s o c 性能提高的速度。其次随着特征尺寸的不断缩小,在当前超深亚微 米工艺条件下引入了一些新的电路故障,比如延时( d e l a y ) 故障、串扰故障( c r o s s t a l k ) 和噪声故障 0 q o i s e ) ,这就要求对芯片进行a t - s l x 硝测试。因此a t e 较低的主频与s o c 芯片的高性能正成 为一对尖锐的矛盾。 2 g a t e i o 不膏让开 由于m 重用的设计方法革新,s o c 芯片设计能力大大增加,芯片规模也日益扩大。但是相 对而言,芯片i o ( 不包括电源和地) 增加却没有那么快因此0 a t c 与l o 之比( g a t e 1 0 ) 不断增加。 g a t c i o 的增加使得芯片测试更加困难,g a t e i o 增加可以理解为芯片测试接入带宽t a b ( t e s t a c c e s s b a n d w i d t h ) 不断下降,从而降低了芯片内逻辑的可观察度、可控制度,对芯片内部模块( 尤 其是嵌入式m z m o r y ) 的访问也交得越来越困难。从a t e 设备的角度来看,a t e 设备信号遥道 1 - 东南大学硕士学位论文 ( c h a n n e l ) 数增加不多也导致测试接入带宽的下降。有限的测试接入带宽正日益成为s o c 测试 的瓶颈,随之带来的问题有测试矢量加载耗费大量的时间,测试效率低下,测试时间变得不可 忍受。因此如何突破测试带宽的限制已成为目前测试研究中的热点之一脚。 图1 2g a t e a o 和g a t e c h a n n e l 不断增加 3 a t e 存储容量的限制 随着芯片规模的不断扩大,芯片测试所需的矢量急剧增加。对于目前主流的s o c 芯片,动辄集成了 几百万甚至上千万的逻辑门,有的芯片一条扫描链就包含了上万个触发器,为了测试这样规模的芯 片。必然需要庞大的测试矢量集合。而对于大多数a t e 而言,其存储容量十分有限。特别是某些低 成本a t e ,它们的测试矢量深度通常只有几m 到十几m 。如何有效的压缩测试矢量解决大的预9 试 矢量集和有限的存储容量之间的矛盾,就成为芯片测试中一个急需解决的问题。 1 2s o c 测试策略和难点 s o c 是一个复杂的系统,图1 3 所示为一个典型的基于a r m 的s o c 结构框图。由于s o c 结构 和功能的复杂性,对于不同类型的模块需要采用不同的测试策略,而且芯片的测试方案需要进行综 合的考虑。就s o c 的结构而言,它主要由几个必不可少的部分:c p u c o r e 、片上存储器以及由随机 逻辑构成的各个功能模块等构成。下面就这几个部分分别说明它们所采用的测试方法和策略嘲。 1 麓机逻辑与扫接著试 所谓可测试性( t e s t a b i l i t y ) 就是指电路节点的可控制性和可观察性,可测试性设计( d f t , d e s i g n f o rt e s t ) 的目的就在于提高电路的可测试性和可观察性 5 1 。随着电路规模的不断扩大,电路内部的 节点变得越来越难以控制和观察,特别是时序单元( 如触发器、锁存器等) 的存在,使得电路的测 试变得越来越困难1 6 1 针对时序电路的可测试性问题,对于一般的随机逻辑部分通常采用扫描测试的方法,即将电路中的 触发器替换成扫描触发器( 例如,d f f - - , s d f f ) 并且使这些触发器首尾相连组成若干条扫描链。这样 电路中所有触发器的q 端就变为直接可控而d 端就变为直接可观察。如果将电路中所有的触发器替 换为扫描单元,并采用统一的测试时钟以及复位信号,则在测试时可以将整个电路看作纯组合电路, 在测试矢量生成的时候也可以直接应用组合电路的测试矢量生成算法。这种测试方法称为全扫描 ie再),3s娶。量_o 第一章绪论 ( f u l l _ s c a n ) 【7 】。为了减少测试的面积开销、降低测试电路对电路性能的影响以及减少测试功耗, 有时并不将电路中所有的触发器都替换成扫描单元,而是在对测试覆盖率影响不大的前提下只替换 一部分触发器,这种方法称为部分扫描( p a f t i a l 觚) 嘲。 图1 3 基于删的s o c 结构框图 2 嵌入式存储器测试与b i 汀 随着s o ( 2 设计能力的不断提高,s o c 所实现的功能也更加复杂。与此同时实现这些功能所需要 的存储容量也不断增加,各种类型的嵌入式存储器越来越广泛的应用于s o c 芯片中。随着半导体制 造工艺的不断进步,存储器密度不断增加,存储单元面积越来越小,彼此之间越来越接近,存在故 障的可能性越来越大。为了有效的检测出这些故障,需要引入新的存储器故障模型,应用新的测试 和诊断算法。这些都使得嵌入式存储器的测试成为s o c 测试中的一个难点。 对于s o c 芯片中的嵌入式存储器而言,由于其结构的特殊性,无法采用结构测试而只能进行功 能测试。随着嵌入式处理器在s o c 芯片中广泛的应用,以及存储容量的不断增长,如果通过a t e 加 载所有的功能测试矢量,月要求a 1 t 存储大量的测试矢量,而且测试时间也将交得不可忍受。另外 如果利用筒陋测试内部的嵌入式存储器还需要一个外部测试接口,对于多数s o c 芯片而言这是不现 实的。另一种可行的方案是通过矢量转换的方法,即将内部加载在嵌入式存储器上内部的测试矢置 转换为芯片外围管脚上的测试矢量,但这无疑将大大增加测试矢量生成的难度。 b i s t ( b u i i t - l r v s d f - t e s t ) 概念约引入可以很好的解决了嵌入式存储器的测试这一难题唧。所谓 内建自测试( b i s t ) 就是将测试相关的电路集成在芯片中,芯片测试时测试过程完全由b i s t 电路 完成而无须外部的干预。b i s t 电路的应用带来下列好处i l o l : 1 大大降低钡5 试矢量生成的难度和测试开销; 2 a t e 上需要存储的测试矢量大大减少,达到压缩测试矢量的目的; 3 对测试带宽的需求大大降低; 4 能实现a t - s 嘟d 测试,检测出与时序相关的故障。 东南大学硕士学位论文 图1 4b i s t 一般结构 然而m b i s t 的设计也是一个复杂的问题,它需要对问题进行综合的考虑,例如如何支持各种不 同类型的嵌入式存储器,所采用的测试算法以及存储器的时序特性等。 3 c p u 拔的测试 c p u 是s o c 芯片的核心部分,通常s o c 芯片中都会包含一个甚至多个c p u 核。对于测试工程 师而言,一般无法了解这些c p u e o r e 具体的内部结构,测试时只能将它们当成b t a c k b o x 处理。因此 这些c p u c o r e 的测试也是测试中的一个难点l l ”。通常解决这一问题的方法有两种: 1 自己编写功能测试矢量。然而这种方法不但要求测试工程师对c p u 内核十分了解,而且很 难保证最终的故障覆盖率。 2 , 使用内核m 供应商所提供的测试矢量。通常内核口的提供者都会提供相应的内核测试矢 量。有些c p u 内核的设计者在设计阶段已经考虑了铡试的问题,并在内核中加入了内建的 d f t 电路( 如a r m c o r e ) 。利用这些d f t 电路可阻很方便的访问内核的内部逻辑,测试者甚 至可以生成自己的测试矢量。 c p u 核是一个高度复杂的系统,它可以执行各种指令。因此对c p u c o r e 进行功能测试时,需要 执行各种c p u 指令因此为了保证测试覆盖率,通常c p u 核的功能测试矢量都很大,对于串行测 试矢量来说尤其如此。例如,a r m 提供了共9 9 8 k 的a r m 7 t d m l 串行测试矢量,而某些低成本a t e 其测试矢量深度仅为几兆 测试矢量的大小和测试时间始终是测试中的两个核心问题,后面的讨论也始终围绕这两点进行 展开。根据上面的分析,c p u c o r e 和嵌入式存储器是s o c 测试中两个必不可少的部分,也是测试的 难点。如何压缩这两部分测试矢量,减少它们的测试时间是本文的重点。在后续的章节中,将就这 两个部分的测试进行详细的讨论。 1 3 论文结构 本文第一章介绍了s o c 测试所面临的挑战,针对s o c 测试策略以及难点提出了解决嵌入式存储器及 内核测试问题的方案。第二章详细介绍了j t a g 接口的相关知识以及通过串行测试矢量对 a r m 7 t d m i 进行测试的方法另外还介绍了如何生成定制的测试矢量。第三章详细介绍了存储器测试 的相关知识,给出了新的c a m 测试算法,并使用了一种新的m b i s t 结构。第四章从测试调度的角 度,提出了整合测试矢量的方法优化了测试时间压缩了测试矢量。最后总结了有待改进之处以及今 后的研究方向。 第二章j t a g 接口及a r m 核的测试 第二章j t a g 接口及a r m 核的测试 2 1j t a g 接口简介 j t a g 是j o i n t t e s t a c t i o ng r o u p 的简称。i e e e1 1 4 9 1 标准就是由j t a g 这个组织最初提 出的,最终由i e e e 批准并且标准化的【1 2 】。所以,i e e e1 1 4 9 1 这个标准一般也俗称j t a g 调试标准。 j t a g 最初是用来对芯片进行测试的,基本原理是在器件内部定义一个t a p ( t e s t a c c e s s p o r t ;测试 访问接口) 通过专用的j t a g 测试工具对进行内部节点进行测试“。 2 1 1 边界扫描 在j t a g 标准当中,边界扫描( b o u n d a r y - s c a n ) 是一个很重要的概念。边界扫描技术的基本思想 是在芯片的输入输出管脚上增加一个移位寄存器单元。因为这些移位寄存器单元都分布在芯片的边 界上( 周围) ,所以被称为边界扫描寄存器( b o u n d a r y - s c a n r e g i s t e r c e l l ) 。当芯片处于调试状态的 时候,这些边界扫描寄存器可以将芯片和外围的输入输出隔离开来。通过这些边界扫描寄存器单元, 可以实现对芯片输入输出信号的观察和控制。对于芯片的输入管脚,可以通过与之相连的边界扫描 寄存器单元把信号( 数据) 加载到该管脚中去;对于芯片的输出管脚,也可以通过与之相连的边界 扫描寄存器“捕获( c a v i i j r e ) 该管脚上的输出信号。在正常的运行状态下,这些边界扫描寄存器 对芯片来说是透明的,所以正常的运行不会受到任何影响。这样,边界扫描寄存器提供了一个便捷 的方式用以观测和控制所需要调试的芯片。另外,芯片输入输出管脚上的边界扫描( 移位) 寄存器 单元可以相互连接起来,在芯片的周围形成一条边界扫描链( b o t m d a r y - s c a n c h a i n ) 。一般的芯片都 会提供几条独立的边界扫描链,用来实现完整的测试功能。边界扫描链可以串行的输入和输出,通 过相应的时钟信号和控制信号,就可以方便的观察和控制处在调试状态下的芯片,而对边界扫描链 的控制主要是通过t a p ( t e s t a c c e s s p o r t ) c o n 拄o l l e r 来完成的。 2 1 2t a p 控制器 在i e e e1 1 4 9 1 标准里面,寄存器被分为两大类;数据寄存器( d r - d a t ar e g i s t e r ) 和指令寄存器 ( 1 r - l n s t n j c t i o nr e g i s t e r ) 。边界扫描链属于数据寄存器中很重要的一种。边界扫描链用来实现对芯片 的输入输出的观察和控制。而指令寄存器用来实现对数据寄存器的控制,例如:在芯片提供的所有 边界扫描链中,选择一条指定的边界扫描链作为当前的目标扫描链,并作为访问对象。 t a p ( t e s t a c c e s s p o r o 是一个通用的端口,通过t a p 可以访问芯片提供的数据寄存器( d r ) 和指令 寄存器( i r ) 。对整个t a p 的控制是通过t a pc o n t r o l l e r 来完成的。t a p 总共包括5 个信号接口t c k 、 t m s 、t d i 、t d o 和t r s t :其中4 个是输入信号接口而另外1 个是输出信号接口。这5 个接口信号所 代表的含义如下: t e s tc l e e ki n p u t ( t c k ) t c k 为t a p 的操作提供了一个独立的、基本的时钟信号,t a p 的所有操作都是通过这个时 东南大学硕士学位论文 钟信号来驱动的 t e s tm o d es e l e c t i o nl n p n t ( t m 霸 t m s 信号用来控制t a p 状态机的转换。通过t m s 信号,可以控制t a p 在不同的状态间相互 转换。t m s 信号在t c k 的上升沿有效。 t e s td a t ai n p u t ( t d l ) t d l 是数据输入的接口。所有要输入到特定寄存器的数据都是通过) i 输入端口串行输入的 ( 由t c k 驱动) - t e s td a t ao u t p u t ( t d o ) 1 1 ) o 是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过1 d o 输出端口串行 输出的( 由t c k 驱动) 。 t e s tr e s e tl n p u t ( t r s t ) t r s 下可以用来对t a pc o n t r o l l e r 进行复位( 初始化) 。不过这个信号接口在i e e e1 1 4 9 1 标准 里是可选的,因为通过t m s 也可以对t a p c o n t r o l l e r 进行复位( 初始化) 操作。 通过t a p 接口,对数据寄存器( d r ) 进行访问的一般过程是: 1 通过指令寄存器( i r ) ,选定一个需要访问的数据寄存器; 2 把选定的数据寄存器连接到t d i 和t d o 之间: 3 通过t d i 把需要的数据输入到选定的数据寄存器中;同时把选定的数据寄存器中的数据通过 t d o 读出来。 t a p 状态机如图2 1 所示,总共有1 6 个状态。在图中,每个六边形表示一个状态,六边形中标有 该状态的名称和标识代码。图中的箭头表示了t a pc o n t r o l l e r 内部所有可能的状态转换流程。状态的 转换是由t m s 控制的,根据t m s 的值,t a pc o n t r o l l e r 从当前状态转换到下一个状态。例如假设t a p c o m r o l l e r 的当前状态为s e l e c t - d r - s c a n ,在下一个t c k 时钟周期到来时,如果t m s = 0 ,t a p c o n t r o l l e r 进x c a l y m r e - d r 状态:如果t m s = l ,t a pc o 曲0 1 l e r 进入s c i c i r s c m 状态。 下面是各个状态所对应的含义 t e a - l o g i cr e s e t 系统上电后,t a p c o n t r o l l e r 自动进入该状态。在该状态下,铡试部分的逻辑电路全部被禁用, 以保证芯片核心逻辑电路的正常工作。通过t r s t 信号也可以对测试逻辑电路进行复位,使得t a p c o n t r o l l e r 进入t e s t - l o g i cr e s e t 状态。 r u n - t e s t i d l e 这个是t a pc o n t r o l l e r 在不同操作问的一个中问状态。在该状态下,如果t m s 一直保持为0 t a p c o n n o l l a 将一直保持在r u n - t e s t i d l e 状态下;如果t m s 由0 变为1 ,将使t a p c o n t r o l l e r 进入 s e l e c t - d r - s c a n 状态。 s e l e c t - d r - s o a n 这是一个临时的中间状态。如果t m s 的值为0 ,t a p c o n t r o l l e r 进入c a p t e - d r 状态,后续的 系列动作都将以数据寄存器作为操作对象;如果t m s 的值为1 ,t a p c o n t r o l l e r 则进入s e l e c t - i r - s c a n 状态。 c a p t u r e - d r 当t a pc o n t r o l l e r 处于这个状态时,在t c k 的上升沿,芯片输出譬脚上的信号将被“捕获”到与 第二章j t a g 接口及a r m 核的测试 之对应的数据寄存器的各个单元中去。如果t m s 为0 ,t a p c o n t r o l l e r 进入s h i t - d r 状态;如果t m s 为l ,t a pc o n t r o l l e r 进入e x i t l d r 状态。 图2 1t a p 控制器状态转换图 s h i f t - d r 当t a p c o n l r o l l e t 处于这个状态时,每一个时钟周期,连接在t d i 和t d o 之间的数据寄存器播 从t d i 接收一位数据同时通过t d o 输出一位数据。如果t m s 为0 ,t a pc o n t r o l l e r 保持在s h i t t - d r 状态;如果t m s 为l ,t a p c o n t r o l l e r 进入到e x i t l d r 状态。假设当前的数据寄存器的长度为4 如果t m s 保持为0 ,那在4 个t c k 时钟周期后,该数据寄存器中原来的4 位数据( 在c a p t u r e - d r 状态中捕获的数据) 将从t d o 输出来;同时该数据寄存器中的每个寄存器单元中将分别获得从t d i 输入的4 位新数据 u p d a t e - d r 在u p d a t e - d r 状态下,数据寄存器当中的数据将被加载到相应的芯片管脚上去,用以驱动芯片。 在该状态下,如果t m s 为0 ,t a p c o n l x o l l e r 将回到r t n v t e s t i d l e 状态;如果t m s 为l ,t a p c o n t r o l l e r 将进入s e l e c t - d r - s c a n 状态。 s e l e e r - i r - s c a n 这是一个临时的中间状态。如果t m s 的值为0 ,t a p c o n h o l l e r 将进入c a p t u r e - i r 状态,后续的 系列动作都将以指令寄存器作为操作对象;如果t m s 的值为l ,t a p c o n a o l l e r 将进入t e s t - l o g i c r e s e t 状态 c a p t q r e i r 东南大学硕士学位论文 当t a pc o n t r o l l e r 处于这个状态时,在t c k 的上升沿到来后,一个特定的逻辑序列将被装载到 指令寄存器中去如果t m s 为0 ,t a p c o n t r o l l e r 进入s h i f t - i r 状态;如果t m s 为l ,t a p c o n l r o l l a r 进入e x i t l i r 状态。 s h i f t - m 当t a p c o n t r o l l e r 处于这个状态时,每一个时钟周期,连接在t d i 和t d o 之间的指令寄存器将 从t d i 接收一位数据,同时通过t d o 输出一位数据,如果t m s 的值为0 ,t a pc o r 血o l l e r 保持在 s “n i r 状态;如果t m s 的值为l ,t a pc o n t r o l l e r 进入到e x i t l 限状态。假设指令寄存器的长度 为4 。如果t m s 保持为0 ,那在4 个t c k 时钟周期后,指令寄存器中原来的4 b i t 长的特定逻辑序列 ( 在c a p t u r e - i r 状态中捕获的特定逻辑序列) 将从t d o 输出来,该特定的逻辑序列可以用来判断操作 是否正确;同时指令寄存器将获得从t d i 输入的一个4 b i t 长的新指令 u p d a t e - l r 在该状态下,在s h i r - i r 状态下输入的新指令将被用来更新指令寄存器。 下面是访问指令寄存器和数据寄存器的一般过程: 1 系统上电,t a pc o n 打o l l e r 进入t e s t - l o g i cr e s e t 状态,然后依次进入:r u n - t e s t i d l e _ s e l e c t - d r - s c a n - s e l e c t - i r - s c a n - , c a p t u r e - i r _ s h i f b m _ e x i t l i r - u p d a t e - i r ,最后回到 r u n - t e s t i d l e 状态。在c a p t u r e - l r 状态下,特定的逻辑序列被加载到指令寄存器当中;然后进入 到s i f t f b m 状态在s h i f t - m 状态下,可以将一条特定的指令送到指令寄存器当中去,每条指令都 将确定一条相关的数据寄存器。然后从s h i f t - m _ e x i t l i r u p d a _ t c - m 。在u p d a t e - m 状态,刚才 输入到指令寄存器中的指令将用来更新指令寄存器。最后,进入到r t m - t e s t i d l e 状态,指令生效, 完成对指令寄存器的访问。 2 要访问由指令选定的数据寄存器,需要以r t m - t e s t i d l e 为起点,依次进入s e l e c t - d r - s c a n - - , c a p t u r e - d r s h i f t - d r _ e x r i d r - + u p d a t e - d r ,最后回到r t m - t e s t l d l c 状态。在这个过程当 中,当前指令选定的数据寄存器会被连接在t d i 和t i n ) 之间。通过t d l 和t d o ,就可以将新的数 据加载到数据寄存器当中去,同时,也可以捕获数据寄存器中的数据。具体过程如下。在 c a p t m e - d r 状态中,芯片管脚上的输出信号被捕获到相应的边界扫描寄存器单元中去。这样,当 前的数据寄存器就记录了芯片相应管脚上的输出信号。接下来从c a p t u r e d r 进入到s h i r - d r 状 态。在s h i r - d r :状态下,在每一个时钟周期内,一位新的数据可以通过t d i 串行输入到数据寄存 器当中去,同时数据寄存器可以通过t d o 串行输出一位先前捕获的数据。在经过与数据寄存器 长度相同的时钟周期后,就可以完成新信号的输入和捕获数据的输出。接下来通过e x i t l d r 状态 进入到u p d a t e d r 状态。在u p d a t e - d r 状态中,数据寄存器中的新数据被加载到与数据寄存嚣的 每个寄存器单元相连的芯片管脚上去。最后,回到r u n - t e s t i d l e 状态,完成对数据寄存器的访问。 2 1 3 指令寄存器、公共指令以及数据寄存器 在i e e e1 1 4 9 1 标准当中,规定了一些指令寄存器、公共指令和相关的一些数据寄存器。对于特 定的芯片而言,芯片厂商都一般都会在标准的基础上,扩充一些指令和数据寄存器,以方便在开发 过程中的测试和调试。在这里将首先介绍i e e e1 1 4 9 1 规定的一些常用的指令及其相关的寄存器。 第二章j t a g 接口及a r m 核的测试 指令寄存器。 允许特定的指令装载到指令寄存器当中,用来选择需要执行的测试,或者选择需要访问的测试 数据寄存器。每个支持j t a g 的芯片必须包含一个指令寄存器。 b y p a s s 指令和b y p a s s 寄存器: b y p a s s 寄存器是一个一位的移位寄存器,通过b y p a s s 指令,可以将b y p a s s 寄存器连接到1 d i 和 t d o 之间。在不需要进行任何测试的时候,将b y p a s s 寄存器连接在t d i 和t d o 之问,在t d i 和t d o 之间提供一条长度最短的串行路径这样允许测试数据可以快速的通过当前的芯片送到开发板 上别的芯片上去。 i d c o d e 指令和d e v i c ei d e n t i f i c a t i o n 寄存器: d e v i c ei d e n t i f i c a t i o n 寄存器中包括生产厂商的信息,部件号码,和器件的版本号等信息。使用 i d c o d e 指令,就可以确定器件的相关信息。例如,a r mm u l t i - i c e 可以自动识别当前调试的 是什么芯片,其实就是通过i d c o d e 指令访问d f f v i g ei d e n t i f i c a t i o n 寄存器来获取的 i n t e s t 指令和b o u n d a r y - s c a n 寄存器: b o u n d a r y - s c a n 寄存器就是前面所说的边界扫描链。通过边界扫描链,可以对芯片的输入输出进 行观察和控制,以达到测试内部逻辑的目的。t n t e s t 指令是在l e e e1 1 4 9 1 标准里面一条很重要 的指令:结合边界扫描链,该指令允许对芯片的系统逻辑进行内部测试。在a r mj t a g 调试当 中,这是一条频繁使用的测试指令。 上面提到的b y p a s s 寄存器、d e v i c ei d e n t i f i c a t i o n 寄存器和a o u n d a r y - s c a n 寄存器( 边界扫描链) ,都属 于数据寄存器。在调试和测试中,边界扫描寄存器( 边界扫描链) 最重要,使用得也最为频繁。 2 2a r m c o r e 的测试和调试 测试a r g o r e 一般可以采用下面三种不同的方法: 1 传统的并行测试 a r m 公司提供了1 0 组共1 0 k 的测试矢量来检测a r m 7 t d m i 的所有功能。并行测试方法要求 能够直接访问a r m c o f e 的所有i ,o 端口信号,对于大多数采用a r m 内核的s o c 来说,这是不现实 的。 2 使用j t a g 接口进行串行测试 因为a r m c a y i - e 内集成了j t a g 接口,因此可以利用它访问a r m 的内部逻辑。由于通过j t a g 接1 2 1 测试a r v o f e 时测试矢量必须串行的加载。因此相对于并行的测试方法,采用该方法测试a r m 内核,测试矢量的长度将大大的增加。a r m 公司提供了共约9 0 0 k 的串行测试矢量。 3 使用a m b a 总线 这种方法使用标准的a r m 片上总线a m b a ( a d v a n c e dm i c r o c o n t r o l l e rb u sa r c h i t e c t u r e ) 对 删c o r e 进行测试【。由于a m b a 是一种3 2 位的总线结构,因此所需加载的并行测试矢量必须分 割为3 2 位的字以使得其能够通过a m b a 总线加载到a r c o t e 。在测试时,芯片通过集成在a m b a 总线上的t i c ( t e s ti n t e r f a c e c o n t r 0 1 ) 加载测试矢量。这需要额外增加3 个管脚,总的测试矢量大小约 为l o o k 。 在本文中将采用串行测试矢量对a r i v g o i e 进行测试,然而庞大的测试矢量集使得测试时间和测 东南大学硕士学位论文 试成本大大增加。为了精简串行测试矢量,必须了解a r 1 v i c o f ej t a g 测试和调试原理从而生成自定 制的串行测试矢量。 2 2 1a r m 7 t d m i 的指令寄存器和常用的j t a g 指令 a r m 7 t d m i 指令寄存器的长度是4 位。通过t a p 和j t a g 接口,可以把指令装载到指令寄存 器当中去。在c a f f u r e l r 状态下,固定值4 b 0 0 0 1 总是被装载到指令寄存器中。在s h i f t - i r 状 态中,可以将a r m 7 t d m l 支持的新指令从t d l 串行输入,同时固定值4 b 0 0 0 1 会从t d o 串行输出 通过这个输出的固定值,可以判断当前的操作是否正确。在u p d a t e - 瓜状态,新输入的指令被装载 到指令寄存器当中并立即生效。下面是a r m 7 t d m i 调试当中用到的j t a g 指令 e x t e s t ( 4 b 0 0 0 0 ) e x t e s t 指令将通过s c a nn 指令所选定的扫描链置于外部测试模式。在c a p t u r e - d r 状态, 系统逻辑的输出值以及输出扫描单元输出到系统的值被捕获到扫描单元中。在s h i f t - d r 状态,前 面捕获的值将通过t d o 串行输出同时新值将通过t d i 输入到扫描单元中,这些数据将施加在系统 逻辑和系统管脚上 i d c o d e ( 4 b 1 1 1 0 ) i d c o d e 指令将d e v i c ei d e n t i f i c a t i o nc o d e 寄存器连接到t d i 和t d o 之间。d e v i c ei d e n t i f i c a t i o n c o d e 寄存器的长度是3 2 位,通过j t a g 接口就可以将a r m 7 t d m i 的m 给读出来。根据a r m 7 t d m i 的版本不同,测试时可能需要修改测试矢量中d 的值。在c a p l l 壤b d r 状态下,器件的i d 被捕 获到i d 寄存器里面。在s h i f t - d r 状态下,先前捕获的m 通过t d o 端口串行移出,一共需要3 2 个t c k 时钟周期。由于d 寄存器为只读寄存器,因此在u p d a t e - d r 状态下,d 寄存器不受任何 影响。 s c a nn ( 4 b 0 0 1 们 通过s c a nn 指令可以选择需要访问的扫描链。一般来说,需要访问e m b e d d e d i c e - r t 的寄存 器时,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国盖板玻璃、基板项目商业计划书
- 大一法治考试题及答案
- 房屋租赁三方协议书
- 文言文知识点梳理(3篇)人教统编版九年级语文上册
- 中国生物醇油项目创业投资方案
- 计量法考试试题及答案
- 中国合成液晶高分子项目商业计划书
- 2025年中国酸度调节剂项目创业计划书
- 中国太阳能碳化硅微粉项目创业投资方案
- 合资办学协议书
- 中学中职家长会课件
- 2023年DCA考试试题题库
- 深圳港危险品海运出口流程
- 教学设计 《掷一掷》教学设计
- 《学前教育专业发展问题研究开题报告文献综述4900字》
- 公共事业管理概论期末考试试题
- CB/T 3780-1997管子吊架
- 30屈原《楚辞·橘颂》课件
- 小学数学教材解读人教二年级上册表内乘法时解决问题PPT
- 山西省卫生院社区卫生服务中心信息名单目录
- 六三制新青岛版四年级科学上册第一单元《动物王国》全部课件(一共5课时)
评论
0/150
提交评论