>
首页 » 业界动态 » 边界扫描主控器MCU设计与实现

边界扫描主控器MCU设计与实现

作者:罗秋明,雷海军  时间:2007-04-25 10:35  来源:

摘要:通过对边界扫描测试过程以及TAP的16种状态的分析,总结出边界扫描测试的核心操作,归纳出相应的核心指令,设计出一种边界扫描测试主控器的MCU控制器,并用FPGA实现。由于采用了控制器的实现方式以及具有扫描长度设置指令使得具有测试自动化程度高、灵活高效、成本低的优势。另外还单独配有指令用于和BIST功能配合。

关键词:微控制器;边界扫描;主控器;FPGA

引言

现代电子系统的PCB大量使用各种高密度的表贴元件和BGA(BallGridArray)封装元件,元器件的管脚数和管脚密度不断提高。使用普通设备甚至昂贵的针床测试仪器等传统方法已不能满足要求。早在20世纪80年代,联合测试行动组(JointTestActionGroup,JTAG)起草了边界扫描测试(Boundary-Scan Testing,BST)规范,即IEEE标准1149.121990规定,简称JTAG。但是相对昂贵的边界扫描测试系统阻碍了推广使用,其硬件系统中的主控器是关键,下面给出一种主控器MCU(Micro-ControllerUnit)设计与实现,着重于测试自动化程度、灵活与高效性以及低成本。

主控器MCU设计

主控器在测试中产生JTAG信号,其系统结构可以由PC、存储模块和测试主控处理器构成,这时主控处理器虽可以设计成简单的波形发生器和比较器,例如用计算机串口或并口,存储模块存储的是关于JTAG总线端口波形数据,以及测试对象TDO波形数据,测试过程等效于波形数据处理,与测试本身的意义没有直接关系,而实际测试过程中在TDI送出数据时,TMS端口是处于一个固定值0,保存的TMS波形数据将造成浪费,即使对这些数据采取有效编码,使得存储效率提高,仍存在数据与操作意义分离、自动化程度低、可扩展性差,增加功能时要从头彻底设计。我们的主控器按命令-解释的微控制器MCU方式来设计。

主控处理器可看成命令解释器,是按冯氏计算机的“存储程序控制”方式来工作专用计算机,具备基本的:数据处理,数据存储,数据移动和控制功能。它将测试数据与动作统一起来,以控制器的形式来实现可以获得更高的编程执行的测试自动化程度。

测试命令选取
在具体设计前,应该确定其功能需求,功能需求分析不正确,所有的工作都要重作。JTAG系统TAP(Test Access Port)的16种状态中只有部分与具体操作相关(图1中灰色状态),其它为过渡状态(图1中白色状态),且数据扫描DR-SCAN和指令扫描IRSCAN在外部行为是相似的,差别在于起始状态分别为Select-DR-Scan、Select-IR-Scan。所有操作归结为:

1)TESTRESET:BS测试电路的复位操作,由TRST信号或由5个TCK节拍以上的TMS低电位或TRST有效来实现;

2)RUNTEST/IDEL:空闲状态。测对象带有内建自测试BIST时,可在该状态下完成;

3)CAPTURE:被观测节点的值被打入到边界扫描寄存器BSR的Cell中,即由Shift-DR信号选中PI,在时钟信号Clock-DR触发下打入R1输出为SO。

4)SHIFT:数据从TDI移入(由TAP状态来区分指令或数据扫描,若为数据扫描则由IR的值确定对哪个数据寄存器操作),内部数据从TDO移出。需由一个TCK节拍的TMS为0使TAP状态从Caputure-DR/IR进入Shift-DR/IR并且保持足够节拍数的TMS为0使得数据移位完成。

5)UPDATA:边界扫描寄存器中的数据施加到被控节点上,由TMS信号使TAP状态从EXIT1-DR/IR或EXIT2-DR/IR进入Update-DR/IR状态即可实现。


图1 TAP控制器的状态图

根据总结出来的5个操作我们可以确定一个主控器所需的最基本功能应该为:(1).产生连续TCK信号;(2).发出合适的TRST信号;(3).控制TMS信号以使TAP进入到需要的状态;(4).控制TMS、TDI并配合TCK来共同完成SHIFT动作;(5).按需要产生出一定数目的空周期,使得TAP进入RunTest/Idle以完成BIST所需的足够节拍;因此处理器指令集将按这5个基本功能来设计(包括对TDO序列比对的功能),所有复杂测试操作都由这些基本操作的组合来完成,正如8086CPU中只有加减乘除法指令,而不设有能依靠这些基本指令来实现的指数运算、阶乘运算等指令一样,选取最小集合,见表1。


表-1 指令集

指令编码
指令寄存器长4-bit,只对前3-bit进行译码,剩余1位用于扩展,以增加使用过程中发现的其他有用的操作,可以方便的通过FPGA的重新编程来实现功能扩展。

最核心的指令是Sh_tms、Sh_tdi、Sh_cmp,用于产生出TMS、TDI序列以及比对TDO输出;Nop、Halt、Trst指令和他们的名称相符;Waiting指令用于配合BIST测试功能;Preserved是保留指令用于扩展功能;Set_length指令用于指定扫描操作时的扫描链长度,这条指令使得一条移位性的指令可以长达多个机器字的长度(除了第一个机器字的前4位是指令编码,如Sh_tdi等,后面都是移位数据),这将大大提高指令密度获得更好的存储模块利用率。

