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不会。