论文部分内容阅读
目前我们采取的基于受限随机矢量生成机制的验证方法流程,是系统根据设计人员所规定的约束条件生成外部激励并输入到待验证模块,然后根据输出结果分析功能正确性。这种方法的优点是可以方便的覆盖巨大的验证空间;通过多次输入不同的激励,可以逐步覆盖边缘情况。然而实际应用中,这种方法依然存在着一些不足:例如仅仅分析仿真波形,无法快速定位设计错误;时间开销较大,验证周期过长;边缘情况的覆盖比较困难,需要不断地修正约束激励;产生的激励冗余度过大,验证时间过长等等。针对目前验证流程中的不足,本文主要研究了基于断言验证方法的实现。基于断言的验证方法是目前验证方法学上的新趋势,它的优点在于:能够增加验证过程的可观察性和可控制性;在设计周期中能更早的发现设计缺陷,促进错误的诊断;可以减少多余仿真周期,降低设计错误不被发现的风险;断言模块有很强的独立性,可以与设计模块很好的分开,可重用性强,验证效率较高;支持第三方的模块;能更好的利用形式以及半形式验证。本文首先介绍了当前主流的功能验证方法,分析了目前验证流程中所存在的不足和困难,针对目前存在的困难提出基于断言的验证方法。用断言验证的长处弥补随机矢量验证的不足,增强验证的可观测性和可控性;通过断言库的建设,提高了验证环境的可重用性。随后本文进一步分析了几种主要断言验证语言的优缺点,通过比较决定采用SystemVerilog Assertion作为研究工具。分析了利用它实现验证环境的构建的具体过程。针对Garfield芯片中的AHB模块LCDC(液晶显示控制器)和APB模块SD(安全数码卡控制器),本文分别构建了不同的验证环境。根据两者各自的特点,添加了新的断言监视器。为了提高插入断言的效率,本文采用了一种自动插入断言的接口,对自动插入断言的要求提出了具体的规范,并且利用Perl实现了这一接口。利用断言插入程序可以方便高效地实现断言的自动插入。最后本文对验证的结果进行了分析,并对设计工作指出了改进的要点。通过分析总结实验数据,指出利用断言验证的方法比原来单纯利用受限随机矢量的验证方法大大缩短了验证时间,目前最多可比原来方法节约时间71.24%。