I want to connect another block on scoreboard that receives the transactions from the uvm_in_order_comparator. But i dont know how to do this. The link to the comparator class is uvm_in_order_comparator . My block that i want to construct is:
class mul_analyzer extends uvm_component;
`uvm_component_utils(mul_analyzer)
mul_transaction tr_dut;
mul_transaction tr_rm;
uvm_analysis_export #(uvm_built_in_pair #(mul_transaction)) from_comparator;
event begin_analyzer_task;
int count;
function new(string name = "mul_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;
if(count >= 1000) begin
...
end
end
endtask: run_phase
virtual function write (uvm_built_in_pair #(mul_transaction) t);
tr_rm = mul_transaction::type_id::create("tr_rm", this);
tr_dut = mul_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
But when i simulate shows that the connection between the ports are incompatible.