当前位置: 首页 > news >正文

UVM Driver 与 BFM:从 Transaction 到真实波形的最后一公里

引子:Transaction 不会自己变成波形

在 UVM 验证平台中,sequence 负责产生 transaction 对象,sequencer 负责调度这些 transaction,但真正驱动 DUT 引脚、产生时序波形的是谁?答案是 driver。

然而,driver 本身通常并不直接操作信号,它通过调用BFM (Bus Functional Model)提供的信号级任务来完成实际的总线时序。transaction 是抽象的“数据包”,BFM 是“物理层驱动”,driver 则是连接两者的“调度器”。理解这三者的分工,是构建高效、可复用验证环境的核心。

Driver 与 BFM 的分工

Driver —— 从 Sequencer 到 BFM 的搬运工

uvm_driver是一个 UVM 组件,它通过seq_item_port从 sequencer 获取 transaction,然后将其转换为对 BFM 的调用。Driver 的核心任务是:

  • 从 sequencer 获取下一个 transaction(get_next_item)。
  • 解析 transaction 中的抽象字段(如地址、数据、读写方向)。
  • 调用 BFM 提供的信号级 task,驱动 DUT 接口。
  • 完成传输后,调用item_done()通知 sequencer。

重点:Driver 不应该直接操作vif信号,除非没有 BFM 或波形非常简单。将信号级操作封装在 BFM 中,可以让 driver 保持协议无关性,提高复用度。

BFM —— 信号级的“黑盒”封装

BFM (Bus Functional Model) 是对某一种总线协议(如 AHB、AXI、APB)的信号级行为封装。它以 task/function 的形式提供类似drive_write(addr, data)drive_read(addr, data)这样的接口。

一个典型的 BFM 可能包含:

interface my_bfm ( input logic clk, input logic rst_n, output logic [31:0] addr, output logic [31:0] wdata, input logic [31:0] rdata, output logic write, output logic valid, input logic ready ); // BFM 信号级任务:发起一次写操作 task drive_write(input logic [31:0] a, input logic [31:0] d); @(posed
http://www.cnnetsun.cn/news/4036627.html

相关文章:

  • 【HTB-CPTS】第22章 Command Injections(测验部分)
  • HCIA认证实验指南:网络配置与排错实战
  • 大模型应用开发实战:LangChain输出解析器解决AI结果结构化难题
  • 大数据处理实战:Python分块清洗与PostgreSQL高速导入四百万行CSV
  • pytracking 部署笔记
  • CMake编译选项深度解析:从CMAKE_CXX_FLAGS到跨平台构建最佳实践
  • Claude文本水印真相:技术原理、影响与应对策略
  • 【原创唯一】基于微信小程序+uni-app+vue的个人博客小程序 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)
  • 【原创唯一】基于SpringBoot+Vue的个人博客网站系统 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)
  • Python数据可视化配色全攻略:从Matplotlib到Seaborn与Plotly
  • 实用推荐:5款低查重AI写教材工具,轻松搞定教材编写难题!
  • YOLOv11模型导出全攻略:从ONNX、TensorRT到OpenVINO、Core ML、TFLite与TorchScript的多平台部署实战指南
  • 外卖CPS平台开发推广员上下级关系处理
  • Sentinel 流控规则 · 流控效果
  • 【原创唯一】基于SpringBoot+Vue的学生作业管理系统 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)
  • RePKG 实战指南:拆开 Wallpaper Engine 的 PKG,把 TEX 纹理转成可编辑的 PNG
  • 告别LaTeX表格手工编码:超强工具实现图形化设计与代码自动生成
  • 2027亚洲AI算力液冷技术展官方市场信任度充足
  • 若依框架项目名称自定义全攻略:从配置到模板的完整实践
  • 外贸企业必看:谷歌SEO优化服务,助力海外订单增长
  • 基于ReAct与Function Calling构建本地AI编程助手:从原理到实战
  • 从零构建具身智能仿真环境:基于Isaac Gym与强化学习的机械臂抓取实战
  • 无血清培养基为什么越来越常用?从批间差异、动物源风险到下游纯化
  • 【学习地图】AI学习 · 文章索引
  • AI长任务处理:SSE、检查点与幂等性构建可靠异步系统
  • OneNote多人共享协作全攻略:从方案选型到问题解决
  • AI 全栈专业名词科普:从入门到理解
  • 构建AI编程助手的代码大脑:知识图谱与语义检索的工程实践
  • K均值聚类评估:SSE与轮廓系数原理、应用与实战
  • Vim正则表达式实战:从基础语法到高效文本处理