【低功耗设计】功耗模型和PTPX功耗分析流程

您所在的位置:网站首页 动态翻转功耗计算公式 【低功耗设计】功耗模型和PTPX功耗分析流程

【低功耗设计】功耗模型和PTPX功耗分析流程

2024-07-11 01:42| 来源: 网络整理| 查看: 265

本文目录 功耗的构成1.静态功耗2.动态功耗1)内部功耗(internal power)2)翻转功耗(switch power) 功耗的分析功耗分析流程averaged power analysistime-based power analysis

从芯片设计到芯片量产的过程中功耗分析是必不可少的环节。在流片前进行功耗分析可以大致估计芯片在各应用场景中的功耗,可以提前做好功耗的优化,达到我们的预期功耗目标。回片后的功耗测量则是实际的芯片功耗,与预估功耗会有一定的差别。

虽然流片前的功耗分析与实际有差异,但是依然十分重要。通过流片前功耗分析,有助于我们提前做好芯片的优化,避免无效投入和资源消耗。而且流片前的功耗分析还能检查出芯片在不同的工作模式下或者工作场景下是否存在不必要的功耗,比如时钟该关的模块是否关闭,不该工作的模块是否没有工作,可以做到芯片设计的合理性检查。

功耗的构成 1.静态功耗

主要指漏电流功耗(leakage power),指电路处于不翻转状态时所产生的泄露功耗。和本身工艺库特性有关,有标准单元库的.db提供相关数据。 静态功耗计算公式: 在这里插入图片描述 其中漏电流(在这里插入图片描述)主要包括以下几部分: 1)亚阈值导通电流:当栅极电压低于晶体管的阈值电压时,导通沟道并不能完全关闭,有少量漏-源电流; 2)栅氧化层隧穿电流:随着cmos的工艺越来越小,栅极的氧化层越来越薄,栅极积累的电荷会隧穿栅氧化层进入衬底,形成栅氧化层隧穿电流; 3)PN结反偏电流:扩散层和衬底层的PN结反偏产生的电流。

2.动态功耗

主要是由于芯片中RC电路的充放电引起的。换言之,当芯片中电路出现任何信号翻转,都会产生dynamic power。 包含两部分:内部功耗(internal power) + 翻转功耗(switch power)。

1)内部功耗(internal power)

内部指的是cell内部,包括短路功耗和cell内部的开关功耗。cell内部的开关功耗是在pmos或nmos单独导通时,对管子的寄生电容进行充放电所产生的功耗;短路功耗是在输入信号进行翻转时,信号的翻转不可能瞬时完成,因此pmos和nmos总有一段时间处于同时导通状态,那么电源Vdd到地Vss之间就形成了通路,产生了短路电流,出现短路功耗。 在这里插入图片描述

内部功耗可以根据library中cell的internal_power进行查表与duty和toggle rate进行计算

2)翻转功耗(switch power)

称为开关功耗,在cmos电路中,对负载电容进行充放电时所消耗的功耗(不限于cell内),其大小与单元类型无关,只与输出电容负载,开关频率和供电电压大小有关 在这里插入图片描述

当Vin = 0时,上面的PMOS导通,下面的NMOS截止;VDD对负载电容CL进行充电,充电完成后,Vout的电平为高电平。 当Vin = 1时,上面的PMOS截止,下面的NMOS导通,负载电容通过NMOS进行放电,放电完成后,Vout的电平为低电平。 这样一开一闭的变化,电源的充放电,就形成了开关功耗。 翻转功耗计算公式:Pswitch = Vdd2 CL Tr (Tr为输入信号的翻转率,是通过前端设计给的vcd波形文件,选定一段时间,得出平均翻转率)

总结: 在这里插入图片描述

功耗的分析

本文采用synopsys的设计流程,对数字电路进行功耗分析,使用的功耗分析工具是Primetime PX,它是集成在PrimeTime中的工具,可以对逻辑综合后的全芯片进行静态和动态功耗分析和预估。

功耗分析流程

在这里插入图片描述

1.使能功耗分析 set power_enable_analysis true

2.执行vector分析 因为动态功耗的分析,与仿真激励有关,VCD(Value Change Dump,一种常见的仿真波形文件格式,用于记录电路仿真过程中各个信号的变化)的activity活跃度越高,功耗就越高。吃格式vcd或fsdb的文件,主要是为了分析仿真激励的activity活跃度。

3.吃design ①支持verilog,vhdl格式的网表;db,ddc,Milkyway格式的网表也可以; ②logic库,必须是.db格式; ③集成参数信息,应该在Milkyway格式文件中; ④sdc文件,主要为了计算平均功耗

4.设置变量 ①设置工艺和pvt信息 ②设置功耗相关的lookup查找表 ③设置寄生电容参数

5.Timing分析 执行命令update_timing

6.检查潜在的功耗计算问题 check_power

7.选择功耗分析模式 set_app_var power_analysis_mode average | time_based

8.指定switching activity data 主要有set_switching_activity,set_case_analysis。

9.指定功耗分析选项 read_vcd -time(time window)/-when(Boolean condition)。如果vcd等波形从RTL中得到,还需要一个mapping文件来进行波形与netlist之间匹配。

10.执行功耗分析 update power开始进行power analysis的分析

11.输出功耗分析报告

使用PTPX可以分析的功耗方式:

averaged power analysis

基于翻转率toggle rate来分析的。翻转率的标注,可以是默认翻转率、用户定义switching activity、SAIF文件或者VCD文件。功耗结果期望准确的话,首先要保证翻转率的标注要准确。这意味着需要后端布局布线、时钟树等已经完全稳定了。前期做功耗分析,可能只是一个评估作用。 所需文件:

logic库文件,必须是.db格式;网表文件,支持verilog、vhdl网表,db、ddc、Milkyway格式的网表也可以;sdc文件,为了计算平均功耗;parasitic文件,该文件包含电容寄生参数信息。VCD/saif文件,记录翻转率(若没有,需要人为设置翻转率)。 time-based power analysis

基于时间的功耗分析,通过event-drived算法来统计功耗。主要用在项目signoff时候,加入IR-drop的分析。 在time-based power analysis模式下,需要提供VCD或FSDB文件,工具会分析峰值功耗并生成功耗波形等,不支持SAIF格式。在此模式下会显示每一个时刻对应的瞬时功耗,并报告出peak power信息

功耗报告 在这里插入图片描述 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3