论文部分内容阅读
随着集成电路设计的复杂度日益提高,基于IP核的电路设计技术使得芯片规模越来越大,集成电路功能验证已经跟不上设计能力的发展,并且这种能力的差距越来越大。传统的定向测试已经不能满足验证工作的需求。为了应对这种挑战,业界推出了基于OOP(Object Oriented Programming)的验证设计语言如SystemVerilog、SystemC和基于OOP验证语言的验证方法学如VMM(Verification Methodology Manul for SystemVerilog)及OVM(Open Verification Methodology)。而后起之秀OVM有逐渐取代VMM之势,被视为是最有可能突破验证瓶颈的发展方向。本文的主要工作是利用SystemVerilog提供的OOP机制,在OVM验证方法学的指导下,搭建基于OVM的可重用的验证平台去验证65nmFPGA的编程下载模块。文中首先研究了OVM机制,OVM验证平台的架构以及如何搭建OVM验证平台,尤其对sequence的组织做了较详细的分析。同时,研究了OVM及SystemVerilog提供的可重用技术。而后,研究了65nmFPGA(Field Programmable Gate Array)的编程下载模块的规范,并针对65nmFPGA编程下载模块的下载部分,开发OVM验证平台,实现基于约束的随机事务生成。为了最大化的让输出结果自动比对,采用了SVA(SystemVerilog Assertion)和功能模型并用的比对方式。一些输出时序的验证采用了SVA去监测。采用覆盖组收集功能覆盖率。文章的最后对验证结果做了简单分析,并对可以完善的地方做了展望。采用OVM验证方法学代替传统的验证方法,首先解决了寄存器组的验证问题,因为寄存器组的验证需要大量的激励(成百上千个位流),传统的验证方法难以有效应对;再次,覆盖率使得验证过程得到有效衡量,基于约束产生的200个激励施加到65nmFPGA编程下载模块的下载部分后,一次运行就达到了100%的功能覆盖率;还有,SVA的使用可以使编程下载模块的内部信号的诊断变得容易;最后,由于激励采用基于约束的随机生成,输出的比对也是自动化的,即使考虑到开发OVM平台的时间,整个验证过程也要比传统的定向验证节省节省大量时间。