在上一篇博文中,介绍了【全加器】,它也就是【一位加法器】。
至于半加器嘛,许多书上,也提到这种东西。
但是,半加器的功能有限,全加器又可以代替它。
所以,半加器,也就属于 “鸡肋” 了,不提也罢。
全加器的输入,有三位:A1、B1 和 C0。
全加器的输出,是两位:C1 和 S1。
全加器输出与输入的逻辑关系是:
S1 = A1 ⊕ B1 ⊕ C0;
C1 = A1B1 + A1C0 + B1C0 --三人表决中的最简与或式
= A1B1 + (A1 + B1) C0。
下图就是一个全加器的功能演示电路图。
图中的进位电路部分,仍然是 “三人表决” 中的一种变形电路。
把 N 个全加器级联起来,就可以构成 N 位的加法器。
在上图中的最下边,就是四位加法器的示意图。
-----------------------------
下图,就是由两个全加器级联,组成的一个两位加法器。
图中右半部是一个全加器,实现:C1S1 = A1 + B1 + C0;
图中左半部是一模一样的,实现:C2S2 = A2 + B2 + C1。
式中的 C1,是来自于右半部全加器产生的进位。
由图中右上角拨动开关进行设置:A2A1 = 11、B2B1 = 11、C0 = 1。
这些信号输入到电路之后,既有:C2S2S1 = A2A2 + B2B1 + C0 = 111。
图中的三个 LED 皆发光,即表示三位输出皆为高电平,即:C2S2S1 = 111。
反复多次拨动开关,可观察到:本电路,完全符合两位加法器的功能要求。
-----------------------------
本电路,非常适合于进行硬件实做。
在电路中,共使用了四个二输入端的异或门、四个二输入端的与门、四个二输入端的或门。
异或门,可以选用集成电路芯片 74LS86,在这块芯片内部,正好就有四个二输入端的异或门。
同样道理,在 74LS08 中,有四个二输入端的与门。在芯片 74LS32 中,有四个二输入端的或门。
那么,选用 74LS08、74LS32、74LS86 各一片,就能满足本电路的器件需求了,而且没有冗余。
如果你想要设计一个四位加法器,也仅需六片集成电路芯片而已。
八位的加法器,用 12 片芯片即可搞定。
组成一个加法器,有许多种不同的电路。但是,本电路所用的器件,是最少的。
-----------------------------
在人工计算二进制数相加时,是由低位向高位逐位进行的。
低位的进位,要与高位的数据相加。本电路,也是采用了这种方法。
在计算机专业教材上,对本电路的命名是:“串行进位加法器”。
对此名称,做而论道十分不解。
在本电路中,各个全加器之间,明明是【级联】的!哪有什么 “串行” ?
为什么要叫做 “串行进位” 呢? 难道还有 “并行进位” 吗?
另外,还有的教材称之为:“行波进位” 。这就更令人费解了。
很简单又很明白的事,非得弄一个高大上的说法,让人来猜测是什么意思!
计算机专家,一贯是这样!
有牛的地方,就使劲吹牛,如果有了骆驼,就不再吹牛了。
因为本电路的进位方式,与人类的计算方法相同,你就别弄那些花活了。
老老实实的叫做【常规进位】,就很恰当了。
本文完