一般是先组成一位全加器,多个全加器构成了多位的加/减法器。
异或:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
一位全加器:
其中A,B加数,C为低位进位。S为求的和,Ci+1为此次运算进行的进位:
S=A⊕B⊕C
Ci+1 = ( A B )+( C ( A ⊕ B ) )
对应的真值表为:
Cn | 符号位的进位信号 |
---|---|
Cn-1 | 最高数值位的信号 |
如果Cn 与Cn-1 不一致,也就是说Cn ⊕Cn-1 ≠1,则判断这次计算结果溢出。
M | 控制选择加法还是减法运算 |
---|
当M=0,做加法A+B;
当M=1,做减法[A]补+[-B]补 ,也就是A-B。
明细:
加法器开启之后经过3T;
●确定了是加运算还是减运算
加法器开启之后经过6T;
●每个全加器Ai⊕Bi的值得到
加法器开启之后经过8T:
●通过C0得到了C1的值,
最后一次进位完成之后,耗费3T;
●完成溢出检测
在整个行波进位的过程中同时得到各Si
n位行波进位加减法器的延迟时间:
ta=3T+3T+2nT+3T
=(2n+9)T