run_test
是UVM的一大卖点. run_test
根据运行时的参数+UVM_TESTNAME=[test_name]
来例化[test_name]
对应的继承自UVM_TEST
的子类对象并运行. 把所有的用例一起编译之后, 就可以实现”一次编译, 多次运行”.
说到UVM的Factory工厂, 大家的第一反应可能是Factory的create
例化:
|
|
仔细看的话, 这种例化方式, 已经把对象的类型都写明了, 仍然是Hardcode硬编码的形式. 对比之下, run_test
才是真正符合工厂模式内涵的动态行为.
这里用一个轻量级的demo来展示UVM的工厂模式实现run_test
这种行为的机制.