|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
task my_model::main_phase(uvm_phase phase);
my_transaction tr;
my_transaction new_tr;
uvm_status_e status;
uvm_reg_data_t value;
super.main_phase(phase);
p_rm.invert.read(status, value, UVM_FRONTDOOR);
p_rm.invert.write(status, 1, UVM_FRONTDOOR); //这里进行写操作
p_rm.invert.read(status, value, UVM_FRONTDOOR); //这里进行读操作
while(1) begin
port.get(tr);
new_tr = new("new_tr");
new_tr.copy(tr);
//`uvm_info("my_model", "get one transaction, copy and print it:", UVM_LOW)
//new_tr.print();
`uvm_info("my_model",$sformatf("0000: invert value is : %0d",value),UVM_LOW) //这里value的值应该为1
if(value)
invert_tr(new_tr);
ap.write(new_tr);
end
endtask
但是运行结果显示 value的值还是为0,这里对reg_model的操作都是在reference_model中进行的
请教大神 ,这是哪里调用的不对么? |
|