书接上回:
从零开始搭建UVM平台(一)-只有uvm_driver的验证平台
从零开始搭建UVM平台(五)-加入transaction机制
从零开始搭建UVM平台(九)-加入reference model
从零开始搭建UVM平台(十一)-加入field automation机制
加入test
为什么要加入test?因为在验证过程中,往往有很多测试点,这所有的测试点需要分开进行测试。前面的top层级是uvm_env,但是uvm_env只有一个,怎么实现不同的测试点测试呢?此时就需要引入uvm_test。
前面run_test传入的参数是“my_env”,实际上,当不传入任何参数且加上+UVM_TESTNAME=**指定特定的test名时,就可以跑不同的test case。
第一点:任何test都需要继承自uvm_test,是component,因此要用uvm_component_utils宏进行注册。其次,环境需要有一个base_test,env在此例化。
第二点:修改run_test里的参数为无参。并且interface的层级结构变了
第三点:新建tc.list,加入所有的tc case,并且修改tb.f加入tc目录
第四点:makefile vcs run命令增加+UVM_TESTNAME:
第五点:在case中加入watchdog并启动seq
第六点:编写不同的case继承自base case