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

ptpx常用操作

Prime Time PX工具是synopsys公司推出的功耗估算工具。常用的一些指令记录于此。

1.保存工程文件,以便日后重新打开工程,报告其他信息。

需要在pt的脚本里面添加save session xxx来保存。ptpx功耗评估结束,关闭ptpx后,可pt_shell打开ptpx,然后restore sesstion xxx来重新打开工程。

2.如何按照设计层级报告功耗?

可以运行的pt脚本中添加,或者重新打开seesion后单独输入指令:report_power -hierarchy -level 8 > xxx.rpt  level后的数字是只从dut开始,想打印几层子模块的功耗信息。不加-level就会打印全部层级的功耗

 3.如何报告网表的电容负载?

在后仿阶段,pr工具会输出寄生电容信息的spef文件,添加该文件后,net上的电容会增大,导致switching功耗增大,对于绕线复杂的模块,增幅会比较巨大。(PS:net 电容主要包括pin capacitance和wire capacitance,spef文件会增大wire cap,不添加spef文件时,wire电容是0)

报告用于ptpx功耗评估的网表的电容有以下方法

a. report_power -net_power -leaf  该指令会把所有层级的net的Vdd,  Total Net Load, Static Probability, Toggle Rate, Swithing Power全部列出来,Total Net Load是net的Total capacitance. 可以用脚本把 Total Net Load一列抓出来求和,单位是pf. 注意,不添加-leaf选项,只会报告顶层层级的net而不会hierarchy深入所有子模块的net.该指令报告的net的数量基本等于pt 功耗评估log里面的反标出来的net的数量(Number of annotated nets)

b.report_power_capacitance -nets [ get_nets -hierarchical -top_net_of_hierarchical_group ]

report_power_capacitance -nets指令会报告net的 WireCap, Pincap, PortCap,TotalPower_Cap,无spef文件情况下,total cap一般等于pin cap,添加spef后,Total cap等于pin cap + wire cap.可以用脚本把total cap一列抓出来求和,这个值等于上一条指令的Total Net Load列的总和(可能稍有误差,不会绝对相等). 注意,不添加-top_net_of_hierarchical_group会把net统计重复,报出的net cap数量可能大于上条报告的total net load的数量。(是怎么算重复的?比如cell a output  -> net_x -> cell b input ,不加-top_net_of_hierarchical_group这里可能算三条net,实际上是一条net)不加与加的实际项目差别例子:5M vs 3M

a  b两个指令报出来的capacitance总体一致,若有出入,应该以a方法为准,a方法报告的net的数量和ptlog中的数量能对得上,b方法报告的net信息数量可能与pt log里面的net数量有些出入。可以计算一下加不加spef前后,total cap的变化比例以及switching power的比例,是不是对得上。

PS  switching power 基本计算公式:P= C*V^2*f,C 是total capacitance,V是工作电压,f是电路的翻转率toggle rate.加不加spef文件,只影响电容,只影响swicthing power.

http://www.dtcms.com/a/164559.html

相关文章:

  • Windows系统下,导入运行 RuoYi-Vue3 项目
  • 解决ktransformers v0.3 docker镜像中 operator torchvision::nms does not exist 问题
  • mongoose插入文档,字段类型, 字段验证, 删除文档,更新文档,读取文档,查询文档的条件控制 ,字段筛选,数据排序,数据截取
  • C语言教程(二十四):C 语言中递归的详解
  • Alibaba第四版JDK源码学习笔记2025首次开源
  • C++搞定周岁.虚岁计算
  • 一页概览:统一数据保护方案
  • 【系统参数合法性校验】spring-boot-starter-validation
  • 前端Vue3 + 后端Spring Boot,前端取消请求后端处理逻辑分析
  • 【MySQL】(9) 视图
  • 跟我学C++中级篇——控制死锁
  • Qt开发:JSON字符串的序列化和反序列化
  • 【OSG学习笔记】Day 14: 操作器(Manipulator)的深度使用
  • 基于机器学习的电影票房预测
  • 万象生鲜配送系统代码2025年4月29日更新日志
  • LeetCode 155题解 | 最小栈
  • 【Leetcode 每日一题 - 补卡】2302. 统计得分小于 K 的子数组数目
  • Linux电源管理(3)_关机和重启的过程
  • 第十六届蓝桥杯 2025 C/C++组 密密摆放
  • 探索语音增强中的多尺度时间频率卷积网络(TFCM):代码解析与概念介绍
  • AI赋能的问答系统:2025年API接口实战技巧
  • 【Redis——数据类型和内部编码和Redis使用单线程模型的分析】
  • 基于Arduino的STM32F103RCT6最小系统板的测试及串口通讯
  • 深度学习中的优化算法:基础全面解析
  • 聊聊Spring AI Alibaba的PlantUMLGenerator
  • 安装deepspeed时出现了以下的错误,如何解决CUDA_HOME does not exist
  • 【Java面试笔记:进阶】28.谈谈你的GC调优思路?
  • 解决STM32H743单片机USB_HOST+FATF操作usb文件
  • 从 Pretrain 到 Fine-tuning:大模型迁移学习的核心原理剖析
  • 实验六 文件操作实验