针对AHBRAM模块验证项目,整理验证框架的搭建方法。
1、UVM是如何启动的
首先要明白uvm平台怎么启动。
在pkg.sv中,通过import uvm_pkg::*;来导入uvm_pkg文件,自动创建uvm_root所例化的对象uvm_top。UVM顶层的类会调用run_test()方法充当UVM世界的核心角色,通过uvm_top调用run_test()方法。
在tb中run_test();启动UVM验证平台,run_test语句会创建一个case实例,得到正确的testname。这里可以指定test名称,也可以在编译时通过加上TETNAME=xxx来指定测试用例。
run_test结束后依次执行uvm_test容器中各个component组件中的phase机制,按照顺序:
在run_phase()中,objection机制仿真挂起,通过start启动sequence(每个sequence都有一个body任务,当一个sequence启动后会自动执行body任务),等到sequence发送完毕关闭objection,结束run_phase()。注:uvm_objection提供component和sequence共享的计数器,当所有参与到objection机制中的组件都drop_objection时,计数器清零,才满足run_pha