seqr和drvr的連接

在agent的connect_phase里

drvr.seq_item_port.connect(seqr.seq_item_export);

drvr的run_phase里

forever begin
  seq_item_port.get_next_item(req);
...
...
...
  seq_item_port.item_done();

end

uvm_driver中有一個(gè)派生自u(píng)vm_seq_item_pull_port的成員 seq_item_port;
uvm_sequencer中有一個(gè)派生自u(píng)vm_seq_item_pull_imp的成員seq_item_export。

如果不想使用自帶的成員變量,也可以自行在drvr中定義uvm_seq_item_pull_port #(REQ, RSP)等類(lèi)型的變量,此外與Sequencer中的export的連接方式和上面相同。

Driver和Sequencer之間的連接和對(duì)應(yīng)關(guān)系體現(xiàn)在兩個(gè)TLM端口的connect上。多個(gè)Driver不能和一個(gè)Sequencer連接,多個(gè)Sequencer也不能和一個(gè)Driver連接,也就是說(shuō)Driver和Sequencer是一對(duì)一的關(guān)系;更準(zhǔn)確的說(shuō),是一個(gè)seq_item_port只會(huì)connect一個(gè)seq_item_export,我們可以在一個(gè)Driver中用數(shù)組的形式定義多個(gè)uvm_seq_item_pull_port,用來(lái)連接多個(gè)Sequencer(一個(gè)seqr對(duì)應(yīng)一個(gè)uvm_seq_item_pull_imp),在agent里例化多個(gè)seq和seqr(數(shù)組形式),然后在connect_phase里連接drvr和seqr。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容