微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 综合技术问答 > EDA使用问答 > UVM代码求助

UVM代码求助

时间:03-15 整理:3721RD 点击:

大侠们:
task my_driver::mAIn_phase(uvm_phase phase);

while(!top_tb.rst_n)
@(posedge top_tb.clk);
for(int i = 0; i < 10; i++)begin
@(posedge top_tb.clk);
top_tb.rxd <= $urandom_range(0, 255);
top_tb.rx_dv <= 1'b1;
`uvm_info("my_driver", "data is drived", UVM_LOW)
end
以上代码中top_tb.rst_n前100ns为0,100ns为1,但是从仿真结果来看while(!top_tb.rst_n)@(posedge top_tb.clk);没有消耗任何时间,这里while是怎样执行的啊?不太明白while(!top_tb.rst_n)@(posedge top_tb.clk);是什么意思!谢谢啦!


virtual taskmain_phase(uvm_phase phase);
phase.raise_objection(this,"");
在这里添加你的代码,没有raise,该task旁路执行。
phase.drop_objection(this);
endtask

不会啊,uvm不会。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top