马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
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估计就不会有问题。
各位有碰到过类似的情况吗?望解答一下,不甚感激!!! |