【简 介】
描述了超前进位加法器的一种优化设计。在结构上采用按4位分组进行超前进位的方法达到并行、高速的目的。为了在高速运算的同时降低功耗,对求和式子进行了逻辑变换;在晶体管级进行优化的单元电路设计,可减小延时、降低整个电路的面积和功耗……
|
|
|
|
|
1 引言
加法运算是计算机中最基本的,也是最重要的运算,它所需要的时间往往决定了流水线处理器周期的长短。
在各种各样的加法器中,超前进位加法器(CLA,carry look-ahead adder)通常被认为是最快也是最复杂的加法器。它的复杂度与功耗密切相关,越复杂功耗就越大[1]。在可移动产品应用蓬勃发展的今天,如何在保持高性能的情况下减小芯片面积和功耗,无疑是设计的关键,这要求设计者对芯片的重要部件进行各方面的优化。本文以低功耗为主要目标,在各个层次对CLA进行优化设计。
2 CLA原理
设一个n位的加法器的第i位输入为ai、bi、ci,输出si和ci+1,其中ci是低位来的进位,ci+1(i=n-1,n-2,…,1,0)是向高位的进位,c0是整个加法器的进位输入,而cn是整个加法器的进位输出。则和
si=aiii+ibii+iici+aibici (1)
进位ci+1=aibi+aici+bici (2)
令 gi=aibi, (3)
pi=ai+bi, (4)
则 ci+1= gi+pici (5)
只要aibi=1,就会产生向i+1位的进位,称g为进位产生函数;同样,只要ai+bi=1,就会把ci传递到i+1位,所以称p为进位传递函数。把式(5)展开,得到
ci+1= gi+ pigi-1+pipi-1gi-2+…+ pipi-1…p1g0+ pipi-1…p0c0
(6)
随着位数的增加式(6)会加长,但总保持三个逻辑级的深度,因此形成进位的延迟是与位数无关的常数。一旦进位(c1~cn-1)算出以后,和也就可由式(1)得出。
使用上述公式来并行产生所有进位的加法器就是超前进位加法器。产生gi和pi需要一级门延迟,ci 需要两级,si需要两级,总共需要五级门延迟。与串联加法器(一般要2n级门延迟)相比,(特别是n比较大的时候)超前进位加法器的延迟时间大大缩短了。
3 结构设计
直接使用式(6)形成的电路是不规则的,并且需要长线驱动,需要大驱动信号和大扇入门。当位数较多时,这种实现方式不太现实。
我们可以改进超前进位电路,使其具有规则性。对于一个n位(n>4)的加法器,按4位一组的形式对其分组,组内实行超前进位,组间也实行超前进位。相应地超前进位逻辑需要分级,级的数目L=Log4(n)。如图1所示,第m(0~n-1)位的g,p可以表示为:g4k+j=a4k+jb4k+j,p4k+j=a4k+j+b4k+j;k为(m/4)的商,代表组的位置;j为余数,代表该位在该组中的位置。各个4位CLA的组进位产生函数G4k+3, 4k = g4k+3 + p4k+3 g4k+2 + p4k+3p4k+2g4k+1 +p4k+3p4k+2p4k+1g4k ;组进位传递函数P4k+3, 4k = p4k+3 p4k+2 p4k+1 p4k ;组进位C4k+4 = G4k+3, 4k + P4k+3, 4k c4k。
每个4位的CLA模块分别计算各组内每一位的p、 g和组间的P、G,第二级LACG(look ahead carry generator)根据各组(包含第一级LACG逻辑)的P、G和c0计算出各组间的进位C4k+4 ,同样,第三级LACG则根据第二级的P、G和c0计算出向高4组的进位C16k+16,依此类推。计算出的所有组进位都要送回各个4位的CLA模块,并行算出每一位的和。
改造后,CLA的延时包括:用式(3)和式(4)产生pi和gi的1级门延时;用超前进位电路产生所有进位的2(2L-1)级门延时;用 (1) 式计算si的2级门延时。于是总的延时为[2] :
Delay(CLA adder)=1+4Log4(n) (7)
与简单的串联加法器相比,超前进位加法器需要较多的逻辑电路来产生进位位。但它的延迟时间的数量级为log4(n)。当n较大时,速度的改进是很明显的。
4 逻辑优化
逻辑优化设计的主要目的是减少信号的翻转活动[3],它通过将电路的逻辑功能尽可能的分解、优化, 减少逻辑深度,减少信号假翻转,从而使翻转活动最小,减小电路的功耗。
令gsi=ai⊙bi ,则式(1)可以改写为si= gsi⊙ci ,先考察第一组CLA
s0=gs0⊙c0 (8)
s1=gs1⊙c1=gs1⊙(g0+p0c0) (9)
s2=gs2⊙c2=gs2⊙(g1+p1g0+p1p0c0) (10)
s3=gs3⊙c3=gs3⊙(g2+p2g1+p2p1g0+p2p1p0c0)
(11)
因为g, p的值只有“00”、“01”、“11”这三种组合,结合布尔代数性质A⊙0=、A⊙1=A可知,s3的值最终可以归结为3个表达式:gs3, 3和(gs3⊙c0),同样,s2值的3个表达式为gs2, 2和(gs2⊙c0),s1为gs1, 1和(gs1⊙c0)。于是式(8)至式(11)就可以化为
s0=c0(gs0)+ 0 (0) (12)
s1=c0(gs1⊙p0)+0(gs1⊙g0) (13)
s2=c0(gs2⊙(g1+p1p0))+ 0 (gs2⊙(g1+p1g0))
(14)
s3=c0(gs3⊙(g2+p2g1+p2p1p0))
+0(gs3⊙(g2+p2g1+p2p1g0)) (15)
其他组,如s4~s7、s8~s11等,情况和s0~s3一样。
逻辑改造后,在进位产生逻辑上可以减少一些不必要的翻转,减少了节点开关活动率,并且可以重复利用g,p积之和的相同部分,达到路径平衡的效果,可以有效地消除假翻转(glitch),同时与门和或门的最大扇入都减少了一个,较大程度地减小了功耗。
5 电路的优化设计
逻辑改造后,电路也应该相应地进行优化设计,因为如果用普通的门电路来实现式(12)~(15)的逻辑,晶体管数目(面积)会增加。另外,在电路级也可以采用减少节点翻转和寄生电容的方法来降低功耗。
式(12)~(15)中多处要用到同或门,设计中,我们用基于旁路的静态逻辑[4]实现产生gs的同或门,如图2。旁路逻辑通过由附加管形成的旁路,可以把“串并交错”的电路结构简化为单一的串或者并的形式。它的电路和版图都有很好的规整性,并且可以减小寄生电容。
图3是两种同或门N块版图不同部分的比较,(b)是基于旁路逻辑实现的,与(a)相比,少了一条金属连线和两个金属接触,使版图变得十分规整,扩散区不会被隔断。在拓扑上,两条分支用公共的漏区,达到最少的接触孔和金属互连,比“串并”和“并串”的晶体管配置方式规整,且寄生电容小。
旁路逻辑不能实现传输门,因而不能用传输门实现同或和异或,但是容易证明,三态门在速度和功耗方面都比传输门优越。参照传输门的结合方式,我们用两个三态反相器和一个反相器实现了同或门。
图4实现了式(13)括号内的两个同或逻辑,平均只需要1级门延时,而用普通门实现的“与非或与非”形式的同或门需要2级或3级门延时。由上面的同或门设计得到启发,根据形如式(13)的逻辑,设计了一个10管单元utiandor2,如图5所示。
该单元电路实现s=c0CK+0CKN,只要把式(12)~(15)中的括号部分从CK和CKN输入,输出就相应得到了s0~ s3 。仅当CKN=时,电路(a)两边均是三态反相器,构成图5(b)的同或门,两个反相器交替导通,s=c0⊙CK ;当CKN=CK(发生几率比较大),左边P管和右边N管,或者左边N管和右边P管交替导通,输出s=CK,从而屏蔽了c0的变化。考察第一组4位CLA中的进位产生逻辑最复杂的s3,参考式(15),当g2,g1,g0均为0,p2,p1,p0均为1时,s3= gs3⊙c0,显然这是一种特殊情况,即低位各位都不产生进位,但可以传递进位时,直接把c0传至高位与gs同或即可产生和。c0在各位和生成逻辑的最后一级才加入,可以消除过早加入带来的不必要的翻转。左右两块交替导通,只存在下拉或上拉延时,有类似动态电路延迟小的优点。仅用了10个晶体管,比常规门实现的积之和节省8个。
6 结束语
本文描述了超前进位加法器一种通用的优化设计。结构优化设计主要实现高速,逻辑优化变换主要目的是低功耗,但面积和延迟都有一定的增加,基于晶体管的单元电路优化设计既减小延时又减小管子数目(面积),三个层次的设计相互配合、弥补,综合考虑速度、功耗和面积三要素,达到整体的优化设计。运用这种设计方法,本文设计了一个13位和一个88位的超前进位加法器,分别应用于某国产微处理器的浮点乘法器的阶码比较电路以及尾数部分积的伪和与进位求和电路中。
本方法简单有效,适用于4位以上任意位的CLA设计。为了降低功耗和面积,还进行了基于晶体管级的优化设计,设计出高速低功耗小面积的单元电路。基于晶体管设计是相对于基于单元、宏模块设计而言的,在硬lP设计中被广泛使用,其目的是谋求更高的优化程度。国际上很少有作为IP的微处理器、CPU是综合出来的,其原因也正是于此。第三代EDA工具对提高ASIC设能力功不可没,为缩短TTM (time to market)发挥了重要作用,但其设计往往不能达到最优。更有挑战性的工作是:结合基于晶体管级的设计方法,充分利用CMOS电路设计现有的研究成果,利用目前逻辑综合不能实现的结构如传输门逻辑、TSPC、旁路线或等,同时考虑速度、面积和功耗,在电路、晶体管尺寸和版图三方面同步进行优化,建立低功耗小面积的标准单元库,使专用的综合优化工具应用更为广泛。
参考文献:
[1] Dongho K,Ambler T. Low power carry lookahead adder by using dependency between generation and propagation [A]. Proc Devc,Circ Syst,3rd IEEE Intl Conf [C]. 2000. C68/1 -C68/6.
[2] Manzoul M A. Parallel CLA algorithm for fast addition [A]. Proc Intl Par Comput EE Conf [C]. 2000. 55-58.
[3] Bellaouar A, Mohamed E I. Low-power digital VLSI design[M].Kluwer Academic Publishes,1995.
[4] Piguet C. Logic design for low-power CMOS circuits [A]. IEEE Rgn 10 Micro-e VLSI Intl Conf [C]. 1995. 299-302.
|
|
 |
|
|
|
|