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

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

各种UVM agent

已有 1978 次阅读| 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

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

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 11

    粉丝
  • 2

    好友
  • 18

    获赞
  • 7

    评论
  • 3607

    访问数
关闭

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

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 23:31 , Processed in 0.015506 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部