论文部分内容阅读
集成电路(Integrated Circuit,简称IC)的设计验证和测试是确保数字系统正常工作的必要手段。无论是设计验证还是芯片测试,测试生成都作为其主要内容而被广泛关注。本文首先综述了集成电路的测试和设计验证的基本原理和方法;其次针对设计所采用的寄存器传输级(Register Transfer Level,简称RTL)行为描述方式,介绍了若干已有的高层次测试生成方法;最后提出了一种可行的RTL级测试生成算法,所产生的测试序列可有效地应用于电路的功能测试或设计验证。本文工作贡献主要有以下三个方面:1.建立了一种有效的RTL行为模型。本文从电路的控制结构和数据路径两方面出发,建立了电路的控制流图和数据流图两层次模型:第一层通过控制流图反映电路语句间的连接关系;第二层通过控制流图中的每一结点所对应的数据流图,反映语句的具体操作。该模型实现了对电路的分层描述,相对于以往的电路模型具有形式简单、规模小、易于处理的优点,便于根据测试的具体需求处理相应的模型层次,从而降低处理复杂性,提高系统效率。此外,该模型具有良好的通用性,基于该模型可进行电路模拟、测试生成、验证等操作。2.制定了一种语句可测性测度。为了能更好地把握语句执行,本文从语句的功能实现和执行时序两方面出发考虑语句性能,定义了静态时序深度和动态时序深度概念,分别度量语句的功能实现和执行时序,并给出了相应算法。由此将语句执行的横向、纵向相结合反映电路性能,为高层次测试生成提供了方便。3.提出了一种基于测试用例的RTL级测试生成方法。本文基于控制流图/数据流图两层次模型,以分支覆盖、位功能覆盖以及语句可观覆盖为目标,给出一高层次测试用例生成算法,即通过两个子过程的交替进行生成电路的测试用例块。并在此基础上,采用一定填充策略填充未知位,生成满足覆盖需求的、一定长度的测试序列,实现测试生成。实验数据表明,本文测试生成系统的执行时间相对于基于遗传算法的RTL测试生成Prince系统、基于电路结构的无回溯的TiDE系统均有所缩减,且可生成较短的测试序列,获得与其它方法相当或略低的门级固定型故障覆盖率;此外由于该方法采用了测试用例技术,可通过不同的用例填充、组合方式得到不同的测试序列,从而具有良好的可扩展性。