美文网首页
seqr和drvr的连接

seqr和drvr的连接

作者: Poisson_Lee | 来源:发表于2019-07-05 10:55 被阅读0次

    在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之间的连接和对应关系体现在两个TLM端口的connect上。多个Driver不能和一个Sequencer连接,多个Sequencer也不能和一个Driver连接,也就是说Driver和Sequencer是一对一的关系;更准确的说,是一个seq_item_port只会connect一个seq_item_export,我们可以在一个Driver中用数组的形式定义多个uvm_seq_item_pull_port,用来连接多个Sequencer(一个seqr对应一个uvm_seq_item_pull_imp),在agent里例化多个seq和seqr(数组形式),然后在connect_phase里连接drvr和seqr。

    相关文章

      网友评论

          本文标题:seqr和drvr的连接

          本文链接:https://www.haomeiwen.com/subject/nokshctx.html