芯片验证的工作量约占整个芯片研发的70%,已然成为缩短芯片上市时间的瓶颈。应用OVM方法学搭建SoC设计中的DMA IP验证平台,可有效提高验证效率。
随着集成电路设计向超大规模发展,芯片验证工作的难度在不断增大,验证的工作量已经占到整个SoC研发的70%左右,芯片验证直接影响到芯片上市的时间,因此提高芯片验证的效率已变得至关重要。利用OVM的层次化、随机约束等特点,能有效提升现有的验证方法,提高环境激励和监测的层次、加快覆盖率达成进程,从而加快验证速度。
OVM是Mentor Graphics和Cadence Design System共同提出完全开放的验证方法学,致力于提供给设计和验证工程师一个抽象层次更高的验证环境。OVM提供了丰富的库类和高级验证技术,实现验证平台从模块级到系统级的复用,并可在多个厂家的方针验证平台上运行。
OVM验证平台采用层次化的结构,共分为五层,分别为DUT、传输层、OperaTIonal、分析层以及控制层。其中最底层为DUT,即需要验证的带Pin级接口的IP或SoC设计。在DUT层次之上为传输层,该层用于连接Pin级DUT与传输层。在传输层之上的所有组件均为基于事务传输层的组件。事务传输层的引入可以让验证环境的设计摆脱实际DUT信号接口的约束,使上层信息的传递更加高效快捷。从传输层起,每一层均由不同的事务组件组成,例如分析层由覆盖率搜集、性能分析、记分板、参考模型等组件组成,不同层次的所有组件相互作用,形成了一个层次化的、可以重用的验证环境。
在基带SoC芯片中,DMA模块负责SoC系统中数据的搬移,该模块有AHB Master接口及AHB Slave接口,其中AHB Slave接口用于CPU对DMA的功能进行配置,而AHB Master接口则负责数据读取与写入,模块中设置FIFO用于缓存DMA交互数据。
OVM验证平台中的基础组件一般包括driver、sequencer、sequence、monitor,将这些组件在ovm_agent中实例化,多个ovm_agent在ovm_env中实例化,同时为了实现自对比机制,在ovm_env中需要实例化scoreboard,最后在ovm_test这种类型的组件中实例化ovm_env并指定环境中各agent的sequencer所对应的sequence。
OVM环境中各组件通过传输层接口进行相互连接,在这种传输层接口中传递的就是传输数据。OVM已经定义好了传输层接口,我们只需要进行实例化就可以了。传输数据是对物理接口(即IP接口)的抽象,将IP接口进行抽象后使用OVM中的组件进行高层次处理。
该IP有两种接口,一是标准的AHB Master接口,二是标准的AHB Slave接口。针对这两种接口需要定义两种类型的传输数据,OVM中通过扩展ovm_transacTIon类来定义我们自己需要的传输数据。支持使用systemverilog的约束机制在上述两种传输数据中进行随机化约束。比如根据该IP的规格,可以在ahbm_pkt中约束hsize为2’b00~2’b10随机,addr为32’h0000_0000~32’hFFFF_FFFF随机。
为了对验证效果进行评估,需要做功能覆盖率的搜集,该部分代码做到scoreboard中,使用systemverilog的covergroup来搜集验证到的功能点。
在借用事务交易及接口构建模块化、可重用的验证组件后,利用各组件的类库创建随机激励和序列,并将激励与序列转换为DUT的接口行为;使用断言、scoreboard等判断DUT行为的正确性;与此同时搜集和分析功能覆盖率、代码覆盖率等信息。在验证的过程中我们通过控制输入激励的变量、增加错误注入信息,以保证系统在错误状态下做出正确反映。
在越来越高的抽象层次上进行验证是当前验证方法学的主要趋势。通过构建基于OVM层次化IP验证平台,验证了基带SoC芯片DMA IP的所有功能,并达到100%的功能验证覆盖率。采用OVM的验证方法仅需对层次化架构中的组件进行扩展或重用,大大提高了SoC芯片的验证效率,从而缩短了整个项目的研发周期。目前该项目已流片成功。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)