概述
功耗控制
- 1.CMOS门电路简介
- 2.FPGA功耗的构成
- 3.时钟网络及其功耗
- 4.门控时钟
- 5.划分时钟区域
- 6.RAM的时钟使能
- 7.双沿触发器
- 8.CMOS导通电流
- 9.减少供电电压
- 10.改变I/O的终端方式
1.CMOS门电路简介
在集成电路领域,CMOS(Complementary Metal Oxide Semiconductor)电路并非从一开始就应用在数字集成逻辑电路中。半导体技术有着漫长的发展历史,最早分立器件广泛应用在模拟电路中,数字电路则是后来的产物。早期的模拟电路中,二极管和三极管的作用是极其重要的。假如没有二极管和三极管,人类还只能依赖于真空管这种又大又笨重的器件。模拟电路中的放大电路由三极管和若干电阻即可轻松实现,并且工作电压比真空管低很多。在分立器件的年代,这样的电路体积很小,并且工作环境很安全,功耗也很低。这都是真空管无法与之相比的。但在高保真音响领域,真空管仍然受到广泛喜爱。
CMOS电路最早在1963年由Fairchild发明。CMOS电路从诞生一开始就比TTL电路具有更低的功耗,这是由器件本身的特性所决定的。然而,早期的CMOS电路的速度也比TTL电路慢,并且很容易受静电放电的破坏。如今CMOS电路器件通常具有静电保护电路,避免CMOS器件被静电击毁。
此外,随着各个研究机构和半导体制造商对CMOS电路的深入研究和半导体工艺的不断进步,现代CMOS电路的闸极氧化层厚度越来越薄,闸极电压越来越低。这些进步一方面使CMOS电路能工作在更低的电压下,进一步降低了CMOS电路的功耗;另一方面,低电压使得器件具有更低的翻转电压,即使电平转换时的信号上升或下降斜率相同,器件也能在更短的时间内完成电平翻转。现代CMOS电路的稳定性和性能越来越好,功耗却越来越低,数字电路中占据主导地位。
CMOS是电压控制器件,具有高输入阻抗和低输出阻抗的特点。在CMOS电路中,栅极阻抗非常大。CMOS晶体管的栅极和半导体之间由一层二氧化硅(SiO2)绝缘层组成。SiO2的电阻非常大,在栅极金属层和硅半导体之间相当于电介质。从输入端看,CMOS器件相当于一个电容。在电路领域,理想的电容应该具有无穷大的电阻,在直流电路中视为开路。然而,实际情况中,电容介质不可能绝对不导电。电容加上直流电压并且完成充电后,电容会有漏电流的产生。
2.FPGA功耗的构成
为了满足不同工程师和不同电路设计的需要,FPGA需要提供“冗余”的资源和功能,这不单是因为FPGA资源使用无法达到100%,也是由于FPGA的用途和目的决定的。在FPGA中,所有的数字逻辑功能都是基于片上资源,包括LUT、Register、RAM等。要实现与门的功能时,我们在FPGA上找不到与门的单元,但可以找到LUT。可以通过约束来决定使用FPGA片上的哪一个LUT,但无法决定这个LUT是是怎么设计的。厂商设计LUT时也不会考虑工程师会编写怎么样的逻辑表达式,也不苦恼于需要提供什么样的门电路,于是提供了能存储完整真值表的LUT。在LUT上,无论是与门、同或还是异或,都可以装在4输入的LUT里。
由于设计的理念和实现的方法不同,相同电路在ASIC和FPGA上实现时,FPGA具有较大的功耗。因此,即使得益于半导体工艺的快速发展和进步,现代FPGA的功耗在持续下降,FPGA也还是不适于超低功耗的设计领域。
在ASIC领域,芯片的功耗包括静态功耗、动态功耗和I/O功耗。在FPGA领域虽然器件在实际使用中功耗更大、组成也更复杂,但以静态功耗和动态功耗来划分也依然成立。数字逻辑电路的总功耗可以表示为:
P
t
o
t
a
l
=
P
d
y
n
a
m
i
c
+
P
s
t
a
t
i
c
+
P
I
O
.
P_{total} = P_{dynamic} + P_{static} + P_{IO}.
Ptotal=Pdynamic+Pstatic+PIO.
无论是否工作,静态功耗是芯片都要消耗的功耗。图2描述了CMOS电路中漏电流的来源,表1列出了可以采用相应的手段来减少每一种漏电流。
表1 漏电流极其应对方法
在半导体技术发展历史上,130nm制程以前,芯片的静态功耗所占比例很小,芯片的功耗主要由动态功耗组成。随着工艺的不断进步,半导体特征尺寸不断减小并且进入到超深亚微的水平。先进的半导体工艺为VLSI带来了各种好处;相同尺寸的硅片基底(die)上可以集成更大规模的晶体管,更高的集成度使板级设计更加简单容易;小沟道带来的低压低电平能缩短器件的充放电时间,实现更高的时钟频率、更好的电磁兼容性、更低的功耗水平。然而小沟道也造成了半导体漏电流的增加,芯片的静态功耗所消耗占的比例也越来越高,沟道尺寸减小后,PN结的厚度也随之减小,导致器件中的自由电子能更容易穿越PN结的势垒,造成漏电流的增加。即使现代半导体技术使用高K来减小漏电流,但随着沟道尺寸越来越小,漏电流将会越来越严重,最终成为难以解决的问题。
芯片上的动态功耗是数字逻辑电路在传输逻辑电平时,晶体管需要开启-关闭,以及电源网络、片上布线网络以及信号翻转时容性负载充放电造成的功耗。大规模集成电路的动态功耗可以表示为:
P
d
y
n
a
m
i
c
=
P
s
w
i
t
c
h
+
P
s
h
o
r
t
.
P_{dynamic} = P_{switch} + P_{short}.
Pdynamic=Pswitch+Pshort.
其中,Pswitch是信号电平翻转晶体管容性阻抗的开关功耗,Pshort是晶体管导通时的短路功耗。其中,开关功耗为:
P
d
y
n
a
m
i
c
=
η
t
⋅
n
⋅
(
1
2
⋅
V
2
+
Q
s
h
o
r
t
V
)
⋅
f
.
P_{dynamic} = eta_t cdot n cdot (frac{1}{2} cdot V^2 +Q_{short}V)cdot f .
Pdynamic=ηt⋅n⋅(21⋅V2+QshortV)⋅f.
其中nt是设计中信号的翻转率,n是电路的规模,C是CMOS管等效负载电容,V是电路的电压,Qshort是电平福安转时门电路完全导通时通过的电量,f是时钟频率。芯片的动态功耗与信号翻转率、电路规模、等效电容和工作频率成正比,与供电电压的平方成正比。
从上述描述可以看出,可以通过降低翻转率、电路规模、电路电压、等效负载电容以及时钟频率来降低器件的动态功耗。通常,器件的等效负载电容已经由器件本身决定,无法改变。剩下的4个因素都可以由开发人员控制。芯片I/O的负载模型取决于终端电阻的连接方式。在容性负载的前提下,芯片I/O的功耗模型与动态功耗类似。
3.时钟网络及其功耗
在大规模集成电路中,时钟网络的动态功耗在芯片的动态功耗中占有相当大的比例。 因此,有必要分析和讨论时钟网络的功耗。讨论这部分内容之前,不妨先了解时钟网络的结构。在数字逻辑电路中,电源系统与时钟信号的质量对电路的是否能正常工作有着极其重要的作用。
电源系统的作用是明显的,假如电源不够稳定,或者波纹过大,或者驱动电流过低,一旦系统收到外界电磁干扰或者瞬间功耗过大,芯片就很有可能工作在不稳定的状态上。因此,在设计硬件电路时,务必先评估FPGA在极端条件下的最大功耗,并且在设计电源系统时充分考虑信号完整性和电磁兼容性问题。
时钟信号质量的好坏直接影响着芯片的功能。同步时序电路的时序分析完全建立在时钟周期的基础上。在理想状态下,时钟信号同步到达所有的触发器,并且不存在抖动问题。然而,实际的时钟信号却并非如此。片上时钟信号通过时钟引脚(全局引脚)进入到FPGA内部,经过专门的时钟电路(PLL、时钟 Buffer、时钟 Mux)处理,连接至芯片上的触发器。 时钟网络在空间上具有特定的拓扑结构,从而确保时钟的源端到触发器的走线长度(严格来说不是走线长度,而是延时)保持较小的差异。然而,时钟网络到不同触发器之间的时钟偏移依然存在。在静态时序分析的时候,软件根据布线参数处理了时钟网络的偏移以及斜率、抖动,并且给出时序报告。 满足时序约束意味着电路可以在指定条件下工作在特定的时钟频率不出问题,然而,假如时钟信号收到较大的干扰,或者被开发者随意排布到普通的网络上,那么,时钟网络的偏移、抖动可能会超过时序分析软件的参考值;并且,普通布线网络的寄生电容比较大,时钟信号工作在这样的网络上,信号的沿特性变差,导致实际的时序裕量比时序报告中小,严重的会造成时序冲突。
在芯片设计中,时钟网络是极其重要的。时钟网络通常遵循一定的拓扑结构。在PCB板级设计中,高速并行总线在PCB布线时需要设置约束,这样的总线通常要走等长线(PCB板上的蛇形线,对较短的信号走线进行弯曲布线,并将走线长度增加到约束值上)。等长线的约束并非要求这条高速并行先上的所有信号走线都要完全相同,而是设置布线长度以及长度偏差值,要求所有信号走线之间的长度差异不会超过这个偏差值。 显然,这组总线会存在一个信号,这个信号的布线长度最长。由这个信号的布线长度来决定这条总线的“等长”值是明智的。假如约束等长线的长度过短,那么这个信号的走线将无法满足约束;假如约束等长线的长度过长,那么多出赖的走线长度将会浪费PCB面积。 与此同时,时钟信号不会直接连接到各个触发器,而是按照一定的拓扑结构进行布线,使时钟源到各个触发器的传输延时“相等”。
时钟网络的拓扑结构实际上是特性的分形拓扑。时钟网络首先到达芯片的中心位置,然后分别等长地沿垂直方向走到芯片上半部分和下半部分的中心位置。然后时钟网络的每个线端都以相同的分布方式继续延伸,直至时钟网络覆盖整个芯片。在理论上,时钟网络的拓扑结构可以确保网络源端到每个末端的距离相等;并且经过足够多的分形之后,时钟网络足以覆盖整个芯片,使时钟信号经过相同的传输延时到达每一个触发器。此外,时钟缓冲区也用来控制时钟网络的延时。
随着设计电路规模的增加,时钟网络就生长得越复杂。换句话说,时钟网络的规模总与设计的电路规模成正比。在计算时钟网络的功耗时,下列公式同样适用。
P
d
y
n
a
m
i
c
=
η
t
⋅
n
⋅
(
1
2
⋅
V
2
+
Q
s
h
o
r
t
V
)
⋅
f
.
P_{dynamic} = eta_t cdot n cdot (frac{1}{2} cdot V^2 +Q_{short}V)cdot f .
Pdynamic=ηt⋅n⋅(21⋅V2+QshortV)⋅f.
在芯片上,时钟网络的覆盖面积很广,并且走线与电源、地之间存在寄生电容,其动态功耗依然可以用门电路的动态功耗来描述。
二分频触发器(翻转器)在每个时钟的上升沿都发生翻转。在数字逻辑电路中,该电路是除了时钟之外翻转率最高的信号,具有100%的翻转率。与之相比,时钟信号在每个周期内都具有一个上升沿和一个下降沿,因此时钟网络具有200%的翻转率。
在数字逻辑中,普通逻辑的平均翻转率要比时钟网络、翻转器的翻转率低得多。普通逻辑的翻转率通常较低,因为实际的数据与控制信号不可能每个时钟频率都在翻转,否则电路就只有翻转率的功能。在最简单的四比特二进制计数器中,随着权值的上升,每个比特的翻转率都在下降。并且任意N比特的二进制计数器具有下式所描述的翻转率,即随着计数器位宽增加,计数器的翻转率就越低。
由于时钟网络的覆盖范围非常广泛,并且翻转率非常高,时钟网络的动态功耗在芯片动态功耗中占有相当大的比例。通常来讲,在实际的数字逻辑设计中,整个电路的平均翻转率在20%~40%之间。对不同的应用与设计进行动态功耗统计,时钟网络的动态功耗占芯片动态功耗的16%。这并非说明时钟网络的动态功耗低,而是FPGA其他片上资源的功耗大所造成的。
4.门控时钟
门控时钟可以有效地降低时钟网络的动态功耗,并且不会导致电路在工作性能下降。在同步数字电路中,很多书籍不建议采用门控时钟进行电路设计。因为门控时钟会为电路设计带来不确定的因素,造成工具在进行时序分析时无法准确分析门控时钟的行为。然而,即使如此,门控时钟能够动态地管理特定区域中的时钟,并且同时影响该区域中的逻辑电路。因此,门控时钟被认为是降低芯片动态功耗的最佳方式之一。
在时钟禁止阶段,芯片右下角的时钟网络和时序逻辑不会有任何翻转。因此在这段期间内,这个区域的逻辑电路不会有任何动态功耗。
FPGA应用领域还有另外一个与门控时钟类似的做法:工程师可以通过使用触发器的时钟使能端口来禁止触发器的反转,达到降低芯片动态功耗的目的。但与门控时钟的效果不同,通过触发器的时钟端口来禁止时序电路的翻转只能影响到逻辑电路本身,无法影响到时钟网络。
FPGA中通常有全局时钟网络复选器这样的电路单元。在对时钟进行控制的时候,应该坚持使用器件上的时钟专用电路,并且时钟网络应该由专用的时钟布线网络来实现。这样做的好处是即使采用了门控时钟,仍然能保持较好的时钟质量,避免产生较大的时钟抖动,或者时钟的压摆率变差、不同区域的时钟偏移变大等问题。
在使用门控时钟时,需要仔细、谨慎地规划系统的时钟分配方案。对数字电路来讲,时钟是真个设计的核心,这不仅是在实际电路运行时才会成立,在前期的电路综合、优化、布局布线以及静态时序分析时也是如此。由于门控时钟会被当成全新的时钟域,在进行时序分析的时候,门控时钟的电路行为将无法统一到原先的时钟域下进行分析,因此,需要设计者本身确保电路行为的正确性。
5.划分时钟区域
在数字逻辑电路中,芯片上的时序逻辑并非只能由单一时钟驱动。在电路中使用单一时钟系统的优点是明显的。单一时钟系统中所有的电路都是同步的,因此时序分析工具可以非常有效地对整个电路进行时序分析。这样的电路系统中不会存在跨时钟域信号的传输问题,无须特别为跨时钟域信号的处理付出精力。此外,片上用于时钟网络布线的布局网络、MUX和Buffer资源几乎不会成为设计的瓶颈,设计者可以不考虑。
然而,单一时钟系统中,时钟频率取决于电路中需要最告诉的那部分电路。假如一个电路由5个模块组成,10Mhz、20Mhz、30Mhz、40Mhz和50Mhz分别满足他们的需求。那么一般采用50Mhz再向下进行分频处理。如果根据工作频率进行划分,可以在中间采用一个30Mhz的时钟,对50Mhz的时钟进行一个跨时钟域处理。
6.RAM的时钟使能
RAM的功耗主要是由时钟频率所决定的,并且与数据信号、地址信号的翻转率没有关系。
RAM在工作的时候,读/写时钟直接驱动RAM。无论RAM端口上的地址信号还是数据信号有没有翻转,RAM总是在每个时钟的有效沿执行读/写操作,并且每次读/写操作的功耗基本不变。数据信号和地址信号的翻转率对RAM的功耗并没有任何影响。
通常,时钟使能是控制RAM功耗的有效手段。在各个厂商提供的RAM IP配置界面中,工程师可以找到读/写时钟使能的选项。使用读/写时钟使能,在RAM不需要读或者写的时候,直接禁止RAM的读时钟或者写时钟。在RAM需要工作时才使能时钟,唤醒RAM并进行正常的数据操作。时钟使能可以幼小地控制RAM的功耗。
此外,在实际设计中总是会用到多个基本RAM模块,并将其配置成不同位宽和宽度的RAM单元。两个子图的组合RAM具有相同的位宽和深度,然而两个子图具有不同的操作方式并且都可以实现有效的功耗控制。
图(a)中,每读写4bit数据,所有的RAM都必须处于正常工作状态。假设数据流是连续的,那么,所有的RAM就会一直正常工作。图(b)中,每个RAM都可以单独提供完整的4bit数据,因此,在读/写第一块RAM的数据时,其他RAM可以处于时钟禁止状态。此时,电路的功耗主要来自第一块RAM。当读/写到其他RAM时,电路的这种操作方式依然成立。通过对RAM进行行时分控制,降低了整体功耗。
7.双沿触发器
在单沿时钟电路中,一个时钟周期内只有一个时钟沿有效。然而时钟信号在每个周期内发生两次翻转,未触发寄存器的另一个沿仍然具有功耗,因此时钟网络的功耗中有一个半的功耗是白白浪费的。
双沿触发器在每个时钟沿都进行触发。使用双沿触发器的好处是可以充分利用时钟的上升沿和下降沿,在相同的时钟频率下可以实现双倍的数据传输能力。换一种说法,在实现相同的数据带宽时,双沿触发器只需要一半的时钟频率便可以实现单沿触发器的性能。因此,双沿触发器的系统时钟可以降为一半。在这种情况下,时钟网络的功耗直接降到原来的一半。
8.CMOS导通电流
CMOS器件的导通电流(短路电流)同样影响着动态功耗。在CMOS门电路中,当输入电压大约达到1/2的逻辑电平时,门电路中的晶体管处于完全接通的状态,此时器件的导通电流会大幅增加。
9.减少供电电压
电压与功耗有着直接关系。在纯电阻电路中,电路的功耗与电压的平方成正比,在数字逻辑电路中亦是如此。降低内核的电压,系统的功耗会显著降低。但与此同时,电路的性能也随之下降。在FPGA应用领域使用某一款器件的时候,通过降低内核电压来实现低功耗的做法并不值得推荐。对同一器件,降低供电电压在降低功效的同时也牺牲了性能。
10.改变I/O的终端方式
改变终端方式可以降低I/O的导通状态和导通电流。在高速数字电路中,匹配电阻来改善线路上的信号质量、减少信号反射和过冲。匹配电阻网络对I/O的输出电流和功耗有很大的影响。下拉电阻与上拉电阻分别造成I/O输出电流和灌入电流的增加,从而影响I/O的功耗。
最后
以上就是粗心手套为你收集整理的[FPGA深度解析] 功耗控制1.CMOS门电路简介2.FPGA功耗的构成3.时钟网络及其功耗4.门控时钟5.划分时钟区域6.RAM的时钟使能7.双沿触发器8.CMOS导通电流9.减少供电电压10.改变I/O的终端方式的全部内容,希望文章能够帮你解决[FPGA深度解析] 功耗控制1.CMOS门电路简介2.FPGA功耗的构成3.时钟网络及其功耗4.门控时钟5.划分时钟区域6.RAM的时钟使能7.双沿触发器8.CMOS导通电流9.减少供电电压10.改变I/O的终端方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复