进位选择加法器(Carry-Select Adder)是
加法器中的一种。在逐位进位加法器(Carry-Ripple Adder)中,除最低位外,每一位都需要等待前一位输出的进位信号。那么不妨预先考虑进位输入的所有可能,对于二进制加法来说,就是0与1两种可能,并提前计算出若干位针对这两种可能性的结果。等到前一位的进位来到时,可以通过一个双路开关选出输出结果。
提前计算多少位的数据为宜?以32位加法器为例,同为32位的情况:
线形进位选择加法器,方法是分N级,每级计算32/N位;
平方根进位选择加法器,考虑到使两个路径(1,提前计算出若干位针对这两种可能性的结果的路径,2,上一位的进位通过前面的结构的路径)的延时达到相等或是近似。方法,或是2345666即第一级相加2位,第二级3位,第三级4位,第四级5位,第五级6位,第六级6位,第七级6位;或是345677即第一级相加3位,第二级4位,第三级5位,第四级6位,第五级7位,第六级7位。