主要是了解sequence item、sequence、sequencer、driver 的作用,以及之间是怎么相互联系的。

在上面这张图中,sequence会产生不同目标数量的sequence item对象,不同主要依托于SV的随机化,是的每个sequence item 的数据内容都不同;产生的sequence item经过sequencer在流向driver,driver对得到的每个sequence item进行数据解析,将数据写入接口上,写入的时候需要注意时序(接口协议),对DUT形成有效激励。
在必要的时候,driver在解析完每个sequence item后,会将最后的状态信息写回sequence item 返回给sequencer,然后最终抵达sequence对象一侧。
sequence item是driver与DUT每一次互动的最小粒度内容,driver往往是一个Sequence item消化完,报告 给sequencer和sequence,同时再请求消化下一个sequence item。
uvm_sequence_item 和uvm_sequence都是基于uvm_object,这是不同于uvm_component的地方,所以可以在uvm环境中的任何地方进行创建和配置。uvm_component只应当在build_phase阶段进行创建和配置。

sequence 和 item
这里的sequence指的是uvm_sequence类,而item指的是 uvm_sequence_item类,我们简称其为se

本文详细介绍了UVM框架中sequence、sequenceitem、sequencer和driver的角色及其相互关系。sequence负责生成不同数量的sequenceitem,通过随机化确保每个item独特;sequenceitem经sequencer传递给driver,driver解析并驱动DUT。driver在处理完sequenceitem后可能将状态反馈。sequenceitem是驱动与DUT交互的基本单位,其生命周期始于sequence,终于driver。sequence分为扁平、层次和虚拟三种类型,满足不同激励场景需求。sequencer与driver间通过TLM的get模式通信,driver使用seq_item_port和rsp_port进行请求和响应。整个过程中,正确管理和使用item至关重要,避免直接修改item数据,确保UVM组件间通信的正确性。
最低0.47元/天 解锁文章
181





