Я создаю табло с одним портом импликации. Я хочу подключить несколько экспортов из родительского класса к одному и тому же порту imp класса табло, которое я пишу. По сути (в псевдокоде):
class parent_class extends uvm_scoreboard;
uvm_analysis_export #(my_type) export0;
uvm_analysis_export #(my_type) export1;
uvm_analysis_export #(my_type) export2;
uvm_analysis_export #(my_type) export3;
my_scoreboard m_scb;
function void connect_phase(uvm_phase phase);
export0.connect(m_scb.my_imp);
export1.connect(m_scb.my_imp);
export2.connect(m_scb.my_imp);
export3.connect(m_scb.my_imp);
endfunction
endclass
class my_scoreboard extends uvm_scoreboard;
uvm_analysis_imp#(my_type) my_imp;
function void write (my_type);
// do something here
endfunction
endclass
Это прекрасно работает, но мне интересно, если мы получим 2 или 3 или 4 транзакции, транслируемые из их портов в одном такте, будет write
функция вызывается дважды / трижды / 4 раза? Такое поведение мне бы хотелось.
У меня нет зависимости от порядка их вызова, но я не хочу пропустить трансляцию из-за моей настройки.