AMBA总线性能分析-demo
📅 2026/7/4 5:33:20
👁️ 阅读次数
📝 编程学习
amba总线性能分析和demo
总线性能分析目标:
- 带宽(bandwidth);单位时间内传输的数据量
1.1 读带宽;总读数据量(byte)/ 读事务总时间(从第一个arvalid到最后一个rvalid的时间)
1.2 写带宽:总写数据量(byte)/ 写事务总时间(从第一个awvalid到最后一个bvalid的时间)
1.3 总带宽:(读数据量+写数据量)/总线活跃时间 - 吞吐量(throughput); 单位时间内完成的事务数
2.1 单位时间内完成的事务数/总时间 - 延迟(latency): 事务从发起(axi的awvalid)到完成(bvalid)的时间
3.1 写事务延迟:单个事务从awvalid到bvalid的时间差
3.2 读事务延迟:单个事务从arvalid到rvalid的时间差
3.3 可统计平均延迟,最大/最小延迟,延迟分布 - 响应时间(response time): 从请求到数据返回的总时间
- 总线利用率(bus utilization): 总线实际传输的时间占总时间的比例
5.1 总线实际传输数据的时间(wvalid&wready,rvalid&rready的累计时间)/总仿真时间 - 冲突与等待(contention/wait time); 主设备因总线竞争或从设备就绪慢导致的等待时间
6.1 主设备等待总线: awvalid有效但awready无效的累计时间(地址通道等待),wvalid有效但wready无效的累计时间(数据通道等待)
6.2 从设备等待总线: arvalid&arready有效到 rvalid 的累计时间(读响应等待)awvalid&awready有效到bvalid 的累计时间(写响应等待) - 事务类型分布:读/写事务比例,突发长度分布等
总线性能分析demo
- amba vip 已实现了总线性能分析功能,
1.1 具体可以参考synopsys的example :tb_axi_svt_uvm_intermediate_sys
1.2 该example一般在如下路径:$DESIGNWARE_HOME/vip/svt/amba_svt/examples/sverilog/ - install 该example,按照
README描述执行即可 - run test_case, 该example提供了5个测试用例,随便选择一个
3.1 需要注意的是该makefile没有添加-kdboption,需要在WAVES=fsdb选择里添加
3.2 执行仿真命令,仿真结束后性能分析结果会存在test_top.fsdb中gmake USE_SIMULATOR=vcsvlog amba_pv_test WAVES=fsdb - 查看性能分析报告
4.1 使用verdi打开波形verdi -lca -ssf test_top.fsdb &
4.2 在tools -> Transaction Debug -> Performance Analyzer选项中可以查看结果,自动计算了性能分析需要关注的目标数据,还生成了可视化图表
4.3 在使用verdi打开性能分析后在仿真目录会生成performanceReport, 使用firefox 打开其中的html也可以查看性能分析结果
在自己的验证环境使用performance analyzer
在configuration文件配置总线参数时需要打开xml参数
this.master_cfg[0].enable_xml_gen = 1;this.slave_cfg[0].enable_xml_gen = 1;...设置性能分析约束(可选)
编程学习
技术分享
实战经验