| 
×
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册  1、    $cast(cpl_trans, _trans.clone());    req_trans = cfg_req_trans_q.pop_front();    $cast(gtrans, cpl_trans.input_trans.clone()); 2、   $cast(cpl_trans, _trans.clone());    req_trans = cfg_req_trans_q.pop_front();    if($cast(gtrans,cpl_trans.input_trans.clone()))     `uvm_info(get_type_name(),$psprintf("gtrans is =%s", gtrans.sprint()), UVM_NONE)    else    `uvm_info(get_type_name(), "gtrans isnull", UVM_MEDIUM); #run过程中从未进入else分支   If run 1,error:null object access  ->Line383   gtrans.set_req_id(req_trans.input_trans.get_req_id());  If run 2 ,passed 
 为何run 2 is passed,$cast用if进行条件判断和不判断有何区别吗,感觉cpl_trans.input_trans.clone()第二层直接用cast就会有问题,如果只是cpl_trans 进行cast估计就不会有问题。 
 各位有碰到过类似的情况吗?望解答一下,不甚感激!!! |