TA的每日心情 | 奋斗 2020-8-27 15:56 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
芯片验证的工作量约占整个芯片研发的70%,已然成为缩短芯片上市时间的瓶颈。应用OVM方法学搭建SoC设计中的DMA IP验证平台,可有效提高验证效率。% l4 n$ m1 k, g( |( J. ?- Z
q) v K2 ]% @8 F& d, k& g: [ 随着集成电路设计向超大规模发展,芯片验证工作的难度在不断增大,验证的工作量已经占到整个SoC研发的70%左右,芯片验证直接影响到芯片上市的时间,因此提高芯片验证的效率已变得至关重要。利用OVM的层次化、随机约束等特点,能有效提升现有的验证方法,提高环境激励和监测的层次、加快覆盖率达成进程,从而加快验证速度。
4 C. U. l0 Q* T% h, F D8 W
5 }9 [9 J- y% t3 ?1 R& j5 } OVM验证平台
' J3 v5 L; ]) z" o
4 X8 m2 e! C- \- }5 I6 @. l OVM是mentor Graphics和cadence Design System共同提出完全开放的验证方法学,致力于提供给设计和验证工程师一个抽象层次更高的验证环境。OVM提供了丰富的库类和高级验证技术,实现验证平台从模块级到系统级的复用,并可在多个厂家的方针验证平台上运行。
2 I& w% B5 x9 ?# P |- d% e- g& X0 @- f4 a: n$ y8 m
OVM验证平台采用层次化的结构,共分为五层,分别为DUT、传输层、Operational、分析层以及控制层。其中最底层为DUT,即需要验证的带Pin级接口的IP或SoC设计。在DUT层次之上为传输层,该层用于连接Pin级DUT与传输层。在传输层之上的所有组件均为基于事务传输层的组件。事务传输层的引入可以让验证环境的设计摆脱实际DUT信号接口的约束,使上层信息的传递更加高效快捷。从传输层起,每一层均由不同的事务组件组成,例如分析层由覆盖率搜集、性能分析、记分板、参考模型等组件组成,不同层次的所有组件相互作用,形成了一个层次化的、可以重用的验证环境。$ ^" @0 u1 Z1 \5 [3 p. \4 n
$ X- ~9 K: z* Y: J8 P6 j1 Y! \
在基带SoC芯片中,DMA模块负责SoC系统中数据的搬移,该模块有AHB Master接口及AHB Slave接口,其中AHB Slave接口用于CPU对DMA的功能进行配置,而AHB Master接口则负责数据读取与写入,模块中设置FIFO用于缓存DMA交互数据。
8 J6 x5 N* L/ w( Z/ J3 X, C
7 k2 I6 A0 K) O OVM验证平台中的基础组件一般包括driver、sequencer、sequence、monitor,将这些组件在ovm_agent中实例化,多个ovm_agent在ovm_env中实例化,同时为了实现自对比机制,在ovm_env中需要实例化scoreboard,最后在ovm_test这种类型的组件中实例化ovm_env并指定环境中各agent的sequencer所对应的sequence。! E9 B0 |) u. D$ R r! Q
. d/ j0 F; S0 B OVM环境中各组件通过传输层接口进行相互连接,在这种传输层接口中传递的就是传输数据。OVM已经定义好了传输层接口,我们只需要进行实例化就可以了。传输数据是对物理接口(即IP接口)的抽象,将IP接口进行抽象后使用OVM中的组件进行高层次处理。
9 W* a% @9 Q8 M" |% ]4 ~* N
# G; V+ Q' X7 o4 t! P: A9 o 该IP有两种接口,一是标准的AHB Master接口,二是标准的AHB Slave接口。针对这两种接口需要定义两种类型的传输数据,OVM中通过扩展ovm_transaction类来定义我们自己需要的传输数据。支持使用systemverilog的约束机制在上述两种传输数据中进行随机化约束。比如根据该IP的规格,可以在ahbm_pkt中约束hsize为2’b00~2’b10随机,addr为32’h0000_0000~32’hFFFF_FFFF随机。0 z9 y) G, w5 D/ L
8 C. u# {: W- K7 N
为了对验证效果进行评估,需要做功能覆盖率的搜集,该部分代码做到scoreboard中,使用systemverilog的covergroup来搜集验证到的功能点。9 {8 ^. E5 j5 G2 p3 Y1 z9 z
' c2 W: e* N9 g, m0 o$ J
在借用事务交易及接口构建模块化、可重用的验证组件后,利用各组件的类库创建随机激励和序列,并将激励与序列转换为DUT的接口行为;使用断言、scoreboard等判断DUT行为的正确性;与此同时搜集和分析功能覆盖率、代码覆盖率等信息。在验证的过程中我们通过控制输入激励的变量、增加错误注入信息,以保证系统在错误状态下做出正确反映。9 f+ f8 u- T- L4 q
, y9 Q' }1 z, D* F' a6 P
在越来越高的抽象层次上进行验证是当前验证方法学的主要趋势。通过构建基于OVM层次化IP验证平台,验证了基带SoC芯片DMA IP的所有功能,并达到100%的功能验证覆盖率。采用OVM的验证方法仅需对层次化架构中的组件进行扩展或重用,大大提高了SoC芯片的验证效率,从而缩短了整个项目的研发周期。目前该项目已流片成功。
3 h/ ?. e* k! S4 I7 N$ |6 U! n6 G
" m4 j8 A# Y6 m4 k3 [6 K
* p; R" H- [( Z5 E. R: r0 M/ D |
|