// A value of ~0~ indicates that the recorder has been ~freed~,// and no longer has a valid ID.//functionintegerget_handle();if(!is_open()&&!is_closed())beginreturn0;endelsebeginintegerhandle=get_inst_id();// Check for the weird case where our handle changed.if(m_ids_by_stream.exists(this)&&m_ids_by_stream[this]!=handle)m_streams_by_id.delete(m_ids_by_stream[this]);m_streams_by_id[handle]=this;m_ids_by_stream[this]=handle;returnhandle;end
//// This is an implementation detail of the UVM library, which allows// for vendors to (optionally) put vendor-specific methods into the library.virtualfunctionintegerm_get_handle();returnget_handle();endfunction:m_get_handle// Function: get_stream_from_handle// Static accessor, returns a stream reference for a given unique id.//// If no stream exists with the given ~id~, or if the// stream with that ~id~ has been freed, then ~null~ is// returned.//staticfunctionuvm_tr_streamget_stream_from_handle(integerid);if(id==0)returnnull;if($isunknown(id)||!m_streams_by_id.exists(id))
// @uvm-ieee 1800.2-2020 auto 7.2.6.1functionintget_handle();if(!is_open()&&!is_closed())beginreturn0;endelsebegininthandle=get_inst_id();// Check for the weird case where our handle changed.if(m_ids_by_stream.exists(this)&&m_ids_by_stream[this]!=handle)m_streams_by_id.delete(m_ids_by_stream[this]);m_streams_by_id[handle]=this;m_ids_by_stream[this]=handle;returnhandle;end
// Backend implementation of <establish_link>purevirtualprotectedfunctionvoiddo_establish_link(uvm_link_baselink);// Modified by Verdi`ifndefUVM_VERDI_NO_PORT_RECORDINGpurevirtualfunctionvoidport_begin_recording_cb(uvm_port_component_baseport_comp,stringfunc_name,uvm_objectreq,timebegin_time=0,timeend_time=0,bithas_response=0,uvm_objectrsp=null,bithas_return_value=0,bitreturn_value=0,refintr_tr_h1,refintr_tr_h2);purevirtualfunctionvoidport_end_recording_cb(uvm_port_component_baseport_comp,stringfunc_name,uvm_objectreq,inttr_h1,inttr_h2,timebegin_time=0,timeend_time=0,bithas_response=0,uvm_objectrsp=null,bithas_return_value=0,bitreturn_value=0);virtualfunctionvoidtlm2_begin_recording_cb(uvm_port_component_baseport_comp,stringfunc_name,uvm_objectreq,uvm_tlm_timedelay,bitis_nonblocking,intbegin_phase,refinttr_h);return;endfunctionvirtualfunctionvoidtlm2_end_recording_cb(uvm_port_component_baseport_comp,stringfunc_name,uvm_objectreq,uvm_tlm_timedelay,inttr_h,bitis_nonblocking,intend_phase,intsync);return;endfunction`endif// End`ifndefUVM_VCS_RECORD// 9001130255virtualfunctionstringget_object_id(uvm_objectobj);returnobj.get_type_name();endfunction`endif// End
// @uvm-ieee 1800.2-2020 auto 7.1.6.4purevirtualprotectedfunctionvoiddo_establish_link(uvm_link_baselink);// Modified by Verdi`ifndefUVM_VERDI_NO_PORT_RECORDINGpurevirtualfunctionvoidport_begin_recording_cb(uvm_port_component_baseport_comp,stringfunc_name,uvm_objectreq,timebegin_time=0,timeend_time=0,bithas_response=0,uvm_objectrsp=null,bithas_return_value=0,bitreturn_value=0,refintr_tr_h1,refintr_tr_h2);purevirtualfunctionvoidport_end_recording_cb(uvm_port_component_baseport_comp,stringfunc_name,uvm_objectreq,inttr_h1,inttr_h2,timebegin_time=0,timeend_time=0,bithas_response=0,uvm_objectrsp=null,bithas_return_value=0,bitreturn_value=0);virtualfunctionvoidtlm2_begin_recording_cb(uvm_port_component_baseport_comp,stringfunc_name,uvm_objectreq,uvm_timedelay,bitis_nonblocking,intbegin_phase,refinttr_h);return;endfunctionvirtualfunctionvoidtlm2_end_recording_cb(uvm_port_component_baseport_comp,stringfunc_name,uvm_objectreq,uvm_timedelay,inttr_h,bitis_nonblocking,intend_phase,intsync);return;endfunction`endif// End`ifndefUVM_VCS_RECORD// 9001130255virtualfunctionstringget_object_id(uvm_objectobj);returnobj.get_type_name();endfunction`endif