使用晶体管做布尔逻辑和逻辑门

2022-10-09 12:57:40 浏览数 (2)

theme: condensed-night-purple

二进制,三进制,五进制

true,false表示0,1

电路闭合,电流流过,代表“true真”;电路断开,无电流流过,代表false。

二进制可以写成0和1,而不是true和false

早期计算机采用进制

晶体管不仅可以控制电流开关,还可以控制电流大小,比如一些早期计算机是三进制的,有三种状态;五进制,五种状态。状态越多越难区分信号。而且抗干扰能力会越差(如果附件有电噪音,信号混在一起,每秒百万次变化的晶体管会让信号变得更复杂)

因此,应该尽可能把两种信号分开,只用两种开关01状态来减少这类问题:

布尔逻辑

有一个数学分支的存在,专门用于处理“真”和“假”,已经解决了所有法则和运算,叫布尔代数(布尔是由Grorge Boole由来,他用数学扩展亚里士多德基于哲学的逻辑方法)

布尔用 逻辑 方程 系统而正式的证明真理(truth),在1847年的第一本书《逻辑的数学分析》中介绍过:

“在常规代数里,在高中学的那种变量的值是数字,可以进行加减乘除之类的操作;但在布尔代数中,变量的值是true,false,可以进行逻辑操作”

三个基本操作:NOT,AND,OR

基础“真值表”

晶体管中有一个是控制线路,两个是电极。控制线路通电,半导体就会通电,底部的电极就有电流流出;反之亦然。

电流是从上到下流动的。 控制线路可以想象成输入,底部的电极想象成输出。一个晶体管有一个输入和输出。控制线路通电(输入打开)半导体就会导电,底部电极就有电路i流出(输出也会打开);反过来控制线路没有电流(false)时半导体就不导电,因此下面的电极就没有电流就是false

转换为布尔函数就是输入为true,输出为true;输入为false,输出也为false。这个叫做“真值表”:

NOT 如何实现?

布尔值反转,true进行NOT就是false,反之亦然.。

思路就是把输出的电线放到上面的电极当作OUTPUT;下面的电极接地。

一定要注意:电流是从上到下流动的。当有输入时,半导体会导电,下面会受到电流,这时候将下面的电极接地,这样电流就都经过了下面的电极,把输出的电线放到上面的电极当作OUTPUT就没有电流了(输入为true输出为false);如果没有输入时,半导体不导电,电流就会走OUTPUT。

这个是不是就可以实现,图示:

这个叫做NOT门,门是因为可以控制电流路径

AND如何实现?

有两个输入和一个输出构成,只有两个输入都是true时,输出才会也是true。 这个比上面的那个好理解。

  • 电流从左到右流动,如果第一个打开了,第二个输入没打开,就是这个样子:电流没有到达OUTPUT:
  • 如果第一个没打开,第二个打开了,更没有用,电流第一个都不会经过:
  • 只有都打开OUT才会收到电流:
OR如何实现?

和AND正好相反,都有两个输入一个输出,两个输出都是false时,输出才会false。

上面的线都是串联,这个OR实现用的时并联 下面那条线中第一个输入和第二个输入的中间是一个小“拱门”,代表第一个输入的电流可以跨过去。 就不放图了,只要任意一个输入打开,OUT都可以收到电流(下面的小拱门会把第一个输入的电流跨过去),只有都不打开OUTPUT才会收不到电流

图标表示

XOR亦或

和异或有一个不同就是:输入都是true的时候,输出是false

直接放组成图吧:

通过小拱门保证还是两个输入;true,true要返回false可以拆分成true AND true在 NOT 变为false,利用原有的OR的功能只要有一个false就是false,最后将这两个功能AND 最后就是false。

图标符号:一个OR门加一个笑脸

0 人点赞