逻辑电路属于电子线路,其中,只有 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。
你可以多拨动几次开关,并观察输入信号和输出信号。
你就可以验证出来:本逻辑电路的输入输出,完全符合 “一位二进制数相加” 的规则。
把此电路,称为 “数字电路”,也确实有几分道理哈。
图中的进位电路部分,还可以选用 “三人表决” 中的另外两个电路,功能都是相同的。
本文完