逻辑门是处理逻辑和计算的基础,这一章我们就来了解一下逻辑门的工作原理。
这一章用到的硬件材料:面包板-1块、绿色LED-4颗、P型三极管-6颗、触点开关-6颗、1kΩ电阻-10颗,导线若干。
开关(Switch)
在上一章我们提到了需求材料中需要用到三种开关,但是在实际计算过程当中,我们不可能全部使用手动开关,所以我们需要一个元件,有三个接口,两个输入、一个输出,其中一个输入口作为开关状态输入,通电时开关闭合(通电),不通电时断开(断电)。
我们可以使用继电器来作为电路开关,继电器中一般会有一个电磁铁。控制电路通电时,电磁铁产生磁性,吸住导电贴片,电路闭合;控制电路断开时磁性消失,导电贴片断开。实际上,在很多远程控制电路或需要低电压操作高电压开关的电路中,继电器就被作为控制开关来使用。但是继电器有两个缺点:一是体积太大,二是延迟极高,这两个缺点对于我们CPU制造来说都是致命的。所以在我们制造CPU时会使用到P型(PNP型)三极管(也就是上一章提到的晶体管)来实现这个功能。
P型三极管有三个引脚,分别是:发射极E、基极B、集电极C。其中,源极连接到高电压,基极连接到低电压,集电极连接到需要控制的电流。
如果要使用三极管实现开关功能,我们只需要把发射极E和集电极C连接到用电器电路中,把基极B连接到控制电路输出。比如如果我们需要控制一个LED灯的点亮,只需要把发射极连接到+5V,集电极连接到LED正极,LED负极连接到接地,基极连接到控制电路的输出,这样当控制电路高电平时,LED灯亮,控制电路低电平时LED灯灭,这也是我们后面用到的BUFFER的原理,即输出与输入相同:
| IN | OUT |
| 0 | 0 |
| 1 | 1 |
缓冲(BUFFER)
将上述电路以电路图方式呈现如下:
从输入和输出上看来,BUFFER似乎没有什么作用,但是实际上在后续存储开发时,BUFFER电路能发挥非常大的作用。
非门(NOT)
非门与BUFFER相反,其输出和输入相反:
| IN | OUT |
| 0 | 1 |
| 1 | 0 |
其电路图实现如下:
NOT与BUFFER在原理上的不同是将LED灯与三极管并联,当开关闭合时,三极管激活,集电极输出电流,同时LED被短路,否则LED正常构成回路。
与门(AND)
与门有两个输入和一个输出,其要求两个输入高电平时,输出高电平,否则永远输出低电平:
| IN1 | IN2 | OUT |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
与门很简单,只需要将两个三极管串联即可,两个三极管同时接收高电平信号,才输出高电平,其电路图如下:
或门(OR)
或门与与门类似,也是两个输入,其中至少一个输入高电平,则输出高电平,只有在两个都输入低电平时输出低电平。
| IN1 | IN2 | OUT |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
在电路图上与与门不同的时,或门将两个三极管并联,其中一个三极管基极接收到高电平信号时,就会输出高电平,如下:
至此,我们就实现了最基础的与或非三个门以及缓冲BUFFER,我们可以尝试使用元器件在面包板上搭建这些逻辑门电路:
有了这三个基础逻辑门,我们就可以基于这些逻辑门来实现其他逻辑门了,不过由于其他逻辑门搭建过程太枯燥,我就不在面包板上实际搭建出来了,也不一个一个地从元件开始画电路图了。后面我就使用turling complete来演示逻辑门的实现。
与非门(NAND)
与非门的输出与与门相反,其实就是与门后加一个非门,其输入输出如下:
| IN1 | IN2 | OUT |
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
其实现图如下:
或非门(NOR)
或非门只在两个输入都为低电平时才输出高电平:
| IN1 | IN2 | OUT |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
其实现图如下:
异或(XOR)
异或门只在两个输入电平状态不同时输出高电平,否则输出低电平:
| IN1 | IN2 | OUT |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
其实现图如下:
同或(XNOR)
通过与异或输出相反,在XOR后面加个非门即可:
| IN1 | IN2 | OUT |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
其实现图如下:
德·摩根定律
百度百科对德·摩根定律的解释如下:
在命题逻辑和逻辑代数中,德摩根定律(或称德·摩根定理)是关于命题逻辑规律的一对法则。
奥古斯都·德·摩根首先发现了在命题逻辑中存在着下面这些关系:
非(P 且 Q) = (非 P) 或 (非 Q)
非(P 或 Q) = (非 P) 且 (非 Q)
将德·摩根定律应用到逻辑电路设计当中,我们可以完成任意逻辑门之间的转换,至于具体如何实现,大家可以在有需要的时候再仔细研究。(实际上是我不知道该怎么讲这个东西了?)
总结
以上就是所有的7个基本逻辑门的实现方法,我们后续会使用封装好的芯片来代替晶体管实现逻辑门,以减小CPU的面积及复杂度。
下一章我们将使用逻辑门搭建一个可以计算加法的全加器,以实现一些简单的数学加法运算,同时也是我们迈向"数据处理"的第一步。












