Chapter11 设计运算模块

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=ABCiS=ABCiS=ABCi=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)=ABPropagate(p)=ABPropagate(p)=AB

    • 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)=PCiS(G,P)=PCiS(G,P)=PCi

    • 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=(N1)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。除了消耗了较大的面积以外,这一电路的速度也较慢。


Fig11.3 Complimentary Static CMOS Full Adder

【参考文献】

​ [1] 数字集成电路—电路、系统与设计(第二版), Jan M.Rabaey Anantha Chandrakasan著, 周润德等译, 电子工业出版社

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值