提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
学习目标
定义可重用的软件包,在测试中导入软件包,了解环境的使用和标准化测试方法
提示:以下是本篇文章正文内容,下面案例可供参考
测试平台的许多类都可以重复利用,因此我们可以将它们放入Package中。接下来使用package创建可重复利用的验证环境。
任务一:创建环境类
全局变量run_for_n_packets和TRACE_ON;以及导入的各组件放入软件包中创建可重用环境。
各组件的创建对象部分,复位DUT,启动部分,等待事件部分都要放入环境类中,同时将这些代码放入任务中再放入总的run()中
属性
1.声明字符串变量name,用于标明类对象的身份;
随机整型变量run_for_n_packets,添加约束变量的值在1500~2500之间;
虚接口rotr_io
2.将原先test程序内的组件类的例化剪切过来
外部方法
1.new()方法,传递参数字符串name,默认为“Env“;和虚接口
添加跟踪语句,将传递的参数与类属性变量连接
2.task run(),添加跟踪语句,调用环境里的各任务方法
3.build()方法,无返回值,建立环境,实际上就是个组件的例化部分(将test例化部分剪切过来)
并且添加条件如果没有使用随机化程序,或随机化失败,变量值仍然为默认值0时,则赋值2000.。
4.task start(),启动环境各组件(将test启动部分剪切过来)
5.task wait_for_end(),等待事件触发(将test等待事件部分剪切过来)
6.task reset(),复位程序(将test复位任务部分剪切过来)
7.configure()方法,无返回值,用于设置测试配置
调用randomize()随机化随机变量,
任务二:新建软件包router_test_pkg
1.声明包package router_test_pkg
2.声明全局变量并初始化为0,run_for_n_packets和TRACE_ON
3.导入其他组件
4.保存文件
任务三:Package包的使用
1.打开test.sv文件
2.删除全局变量的定义和文件的导入
3.导入任务二中创建的Package,软件包的导入需要使用import 导入包内所有内容。
import <包名><域索引><通配符>
4.保存文件
5.编译仿真,确保仿真结果与lab6一致后进行下一步。
任务四:在test程序中使用环境类
原test程序在initial块内执行了以下操作:
a)变量设置即configure
b)构建组件
c)复位DUT
d)启动组件
e)等待事件
这些内容我们都已经封装在了环境类中。
1.删除句柄声明的部分
2.在import语句后声明环境类句柄env
3.删除initial块里的内容
4.在initial块内创建环境类的对象,传递相应参数
5.调用环境类中的configure方法,随机化测试次数
6.使用随机化后的环境类run_for_n_packets变量的值更新软件包中定义的run_for_n_packets值
7.调用环境类中的run()任务,调用环境类的任务以运行验证组件。
二、使用环境类的区别
可以看到覆盖率达到100%的测试次数有变化,不使用环境类只需要#1523次,而环境类需要#1558次。
- 【思考:为什么会出现这样的情况?】
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。