RVM验证方法学在SoC芯片验证中的应用
相似的事务对象; Scenario产生器,用于产生顺序可控制的事务对象。
测试层
测试层用于对DUT的逻辑功能进行验证。这一层主要是用户为了验证DUT的逻辑功能而编写的不同测试例,在测试例中可以对各个模块的限制条件进行修改。通过对不同测试例运行结果的统计,可以查看DUT的功能覆盖率,只有功能覆盖率达到一定要求,才能够认为该DUT已经被完备的验证通过。
SIMC模块的功能验证
SIMC是SIM卡控制器的简称,通过SIMC可以在手机基带处理芯片上外接SIM卡,实现数据的发送和接收。SIMC模块连接在系统的APB总线上,ARM微控制器通过APB总线对SIMC进行访问。该模块主要包括波特率产生部分、接收数据的串并转换部分、发送数据的并串转换部分、发送FIFO的控制部分、接收FIFO的控制部分等。发送数据时,SIMC模块会将发送数据寄存器的数据先放到发送FIFO中,再将FIFO中的数据发送出去;接收数据时,SIMC模块将接收到的数据放到接收FIFO中,再由处理器从接收数据寄存器中读取数据。如果接收数据后,判断校验位或停止位出错,则数据不会被放入接收FIFO中,SIMC模块的状态寄存器会有相应的指示。
本文将以一款基带处理芯片的SIMC为例,详细介绍RVM验证方法学的应用。其中DUT的RTL代码用Verilog编写,验证平台的代码用OpenVera编写。OpenVera语言是一种新型的高阶验证语言(HLV)。用OpenVera编写的代码中调用了RVM的基类和库函数,充分应用了面向对象技术。
SIMC模块的RVM分层验证平台结构
SIMC模块的验证平台利用Synopsys公司Vera验证工具搭建,验证平台的搭建遵循RVM验证方法学,代码的编写过程调用了RVM基类库。SIMC模块验证平台结构如图2所示。
图 2 SIMC模块RVM层次化验证模型
信号层
信号层包括定义的虚端口,用于和SIMC模块RTL代码的接口相连。首先定义一个interface变量,该变量中定义的接口对应于SIMC模块的接口信号,interface变量的定义语句中用hdl_node关键字和RTL代码的接口信号相连。定义的虚端口再和interface中的信号绑定。
命令层
命令层包括ARM端的驱动器和监视器、SIM卡端的驱动器和监视器。ARM端的驱动器模仿APB总线,按照协议的规定对DUT进行驱动,SIM卡端的驱动器模仿一个SIM卡对DUT进行驱动。两端的监视器检测DUT的输出数据和驱动到DUT中的数据,将数据保存在自核对模块中进行比较,通过比较来检查DUT传输数据是否正确。
编程实现时,可以通过继承RVM基类库中的rvm_xactor类得到所需要的子类,在子类的代码中加入需要实现的功能。
功能层
功能层包括将SIM卡事务转化为ARM事务的事务处理器、实现中断服务功能的事务处理器、自核对模块。编程实现时,事务处理器可以通过继承RVM基类库中的rvm_xactor得到,在子类的代码中加入需要实现的功能。自核对模块用于比较DUT的激励和响应是否符合要求。
激励产生层
激励产生层包括两个Atomic产生器,两个产生器是同一个类的两个对象。产生器为DUT产生随机激励,激励封装在一个事务中,通过事务通道传到下层模块中。两端的产生器都是产生SIM卡事务的,ARM端有一个将SIM卡事务转化为ARM事务的事务处理器来完成SIM卡事务向ARM事务的转化。通过产生器可以随机产生符合协议规范的激励。编写代码时,产生器可以通过调用RVM的宏rvm_atomic_gen很方便地实现。
测试层
在测试层,用户可以编写不同的测试例对DUT的功能进行验证。在测试例中,通过对约束的限制、环境类的例化、配置类的约束来实现对DUT的功能覆盖,以达到100%的功能覆盖率。
验证平台的重用
对单个模块验证完毕之后可以进行系统级的验证。根据RVM验证方法学搭建的层次化验证平台可以被重用到系统级的验证中。系统级验证侧重于检查各模块间的接口和数据交互是否符合设计规范,某些模块级验证的模块可以被复用到系统级验证中。对SIMC模块来说,系统级验证时,ARM端的驱动器、监视器以及激励产生器都可以被APB总线代替,SIM卡端的各模块可以继续使用,达到重用的目的。
应用RVM验证方法的注意事项与技巧
RVM验证方法学由Synopsys公司提出,利用RVM验证方法学首选的编程语言是OpenVera硬件验证语言。笔者在应用RVM验证方法学搭建验证平台过程中的一些技巧和注意事项归纳如下:
1、 验证某个模块前,首先要阅读相关文档,熟悉模块的功能特性,然后搭建验证平台的基本框图,选择RVM的相关技术,在验证平台基本框图指导下编程实现。
2、 验证平台中功能覆盖点的定义是验证成败的关键,验证过程中利用RVM的覆盖率驱动技术,分析所定义的覆盖点的覆盖情况,改善该验证平台,每个功能覆盖点都必须被覆盖到。
3、
OpenVera验证语言 RVM验证方法学 SOC设计 相关文章:
- SoC生产导向设计测试流程法应对测试成本和批量生产时间的双重挑战(06-05)
- 基于ARM的SoC设计入门(11-19)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)