新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于eRM建立自动化的验证平台

基于eRM建立自动化的验证平台

作者:时间:2011-07-25来源:网络收藏

Monitor:是一个被动组件,Monitor只能采样需要监测的DUT信号和输入数据,从图1中可以看出,Monitor只是单端通道,不能主动驱动信号。此外,Monitor可以监测DUT的输出响应,并对监测到感兴趣的信号发生变化时激活预定义的事件,通过此事件可以对当前输入的数据进行覆盖率统计以及对输出数据和信号的时序进行检查。
2.2 提高功能覆盖率的方法
为了提高验证的生产率和功能覆盖率,提供了一套标准化的验证方法,典型的是测试激励采用随机(Random)验证和直接(Direct)验证方法。直接(Direct)验证法是指输入的激励是验证人员所期望的,相应的输出也是可以控制和实时监控的。但是直接测试方法不能验证正常功能以为的验证点,而且编写每条测试激励需要耗费大量的时间,一般只在验证前期调试验证环境或者发现DUT错误的时候才采用直接测试法来定位错误。随机验证法是为被验证子模块或系统产生一系列随机的输入序列。采用随机验证法可以发现一些设计人员没有预计到的但实际应用中会出现的情况,同时也能找出设计中很难发现的错误。此外,对于目前大多数设计来说,所有输入情况和内部状态的组合是无穷的,因此不可能将所有的情况都进行验证。解决此问题的办法就是有效的将直接验证法和随机验证法结合起来。eVC中提供的sequence可以很好地实现以上2种验证方法,在编写测试激励时,可以对Sequence加入任何的约束来产生测试数据。为了直观的看到功能覆盖率的情况,Spe-cman提供了图形化的覆盖率统计界面,每次验证完一条测试激励后,都可以生成一个覆盖率文件,当所有的测试激励验证完毕后,Specman一次读入所有的覆盖率文件,并且将每个功能点的覆盖率都是用百分比的框图来表示。

3 eVC验证平台的应用实例
下面通过一个应用实例来介绍如何基于建立验证平台,该实例中待测模块fifo是一个简单的存储模块,其验证平台如下图2所示。

本文引用地址:http://www.eepw.com.cn/article/194825.htm

b.JPG


在验证fifo时,先验证fifo的正常读写功能,再验证其读写的极端情况,即将fifo写满直至溢出或者读空,并且实时的监测fifo读出的数据及其状态。图2中的各个文件都是用e验证语言中的Struct或Unit来实现的。
(1)信号接口fifo_signal。fifo_signal中定义了所有需要与fifo相连接的信号,既可以是接口信号也可以是fifo的内部信号,fifo_bfm可以通过这些信号端口向fifo输入激励,也可以采样部分输出信号。
(2)总线驱动接口fifo_bfm。在fifo_bfm中,通过drive()函数将sequence里生成的数据加载入fifo中,也可以在总线端口产生fifo的读写时序,将数据和地址写入fifo中,此组件也可以采样验证人员感兴趣的信号。
(3)输入数据流fifo_seqtlence。在fifo_sequence中,主要是根据所加约束来产生fifo的测试数据。fifo_sequence的定义中包含三部分,分别是item,sequence_driver以及sequence_kind。其中item是模拟fifo需要的输入激励来定义,例如数据以及读写信号等。sequen-ce_driver将生成的数据包发送给fifo_bfm。sequence_kind是指定需要的各种sequence,一般由验证人员根据实际设计协议自主定义的。
(4)监视器fifo_monitor。fifo_monitor主要是对写入和读出fifo的数据进行监测,并实时检查fifo的状态是否与实际的输入相符。fi-fo_monitor是一个被动组件,不能驱动信号,本例中只能采集fifo的数据和状态信号并且释放在Item中定义的事件,作为fifo_coverage统计fifo的数据及其状态覆盖率的敏感事件。
(5)fifo_coverage组件。fifo_coverage中定义了所有的需要统计覆盖率的数据,例如统计fifo的状态变化、写入的数据等,并在每验证完一条测试激励后,可以实时的观测到该覆盖率的变化。
(6)评分板fifo_sb。fifo_sb是一个用来做比较的组件,并对输入的激励进行一系列的处理,预先得到一个绝对正确的输出结果,并与从fifo中fifo_monitor采集到的输出数据逐一进行比较,如果二者的数据或时序不同,就会报出错误信息。
(7)eVC中expect和check检查。在中,提供了一些特定的检查时序的函数和语法,和Verilog中断言Assert一样,使用Expect或者Check可以将fifo的设计规范中的fifo_empty,fifo_full等状态的与实际在仿真器中的监测到的fifo状态进行比较,如果二者不相符,则通过函数dut_error()输出相应的错误信息。

4 结语
本文以fifo为例,采用了基于eRM验证方法学来建立的验证平台,并详细介绍了fifo验证环境框架结构中各个组件的功能和实现方法,极大地提高了fifo的验证效率和功能覆盖率。该平台完全继承eRM验证方法学,主要采用了eRM中的直接测试法和随机测试法,具有较高的验证重用性,大大的缩短了实际项目开发中搭建验证环境的时间,并已得到了广泛的应用。


上一页 1 2 下一页

关键词: eRM 自动化

评论


相关推荐

技术专区

关闭