行波进位加法器是串行执行的,其高位的运算要依赖低位的进位,所以当输入数据的位数较多时,会形成很大的延迟并可能成为芯片的关键路径。
采用超前进位加法器(也叫先行进位加法器)可以有效减小这种延迟。下面介绍超前进位加法器的设计原理。设二进制加法器第i位为Ai,Bi,输出为Si,进位输入为Ci,进位输出为C(i+1),则有:
Si=Ai⊕Bi⊕Ci;
C(i+1)=Ai*Bi+Ai*Ci+Bi*Ci=Ai*Bi+(Ai+Bi)*Ci;
令:Gi=Ai*Bi, Pi=Ai+Bi;
则有:
C(i+1)=Gi+Pi*Ci;
当 Ai 和 Bi 都为1时,Gi=1,产生进位C(i+1)=1;
当 Ai 和 Bi 有一个为1时,Pi=1,传递进位C(i+1)=Ci;
说明:“*”表示与逻辑、“+”表示或逻辑、“⊕”表示异或逻辑。将Gi定义为进位产生信号,Pi定义为进位传递信号, Gi的优先级比Pi高。当Gi=