论文部分内容阅读
随着集成电路设计复杂度的不断增加,设计错误的数量也在呈上升趋势。由于速度及模型正确性的约束,硅前验证已经不能保证没有设计错误遗留到硅后阶段。而且随着工艺的发展,硅片中的电气错误也不可避免。集成电路调试就是要发现遗留在硅片中的错误,保证量产芯片的正确性。工业界的数据表明,调试时间已经占到集成电路设计周期的35%以上,可调试设计占用了超过20%的片上资源,可见集成电路调试在实际应用中已经引起了非常高的重视。即便如此,依然有错误未被发现而进入量产之中。这是因为遗留到硅后阶段的错误本身就是一些难以发现的错误,而硅后调试的可观测性又非常有限,使得集成电路调试越来越困难,迫切需要更有效的调试方法来满足实际应用的需求。本文工作在数字集成电路硅后调试方向展开,研究了在保证可观测性的前提下减少扫描时间,以及多时钟域芯片和多核芯片调试的新方法。本文取得的创新性研究成果主要有以下几个方面:
1.提出了基于怀疑窗的调试方法。集成电路调试技术可分为基于扫描和基于追踪两种,基于扫描的调试技术利用扫描链将调试数据串行输出,速度很慢。基于追踪的技术将信号状态保存到片上缓存,实现了芯片内部状态的实时观测。由于片上调试资源的限制,基于追踪的技术可观测性很低。本文提出了基于怀疑窗的调试方法,化解了扫描时间与可观测性的矛盾。该方法通过实时追踪一部分信号,分析出覆盖触发错误的一个时间范围(怀疑窗)。然后在怀疑窗内的每个时钟周期扫描出芯片内部状态,达到了全空间的可观测性,从而准确的定位错误触发的空间和时间位置。基于扫描的调试技术的扫描时间与调试程序长度线性正相关,而基于怀疑窗的调试方法的扫描时间只与怀疑窗大小相关,不随调试程序长度变化而增加。
2.提出了避免多时钟域芯片调试中数据失效的方法。在调试过程中,经常需要停止芯片运行以便观测内部信号或进行扫描。然而,在停止多时钟域芯片时可能产生数据失效的问题。以前有研究者关注了停止多时钟域芯片的数据失效问题,但是还没有相关工作提出避免数据失效的方法。本文针对多时钟域芯片调试,总结分析了停止和重新启动时的数据失效情况。本文将数据失效分为数据重复和数据丢失,分析和证明了相应的发生条件,并据此提出了避免数据重复和数据丢失的方法。已有方法只能检测可能失效的寄存器,因而在芯片停止之后无法继续执行调试。而本文方法能够完全避免数据失效的发生,有效支持了继续调试而不用重新启动调试过程。
3.针对多核芯片的并发追踪问题,提出了复用片上网络传输调试数据的方法。由于并发度的增加,在多核芯片调试中通常需要同时追踪多组信号。同时追踪多组信号不仅会带来互连结构的面积开销,还会导致链路带宽或访存带宽的瓶颈。本文提出了复用片上网络传输调试数据的方法,有效的解决了上述问题。该方法根据追踪信号的分布情况将片上网络分为多个簇,并给每个簇分配一个片上缓存。分簇算法保证了最坏情况下调试数据也不会超过链路带宽和访存带宽,从而保证了多核并发追踪时调试数据的完整性。在每次调试过程中,空闲的追踪缓存可被其它簇的追踪信号共享,这样保证了追踪缓存的利用率。该方法实现了多核芯片调试中的并发追踪,避免了增加一套调试专用的传输网络。