论文部分内容阅读
指令级测试方法是一种通过指令测试微处理器自身故障的测试方法。指令是微处理器芯片区别于其他芯片的重要特点。指令流控制微处理器的运行,可以影响到微处理器所有的内部逻辑。通过指令测试微处理器的故障,可以大大减少甚至没有测试开销、降低测试功耗、更有效的对性能相关故障进行测试。在相应存储技术配合下还能够减少对高端测试设备的使用,降低测试成本。但是在复杂的微处理器设计中,指令级测试需要解决测试复杂度、测试有效性和测试效率等问题。现有的指令级测试,为了降低复杂微处理器的测试难度,大多采用模块级测试方法,而微处理器中的部分模块,指令对其内部信号的控制和观测能力有限,进行指令级测试比较复杂,测试覆盖率难以满足要求。这些是指令级测试需要解决的问题。
本文对微处理器芯片进行了指令级测试方法研究,提出一种指令级可测性概念及其分析方法并以此为基础,针对微处理器主要的三类部件,功能部件、控制部件和存储部件设计了相应的指令级测试方法。文中在龙芯2号微处理器上的部分模块中实践了相关研究,获得了很好的效果。本文的主要贡献和创新点如下:
1)提出一种能够应用于不同设计层次的指令级可测性分析方法。现有指令级可测性相关的研究主要针对高层次的简单设计,无法应用在复杂微处理器的实际测试中。本文根据微处理器设计的特点,对触发器和模块边界信号的指令级可控制性和可观测性进行分析。这种分析方法不仅可以从网表获得较为准确的数据,同时还可以反馈回RTL级或者结构级设计,作为修改设计、提高相关可测性的依据。利用这种指令级可测性的分析,结合相关信号对故障覆盖率的影响,可以用更少的代价高效地进行指令级可测性设计。
2)基于上述指令级可测性分析方法,本文建立了一种基于指令级可测性的指令级测试流程。传统的指令级测试流程优先测试指令容易测试的部分,对指令难以测试的部分只能回避,或者通过大量人工干预进行测试,因此对于复杂的微处理器设计测试效果不好。本文建立的流程,在前述的指令级可测性分析基础上,结合覆盖率分析指令级测试的效果,通过指令级可测性设计完成难以测试部分的指令级测试。该流程不受微处理器设计复杂度的影响,因此提高了指令级测试的效率和测试覆盖率,扩大了指令级测试的应用范围。
3)在上述工作基础上,根据龙芯2号微处理器中具体设计的特点,对难以通过指令进行测试的逻辑,提出了相应的指令级可测性设计方法。根据指令级可测性和故障覆盖率的分析,通过新设计的指令提高相关逻辑的指令级可控制性或指令级可观测性,简化指令级测试。数据表明,通过指令级可测性设计可以大幅提高指令级测试的效率和效果,而带来的面积的开销小于0.5%,对性能的影响为零。
4)对典型的存储部件内容索引存储器的测试中,本文针对电路单元的结构,提出基于物理故障模型的指令可实现算法,该算法可以完成对目标故障100%的测试,同时其不仅可以应用在BIST设计中,也可以通过指令实现,便于进行在线测试等。实验数据表明该算法能获得很好的测试效果。