加法器
半加器
- 首先从构建一个一位的半加器,有两个输入和一个输出,如果A,B均为1,相加就会产生2,而2不能用一位二进制位表示,也就会产生进位,这个进位用Cout输出
全加器
- 在多位加法器中,Cout会被相加或者进位到下一个高位,然而半加器没有接收上一位进位的输入端,因此会有全加器(full adder)解决这个问题
进位传播加法器
- 一个N位加法器将两个N位输入(A、B)和一位进位C相加,产生一个N位结果S和一个输出进位Cin。因为1位进位将传播到下一位中,所以这种加法器通常称为进位传播加法器(CarryPropagate Adder,CPA)
- 3种常见的CPA实现分别是行波进位加法器、先行进位加法器和前缀加法器
行波进位加法器
- 最简单的方法就是将多位全加器串联起来
- 缺点:N越大,运算速度越慢,因为每一个全加器的进位都依赖于上一位的进位输出
- 延迟 tripple = NtFA , 其中tFA是全加器的延迟