ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:1.20MB ,
资源ID:66064      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-66064.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字集成电路低功耗物理实现技术与UPF.doc)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数字集成电路低功耗物理实现技术与UPF.doc

1、数字集成电路低功耗物理实现技术与UPF孙轶群 sun.yiqun国民技术股份有限公司Nationz Technologies Inc摘要本文从CMOS电路功耗原理入手,针对不同工艺尺寸下数字集成电路的低功耗物理实现方法进行描述,并着重描述了Synopsys UPF(Unified Power Format)对低功耗设计的描述方法。UPF是Synopsys公司提出的一种对芯片中电源域设计进行约束的文件格式。通过与UPF格式匹配的Liberty文件,UPF约束文件可以被整套Galaxy物理实现平台的任何一个环节直接使用,并将设计者的电源设计约束传递给设计工具,由工具完成设计的实现工作,从而实现整套

2、数字集成电路低功耗物理实现的流程。1.0 概述本文从数字集成电路低功耗设计原理下手,对设计中低功耗的实现技术进行描述,包括完成低功耗设计需要的库资料以及常用EDA工具对低功耗技术实现的方法。2.0 CMOS电路的低功耗设计原理CMOS电路功耗主要分3种,静态功耗主要与工艺以及电路结构相关,短路电流功耗主要与驱动电压、p-MOS和n-MOS同时打开时产生的最大电流、翻转频率以及上升、下降时间有关,开关电流功耗主要与负载电容、驱动电压、翻转频率有关。做低功耗设计,就必须从这些影响功耗的因素下手。3.0 低功耗设计手段及Library需求低功耗的设计手段较为复杂,但对于不同的设计,或者不同的工艺,实

3、现的方法却各不相同。3.1 0.18um及以上工艺0.18um及以上工艺,在低功耗设计手段上较为有限,主要原因在于,静态功耗很小,基本不用关心。动态功耗方面,主要的功耗来自于Switching Power,即与负载电容、电压以及工作中的信号翻转频率相关。减小负载电容,就必须在设计上下功夫,减少电路规模。减少信号翻转频率,除了降低时钟频率外,只有在设计上考虑,能不翻转的信号就不翻转。至于电压,由于0.18um及以上工艺的阈值电压有一定的限制,因此,供电电压降低,势必影响工作频率。一般说来,在0.18um工艺下设计电路,主要有以下几种对低功耗设计的考虑。3.1.1 静态功耗可以忽略根据现有项目经验

4、可知,利用0.18um工艺Standard Cell设计出来的某芯片,数字逻辑加上Ram和Rom约40万门的电路,在完全静止的状态下,功耗约200uA左右(实测数据为400uA左右,包括了50uA Flash,30uA的PHY,113uA的VR,其他模拟部分漏电不大,因此这里估算为200uA)。这样的功耗,我们是可以接受的。如果非要减少静态功耗,则可以参照90nm工艺的设计思路,专门设计高阈值电压的MOSFET,或者专门设计切断电源所需的元件,但由此带来设计的复杂性,对0.18um工艺的影响还是很大的。如果设计规模没有那么大,且可以满足应用,往往还是可以忽略这个结果的。3.1.2时钟门控减小不

5、必要的动态功耗在寄存器的电路设计中,时钟输入端都会有一个反向器负载,就算输入端不发生变化,时钟的变化也会造成该反向器的变化,由此产生动态功耗。因此在如果该寄存器输入在某种条件下等于输出(即输出保持)时,可以将时钟门控住,以减少无效的时钟翻转。时钟门控的实现原理如下图所示:图 31 时钟门控原理图如上图所示,由于现在的设计方式,大多数是同步设计,设计人员只考虑数据路径,时钟往往是不做处理的。因此如果要实现门控,只需要在设计电路时提供可以识别的控制信号,在综合的时候,EDA工具就可以自动插入时钟门控。利用Design Compiler进行时钟门控单元插入,在读入设计以及时序约束后,需要做以下设置:

6、1 set_clock_gating_style,设置时钟门控单元插入的约束2 insert_clock_gating global,开始插入时钟门控单元;3 uniquify,将所有时钟门控单元做uniquify操作,以便后续PR4 hookup_testports -se_port ATPGSE_Pad -se_pin uPad/uATPGSE_Pad/C verbose,将所有时钟门控单元的scan_enable信号与测试用SE信号连接起来。如果没有ATPG,可以不用该句命令。5 propagate_constraints -gate_clock,将门控单元信息传递给整个电路。6 rep

