Chapter11 Arithmetic Circuits
11.3 Adders
- 加法是最常用的运算操作,它也常常是限制速度的原件。因此仔细优化加法器及其重要。优化可以在逻辑层或电路层上进行。
- 逻辑层上的优化意在重新安排布尔方程以得到一个速度较快或面积较小的电路。(eg. carry lookahead adder)
- 电路层优化则着眼于改变晶体管的尺寸以及电路的拓扑连接来优化速度。
11.3.1 the definition of adders
-
Adder module and Truth Table:
Fig11.1 Full-Adder and Truth Table- A: 被加数
- B: 加数
- Ci: 进位输入(低位向本级的进位)
- S: Sum of A and B
- Co: 进位输出(本级向高位的进位)
- Carry status: 进位状态,表示加法器的Co 所处的状态
-
Boolean Equation
S = A ⨁ B ⨁ C i = A B ‾ C i ‾ + A ‾ B C i ‾ + A ‾ B ‾ C i + A B C i C o = A B + B C i + A C i \pmb{S = A \, \bigoplus \, B \, \bigoplus \, C_i} \\ \pmb{ = A\overline{B}\, \overline{C_i} + \overline{A} B \overline{C_i} + \overline{A} \, \overline{B} C_i + ABC_i }\\ \pmb{C_o = AB + BC_i + AC_i} S=A⨁B⨁CiS=A⨁B⨁CiS=A⨁B⨁Ci=ABCi+ABCi+ABCi+ABCi=ABCi+ABCi+ABCi+ABCi=ABCi+ABCi+ABCi+ABCiCo=AB+BCi+ACiCo=AB+BCi+ACiCo=AB+BCi+ACi
-
Express Sum and Carry as a function of P,G,D
Define 3 new variable which only depend on A,B
-
G e n e r a t e ( G ) = A B \pmb{Generate(G) = A \ B } Generate(G)=A BGenerate(G)=A BGenerate(G)=A B
-
P r o p a g a t e ( p ) = A ⨁ B \pmb{Propagate(p) = A \bigoplus B} Propagate(p)=A⨁BPropagate(p)=A⨁BPropagate(p)=A⨁B
-
D e l e t e = A ‾ B ‾ \pmb{Delete = \overline{A} \ \overline{B} } Delete=A BDelete=A BDelete=A B
-
-
Reconsturct Co and S with the function of P,G,D:
C o ( G , P ) = G + P C i S ( G , P ) = P ⨁ C i \pmb{C_o(G,P) = G + PC_i} \\ \pmb{S(G,P) = P \, \bigoplus \, C_i} Co(G,P)=G+PCiCo(G,P)=G+PCiCo(G,P)=G+PCiS(G,P)=P⨁CiS(G,P)=P⨁CiS(G,P)=P⨁Ci
- Can also derive expressions for S and Co based on D and P
- Note that we will be sometimes using an alternate definition for P r o p a g a t e ( p ) = A + B \pmb{Propagate(p) = A + B} Propagate(p)=A+BPropagate(p)=A+BPropagate(p)=A+B (AxorB, 是为了可以逻辑资源复用并且化简的时候需要增加冗余项,A+B是因为不增加冗余项直接化简出来的)
-
The Ripple-Carry Adder
Fig11.2 the ripple-carry adder
通过该电路的延时取决于传播必须通过的逻辑级的数目,而此数目与所加的输入信号有关。eg, 对于某些输入信号,完全不会发生行波进位效应,而对于另一些信号,进位必须从最低有效位(least significant bit, lsb)一直波动到最高有效位(most significant bit, msb)。此结构(也称关键路径, Critical path)的传播延时定义为对所有可能的输入在最坏情形下的延时。
Critical path: 当最低有效位上产生的进位一直全程传播到最高有效位时,这一进位最终在最后一级上被吸收,以产生和。
即关键路径为:A0B0 -> Co,0 -> Co,1 -> … -> Co,N-1,Ci,N + A3B3 -> SN
传播延时: t a d d e r = ( N − 1 ) t c a r r y + t s u m t_adder = (N-1)t_{carry} + t_{sum} tadder=(N−1)tcarry+tsum
-
Conclusions:
- 逐位进位加法器的传播延时与N成线性关系。在设计当前和未来计算机所希望的宽数据通路(N = 1,…,128)加法器时这一点变得日益重要。
- (Optimized Idea)在设计一个快速逐位进位加法器的全加器单元时,优化tcarry比优化tsum重要得多,因为后者对tadder总延时值得影响较小。
11.3.2 全加器: 电路层设计考虑
Complimentary Static CMOS Full Adder
Design idea: 逻辑共享;只要不减慢进位产生的速度(Critical Part),则在S和Co 的子电路之间共享某些逻辑非常有利。下面是reconstruct后的Boolean Equation:
C
o
=
A
B
+
B
C
i
+
A
C
i
S
=
A
B
C
i
+
C
o
‾
(
A
+
B
+
C
i
)
C_o = AB + BC_i + AC_i \\ S = ABC_i + \overline{C_o}(A+B+C_i)
Co=AB+BCi+ACiS=ABCi+Co(A+B+Ci)
Fig11.3 是采用静态互补CMOS设计方法的全加器,它需要28个Transistors。除了消耗了较大的面积以外,这一电路的速度也较慢。
![](.\asset\Fig11.3%20Complimentary%20Static%20CMOS%20Full%20Adder.png)
【参考文献】
[1] 数字集成电路—电路、系统与设计(第二版), Jan M.Rabaey Anantha Chandrakasan著, 周润德等译, 电子工业出版社