【UVM入门笔记(四)】sequence和sequencer相关内容(1)

一、相关名词:
  • sequence item:driver和DUT互动的最小粒度。
  • sequence:产生目标数量的sequence item对象,也可产生多个sequence(层次化),并进行相应的随机化。
  • sequencer:sequence item会经过sequencer再流向driver
  • driver:必要时,driver在消耗掉一个item后会将状态信息通过item对象返回sequencer,最终到达sequence一侧。
  • 其它:
    1)driversequencer都是uvm组件,其之间的通信通过TLM完成。
    2)uvm_sequence_itemuvm_sequence则都是基于uvm_object,可以在任何阶段创建,且不作为层次关系(即无法在顶层进行配置)。object之间或者object和component之间通过uvm_event进行通信。
    3)sequence一旦活动起来,它必须挂载到一个sequencer上,所以可以通过sequencer间接地获取顶层配置和更多信息。
    4)数据传送机制采用的是get模式。
二、Sequence和Item
1.uvm_sequence_item
  • item通常具备控制类、负载类、配置类和调试类这些类型的数据成员。
  • 可根据需要将数据定义为rand类型,通过`uvm_field_xxx的宏进行声明,便于uvm_object的基本数据方法自动实现。
2.uvm_sequence
  • 扁平类(flat sequence):往往由细小的item实例构成,其中每个item可以容纳较多的时序内容,而不只是作为一次数据传输。
  • 层次类(hierarchical sequence):可以包含其它hierarchical sequenceflat sequencesequence item
三、Sequencer和Driver
  • driver和sequencer之间的TLM通信采取了get模式,由driver发起请求,从sequencer一端获得item,再由sequencer将其传递至driver。

  • 相应的端口如下:一般只使用其中一种即可uvm_seq_item_pull_port/impuvm_analysis_port可在monitor中使用,一对多的广播;而uvm_analysis_export由于连接至sequencer中的rsp_fifo(imp)所以端口类型为export。
    在这里插入图片描述

  • 端口支持的相关方法:get_next_item[function] item_donetry_next_itemwait_for_sequences[function] put_response[function] has_do_avaliable

  • REQ与RSP类型的一致性
    在这里插入图片描述

  • ⭐sequence的body()主要完成如下任务:
    1)通过方法create_item()创建request item对象
    2)调用start_item()准备发送iterm
    3)在完成发送item之前对item进行随机处理
    4)调用finish_item()完成item发送
    5)必要时从driver获取response item
    在这里插入图片描述

  • ⭐driver的run_phase()主要完成以下任务:
    在这里插入图片描述
    示例如下:
    在这里插入图片描述
    高层环境示例:
    在这里插入图片描述
    在这里插入图片描述

  • 总结:
    在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值