In reply to uvm_share:
Better yet, extend your coverage collector from uvm_subscriber. That extends uvm_component and has a TLM imp export called analysis_export that is constructed in new().
virtual class uvm_subscriber #(type T=int) extends uvm_component;
typedef uvm_subscriber #(T) this_type;
uvm_analysis_imp #(T, this_type) analysis_export;
function new (string name, uvm_component parent);
super.new(name, parent);
analysis_export = new("analysis_imp", this);
endfunction
pure virtual function void write(T t);
endclass