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机制了
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步