|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
各位前辈早上好~ 本菜鸟看例程代码有些不太理解的地方,以下是粗略:
class iMonitor extends uvm_monitor;
................
................
................
virtual task run_phase(uvm_phase phase);
packet tr;
forever begin
tr= packet::type_id::create("tr",this);
get_packet(tr);
analysis_port.write(tr);
end
endtask: run_phase
virtual get_packet(packet tr);
............
............
forever begin
........
........
end
endtask: get_packet
endclass
首先这个例程可以正常仿真并且结果也正确,可是以上这段我就理解不上去了,run_phase里面调用了get_packet(), get_packet()里面又有一个forever循环,那么为啥analysis_port.write(tr)最终还会被调用嘞。
希望看到帖子的各位老师帮小弟分析解惑一下,感激不尽。
附件中时iMonitor全部源代码。
iMonitor.rar
(1.96 KB , 下载次数:
4 )
|
|