Один IMP_PORT подключен к нескольким EXPORTS - PullRequest
0 голосов
/ 26 марта 2020

Я создаю табло с одним портом импликации. Я хочу подключить несколько экспортов из родительского класса к одному и тому же порту 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 раза? Такое поведение мне бы хотелось.

У меня нет зависимости от порядка их вызова, но я не хочу пропустить трансляцию из-за моей настройки.

1 Ответ

1 голос
/ 27 марта 2020

Да, вы можете иметь несколько write() вызовов в неопределенном порядке. Если табло должно знать, с какого порта оно пришло, вам нужно будет указать эту информацию в транзакции.

...