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中有一個派生自uvm_seq_item_pull_port的成員 seq_item_port;
uvm_sequencer中有一個派生自uvm_seq_item_pull_imp的成員seq_item_export。

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

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

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

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