7、ort_clock_gating可以查看时钟门控单元插入的情况,以便做电路修改,或插入时钟门控单元设置的修改。完成这些设置后,只需要和平常一样做系统综合即可。而在DC 2008.09版本以后,第25的步骤都可以省略,在利用compile_ultra进行优化时,第2、3步骤都会被自动执行,第4、5步骤会在insert_dft时被执行。形式验证工具Formality,在进行形式验证,需要设置verification_clock_gatie_hold_mode为low、high或者any,Formality就可以识别出时钟门控单元,并与RTL进行形式验证了。3.1.2.1. Clock Gating

8、 Cells这里所说的Clock Gating Cell是指专门设计的,集成式时钟门控单元(Integrated Clock Gating Cell,简称ICG),就是利用Latch和与门/或门实现的一个独立的Standard Cell,其优势在于以硬IP实现,时序易于掌握,物理实现中对布局布线有帮助。当然如果单元库中不提供专门的时钟门控单元,EDA工具也可以利用与门、或门、Latch甚至是寄存器等进行门控单元的实现,但效果都没有ICG好用。这里针对ICG的插入进行描述。图 31中的门控单元是一种典型的,利用负沿使能Latch以及与门组成的上升沿有效时钟门控单元,只有时钟下降沿后才会将时钟门控

9、住,保证不产生时钟毛刺。在Liberty格式文件中,某个Cell,需要有clock_gating_integrated_cell,才能让EDA工具认识到,该Cell是一种ICG。不同的clock_gating_integrated_cell的设置,需要在DC设置set_clock_gating_style时做相应的设置,才可能被使用到,下面列举一些常用的设置:同时,在ICG的不同Pin上,必须有以下属性,来告诉DC该Pin在ICG的使用中是什么功能(这里只列举常用的信息):clock_gate_enable_pin该pin是时钟使能控制信号clock_gate_out_pin该pin是时钟输出

10、信号clock_gate_clock_pin该pin是时钟输入信号clock_gate_test_pin该pin是scan_enable或test_mode信号3.1.3 使用低电压的库进行设计由于动态功耗中,驱动电压对功耗的影响也相当大,因此,如果能有一套电压只有1V的标准单元库,进行设计,仍然可以达到降低动态功耗的目的。但电压的降低,势必引起元件延时的增加,且由于0.18um工艺下,阈值电压一般在0.4V左右,驱动电压的稳定性需求也相当大,否则,可能会导致致命性的错误。法国的Dolphin公司是一家致力于低功耗设计的IP提供商,在TSMC、SMIC等Foundry的0.18um工艺下都提供

11、了1V的逻辑单元库。下面列出Dolphin在SMIC 0.18um工艺下设计的一套1V逻辑单元库,和SMIC 0.18um工艺Metro标准单元库进行比较。比较中Metro标准单元库使用1个门的BUFX2M,而Dolphin使用最小的Buffer ni01d1进行比较。area(um*um)Average leakage(nW)Rise delay(0.04pf,ns)Typical Rise Energy(0.04pf,pJ)SMIC18 METROBUFX2M8.78080.0480.1822560.0266Dolphin 1V forSMIC 0.18umni01d110.34880.0

12、10.60.005由比较中可以看出,当电压下降到1V后,Rise Energy下降了80以上,除了由于电压下降引起的功耗降低外,Dolphin应该在电路结构等方面也做了处理,因此不但动态功耗减少了,而且静态功耗也减少了很多。但延时却大了很多,因此如果设计需要翻转的频率不高时,可以考虑利用低功耗的库进行设计,达到降低功耗的目的。如果速度要求很高,这个方法是不可行的。3.2 90nm及以下工艺从3.1.3可以知道,降低驱动电压,可以减少动态功耗,但由于电压降低,驱动能力也同时被减弱,因此元件延时较大。为了解决这个问题,工艺尺寸开始减小,以便在减小驱动电压的情况下,增加宽长比(aspect rati

13、o),以达到提高驱动电流的目的,保持元件延时。同时进入更低尺寸的工艺,氧化层厚度也随之减小,以便减少阈值电压,进一步提高速度。但因为氧化层厚度在减小,漏电电流也变大了。在90nm及以下工艺中,漏电电流开始被设计人员关注。下面对在90nm工艺下进行低功耗设计及实现的一些手段结合常用EDA工具进行描述。3.2.1切断未使能电路的电源减小不必要的静态功耗针对SMIC 0.18um工艺Metro标准单元库以及TSMC 90nmLP工艺高密度标准单元库(dbtcbn90lphdbwptc)进行比较,以一个门的Buffer来举例:Average leakage(nW)IncrementalTypical

