注册 登录
ET创芯网论坛(EETOP) 返回首页

yuanpin318的个人空间 http://blog.eetop.cn/13812 [收藏] [复制] [分享] [RSS]

日志

各种UVM agent

已有 447 次阅读2018-8-29 23:12 |个人分类: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


全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

关闭

站长推荐上一条 /1 下一条

QQ ×

关闭
关闭
X

关于我们|联系我们|ET创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2019-6-20 13:02 , Processed in 0.029617 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部