画出全加器逻辑图并给出进位公式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了画出全加器逻辑图并给出进位公式相关的知识,希望对你有一定的参考价值。

画出全加器逻辑图并给出进位公式
哪位大哥帮忙下呀!
小弟谢谢了!

二进制全加器

用于门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。常用二进制四位全加器74LS283。提供与非门的是74LS86,有4个与非门。

扩展资料

一位全加器的表达式如下:

Si=Ai⊕Bi⊕Ci-1

第二个表达式也可用一个异或门来代替或门对其中两个输入信号进行求和:



加法器由一个加法位和一个进位位组成。 进位位可以通过与门实现。  加法位需要通过或门和与非门组建的异或门(需要与门将两个逻辑门连接)实现。 

将加法位和进位位连接,实现加法位输出和进位位输出。  通过以上几步就已近组建好了一个半加器。 将两个半加器和一个或门连接就组建成了一个全加器(二进制加法器)。 

若想实现更多位数需要将跟多的全加器连接,一个全加器是二位,八个全加器连接就是八位,同样n个相连就是n位。

参考资料来源:百度百科-全加器

参考技术A

一、全加器逻辑图:

二、全加器的进位公式:

各量所代表的意义:

A----被加数

B----加数

CI----低位向本位进位

CO----本位向高位进位

参考技术B

全加器逻辑图:二进制全加器

用于门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。

如果将全加器的输入置换成A和B的组合函数Xi和Y(S0…S3控制),然后再将X,Y和进位数通过全加器进行全加,就是ALU的逻辑结构结构。即 X=f(A,B),Y=f(A,B),不同的控制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。



一位全加器的表达式如下:

Si=Ai⊕Bi⊕Ci-1



由一个加法位和一个进位位组成。 进位位可以通过与门实现。  加法位需要通过或门和与非门组建的异或门(需要与门将两个逻辑门连接)实现。 

将加法位和进位位连接,实现加法位输出和进位位输出。 通过以上几步就已近组建好了一个半加器。

参考技术C

表达式为:S=A⊕B⊕Cin,Co=AB+BCin+ACin,其中A,B为要相加的数,Cin为进位输入,S为和,Co是进位输出。用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。

结构化描述

该实例显示了一个全加器由两个异或门、三个与门、一个或门构成 (或者可以理解为两个半加器与一个或门的组合)。S1、T1、T2、T3则是门与门之间的连线。代码显示了用纯结构的建模方式,其中xor 、and、or 是Verilog HDL 内置的门器件。

以 xor x1 (S1, A, B) 该例化语句为例:xor 表明调用一个内置的异或门,器件名称xor ,代码实例化名x1(类似原理图输入方式)。括号内的S1,A,B 表明该器件管脚的实际连接线(信号)的名称,其中 A、B是输入,S1是输出。

参考技术D

半加器、全加器,都是实现二进制数相加的。

半加器,只能做【两位】二进制数相加;

全加器,则可做【三位】二进制数相加。

什么是“两位、三位”?

可见两个四位二进制数 A、B 相加的竖式,如下:

在最低位,只有两个一位数相加,可以用“半加器”来完成。

在其它位,都是三个一位数相加,这就必须用“全加器”完成了。

把 A、B 相加后,它们将产生 C(进位)以及 S(和)。

全加器、半加器的真值表以及逻辑表达式,在图中,都已给出。

它们的逻辑电路图,当然也可以用“门电路”组成。

但是,半加器、全加器,都有自己的逻辑符号(图中也已给出)。

谁再用“门电路”来画电路图,就明显是外行了。

-------------------

把 n 个全加器级联,就可以组成 n 位的加法器。

74LS283,是一块 4 位加法器的集成电路。

各引脚关系是:

 C4 S3S2S1S0 = A3A2A1A0 + B3B2B1B0 + C0。

加法器

 

计算机里的加减乘除四则运算,最基本的就是加法运算,其余三种运算都可以通过加法运算来实现。

 

I. 半加器 (Half Adder)

考虑一位二进制加法运算,如果不考虑进位的话,我们可以得到如下真值表:

A,B表示输入,C(Carry)表示进位,S(Sum)表示结果。

可以得到:

 

用逻辑门来实现:

II. 全加器 (Full Adder)

有了半加器以后我们发现,这种加法器并不能实现多位数的加法,因此诞生了有进位的全加器。和半加器不一样,一个全加器有三个输入(A,B和低位进位)和两个输出(和以及进位输出)。

列出真值表:

 

 可以得到:

 

 逻辑门实现:

III. 纹波进位加法器 (Ripple Carry Adder)

将n个全加器级联起来,就是一个n位的加法器,这就是逐级进位加法器。

考虑到门电路中的电场状态改变需要时间,如果输入电平发生了变化,那么输出电平需要一段时间后才会响应,当然这段时间很小,小到了纳秒级别。因此,这种加法器有个缺点:每一位的进位输入依赖于上一位的进位输出,只有前一位的进位信号稳定后,这一位的全加器的运算才是有意义的。如果位数n很大的话,整个加法器会变慢,最后会限制CPU主频的提高。

IV. 超前进位加法器 (Carry-lookahead Adder)

既然级联一位的加法器算有这样的缺点,那就干脆直接设计一个位数足够大的加法器!

我们列出2位的全加器的真值表:

 

我们看到,随着n增大,真值表的行数是指数级别增长的。即使位数仅仅只有2,真值表的行数都达到了32,人工求解布尔表达式变得很困难。但是理论上,这样的全加器的确存在,而且实际上,有一个更优雅的设计方法。

再次考虑上面讲到的全加器,不再以级联的方式获得进位输入,而是直接根据输入,设计电路得到合适的进位,这样设计出来的加法器叫做超前进位加法器。

 

 

其中,每一级的进位可以由当前的两个位产生(generate),C_{k_g}=A_kB_k;或者由上一级传递(propagate)的进位 {C_{in}}_k={C_{out}}_{k-1} 和当前输入累加导致的,C_{k_{p}}=A_k+ B_k,因此下一级的进位是C_{k+1}=C_{k_g}+C_{k_p} \\cdot C_i=A_kB_k+C_k(A_k+B_k)

因此,得到关于2位超前进位加法器的布尔表达式:

Y_0=A_0\\oplus B_0\\oplus C_0=A_0\\oplus B_0\\oplus CY_1=A_1\\oplus B_1\\oplus C_1=A_1\\oplus B_1\\oplus (C_{0_g}+C_{0_p} \\cdot C_0 )=A_1\\oplus B_1\\oplus (A_0B_0+C(A_0+B_0))Carry=C_2=C_{1_g}+C_{1_p}\\cdot C_1=A_1B_1+(A_1+B_1)\\cdot (A_0B_0+C(A_0+B_0))

 

 

 

考虑到集成电路的面积,成本,功耗,散热等因素,超前进位加法器的位数一般不会过大。一般将几个超前进位加法器(如8位,16位)级联起来,得到位数够宽的加法器。

 

 

链接:https://www.zhihu.com/question/29707696/answer/114610705
来源:知乎

以上是关于画出全加器逻辑图并给出进位公式的主要内容,如果未能解决你的问题,请参考以下文章

备战秋招[一]

jchdl - GSL实例:FullAdder

教材例子:4位串行进位全加器这样的verilog代码真的正确吗?

数字电路 超前进位加法器设计(采用全加器级联)

用八个与非门设计一个2线-4线变量译码器,要求输出低电平有效。画出逻辑图

加法器