论文部分内容阅读
设计验证(Design Verification)在数字集成电路系统设计当中已经变得非常重要。功能验证是大多数集成电路设计人员们目前面临的主要挑战,无论是设计团队还是验证团队,都将超过50﹪的时间用在纠错上,因此这一领域的技术进展将对控制预算以及产品上市的时间产生重大影响。目前的设计和验证领域面临的首要问题是验证方法的落后和不完善。特别是在我们面对一个巨大而又复杂的电子系统的时候,功能性错误往往是造成设计重复修改的首要原因。用于查找这些错误的功能验证流程是设计流中目前面临的最大瓶颈。一般而言,验证工作在所有设计活动中至少占有50﹪的份额,而在英特尔公司里,设计和验证比率已经接近于1∶1.5。因此,现在市场上存在着如此纷繁复杂的采用了不同语言和设计环境的EDA工具也就不足为奇了。然而,验证技术的发展步伐仍然远远落后于设计和制造能力,验证水平大幅度地偏离莫尔定律导致了验证鸿沟的进一步扩大。事实上,在过去的5年里,验证能力的平均增幅只有大约20﹪。这一验证鸿沟是限制设计人员充分发挥其生产力和设计能力的主要因素。现在的一个趋势是采用动态随机仿真验证方法对设计进行部分确认,这种方法包括往待测设计输入激励并观察输出。通常我们将待测设计的输出和对一些参考模型或者其他的抽象电路施加同样的激励所进行的输出作比较,来判断设计的正确性。这种方法通常被用在商业环境里。但是它存在着诸如覆盖率低,处理速度慢,缺乏优先级的选择,不能突出关键路径,不能保证到达边角向量等等诸多的缺点。为了弥合这一验证鸿沟,必须寻找新的切入点,研究开发出新的验证方法。
作为对提高验证技术的一次努力,本文探讨了一种新的采用符号化有限状态机(FSM)遍历的方法来自动生成芯片功能验证流的方法。它基于参数指标(SPEC)中提供的待测模块外部接口的时序图和内部寄存器的配置信息,借助于抽象时序图的表达方式,生成反映待测模块内外部特性的有限状态机,进而提出了我们对于状态机初步遍历的两点基本假设,然后结合有向图存储和遍历的相关知识,对生成的状态机作遍历。另外对用户关心的关键路径和边角向量设置循环参数,从而有效地保证了生成的功能验证流的执行效率和对状态空间的覆盖率。