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

在 UVM验证环境中,统计 AXI协议的Outstanding Transactions

在 UVM验证环境中,统计 AXI协议的Outstanding Transactions 

       摘要:在 UVM (Universal Verification Methodology) 验证环境中,统计 AXI (Advanced eXtensible Interface) 协议的 Outstanding Transactions 是验证复杂 SoC (System on Chip) 设计的重要任务,尤其是在验证高性能总线接口时。Outstanding Transactions 指的是已发送但尚未完成的事务数量,通常用于评估总线的负载能力和性能瓶颈。以下是关于如何在 UVM 环境中统计 AXI Outstanding Transactions 的详细说明,包括代码实现,以及如何在 AXI VIP (Verification IP) 中实现和验证 Outstanding Transactions。


1. AXI Outstanding Transactions 的概念

1.1 定义

  • Outstanding Transactions:在 AXI 协议中,指的是已经发送到总线但尚未完成响应的事务数量。对于读事务,Outstanding 是指发送了读地址 (AR) 但尚未接收到所有读数据 (R) 响应;对于写事务,是指发送了写地址 (AW) 和写数据 (W) 但尚未接收到写响应 (B)。
  • 重要性:统计 Outstanding Transactions 可以帮助评估总线的并发处理能力、缓冲区利用率和潜在瓶颈,验证 DUT (Design Under Test) 是否支持协议定义的最大 Outstanding 数量。

1.2 AXI 协议中的 Outstanding

  • AXI 特性:AXI 协议支持多个 Outstanding Transactions,通过事务 ID (如 AWID, ARID) 区分不同事务,允许乱序 (Out-of-Order) 完成。
  • 读通道:AR 通道发送读请求,R 通道返回读数据,Outstanding 数量是已发送 AR 请求但未完全接收 R 响应的数量。
  • 写通道:AW 通道发送写地址,W 通道发送写数据,B 通道返回写响应,Outstanding 数量是已发送 AW 和 W 但未接收 B 响应的数量。
  • 限制:AXI 规范未强制规定最大 Outstanding 数量,但 DUT 设计通常有缓冲区限制,需验证是否符合设计目标。

1.3 验证目标

  • 统计准确性:实时统计 Outstanding Transactions 数量,验证是否与预期一致。
  • 最大容量:验证 DUT 是否支持设计指定的最大 Outstanding 数量。
  • 性能分析:分析 Outstanding 数量对总线延迟和吞吐量的影响。
  • 错误检测:检测 Outstanding 数量异常(如缓冲区溢出、事务丢失)。

2. UVM 环境中统计 AXI Outstanding Transactions 的机制

       在 UVM 验证环境中,统计 AXI Outstanding Transactions 需要在适当的组件中实现计数逻辑,并结合 AXI 协议的 ID 追踪机制。以下是详细的机制:

2.1 统计机制

  1. 事务追踪
    • 在 Driver 中记录发送的事务(读请求 AR 或写请求 AW/W),增加 Outstanding 计数。
    • 在 Monitor 中记录完成的事务(读响应 R 或写响应 B),减少 Outstanding 计数。
    • 使用事务 ID 确保发送和完成事务匹配,避免误计数。
  2. 计数存储
    • 使用关联数组或队列,按 ID 存储 Outstanding 事务。
    • 维护一个总计数器,实时更新 Outstanding 数量。
  3. 实时统计
    • 在 Driver 发送事务后更新计数,在 Monitor 接收响应后更新计数。
    • 记录最大 Outstanding 数量,用于性能分析。
  4. 检查与报告
    • 在 Scoreboard 或 Monitor 中检查 Outstanding 数量是否超过设计限制。
    • 使用 UVM 日志报告 Outstanding 数量的变化和峰值。
  5. 覆盖率收集
    • 使用覆盖率点 (covergroup) 收集 Outstanding 数量分布,确保测试覆盖不同负载场景。

2.2 关键组件设计

  • 事务类 (Transaction):添加 ID 和状态字段,用于追踪 Outstanding 事务。
  • Driver:发送事务时增加 Outstanding 计数。
  • Monitor:接收响应时减少 Outstanding 计数。
  • Scoreboard:验证 Outstanding 数量是否符合预期,检查缓冲区限制。
  • Coverage Collector:收集 Outstanding 数量的覆盖率。

3. UVM 代码实现:统计 AXI Outstanding Transactions

       以下是一个完整的 UVM 验证环境代码示例,展示如何统计 AXI 总线的 Outstanding Transactions。假设验证目标是一个支持多 ID 事务的 AXI 总线接口。

3.1 事务类定义

定义 AXI 事务类,包含 ID 和状态字段,用于追踪。

相关文章:

  • TDengine 对接微软 SSRS 报表系统
  • 《分布式年夜》解析
  • 容器与编排入门 - SRE 须知的 Docker 与 Kubernetes 基础
  • 力扣 74.搜索二维矩阵
  • ETL工具:Kettle,DataX,Flume,(Kafka)对比辨析
  • 【Linux】深刻理解OS管理
  • 电路图识图基础知识-回路编号及代号(四)
  • ​​UniBoard:私有化部署,导航笔记文件一站式管理
  • 使用自签名证书签名exe程序
  • 想一想android桌面的未读计数角标应该如何设计呢?
  • 【每日一题 | 2025年5.19 ~ 5.25】动态规划相关题
  • Lua5.4.2常用API整理记录
  • static详解
  • 固态硬盘颗粒类型、选型与应用场景深度解析
  • Muduo网络库流程分析
  • 【Linux学习笔记】深入理解ELF和动静态库加载原理
  • python 程序实现了毫米波大规模MIMO系统中的信道估计对比实验
  • MySQL索引深度解析:从原理到实践
  • Maven Profile高级策略与冲突解决
  • 修复ubuntu server笔记本合盖导致的无线网卡故障
  • 网站开发 混合式 数据库/推广策划方案范文
  • 58同城广告推广电话/长春网站seo哪家好
  • wordpress 全屏模板/沈阳seo排名公司
  • 芜湖网站建设公司/深圳电子网络推广查询
  • 有哪些做婚品的网站/营销系统
  • 自己电脑做服务器搭建网站有域名/凤山网站seo