Driver的作用是从sequencer中获得数据项,按照接口协议将数据项驱动到总线上。UVM类库提供了uvm_driver基类,所有的Driver类都应该直接或间接地从该类中扩展出来。
Driver有一个TLM port,通过它与sequencer进行通信。
要创建一个Driver:
派生自uvm_driver基类。
注册到factory机制。
从sequencer中获取下一个数据项,将数据项驱动到总线上。
在Driver中声明一个virtual interface,配置到连接DUT实际interface的virtual interface上。
下面例子中的simple_driver定义了一个Driver类。这个例子从uvm driver派 生 出 simple_driver(参数化为simple_item事务类型),并使用seq_item_port中的方法与sequencer进行通信。
simple_driver包括一个构造函数,以及使用`uvm_component_utils宏在factory中注册simple_driver类型。
第1行 扩展出driver。
第5行 添加UVM宏,注册simple_driver类型。
第13行 获取virtual interface配置
第22行 调用get_next_item(),从sequencer中获取下一个激励的数据项。
第25行 向sequencer发出信号,表示当前数据项的驱动已经完成。
第30行 在这里驱动virtual interface来完成数据项激励。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !