目录
2.5 建造测试用例
1.为什么引入base_test?
经过重重改造,我们来到了最后一步.截止目前uvm_test_top是env(run_test的参数就是env),然后用于验证dut的激励在seq中生成,在env中启动.为了利用现有的env构造,我们最好的办法是,再套娃,再找个容器把env例化进去,这就是base_test.
然后把原来的seq以及和seq相关的启动单独拿出来(原来启动是在env)组成case.结合代码可知,case就分成两部分:一是原来的seq,二是为了利用原有env(已例化在base_test中)从base_test继承而来的test.
2.注意run_test的变化
后台有部分源代码,通过命令行开始创建实例并运行,因此run_test()的参数从driver到env再到base_test最后到空白,一步步变化,uvm_test_top所指实例也发生了变化,也就是顶层发生了变化.
结合不断进化的UVM树形图,相信可以有一个很好地理解.顺便提一句,这时对刚开始代码清单2-3get_full_name()这个函数应该也有了更好的理解
3.待迭代
1.在class中使用interface时必须加virtual本质原因是什么?(p.17)
2.run_test创建实例对象uvm_test_top的流程梳理(p.19)
3.你怎么理解my_transaction和my_sequence也要注册到factory?(p44)