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

[PV]AXI R/W/RW带宽计算的tcl脚本

AXI R/W/RW带宽计算的tcl脚本

我基于前述的axi_read_bw_per_id.tcl脚本进行了修改,使其支持:

  • 读通道(Read Channel):计算基于rvalid && rready的有效周期(已在前述实现)。
  • 写通道(Write Channel):计算基于wvalid && wready的有效周期,考虑wstrb的active bytes(字节使能位计数)。
  • 读写组合(Combined):分别计算读/写BW,然后求和输出总BW(假设双向接口)。

修改说明

  • 新增参数
    • channel:支持"read"(只读)、"write"(只写)、"both"(读写组合,默认)。
    • 写通道特定:strb_width(wstrb宽度,与data_width匹配)。
  • 逻辑扩展
    • 对于"both",脚本分别循环计算读/写(共享时间窗口),然后聚合总BW/效率。
    • 写通道:用Tcl proc count_active_strobes计算wstrb中1的位数(active strobes),字节 = (data_width / 8) * (active_strobes / (data_width / 8))。
    • per-ID支持:读用rid,写用wid(假设信号名为"wid";调整为您的设计)。
    • 输出:CSV扩展为per-ID读/写/总(e.g., Read BW, Write BW, Total BW)。
  • 假设
    • 读/写信号在同一scope。
    • ID宽度相同;如果不同,需额外调整。
    • 步进1.0ns(调整为您的clk周期以加速)。
  • 运行方式:同前述,在Verdi中source axi_rw_combined_bw.tcl。生成CSV报告。

       如果您的AXI接口有自定义信号(如非标准ID/strb),或需要优化性能(e.g., 用npi_iterate_over_transitions),请提供更多细节。

修改后的脚本示例(axi_rw_combined_bw.tcl)

# axi_rw_combined_bw.tcl - 计算AXI读/写/组合带宽 (支持per-ID, 多窗口)# 用户参数 (可修改)
set data_width 128                  ;# AXI数据宽度 (位, e.g., 128=16字节/周期)
set id_width 8                      ;# ID宽度 (位, e.g., 8位支持256 ID)
set strb_width [expr $data_width / 8]  ;# wstrb宽度 (字节, e.g., 16 for 128-bit)
set channel "both"                  ;# "read" (只读), "write" (只写), "both" (读写组合)
set scope "/top/dut/axi_if"         ;# AXI接口scope路径 (调整为您的设计)
set time_windows [list {0 1000} {1000 2000} {2000 3000}]  ;# 多时间窗口 (ns, list of pairs)
set output_file "axi_rw_combined_bw_report.csv" ;# 输出CSV文件# Tcl proc: 计算wstrb中active bits (popcount)
proc count_active_strobes {strb_val strb_width} {set count 0for {set i 0} {$i < $strb_width} {incr i} {i
http://www.dtcms.com/a/338935.html

相关文章:

  • AI赋能商业数据分析:从海量数据挖掘到智能决策洞察,激活企业增长新动能
  • Redisson 分布式锁核心机制解析
  • Flink原理与实践:第一章大数据技术概述总结
  • 微软行业案例:英格兰足球超级联赛(Premier League)
  • 丝杆支撑座在自动化生产线中的关键支撑
  • arcgis-提取范围中最大占比面积的信息或唯一值
  • Jenkins服务器SSH公钥配置步骤
  • nodejs koa框架使用
  • 计算机大数据毕业设计推荐:基于Spark的气候疾病传播可视化分析系统【Hadoop、python、spark】
  • 《算法导论》第 30 章:多项式与快速傅里叶变换(FFT)
  • vue3中封装hooks
  • uniapp 应用未安装:软件包与现有软件包存在冲突
  • GEO 优化专家孟庆涛:技术破壁者重构 AI 时代搜索逻辑
  • Flask 路由与视图函数绑定机制
  • 正式签约 | OpenLoong 项目正式捐赠至开放原子开源基金会,成为全国首个具身智能方向孵化项目!
  • 【图像算法 - 18】慧眼辨良莠:基于深度学习与OpenCV的麦田杂草智能识别检测系统(附完整代码)
  • 哈希:两数之和
  • Mac(七)右键新建文件的救世主 iRightMouse
  • python将epub文件转pdf
  • UniApp 实现pdf上传和预览
  • 大模型级部署:从本地轻量化到云原生方案
  • 基于单片机智能密码锁/密码箱/门锁/门禁系统
  • Python爬虫实战:研究ICP-Checker,构建ICP 备案信息自动查询系统
  • PiscCode迅速集成YOLO-Pose 实现姿态关键点轨迹跟踪应用
  • 从繁琐到优雅:Java Lambda 表达式全解析与实战指南
  • 第1章 React组件开发基础
  • JxBrowser 8.10.0 版本发布啦!
  • iOS App 混淆工具实战,教育培训类 App 的安全保护方案
  • CTFshow系列——命令执行web34-37
  • RK3128增加usb调试模式,开放adb和root权限