在uvm中,testcase是一个类,它封装了测试用例开发者编写的特定激励序列。
创建base test
下面首先开发了一个base test。这个base test是所有基于ubus_example_env开发的测试用例的一个起点。
base test的build_phase()创建了ubus_example_env。任何从ubus_example_base_test派生的testcase都会继承 ubus_example_base_test 中的所有定义,这意味着如果派生的testcase调 用 super.build_phase() , 也会将构建top-levelenvironment。
从base test基类创建测试用例
测试用例编写者可以从base test派生出使用相同验证环境的测试用例。top-level environment是由base test的build_phase()创建的,派生测试用例可 以 对run_phase()做一些 调 整 ( 例 如,改变环境中执行的 default sequence ) 。下 面 是一 个继 承 自ubus_example_base_test 的简单测试用例。
这个测 试 用例改变了由masters[0] agent和slaves[0] agent 执 行 的default sequence。
通过基类super.build_phase(),将创建验证环境ubus_example_env0以及它的所有验证子组件。因此,任何会影响这些验证组件构建的配置(比如要创建多少个masters)都必须在调用super.build_phase()之前设置好。
对于这个例子,由于sequences要到后面的phase才开始获取,所以可以在调用super.build_phase()之后再调用uvm_config_db::set。
选择测试用例
在定义了扩展测试用例后,需要调用uvm_pkg::run_test()任务来选择一个要执行仿真的测试用例。它的原型是:
task run_test(string test_name=);
uvm支持通过两种不同的机制指明要运行的测试用例。
测试用例(即已经向factory注册的测试用例名称)可以直接传递给run_test()任务,也可以通过+uvm_testname在命令行中声明。
如果两种机制都使用,命令行优先。一旦选择了一个测试用例名称,run_test()任务就会调用factory机制来创建一个测试用例的实例,实例名称为uvm_test_top。最后,run_test()通过执行各个phase来启动测试。
下面的例子显示了如何通过仿真器的命令行参数向run_test()任务提供类型名为test_read_modify_write的测试。使用命令行参数可以避免在调用run_test()的任务中hardcode指定testcase名称。在一个initial语句中,调用run_test()如下:
// dut, interfaces, and all non-uvm codeinitialuvm_pkg::run_test();
使用仿真器命令行选项选择一个test_read_modify_write类型的测试用例,使用以下命令:
% simulator-command other-options +uvm_testname=test_read_modify_write
如果提供给run_test()的测试用例名称不存在,仿真器将立即调用$fatal报错退出。如果发生这种情况,很可能是名字打错了或者是`uvm_component_utils宏没有被使用注册这个testcase。
通过使用这种方法,只改变+uvm_testname参数,可以运行多个测试,而不必重新编译测试平台。
测试平台的建立方法
深圳国际无人机展:普宙SAGA&D6B群惊四座惊艳亮相
简单介绍种子脱粒机,它的脱粒原理是什么
戴森助力健康家居生活,专注冬季室内空气健康
工程机械减速机市场分析
创建UVM Testcase的步骤
宝骏3101.5L+6MT劲芯.劲全力配置,这样的宝骏310你会考虑吗?
灯光摄像就位!科学家让原子成为片场主角,一探量子科学的未来
一种基于HART协议的多通道数据测量的智能变送器
数字电源控制器UCD3138的主要特性及应用电路
华为nova5 Pro 详细评测:强大拍照与轻薄机身,它都有
新闻盘点:东京2020机器人项目,2030年管理岗位被人工智能取代
风光互补太阳能路灯系统介绍_市电互补路灯杆_物联网单灯控制
便携式油品检测仪的主要特点与优点说明
国米定制版石头扫地机器人体验 智能让生活更简单
高速度高贴片机
丰田新车型全球首次搭载电子后视镜
本源物联发布最新5G工业路由器BC5521
卓岚信息科技RS232/485联网模块ZLSN4000概述
阐述无人机在飞行中影响安全的因素