uvm run_test() 是如何跑testcase 的?
时间: 2024-06-04 20:08:17 浏览: 12
`uvm run_test()` 是UVM测试框架中用于运行测试用例的方法。当 `run_test()` 方法被调用时,它会按照以下步骤执行测试用例:
1. 创建一个测试运行控制块(TRC)对象:TRC对象包含了测试运行的所有信息,包括测试用例名称、测试日志、结果统计等。
2. 创建一个测试组件工厂:测试组件工厂用于创建测试用例中的各种组件,包括test、env、seq和driver等。
3. 通过测试组件工厂创建测试用例的主体组件:即test组件。test组件是整个测试用例的核心部分,它包含了测试用例的所有执行逻辑。
4. 初始化测试用例:包括调用test组件的build_phase()和connect_phase()方法,以及env组件、seq组件和driver组件的创建和连接。
5. 运行测试用例:调用test组件的run_phase()方法,开始执行测试用例。
6. 结束测试用例:调用test组件的extract_phase()方法,以及env组件、seq组件和driver组件的销毁和断开连接。
7. 统计测试结果:将测试结果记录到TRC对象中,并输出测试日志。
总之,`uvm run_test()` 方法是一个高级测试控制方法,它封装了测试框架的底层细节,使测试工程师可以更方便地编写和运行测试用例。
相关问题
uvm run_test
在UVM验证平台中,run_test()是最顶层的入口。它是一个全局任务,位于uvm_globals.svh文件中。run_test()任务通过调用uvm_root的run_test任务来创建UVM世界。在run_test()任务中,通过cs.get_root()创建了uvm_root的单例对象,并根据plus args中的UVM_TESTNAME参数创建了uvm_test_top对象。通过调用top.run_test(test_name),可以灵活选择要运行的uvm_test。这种灵活的方式可以避免修改run_test()调用的test名称和重复编译。所以,在仿真时,可以通过传递参数UVM_TESTNAME=<test_name>来指定要调用的uvm_test。 [1 [2 [3<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* [UVM入门与进阶学习笔记4——UVM仿真的开始与结束](https://blog.csdn.net/weixin_41979380/article/details/122611839)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
- *2* *3* [uvm启动过程及phase机制实现原理介绍](https://blog.csdn.net/HelloQili/article/details/109366552)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
[ .reference_list ]
vcs uvm run_test 名字如何设置
您可以使用以下命令来设置 `run_test` 的名称:
```verilog
module testbench;
initial begin
// 设置 run_test 的名称为 my_test
uvm_cmdline_proc.set_string("+UVM_TESTNAME=my_test");
// 开始运行测试
run_test();
end
endmodule
```
在上面的代码中,我们通过 `uvm_cmdline_proc.set_string()` 函数来设置 `+UVM_TESTNAME` 命令行参数的值为 `my_test`,这样在运行 `run_test()` 函数时就会执行名为 `my_test` 的测试用例。