各种UVM agent

上一篇 / 下一篇  2018-08-29 23:12:48 / 个人分类:UVM

一般interface protocol把component分为master, slave
    Master: 发起transaction
    slave: 对transaction产生response

从是否驱动DUT的角度,可以分为:
    active:驱动DUT信号 (Driver){agent会有driver, monitor, sequencer}
    passive: 只监听DUT信号 (Monitor){agent只有monitor}

把master/slave和active/passive的概念混合起来,就会有
proactive master:   seq产生transaction,送达sequencer
                          sequencer把transaction送到driver,驱动DUT
                           monitor负责监视interace,收集transaction, 送到coverage collector和scoreboard

reactive slave:active slave, 一般我们成为reactive slave, 又称为responder
                          DUT产生transaction,送到sequencer,再送到sequence
                          sequence根据收到的transaction,产生response,再送到sequencer
                          sequencer把收到的response送到driver,回应DUT的transaction

passive slave???: 就是普通的slave啦,只是监视DUT信号
passive master???: 不可能,master一定是active的,否则怎么驱动DUT?

所以,sequence只和proactive master以及reactive slave打交道
用UVM实现proactive master是很直接的,例子太多。难度在如何产生sequence。

reactive slave比较麻烦,各个component必须增加TLM port。
1. monitor监视DUT,产生req,用TLM 1.0 put mode 实现,送去sequencer。
    sequencer就实现一个接收的write或创建一个uvm_tlm_ananlysis_fifo
    sequence在main_phase中实现一个无限循环,首先调用p_sequencer.uvm_tlm_analysis_fifo.get() 或p_sequencer.write_req(), 然后根据req产生rsp,再把rsp用sequencer送给driver



相关阅读:

TAG: agent reactive_slave UVM uvm

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2018-11-15  
    123
45678910
11121314151617
18192021222324
252627282930 

我的存档

数据统计

  • 访问量: 4514
  • 日志数: 21
  • 建立时间: 2018-08-28
  • 更新时间: 2018-08-30

RSS订阅

Open Toolbar
博评网