tomako123

导航

2.2.2加入factory机制

driver代码:


这里的factory机制被集成在了一个宏中:uvm_comphonent_utils。这个宏所做的事情非常多,其中之一就是将my_driver登记在UVM内部的一张表中,这张表是factory功能实现的基础。只要在定义一个新的类时使用这个宏,就相当于把这个类注册到了这个表中。
在给driver加入这个机制后,还需要对top_tb做一些改动:

这里用一个run_test语句替换了原本的my_driver实例化以及main_phase的显示调用。
输出如下语句:
new is called
main_phased is called

一个run_test语句会创建一个my_driver的实例,并且会自动调用my_driver的main_phase。(只有在类定义的时候声明了这个宏,才能使用这个功能)

但是上面的例子中只输出到"main_phase is called",并没有输出"data is drived",而按照预期应该输出256次,这个涉及到objection机制了

posted on 2024-05-16 11:26  甜豆莎的辣白菜  阅读(1)  评论(0编辑  收藏  举报