Thanks for the answer Dave.
I solve the problem. In fact, i just want to connect the pair_ap form uvm_in_order_comparator to another block, i was very confuse with the use of uvm_built_in_pair. But i understand the concept and the usage of this class. I needed to change the comparator to an uvm_in_order_class_comparator, so the new block are this that connects o pair_ap from the comparator becomes:
class mul8s_analyzer extends uvm_component;
`uvm_component_utils(mul8s_analyzer)
mul8s_transaction tr_dut;
mul8s_transaction tr_rm;
uvm_analysis_imp #(uvm_class_pair #(mul8s_transaction, mul8s_transaction), mul8s_analyzer) from_comparator;
event begin_analyzer_task;
int count;
function new(string name = "mul8s_analyzer", uvm_component parent);
super.new(name, parent);
from_comparator = new("from_comparator", this);
count = 0;
endfunction
virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);
endfunction: build_phase
virtual task run_phase(uvm_phase phase);
super.run_phase(phase);
forever begin
@begin_analyzer_task;
...
end
endtask: run_phase
endfunction
virtual function write (uvm_class_pair #(mul8s_transaction, mul8s_transaction) t);
tr_rm = mul8s_transaction::type_id::create("tr_rm", this);
tr_dut = mul8s_transaction::type_id::create("tr_dut", this);
tr_rm.copy(t.first);
tr_dut.copy(t.second);
count++;
-> begin_analyzer_task;
endfunction
endclass: mul8s_analyzer