driver与virtual_interface

返回知识网络总入口 · 平台与对象

核心结论

driver 将 transaction 转为引脚时序,virtual interface 让 class 访问静态 interface 实例,共同连接事务层与引脚层。

关键机制

  • top module 实例化 interface,通过 config_db 传 vif。
  • driver 在 build 获取并检查 vif,agent 在 connect 连接 seq_item_port。
  • 运行中处理时钟、背压与复位,采集结果后在约定时机完成 item。
  • vif 本身不自动实现协议,采样与驱动规则要由实现明确。

小例子或流程

// build_phase,已声明virtual bus_if vif
if (!uvm_config_db#(virtual bus_if)::get(this,"","vif",vif))
  `uvm_fatal("NOVIF", "virtual interface missing")
// 运行task
seq_item_port.get_next_item(req);
drive_one(req); // 用户实现
seq_item_port.item_done();

易错点

  • interface 参数与 modport 特化需匹配。
  • 漏 item_done 会阻塞,过早完成会改变所有权与完成含义。
  • 永久驱动循环不适合持有无法释放的测试 objection。

关联知识

原文出处与已有面试题