版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页浅析芯片功耗的控制方法与验证方式
一、(芯片)功耗概述随着移动设备的兴起和芯片工艺的提升,功耗成为近年来芯片设计越来越关注的(话题)。对功耗关注度的提升大致可以从两方面进行分析,用户角度和芯片设计者角度。
从用户角度来看:
如今(手机)、PAD、TWS耳机等便携式设备在生活中扮演着重要的角色,芯片功耗越大,对于同等的电池容量意味着使用时间越短;如果使用时间过短,对于现代人们的出行、支付、交流等方面带来不便,会使我们日常生活的安全感降低。芯片功耗越高,手机等便携式设备消耗的能量越多,进而产生的热量也会越多。发热越严重,热噪声越大,就会影响器件的正常工作,导致手机运行速度变慢等问题,会大大影响用户。
从芯片设计者来看:
随着工艺的进步,芯片内部(集成电路)的密度越来越高,运行速度越来越快,而片上的连线越来越细,片上的(供电)(网络)必须将电力以更少连线资源送至每个单元,这就要求芯片设计者在设计阶段减少功耗的需求。另外如果不注意低功耗设计,还会导致后期成本增加,例如,芯片低功耗设计不好,发热量就可能增加,在封装的时候,就需要考虑怎么给芯片进行散热,从而增加了封装的散热成本。成本的增加还会进一步导致芯片的市场竞争力降低,所以对芯片进行低功耗设计是十分必要的。
二、功耗来源对芯片进行低功耗设计时要首先搞清芯片功耗的来源,这样才能有针对性的进行控制。从功耗的种类来看,功耗主要来自三个地方,如下图所示。
1.开关功耗
在数字CMOS电路中,对负载(电容)进行充放电时消耗的功耗。比如对于下面的CMOS非门中:当Vin=0时,上面的PMOS导通,下面的NMOS截止,VDD对负载电容Clo(ad)进行充电,充电完成后,Vout的电平为高电平;当Vin=1时,上面的PMOS截止,下面的NMOS导通,负载电容通过NMOS进行放电,放电完成后,Vout的电平为低电平。这样一开一闭的变化,(电源)的充放电,就形成了开关功耗
开关功耗Pswitch的计算公式如下所示,其中VDD为供电电压,Cload为后级电路等效的电容负载大小,Tr为输入(信号)的翻转率
2.短路功耗
短路功耗也称为内部功耗,短路功耗是因为在输入信号进行翻转时,信号的翻转不可能瞬时完成,因此PMOS和NMOS不可能总是一个截止另外一个导通,总有那么一段时间是使PMOS和NMOS同时导通,那么从电源VDD到地VSS之间就有了通路,就形成了短路(电流)。
短路功耗Pshort的计算公式如下所示,其中Vdd为供电电压,Tr为翻转率,Qx为一次翻转过程中从电源流到地的电荷量。
3.静态功耗
在CMOS电路中,静态功耗主要是漏电流引起的功耗,漏电流有下面几个部分组成:
PN结反向电流I1(PN-junc(ti)onReverseCurrent)源极和漏极之间的亚阈值漏电流I2((Sub)-thresholdCurrent)栅极漏电流,包括栅极和漏极之间的感应漏电流I3(GateInducedDrainLeakage)栅极和衬底之间的隧道漏电流I4(GateTunneling)
静态功耗的计算公式如下所示,其中Vdd为供电电压,Ipeak为所有泄漏电流之和,除了式中列出的影响因素外,温度对静态功耗也有显著影响,一般静态功耗会随着温度的升高呈指数上升。
三、功耗控制方法从第二节的描述中可以看出芯片的功耗的大小主要与供电电压、运行频率和电路负载相关,针对这些影响因素芯片设计者主要采用了如下办法:
1.clockgating
在芯片中翻转率最高的路径就是clockpath,clkpath上的功耗消耗会占据到整个芯片功耗比例的40%甚至更多。clock经pll和预分频器输出后,后面会驱动成千上万(寄存器),并且为了增加clock的驱动能力,在clockpath上会插入许多buffer,而clock每个cycle翻转就会带动整条path上所有cell翻转。如果当某一个subsys或者module不工作时clock仍在toggle,那么就会产生很大的功耗浪费。如果能够根据系统或者任务的需要对clock做动态的关断就能极大地节省功耗消耗,这种对clock进行关断的技术就是clockgating((时钟)门控)。如下图,clockgating技术主要就是在原来的clockpath上加入enable信号,使clock在满足一定条件后才能往后传输。
根据clockgating所加的层次,大体可以分为三个类型:
粗粒度门控:这种clockgating主要由架构师决定,他们根据整个soc的工作情况来决定在那些pll或者预分频器的输出端添加门控逻辑。中粒度门控:这种clockgating由模块设计师决定,他们根据模块的功能决定是否在模块外部或者模块内部的子模块处添加门控逻辑;细粒度门控:这种主要是面向寄存器级别,可以使寄存器idle时将寄存器前端的clock关掉。这种设计的优势是即使模块正在工作,模块内部某些处于空闲状态寄存器的clcok也会被关掉,进一步节省模块内部的功耗。这种gating对designer的编码有一定要求,当designer按照如下图所示模式进行(硬件)编码时,综合工具会自动在插入门控逻辑。
Clockgating方式可以分为autogating和f(or)cegating,autogating为系统正常工作时的方式,门控单元根据自己所负责的cell/module/subsys的工作状态动态的关断和打开clock;forcegating多用在调试阶段或者作为备用方法,强制关掉或打开某个clock观察其运行情况或者功耗变化。
2.DVFS
DVFS技术即dynamicvoltagedynamicfrequencyscaling,动态电压频率技术,是系统根据负载的变化来动态地调整电压和频率的技术。如果一个电路能够估算出它必须做多少工作才能完成当前的任务,那么理论上讲就可以将时钟频率调低到刚好能适时完成该任务的水平。时钟频率和电压紧密相关,降低时钟频率意味着可以同时降低供电电压。频率和电压同时降低,功耗就大大降低了。
DVFS一般流程如下:
首先计算系统当前的负载,这个负载可以软件统计得出也可以由硬件计算;根据负载计算当前系统需要的频率并进行设置;根据频率选择相应的电压进行设置。DVFS技术可以通过软件和硬件的方式实现,但电路中必须有(电源管理)模块和时钟管理模块。真正硬件实现的dvfs结构比较复杂,包括dvfstrigger模块/dvfsmap模块/votagecompare模块/arbitration模块等。
3.multivoltage
由第二节的描述可知,动态功耗和电压的平方成正比,静态功耗和电压成正比,所以降低电压对功耗的改善会很明显。multi-voltage(多电压域)设计思想就是让SOC内的每个模块/IP根据自己的需要,工作在不同电压域,这样可以减少所有模块共电压域造成的功耗浪费。
信号在不同电压域间进行传输时,可能会存在驱动不足或者过驱动等问题。例如当一个低电压域的信号去驱动高电压域的cell时,欠驱动力的信号不仅增加了输入端的上升时间和下降时间,增加短路电流的持续时间,还会使时序变差。为了解决这个问题,需要在不同电压域之间添加level-shif(te)r(电平(转换器)),它可以实现将某个电压域的输出电平转换成另一个电压域可以识别的逻辑电平。
多电压设计技术可以分为三种方式:
各电压区域有固定的电压,这种方式不能够根据自己的负载调节电压,如图(a)所示;各电压区域具有固定的多个电压,可以根据负载调节电压,但必须由软件决定选择哪一个电压,如图(b)所示;自适应的方式,各电压域具有可变的,可以根据负载调节电压,可以由软件或者硬件决定选择哪一个电压,如图(c)所示。
4.powergating
当芯片内部的模块/IP不工作时,即使我们把输入端的时钟和数据全部隔离,仍然会有部分漏电存在。工艺提升使芯片内部集成的(晶体管)数量越来越多,漏电功耗在芯片整体功耗的比重也越来越大,让设计师不得不关注这部分漏电。powergating(电源门控)技术是指将芯片中某个区域的供电电源关掉,断电后,芯片进入深度睡眠模式,其漏电功率很小,只剩powerswitch的功耗。
实现这种技术需要isolationcell(电源隔离单元)和retentioncell(保持寄存器)的支持。isolationcell主要使模块的输入/输出在电源关掉时信号保持为常数,从而避免信号悬空或者胡乱toggle;retentioncell可以在关掉电源时将寄存器的状态保留下来,为subsys或module的唤醒保留必要的初始数据。
powergating有两种方式:autoshutdown和forceshutdown。Autoshutdown是系统正常工作使用的方式,芯片ALLON区域的PMU单元会监测个subsys内各module的运行情况,当各module处于idle状态时,subsys就可以进入深睡状态;一旦监测到subsys内module的工作请求,subsys就会自动退出睡眠状态。Forceshutdown一般用在调试阶段,也作为autoshutdown模式失效时的备用方法。
5.多(阈值电压)设计
如第4小节所述,工艺的进步虽然使芯片的晶体管(门)数增多、供电电压变低、尺寸减小,但却使静态功耗的比重越来越大。据统计在90nm或以下的工艺,静态功耗要占整个设计功耗的20%以上,这就需要对功耗作更深层次的优化。工艺库中存在着不同的cell类型,cell类型的速度、电压和漏电可以用下表表示:阈值电压越高,cell速度越慢,功耗越小;反之阈值电压越低,cell速度越快,功耗越高。
多阈值电压设计的策略是:对于性能要求高的模块,或者频率比较高的部分,采用阈值电压比较低的cell,以减少单元门的延迟;对于性能要求较低的模块,或者频率较低的部分,多采用阈值电压比较高的cell,让功耗更低。通过这种方法,可以实现在同一块芯片上,根据性能和功耗的不同要求而调整cell的使用,从而避免在不太重要的功能上浪费过多的功耗。
6.低功耗的布局规划
这一部分工作中没有参与过,只简单介绍一下为了实现低功耗,布局布线的规则:
对于设计中翻转活动很频繁的节点,采用低电容的金属层进行布线;使高翻转率的节点尽可能地短;对于高负载的节点与总线,采用低电容的金属层;对于特别宽的器件,采用特殊的版图技术,以得到更小的漏极结电容;在有些布局布线工具中,可以将功耗作为优化目标来生成时钟。
四、功耗验证方式为了验证功耗的大小,在芯片tapeout之前与tapoout之后有不同的验证工具。在tapeout之前使用工具进行(仿真)验证;tapeout之后使用精密(电流源)精密电流源进行实测分析。
1.前仿真
一般使用Spypower,如下图所示。但是spypower里面自带综合工具,不需要输入netlist文件,可以在设计前期应用于功耗分析。
由于spypower是利用自身的综合引擎进行自综合,所得功耗数据与PTPX相比,误差较大,一般是利用spypower看不同版本间相对数据的变化。Spypower虽然在功耗准确度方面较差,但它提供了丰富的功耗优化数据可以用于功耗优化,如下图所示。Cgr可以用于观察添加时钟门控寄存器的比例;cge可以用观察时钟门控的效率;rodf和rode可以用于观察寄存器输出端与时钟输入端的比值,进一步检验插入的clockgate是否合适。
当然,前仿真还有powerartist工具,功能类似,本文暂不展开。
2.后仿真
后仿真一般使用较多时PTPX,PTPX是芯片设计公司普遍使用的功耗仿真工具,不仅仿真精度高,而且产生的功耗数据丰富,便于进行功耗分析。使用PTPX工具不仅可以产生一段波形的平均功耗,还可以产生每一时刻的瞬时功耗;不仅可以产生基于block的功耗,还可以报告出block内部每一个层次的功耗,甚至是每个cell的功耗;不仅可以产生整体的功耗,还可以按照memory、clock、pad等分类产生功耗。
PTPX工作流程如下图所示,用户提供lib、netlist、(ac)tivity和parasitic文件,然后PTPX工具按照一定的(算法)对各种数据进行统计和计算,最后产生功耗报告。各种文件的作用如下所述:
techlibrary:工艺库文件,里面包含着各种cell在不同状态下的功耗信息。netlist:门级网表电路,通过综合得到,里面包含着芯片中使用的cell类型。parasitic:包含设计中连线等寄生参数,比如寄生电容、寄生(电阻),这个一般是后端RC寄生参数工具提供。switchactivity:包含设计中每个节点的开关行为情况,比如说节点的翻转率或者可以计算出节点翻转率的文件,可以为saif、vcd和fadb文件。
虽然不同的功耗类型,PTPX的计算公式不同,但都是通过从netlist文件中确定使用的cell类型,从activity文件中确定cell的状态,从parasitic文件中确定对应状态的负载大小,然后再去lib文件中查找cell在当前状态下的功耗,最后将所有cell的功耗相加。
拿leakage的计算举例说明,cell的leakage在工艺库中描述如下,其中Leakage_power_unit标示leakagepower的单位;cell_leakage_power标示固定的leakagepower值,如果library里没有该变量的定义,或者该变量是个负值,工具会用default_cell_leakage_power的值,如果default_cell_leakage_power也没有指定,则用default_leakage_power_density的值乘以该cell的面积来计算得出一个leakage值,如果这三个变量都没有定义,则leakage的值为0;
leakage_power()这一部分就是用来定义跟输入状态相关的leakagepower,其中"when"用于定义输入的状态,如果某种状态没有定义,则用cell_leakage_power定义的值来计算leakage;power_level用于多电压cell中指定是跟哪个电压相关的leakagepower。
单个cellleakagepower计算公式如下,其中K表示cell包含的state数量;Pstate_leakage表示cell在当前state的功耗大小;probability表示每种状态的占比。PTPX工具就是按照如下公式逐个统计cell的功耗,最后相加。
3.精密电流源
芯片tapout之后,功耗测试主要依靠精密电流源进行,将精密电流的输出端连接芯片的供电端,就可以得到芯片工作时的电流。精密电流源具有如下特点:
精度高,拥有三种测量范围可(编程)(接口),方便自动化测试可以显示电流图,方便进行功耗分析具有trigger功能,能够抓住具有明显特征的波峰拥有多个输出通道,可以测量多个powerrail4.其他(IC设计)相关工具和方法
U(TF)(UnifiedPowerFormat),其作用是把功耗设计意图(powerintent)传递给(EDA工具),从而帮助实现物理设计。这就类似于综合时的约束,是把跟时序相关的设计意图传达给(EDA)。说简单一些,UPF就是一些tcl命令,系统架构师通过这些命令的组合,把真实的低功耗设计意图传递给工具。
CLP(ConformalLowPower),低功耗检查是低功耗设计必不可少的一个环节,此处所谓的低功耗设计指:多电压域设计,实现过程中在原有功能逻辑基础上插入低功耗单元,如:isolationcell,levelshiftercell,retentionregister,powerswitch等。
此外,还有RTL级功耗优化平台PowerPro。
五、功耗评估内容利用上节所述的功耗验证工具,一般会进行如下功耗评估:
1.场景功耗分析
场景功耗分析一般是为大系统软件服务,为大系统软件提供场景的功耗target和golden配置。场景功耗分析之前首先要定义功耗需求,进行竞品分析,确定功耗目标,分解功耗场景,然后才利用工具进行场景功耗分析。
场景功耗分析的流程一般为:
定义场景,包括场景数据流、场景代码流、场景各powerdomain状态等;根据场景定义进行coding;将编好的代码在(仿真器)上运行,并抓取activity文件;利用PTPX工具对activity文件进行功耗分析;确定功耗达标后,导出寄存器信息。2.leakage分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度知识产权许可与转让合同协议书3篇
- 2024年双方自愿:完全自愿离婚且无争议协议书3篇
- 2024年物业公司总经理委托管理协议3篇
- 下载2024年新版买房意向金支付协议书3篇
- 二零二四年份医疗器械研发与生产合同
- 2024年新款汽车零部件供应协议2篇
- 全新厂房及设备租赁合同2024年定制版携手共创未来
- 二零二四年电子政务系统建设与运营合同
- 二零二四年度研发项目合作合同
- 2024年设备购买及安装合同2篇
- 污水处理厂土建工程的主要施工方案
- 集体生活成就我 课件-统编版道德与法治七年级上册
- 2024年公司股权转让中介的协议范本
- 部编人教版道德与法治八年级上册:(1-4)单元全套练习题4套(含解析)
- 2024秋期国家开放大学《建筑工程项目管理》一平台在线形考(作业1至4)试题及答案
- 护理质控组长岗位竞聘
- 苏教版六年级上册数学期中考试试题带答案
- 北京市海淀区九年级(上)期中数学试卷-
- 吉祥物的设计 课件 2024-2025学年人教版(2024)初中美术七年级上册
- 2024年中国电动卷帘电机市场调查研究报告
- “四史”(改革开放史)学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论