文献标识码: A
DOI:10.16157/j.issn.0258-7998.2016.09.007
中文引用格式: 焦芳,张玥,严韫瑶,等. 多时钟域并行测试控制器的设计[J].电子技术应用,2016,42(9):29-31,35.
英文引用格式: Jiao Fang,Zhang Yue,Yan Yunyao,et al. Design of parallel test controller applied to multiple clock domains[J].Application of Electronic Technique,2016,42(9):29-31,35.
0 引言
随着集成电路产业的发展,设计、制造、测试已成为电路中十分关键的技术。测试成本伴随着集成电路规模的增大,已经占到整个生产制造成本的三成以上,并且还有向上增长的趋势[1]。如图1[2]显示了近几年测试数据量的增加。
从上图可以看出,测试数据量正在逐年增加,对测试的要求也会越来越高,因此,是否可以提高测试效率日趋成为集成电路产业的关键。
JTAG(联合测试行动小组)希望可以找到一个通用的解决方案来处理测试问题。该机构推出了IEEE 1149.1这个标准,是IEEE推出用来进行芯片测试的一个标准,现在又发展更新出了IEEE1500及IEEE1687,而业内多使用IEEE1149及IEEE1500作为测试标准[3]。
陈寿宏[4]等通过IEEE1500搭建SOC测试平台对电路进行测试,虽然可以正确地实现测试任务,但若对大规模电路进行测试则会消耗很多的测试时间,增加测试成本。谈恩民等[5]通过使用IEEE1500 wrapper的相关概念设计出可以支持sram故障测试的测试控制器。Elvira K[6]等也认为基于IEEE1500标准可以提高测试质量。本设计中同样采用了IEEE1149、IEEE1500的相关概念,并加入了不同时钟域并行配置通用寄存器的概念,在超大规模集成电路中可以提高测试效率,节省测试时间。
1 TAP控制器的设计[7]
引言提到的IEEE 1149.1标准里,有两类非常重要的寄存器:数据寄存器和指令寄存器。TAP的主要功能就是用来访问芯片的所有数据寄存器和指令寄存器。TAP结构的TMS信号用来控制状态机的转换,TDI、TDO分别为数据的输入和输出。TCK和TRST分别为时钟信号和复位信号。
TAP的状态机如图2所示,状态机的转换是由TMS所控制的,整个TAP Controller 在TCK的驱动下,通过TMS=0,1会分别指向不同的次状态。
本设计采用IEEE1149中TAP的相关概念来进行数据寄存器和指令寄存器的配置以此搭建测试平台。
2 IEEE1500 wrapper的设计[8]
IEEE工作组提出了一种称为外壳(wrapper)的结构,它是IEEE1500标准对比IEEE1149标准的重大创新和突破。
wrapper标准测试壳结构包括旁路寄存器(WBY)、指令寄存器(WIR)、边界寄存器(WBR)等。该结构壳的特点在于可以增强内部不可见节点的可观察性,提高测试质量。wrapper的结构图如图3所示[9]。
该外壳在正常工作模式情况下,由于测试功能未被启动,完全不会影响到芯片的正常逻辑功能。具体的实现是通过相应的bypass功能。外壳wrapper通过bypass寄存器单纯将外部电路与内部的function IP正常连接。正常模式下,输入被打入外壳后被输入到bypass寄存器1拍后随后从输出端口输出。只有在测试模式下才会将输入输出连接入相应的扫描链。
3 并行配置通用寄存器的研究
通过在不同时钟域设计并行总线,来满足同时并行配置通用寄存器的要求。每个时钟域同时含有总线WPI,一旦输入相应的并行配置指令,WPI同时作为所有时钟域通用寄存器的输入,对通用寄存器进行配置,对其做如下设计的主要目的是可以提高测试效率,满足同时对通用寄存器配置的需要。其结构简图如图4所示。
4 结果分析
下面将从IEEE1149中tap的实现,IEEE1500中wrapper的实现,以及多时钟域并行配置通用寄存器的实现这3个方面分析结果。
4.1 IR、DR的访问实现
TAP控制器对IR、DR的访问实现verdi波形图如图5所示。
观察该波形图可知,该波形图依次体现了TAP对指令寄存器的访问和对数据寄存器访问的实现,完成了如图2所示TAP状态机的转换,成功实现了IEEE1149 TAP的相关功能。
4.2 IEEE1500 wrapper的仿真实现
IEEE1500 wrapper实现的仿真电路图如图6所示。
上面一系列仿真图是带有wrapper的基于IEEE1500标准测试器的仿真实现。与IEEE1149相比它增加了一个SelectWIR signal,从而只用一个CAPTUTURE_DR即可实现CAPUTURE_IR及CAPTURE_DR的功能。SHIFT_DR、UPDATE_DR同理。其中所有测试信号均包上了一层wrapper。
上述仿真图实现了完整的指令寄存器及数据寄存器的访问实现。
4.3 并行配置通用寄存器的仿真实现
实现并行配置通用寄存器的仿真图如图7所示。
所配置的寄存器是5个clock domain均有的通用寄存器,首先不采用并行配置的方法,即各个时钟域以串行的方式配置其值均为’h26e,完成5个时钟域通用寄存器的配置共耗时间0.15 ns;而当采用多个时钟域并行配置通用寄存器的方法,并行配置通用寄存器值为’h34d,则可同时完成5个时钟域的配置,节省掉串行配置寄存器所耗时间,可以提高测试效率。
上图仅以5个时钟域举例,然而在现阶段的大规模集成电路设计中,所用到时钟域往往有几十个,可以推测出此种配置通用寄存器的方法可以大大地节省测试时间。
4.4 测试时间
表1为普通的测试控制器配置通用寄存器消耗的仿真时间随时钟域数目增加的变化(所有时钟域串行配置)。普通的基于IEEE1500标准的测试控制器配置通用寄存器时,所需要消耗的时间会随着clock domain的增加而增加,会消耗大量的测试时间,在大规模集成电路中,所需要配置通用寄存器的时钟域会非常多,通用寄存器数同样也很多,会消耗大量的资源。
表2为增加了不同时钟域并行配置通用寄存器结构的测试控制器配置通用寄存器消耗的仿真时间随时钟域数目增加的变化。
如上表我们可以清楚地看到,对比表1大量节省了配置通用寄存器的时间,并且节省的测试时间会随着寄存器数目、时钟域数目的增加而增加,可以极大地提高测试效率。
5 结论
本文详细介绍了IEEE1149中TAP及TAP controller,以及IEEE 1500 wrapper的相关概念,并成功实现了基于以上标准的测试控制器的设计,IEEE1500的wrapper的设计实现增强了测试的可控制性和可观测性。同时提出了一种针对多时钟域并行配置寄存器的方法来提高测试效率,缩短测试时间,该方法节省的测试时间会随寄存器数、时钟域数目的增加而增加。
参考文献
[1] 吴明行,韩银和,李晓维.基于CTL的SOC IP核的测试技术[J].计算机工程与科学,2005(4):43-45.
[2] 向刚.SoC测试优化及其应用技术研究[D].哈尔滨:哈尔滨工业大学,2011.
[3] 薛利兴,张展,左德承,等.基于JTAG的硬件故障注入工具[J].智能计算机与应用,2011(4):40-43,48.
[4] 陈寿宏,颜学龙,陈凯.基于IEEE 1500的数字SOC测试系统的设计与实现[J].计算机测量与控制,2013(5):1140-1142.
[5] 谈恩民,马江波,秦昌明.SoC的存储器Wrapper设计及故障测试[J].微电子学与计算机,2011(6):122-125.
[6] ELVIRA K,MARYNA K,OLESIA G,et al.Fault Coverage Improving for SoC Based on IEEE1500 SECT standard. IEEE; 2006.
[7] IEEE Standard Test Access Port and Boundary-Scan Architecture.IEEE Std 1149.1-2001.2001
[8] IEEE 1500Group.IEEE Standard Testability Method for Embed-ded Core Based Integrated Circuits.2005
[9] 韩贵博.基于测试控制器的SOC低功耗优化设计方法的研究[D].哈尔滨:哈尔滨理工大学,2012