论文部分内容阅读
芯片制造尺寸的逐步缩小和片上集成度的不断提高,使得数字集成电路的设计愈加复杂,设计错误随之增多。硅前验证技术难以在流片前发现所有的设计错误,一些错误遗留到硅后。硅后调试用以检测和诊断这些遗留错误。由于硅后芯片的可观测性低,导致硅后调试困难重重,其所需时间甚至占到了整个芯片开发周期的三分之一以上,使得硅后调试成为了数字集成电路设计的瓶颈之一。提高芯片的可观测性是硅后调试面临的最大的挑战,可调试性设计通过在硅前设计阶段增加辅助调试的专用硬件以加速硅后调试。作为一种主流的可调试性设计方法,基于追踪的可调试性设计利用追踪缓存实时的获取追踪数据,并通过对追踪数据的分析以检测和诊断硅后错误。但限于调试开销,追踪缓存的容量有限,调试能力也因此受限。本文工作围绕基于追踪的可调试性设计,从追踪信号选择、触发单元设计和时延错误检测等方面研究了多种提高调试效率的新方法。本文取得的创新性研究成果主要有以下三个方面: 1.提出了一种基于寄存器簇恢复的追踪信号选择方法,有效提升了追踪信号的状态恢复率。在基于追踪的可调试性设计中,有限的调试开销决定了只能追踪极为有限的信号,因此追踪信号选择是提高设计硅后可观测性的关键因素。本文首先提出了寄存器簇恢复方法,利用寄存器簇的初始状态和簇输入的追踪信息,确定性恢复寄存器簇在追踪周期内的所有状态。基于寄存器簇恢复,本文提出了一种新的追踪信号选择方法,它通过选择寄存器簇以提高追踪信号的状态恢复率。本文使用了基于反馈环和基于后向追踪的寄存器簇生成方法,并使用全局状态恢复提升率作为寄存器簇的选择标准。实验结果表明,与国际上基于概率或模拟的之前方法相比,本文的方法相对于此前最好的结果可以平均提高79%的状态恢复率,同时此方法减少了追踪信号选择的时间,需要增加的存储开销平均不超过2%。 2.提出了一种基于追踪缓存的触发单元设计方法,利用其可配置性可有效实现各种触发条件的检测。触发单元设计是基于追踪的可调试性设计的关键之一。传统的触发单元设计方法需要很高的硬件开销才能达到较强的检测能力,但实际上调试预算极为有限。本文提出的触发单元设计方法通过配置追踪缓存和设计相应的检测电路,可以检测各种触发事件和触发序列。对于触发事件检测,可将所有的有效触发集存储到追踪缓存中;对于触发序列,可将可检测该触发序列的有限状态机的状态转换存储到追踪缓存中。在相应配置完成以后,触发事件或序列的检测过程就变成了对追踪缓存的读操作和简单的比较操作。本文还通过逻辑模拟和FPGA仿真验证了所提出的触发设计的有效性。实验结果表明,与国际上基于比较器或匹配器的之前方法相比,本文提出的方法可提供更强大的触发检测能力,更强的可配置性,同时所需的硬件开销更小。 3.提出了一种基于追踪比较的时延错误检测方法,具有较小的硬件开销和错误检测延时。此前应用于硅后调试的时延错误检测方法都会存在较大的错误检测延时,或者需较大的面积开销。本文提出的时延错误检测方法利用参考运行环境生成无时延错误的参考追踪特征,并存储在片上的追踪缓存中;在测试运行环境下,实时生成的追踪特征可直接与片上存储的参考特征进行比较,以快速的检测和定位出现错误的追踪特征。此方法通过复用基于追踪缓存的调试架构,仅在原设计上稍作修改,便可实现时延错误的快速检测。本文还通过FPGA平台验证了所提出的方法的可用性和高效性。