ASIC低功耗设计.doc_第1页
ASIC低功耗设计.doc_第2页
ASIC低功耗设计.doc_第3页
ASIC低功耗设计.doc_第4页
ASIC低功耗设计.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

三、低功耗技术1. 功耗分析(1)由于电容的充放电引起的动态功耗图(20)充放电转换图 如图(20)所示:PMOS管向电容充电时,电容的电压从0上升到,而这些能量来自于电源。一部分能量消耗在PMOS管上,而剩余的则保存在电容里。从高电压向低转换的过程中,电容放电,电容中储存的能量消耗在NMOS管上。 我们来推导一下:考虑从低电压转换到高电压的情况,NMOS和PMOS不同时导通。在转换过程中电源提供的能量为,而是转换后储存在电容里的能量。 这两个等式说明电源提供的能量只有一半储存在电容里。另一半被PMOS管消耗掉了。为了计算总体能量消耗,我们不得不考虑器件的翻转。如果门每秒钟翻转次,那么 表示能量消耗的翻转频率。 随着数字电路集成度的提高,能量问题将成为人们关注的焦点。从以上分析看出,跟电源电压的平方成正比,因此降低供电电压对降低功耗有非常显著的意义。但是,降低供电电压对电路性能有一定的影响,这时我们可以考虑减小有效电容和减少翻转率。电容主要是由于晶体管的门和扩散电容引起的,因此降低由于电容的充放电引起的动态功耗方法之一是将晶体管设计得尽可能小,这种方法同样对提高电路的性能有很大的帮助。(2)短路电流引起的功耗 在实际电路中,输入波形上升和下降时间为零是不可能的。在翻转过程中,当NMOS管和PMOS管同时导通的时候,有限的输入信号斜率使得在瞬间产生从到GND之间直流通路。假设电流是三角波,而反向器的上升和下降波形是对称的,我们来计算在翻转周期的能量消耗:我们计算平均能量消耗 图(21)短路电路示意图 短路电流的功耗同电路的翻转率是成正比,表示器件同时导通的时间, 由器件的饱和电流决定,因此正比于晶体管的尺寸。峰值电流是输入和输出斜率比率的函数。其原因说明如下:静态CMOS反向器的输入从0变化到1,假设负载电容非常大,因此输出信号的下降时间比输入信号的上升时间长得多。在这种情况下,在输出信号变化以前,输入信号已经完成了瞬态变化,因此NMOS已经导通,但是输出电容来不及放电。而PMOS的源漏电压近似为零,因此器件关闭,不传递任何电流。这种情况下,电路电流约等于0。考虑相反的情况,输出电容非常小,因此输出的下降时间比输入的上升时间要短的多。在瞬态变化时,PMOS管的源漏电压是,从而保证了最大的短路电流。通过分析,我们知道当输出的上升/下降时间大于输入上升/下降时间的时候,短路功耗是最小的。从另一个方面讲,输出上升/下降时间不宜过大,否则会使电路的速度降低。(3)静态功耗电路消耗的静态功耗的表达式如下 是电路在不翻转时的静态电流。 理想CMOS反向器的静态电流等于0,因为PMOS和NMOS管不同时导通。实际的晶体管在源漏和衬底之间存在反向偏置的二极管,这个电流值是非常小可以忽略不计的。 然而节点的漏电流是由热载流子产生的,漏电流的值随节点温度上升而增大。因此有必要保持操作环境在较低的温度。 漏电流的另一个来源是晶体管的亚域值电流。当Vgs低于域值电压时,MOS晶体管存在源漏电流。域值电压越接近零,当Vgs=0时的漏电流就越大,消耗的静态功耗也就越大。因此域值电压不能太低,通常是大于等于0.5伏。(4)总功耗 CMOS反向器的总功耗由以下三部分组成: 典型的CMOS电路,电路节点电平翻转时对负载电容地充放电功耗是主要地功耗源。完美的设计能够将短路电流功耗限定在一定的范围内,当电路处于静态即保持状态不变时功耗很小,目前可以忽略,但是在不久的将来静态功耗将面临挑战。2. 低功耗技术方案(1) 降低电压从功耗的分析来看,芯片的功耗正比于芯片工作电压的平方,所以选用低电压工艺是个很有效地解决途径。但是同时会降低工作频率,降低噪声容限,使电路的性能变差。(2) RTL级设计阶段是最有可能大幅度降低功耗的阶段 系统级处在设计的较高抽象层次上,具有较大的优化和选择余地,设计层次越高,优化所能达到的效果越好。在系统级上进行低功耗优化设计,它们的优化程度最大可以达到几倍。不同的RTL结构,其功耗相差甚远。 举例来说,一个模16的计数器,以one_hot方式(只有一位是1,其他是0)用0000000000000001表示1,000000000000010表示2,以次类推,100000000000000表示16。其好处是跳变一次只有两位寄存器发生变化,但是所用的资源比较大。用binary方式表示,用0001表示1,0010表示2,1000表示16,只用了4位寄存器,但是跳变一次至少有两位寄存器状态改变,所以功耗几乎相等。而一个模256的计数器,one_hot方式和以binary编码方式,其功耗比约为5:1。 电路中的功耗主要是动态功耗, 而近年来的研究表明, 在电路中时钟信号消耗的功率占了系统功耗的很大比例(15% 45% ) ,因此通过减少时钟功耗将可以有效地降低电路的总功耗。降低时钟功耗可以从减少时钟信号的摆幅、降低时钟频率和简化电路结构等方面入手, 而降低时钟频率很自然地会利用双边沿触发器L采用双边沿触发器后, 在保持原来数据处理频率的条件下, 时钟信号的频率可以减半, 由此便可导致集成电路的功耗降低。 同步设计是目前数字系统设计中最为常用的设计。因为在同步设计中,所有的时序单元均通过同一个时钟调度,因此时序上不会出现混乱。并且当前的EDA工具对于同步电路的分析与支持已经比较完善。同时,由于所有的时序单元都随着时钟的跳变而翻转,因此时钟的功耗是比较大的。异步电路不是所有的时序单元都受同一个时钟控制,所以使用异步电路使得某些触发器的时钟跳变大大减少。例如,异步触发四位二进制计数器中触发器C 的时钟跳变从原来的16 次减少为8 次, 触发器D 的时钟跳变减少为4 次,从而有效地降低了功耗。同时,异步电路对于电压,温度的敏感性要小,也不存在同步电路所具有的CLOCK SKEW的问题,因此异步电路也有着同步电路不可比拟的优越性。(3) 门控时钟 门控时钟是RTL级降低功耗的一个非常有效的手段。它指时序电路(触发器或锁存器等)的端仅在时钟需要引入时才引入。先来看一下如下的HDL描述:posedge (CLK)begin if(EN=1) Data_out=Data_in; End直接对这段代码进行综合将生成如图(22)所示的电路,这是设计中最常见的一类寄存器。图(22)没有门控时钟的触发器 在没有门控时钟的结构中,对于有同样时钟和同步控制信号的触发器组,综合工具使用反馈环和选择器来连接它们。当这些触发器在多个周期内保持同样的值,它们不可避免地要消耗能量。 当同步的使能信号处于状态0的时候,触发器组关闭。在这种情况下,电路使用选择器将触发器组的Q值返回到数据输入D端。当使能EN信号处于状态1的时候,寄存器打开,允许数据输入D端输入新的值。这个反馈环不可避免地消耗能量。比如,在多个时钟周期内,如果使能信号的值为0那么同样的值多次载入触发器,其输出的值没有改变,但是触发器组和时钟线要消耗能量,同时选择器也要消耗能量。也就时随着时钟信号的翻转,电路中存在冗余的开关动作,消耗额外的功率。对于这种情况可以在寄存器状态不需要改变时关断它的时钟输入以达到降低功耗的目的,这就是门控时钟的设计思想。插入门控时钟的电路结构如图所(23)示:图(23)加入了门控时钟的触发器CLK是源时钟信号,ENCLK是插入门控时钟以后到触发器组的时钟信号,此信号由与门(AND)控制,而ENL是控制与门的使能信号,它由使能信号EN产生。从上图可以看出,ENCLK的翻转率远远小于CLK,因此能够消除冗余的寄存器内部功耗和时钟网络功耗,另外由于原电路的选择器被门控时钟取代,所以还能够减小芯片的面积。在彩色LCD控制器设计实例中,采用门控时钟技术后,设计的功耗降低了56,同时电路规模也减小了8.5%。由此可见,该技术是一种非常有效的低功耗设计技术。当EN信号为0时,Data_out保持原来的值不变,但是,随着时钟信号的翻转,电路中存在冗余的开关动作,消耗额外的功率。对于这种情况可以在寄存器状态不需要改变时关断它的时钟输入以达到降低功耗的目的,这就是门控时钟技术的设计思想。插入门控时钟能够消除冗余得寄存器内部功耗和时钟网络功耗,另外由于原电路中得多路选择器被门控时钟逻辑取代,并且通常是一个门控时钟逻辑取代,并且通常是一个门控时钟逻辑门控一组寄存器,所以还能够减小芯片得面积。PowerCompiler能够自动插入门控时钟,使得这种优化成为可能。PowerCompiler和综合工具DesignCompiler(DC)集成在一起,所以插入门控时钟直接在DC中进行。下面给出了插入门控时钟并完成综合得DC脚本如下: /*设定门控时钟设计时常用的变量*/set hdlin_enable_rtldrc_info trueset power_preserve_rtl_hier_names true/*设定门控时钟类型及相关参数*/set_clock_gating_style -sequential_cell latch -setup 0.2 -hold 0.1 -control_point before -control_signal scan_enable /*读入RTL级设计,插入门控时钟*/analyze -f verilog Sync_top.v Decoder.v Crc_check.v Crc_encode.v Fsm.v Encode_modulate.v Eeprom_control.velaborate Sync_top -gate_clocklinkhookup_testports verbose/*报告插入门控时钟的具体情况*/report_clock_gating -gating_elements -gated -ungated -hier gate.rpt/*插入门控时钟后的时钟定义与约束*/create_clock -period 296 -name Clk_fc4 get_ports Clk_fc4create_clock -period 296 -name Post_cg_clk4 get_pins -hierarchical *clk_gate*/ENCLKcreate_clock -period 296 -name Pre_cg_clk4 get_pins -hierarchical *clk_gate*/CLKset_clock_uncertainty 1 get_clocks Clk_fc4set_dont_touch_network get_clocks Clk_fc4set_clock_latency 1 get_clocks Clk_fc4set_clock_latency 0 get_clocks Pre_cg_clk4set_clock_latency 0.7 get_clocks Post_cg_clk4set_clock_transition 1 get_clocks Clk_fc4create_clock -period 2368 -name Clk_fc32 get_ports Clk_fc32create_clock -period 2368 -name Post_cg_clk32 get_pins -hierarchical *clk_gate*/ENCLKcreate_clock -period 2368 -name Pre_cg_clk32 get_pins -hierarchical *clk_gate*/CLKset_clock_uncertainty 1 get_clocks Clk_fc32set_dont_touch_network get_clocks Clk_fc32set_clock_latency 1 get_clocks Clk_fc32set_clock_latency 0 get_clocks Pre_cg_clk32set_clock_latency 1 get_clocks Post_cg_clk32set_clock_transition 2 get_clocks Clk_fc32/*设定其他时序约束,完成综合*/source constraints.tclpropagate_constraints gate_clock/*传递门控时序约束*/uniquifycompile/*检查时序并输出DB文件和网表*/DC在读入设计,即“elaborate”时,需加上“gate_clock”选项,即插入门控时钟。在这之前必须先设置门控时钟的类型。“sequential_cell latch”选项指定基于锁存器的门控时钟,基于锁存器的门控时钟是最安全的,对时序的影响较小,而且不容易导致时钟网络的毛刺,但仍然需要进行建立和保持时间的检查,避免引入毛刺;“max_fanout”指定一个门控时钟逻辑控制的最多寄存器,指定的值过大影响时钟树综合的质量和运行时间。在门级仍然存在一些降低功耗的技术,最典型的是选用具有更合适驱动能力的门。在满足序要求的情况下,额外的大驱动只会消耗掉额外的功耗。但情况有时也会变化,如果一个门的输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论