内部模块
按这个指令集合设计主控处理器,称为BSM(BoundaryScanMaster),见图2。将执行存储模块的指令,指令则由PC机在测试开始前写入微指令代码,BSM将测试响应与标准响应(从存储模块读入)比对并将结果写入存储模块的指定区域,最终由PC机读回分析。所以在系统中PC和BSM之间起联系作用的是共享存储模块。平时BSM的reset信号为低,BSM不工作,直到PC完成测试程序的写入后才拉高reset信号启动BSM执行任务。


图2 BSM功能框图

主控器对外的接口有:osc1时钟源;DB是到存储模块的数据总线;AB是到存储模块的地址总线;时钟部件一切时序的根源,其信号clk是系统时钟,从osc分频获得;cs和rd是对存储模块的片选和读写。节拍控制器是有限状态机,在执行指令与取指令之间切换,并且执行指令与取指令之间存在重叠Overlap以提高效率,其初始状态在复位时设置为取指,其状态的切换由各功能模块的执行结果确定。地址部件完成与存储模块之间的数据通信。具体的指令操作由各功能模块完成,最核心的是Sh_tms、Sh_tdi和Sh_cmp,前两者产生TMS和TDI波形,后者将比较TDO的输出波形。指令执行的结果表现为JTAG总线的活动。

测试结果

完成BSM的设计,用RTL级VHDL描述,经XILINX公司的FPGA应用软件转换成带迟延参数的网表,进行时序仿真验证,利用FPGA实现控制器是快速有效的途径。下面列举部分功能的仿真波形图,当地址MA12不为高阻时,是BSM读指令周期。

图3是BSM运行了22.84微秒后的一段波形,其TCK频率(即是扫描数据率)为6.25MHZ(一个TCK周期为160纳秒),在001C地址处读入了4022指令,按指令格式

它是SHTMS指令,按SHTMS的设计,移位序列是从左边第一个‘1’起(除该位)到右边的所有为都是TMS扫描序列,因此从波形可知扫描出“00010”(指令从23.020微秒执行,TDI在TCK上升沿检测,扫描序列低位先输出,请注意波形与序列的对应关系),在TMS移位的最后一个节拍内,读入了地址为“001D”的下一指令“8333”,它是SHCMP指令,

因此在指令译码后,COMPARE信号跳变为高电位,标志着比较功能激活(SHCMP与SHTDI相比多一个比较/存储部件,该器件就是在指令译码和COMPARE信号的共同作用下工作),然后按位将数据从TDI端口输入,并且向存储器写入。在上一指令未完成前,下一指令读入操作已经发生,也就是说实现了指令读入与执行的流水线操作,实现了读入与执行的Overlap重叠,提高了执行速度。


图3 SHTMS和SHCMP指令波形


图4 纯数据读入的移位输出波形

错误!未找到引用源。是移位长度较长时,BSM读入纯数据WORD“3245”的情况,从TDI输出“0011001001000101”(指令字段),采用Set_length指令后获得的超长指令字功能,提高了指令携带测试数据的能力。图5是BSM先执行“0000”NOP空操作;接着读入“4002”,执行结果为TMS变低(移位序列为一位,且为0);然后执行“4CAA”,数据位“CAA”即“110010101010”,所以在TMS送出“10010101010”;然后“4002”使TMS变低(移位序列为一位,且为0)。

图5NOP和SHTMS指令波形图6中“C000”TRST指令,产生出两个TCK长度的TRST端口的高电位,接着一个“0000”NOP指令,然后是“E009”WAITING指令,等待9+1个TCK周期;最后是“A000”HALT指令,处于停机状态,TCK也停止了。上面是关于SHCMP,NOP,WAITING,SHTMS,TRST等指令的部分仿真波形,其他波形由于篇幅原因未能全部附上。


图5 NOP和SHTMS指令波形


图6 TRST执行波形

通过烧写EEPROM并制作PCB板,经由调试后对目标测试板的测试验证了全部的功能。

结论

通过分析边界扫描测试过程和TAP的16个状态,我们总结了测试所需的最基本操作,并且以此为测试指令集,设计出了一款边界扫描测试主控器。本文作者创新点:由于采用了可编程的MCU实现方式,其测试自动化程度很高;与其它类似的边界扫描主控器相比较,在指令读入与执行过程中实现了流水线Overlap操作,具有更高的执行效率;由于在指令集当中有设置扫描链长度的指令,使得它的指令字可以跨越MCU自身的机器字长限制,其他的控制器实现方式只能按照4位指令位携带12位扫描数据位的指令密度,因此这种MCU的一条指令可以携带多个机器字长的扫描数据使得存储器利用率更高;这种以MCU控制器方式实现边界扫描测试主控器的方式具有高效灵活的特性,与进口的昂贵测试设备相比较在价格上又具有很大的优势。其中专用于BIST的wait指令也是本主控器所特有的功能,专门用于配合BIST测试结束后取回结果。

相关推荐

没有退路的FPGA与晶圆代工业者

FPGA  晶圆代工  2014-01-03

采用FPGA的可编程电阻的设计结构分析

FPGA  电阻  2013-09-24

微控制器厂商抢进移动电源及无线充电领域

微控制器  无线充电  2013-09-11

全球智能传感器市场2018年或达69亿美元

传感器  微控制器  2013-08-07

从FPGA的制程竞赛看英特尔与Fabless的后续变化

FPGA  Fabless  2013-07-16

物联网融合自动化推动高效生产模式变革

物联网  FPGA  SoC  2013-07-09
在线研讨会
焦点