uvm启动过程及pha机制实现原理介绍

更新时间:2023-07-23 14:51:43 阅读: 评论:0

2690
uvm启动过程及pha机制实现原理介绍
功夫熊猫3百度网盘
我们通常会在top写下类似下⾯的代码
module top();
import uvm_pkg::*;
......
initial begin
run_test();
end
......
endmoudle
我们写的这个run_test()就是整个UVM验证平台最顶层的⼊⼝。这⾥的run_test()不是任何⼀个类的成员,⽽是⼀个global task,位于uvm_globals.svh中。如下:
joininCaption
在这个global的run_test task中,通过cs.get_root创建了uvm_root单例,然后调⽤了uvm_root的的run_test task。在uvm_root的run_test task中,根据plus args UVM_TESTNAME创建了uvm_test_top对象,如下:
香港大学排名
Caption
然后,还是在uvm_root的run_test task中,调⽤了uvm_pha的⼀个static task m_run_phas, 开始了uvm phas的启动,如下:
Caption
uvm_pha的静态成员m_run_phas的实现如下:
Caption
上⾯的m_pha_hopper是⼀个uvm_pha类型的mailbox,在m_run_phas中,先是将common domain的第⼀个pha(即
build_pha) put进mailbox中,然后进⼊forever,在forever中不断地去get pha,get成功就去执⾏pha的execute_pha task。
在uvm_pha的execute_pha中,会遍历uvm components tree上的所有component. 这⾥是通过调⽤uvm_pha的traver()函数实现的。如下,在execute_pha中调⽤traver:
Caption
遍历完成之后,当然要进⼊下⼀个pha,于是在退出execute_pha之前,将下⼀个pha给put进mailbox中。如下:
绯闻女孩第六季大结局
Caption
这⾥还涉及到⼀些pha跳转的处理,暂时不作具体的研究讨论。
loud>graduated上海留学中介uvm_pha分为function pha和task pha, ⽽function pha⼜可以分为uvm_topdown_pha和uvm_bottomup_pha。uvm_bottomup_pha和uvm_task_pha都是从下往上遍历,⽽uvm_topdown_pha是从上往下遍历。function pha中只有build_pha和final_pha是topdown pha,其它的都是bottomup_pha。uvm_task_pha,uvm_bottomup_pha和
uvm_topdown_pha都是继承于uvm_pha的⼦类,⽽traver⼜是uvm_pha的虚函数,所以这3个⼦类理所当然地实现了⾃⼰的traver()。
这⾥我们就挑uvm_topdown_pha的traver实现出来看看吧,如下:
Caption
Caption
这⾥通过函数迭代的⽅式实现了遍历,不断地去get_child并⽤child去迭代。这个地⽅调⽤了execute
函数,execute函数的实现如下:
江西教育网中考成绩查询Caption
这⾥的execute函数⼜调⽤了exec_func(),exec_func也是虚函数,各个⼦类有不同的实现,⽐如uvm_build_pha的实现:
Caption
终于,uvm_build_pha实现的地⽅调⽤了component的build_pha函数。
总结⼀下整个过程的调⽤栈:run_test -> uvm_root::run_test -> uvm_pha::m_run_phas -> uvm_pha::execute_pha -> uvm_topdown_pha::traver -> uvm_topdown_pha::execute -> uvm_build_pha::exec_func ->bottomup
uvm_component::build_pha

本文发布于:2023-07-23 14:51:43,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/186347.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实现   类似   成员   机制
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图