计算机组成原理--全加器

逻辑电路属于电子线路,其中,只有 High  Level、Low  Level,即高电平、低电平

即使是用 1、0 来描述,也只是两种状态,并没有数值的含义。

比如,在上一篇博文的 “三人表决电路” 中,1,就代表投赞成票,0,就代表不赞成。

按照 “少数服从多数” 的规则,再设计 F 的取值,1,代表通过,0,就代表没有通过。

这里的 1、0,都是代表了 “状态”。 

但是,如果把一组 1、0 按照数值的变化规律来设计电路,那么,它们看起来,就有数值的意思了。

此时,外行人就以为 1、0 是数字,就把这种逻辑电路,称为:数字电路。

其实,这些电路,仍然是逻辑电路,只不过是电子专业的技术员,发挥了一点点聪明才智而已。

逻辑电路,永远是逻辑电路,并非是什么 “数字电路”。

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

在小学,大家都学过算术,加减乘除 ... 。

让 1、0 按照数字的规律变化,当然就是要遵循二进制运算的规律了。

那就先从二进制的加法运算开始吧。

二进制加法与十进制加法,方法是一样的。且看下图:

相加时,都是从低位向高位,逐位的相加。

每一次相加,都是有三位数相加:加数 A、B、以及从低位来的进位 Ci。

当然,在最低位相加时,并没有低位进位,但是,此时也可认为低位进位是 0。

相加之后,结果是两位数:进位 Co、和 Sum。

十进制数相加,是逢十进一,二进制数相加,就是逢二进一,它们的区别,仅此而已。

人工做加法时,是一位一位逐位进行的,每一位的算法,都是相同的。

因此,设计逻辑电路时,也是先设计一个 “一位加法器”,以后再把它们级联起来,即可实现 N 位数的加法运算。

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

一位加法器,有两种类型:

 有三个输入信号的,称为 “全加器”,适用于任何位置;

 仅有两个输入信号的,称为 “半加器”,仅能用于最低位。

实际上,全加器可以代替半加器。所以,半加器,并没有存在的必要。

另外,有些书籍和网文也提到:一位全加器、一位半加器

其实,这里的 “一位” 是不必写的。

因为,全加器、半加器本来就是进行一位数相加的。

你写上了 “一位”,难道你还有 “多位的全加器、半加器” 吗?

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

三个一位二进制数相加,以及其结果,可列表如下:

 0 + 0 + 0 = 0 0

 0 + 0 + 1 = 0 1

 0 + 1 + 0 = 0 1

 0 + 1 + 1 = 1 0

 1 + 0 + 0 = 0 1

 1 + 0 + 1 = 1 0

 1 + 1 + 0 = 1 0

 1 + 1 + 1 = 1 1

把这些,写入真值表,然后,就可以列出逻辑表达式了。可见下图:

在图中,已经推导出来了 S 的逻辑表达式:S = A ⊕ B ⊕ Ci。

而进位 Co,则与上次博文中的 “三人表决” 的 F 完全相同,可以直接 “复制粘贴” 过来,所以,在这里就不多写了。

据此,就可以绘出全加器的逻辑电路,并进行仿真实验,如下所示:

图中右上角,是拨动开关,用来选择输入信号:A1、B1、C0。

选择的结果,在图中左边,用三个 LED 进行显示。三个 LED 皆亮,即为:1、1、1。

这三个信号,经过两个异或门,输出的就是 S1 (和)。

这三个信号,经过四个与非门,输出的就是 C1 (进位)。

在图中,两个输出端都接上了 LED。两个 LED 皆亮,就表示:1 + 1 + 1 = 1 1。

你可以多拨动几次开关,并观察输入信号和输出信号。

你就可以验证出来:本逻辑电路的输入输出,完全符合 “一位二进制数相加” 的规则。

把此电路,称为 “数字电路”,也确实有几分道理哈。

图中的进位电路部分,还可以选用 “三人表决” 中的另外两个电路,功能都是相同的。

本文完

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值