直接使用式(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较大时,速度的改进是很明显的。