14、Rise Energe(0.04pf,pJ)IncrementalSMIC18 METROBUFX2M0.048-0.0266-TSMC 90LP Biased WellBUFFD1BWP0.214345.83%0.00272-89.77%可以看出,90nm工艺下的静态功耗,已经是0.18um工艺下功耗的3.5倍左右了。根据3.1.1可知,利用 0.18um设计出来的,约40万门的电路,静态功耗,大约是200uA(360uW,0.18um工艺按1.8V供电电压计算)。如果同样规模的电路,放在90nm工艺下,则可能达到1.26mW左右,即1.05mA左右的静态功耗(90nm工艺按1.2V供电电压

15、计算)。既然,静态功耗这么大,那么在静止时,怎样才能将这些功耗减小呢?一个非常彻底的方法就是将静止状态电路的电源关断。为了关断电源,就需要在电源网络和电路之间建立一个电源控制电路,他们被称为电源开关单元(Power Switching Cell),在需要关断时,控制Power Switching Cell将电路的供电关闭,否则打开,提供电源。由于电源关断后的电路,其输出信号就没有电路驱动,对于其驱动的电路来说,就会出现输入浮空的状态。为了解决这个问题,就需要在关闭电源的电路输出端添加一个额外的保持电路,当其电源关闭后保持输出,而电源打开时,保持电路则表现的像一个Buffer,输出等于输入即可。

16、同时,如果被关闭电源地电路输入固定电压,也可能产生对地的电流,就需要一个特别的单元对该部分电流进行保护。这样的单元被称为隔离单元(Isolation Cell)。一般来说Isolation Cell的输出部分有较大的电容负载,也就是说Isolation Cell的延时将会比较大,对时序有一定的影响,是需要注意的。当然,对于寄存器来说,如果断电,则原有的数据就无法保存,重新打开电源后,就一定会出现原有数据丢失的情况。因此可以为一些必须保持数据的寄存器建立一个备份设备,电源关闭前,将寄存器的数值保存到备份设备上,电源打开后从备份设备上将数据重新写入寄存器中。这种备份设备叫做保存寄存器单元(Rete

17、ntion Register Cells)。对于Power Switching Cell、Isolation Cell以及Retention Register Cell,他们在上电之后是不能关闭的,因此使用的电源也和正常功能不同,这些单元被成为常开逻辑单元(Always-On Logic Cells)下面就各种不同的Cell,描述其原理、库中保存的信息、以及实现流程。3.2.1.1. Power Switching Cells原理上说,Power Switching Cell结构如下图所示:图 32 Power Switching Cell电路结构示意图从图中可以看到,Power Switch

18、ing Cell的设计原理非常简单,VDD的控制(被称为Header Switch),利用一个P-MOSFET来控制,当TURN_OFF信号为高时表示电路关闭,P-MOSFET关闭,GATED_VDD就不供电了,而TURN_OFF信号为低时表示电路打开,P-MOSFET打开,GATED_VDD等于VDD_SUPPLY。同理,利用一个N-MOSFET来控制VSS电源是否供电,被称为Footer Switch。一般来说,只需要使用Header Switch或者Footer Switch就可以实现电路关断,其中Header Switch结构漏电较小,而Footer Switch结构控制效率高,且面积

19、较小。虽然原理非常容易理解,但电路设计起来非常复杂,需要考虑控制单元对电路供电的能力,考虑不能产生过大的功耗,等等。这里不详细介绍控制单元的设计,详细设计方法可以参看Synopsys公司和ARM公司联合出版的“Low Power Methodology Manual For System on Chip Design.”。将Power Switch Cell设计成单独的器件,在实现时,控制某一块电路,叫做Coarse Grain Power Switch Cell。下面是一个Coarse Grain Power Switch Cell的Liberty格式描述library() #library

20、 描述开始lu_table _template ( template_name ) #电压状态template描述,dc_current组中会使用variable_1 : input_voltage;variable_2 : output_voltage;index_1 ( , );index_2 ( , );cell() #某个Power Switching Cell描述开始switch_cell_type : coarse_grain; #Switching Cell类型是coarse_grain,暂时只支持该类型pg_pin ( ) #申明电源和地的pg_pin格式pg_type : p

21、rimary_power | primary_ground; #他们是主电源和主地direction : input ; #方向是输入/* Virtual power and ground pins use “switch_function” to describe the logic toshut off the attached design partition */pg_pin ( ) #申明内部电源和地,这就是输出电源/地的端口pg_type : internal_power | internal_ground;direction: output; #方向是输出switch_funct

22、ion : “”; #定义开断控制功能,例如SLEEPpg_function : “”; #内部电源或地功能与输入的pg_pin一致,对于header switch来说就是premary_power的Pin Name,对于Footer Switch来说就是primary_ground的Pin Namedc_current ( ) #定义不同条件下输出Pin的稳定电流值,EDA工具利用该数据计算IR Drop,并进行Switch的优化。related_switch_pin : ; #定义控制开断的Pinrelated_pg_pin : ; #定义可以被控制开断的电源Pin,如果是Footer S

23、witch则是地Pinrelated_internal_pg_pin : ; #定义不会被关闭的内部电源Pin,Footer Switch则是地Pinvalues(”, ”); #定义不同状态下的该Cell输出的电流值pin (SLEEP) #Pin SLEEP定义开始,SLEEP只是举例direction : input;switch_pin : true; #表示该输入Pin是switch pin,控制电源/地的开断/* The acknowledge output pin uses “function” to represent the propagated switching sign

24、al*/pin() #定义应答输出Pin开始,完成开断后,与switch pin状态一致,有的Switch Cell可能没有该pinfunction : “”; #功能定义,应该与SLEEP状态一致power_down_function : “function_string”; #定义关断后电源状态,如对于Header switch来说可以是!VDD+VSS,而Footer Switch来说可以是!VSS+VDDdirection : output; /* end pin group */ /* end cell group */另外,为了更好的控制电源通断控制,可以专门设计带有电源控制的逻辑

25、单元,实现时,不需要添加额外的控制电路,这种电源开关结构叫做Fine Grain Power Switch Cell,结构简单,但每个单元都有一个控制器,面积比较大。下面是一个Fine Grain Power Switch Cell的Liberty格式描述cell() #Fine Grain Power Switch Cell都是某个Cell内的一部分,不单独出现is_macro_cell : true; #定义是不是macro cellswitch_cell_type : coarse_grain | fine_grain; #多数设置为fine_grainpg_pin ( ) #定义电源信

26、号,primary_是可以断开的,backup_是不会断开的。pg_type : primary_power | primary_ground | backup_power | backup_ground;direction: input | inout | output;/* This is a special pg pin that uses “switch_function” to describe the logic to shutoff the attached design partition */pg_pin ( ) #定义内部电源/地direction: internal |

27、input | output | inout;pg_type : internal_power | internal_ground;switch_function : “”;pg_function : “”;pin () direction : input | inout;switch_pin : true | false; #如果是switch pin就是truepin() direction : output | inout;power_down_function : ; /* end pin group */ /* end cell group */3.2.1.2. Isolation

28、Cells我们知道,在CMOS数字逻辑电路当中,当某根信号为VDD时,我们认为是逻辑1,如果为GND,则认为是逻辑0。但当某块电路不供电后,其输出就失去了驱动,输出网络如果没有其他信号驱动,其电平就会为高阻态,换句话说,就是不知道电压是多少。因此,在低功耗设计中,如果需要切断某块电路电源的话,则该电路的输出就会出现不定值,而与这些输出连接的电路也就出现输入浮空的状态,因此就需要在关断电路的输出及其连接的模块之间加一个Isolation Cell,在电源关闭时,将输出网络固定在某一个电平上,而打开电源后,该电路的输出等于输入,不影响电路功能。Isolation Cell可以利用逻辑门来实现,利用

29、与门实现可以使输出在关闭电源时为0,被称为Low Clamped Isolated Signal,利用或门实现可以使输出在关闭电源时为1,被称为High Clamped Isolated Signal,如下图所示,X是输出信号,“ISOLN”和”ISOL”分别是开关控制信号:图 33 逻辑门组成的Isolation Cell利用逻辑门组成的Isolation Cell,会产生延时,对速度很快的电路来说可能会有所影响,因此也可以利用一个N-MOS或者一个P-MOS以Pull-Up和Pull-Down电路实现,但这会产生多驱动问题,不是常用的方法。利用逻辑门组成的Isolation Cell是常见的Cell,下面所示是一个Isolation Cell的Liberty格式描述:cell(isolation_cell) is_isolation_cell : true ; #定义该Cell是isolation_cellpg_pin() #电源Pin定义pg_type : primary_power;pg_pin() #地Pin定义pg_type : primary_ground;pin (data) direction : input;isolation_cell_data_pin : true ; #被控制的输

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2