目录
摘要
逻辑元素或表达式条件,总是有个结果,“0”或者“1”。
同样,我们也要实现将不同的逻辑信号或条件表达式,合并在一起,然后输出一个逻辑结果。
例如,对于这个逻辑表达“如果我把墙上的开关拨上去,那么灯就会亮。”咋一看,这好像是一个正确的句子,但是如果我们仔细考虑一下其他一些因素,我们就会发现其实远不止这些。此例中,更加完整的表达语句可以是“如果我把墙上的开关拨上去,并且灯泡是好的,电源也是开着的,这时候,灯才会亮”。
如果把上面这两句看作是逻辑表述的话,用逻辑术语来说,第一句可以归纳为:
灯亮 = 开关
即,灯亮的条件中,除了开关打开之外,没有其他依赖条件了,所以如果开关是向上的/打开的/真/1,灯就是亮的,打开的/真/1。相反地,如果开关是向下的/关闭的/假的/0的,灯就不会亮,关闭的/假的/0。
通常,我们不使用文字,而是使用符号来表示“与”的功能。此处,用“与”,将上述表达中的这几个单独的变量:开关,灯泡,电源,合并起来。
“与”的符号是一个点,其中有些表达式中的相乘的功能,也是用点来表示。
用此符号来表示上述表达式就是:
灯亮 = 开关 • 灯泡 • 电源
当我们在讨论逻辑电路的时候,比如计算机中的逻辑电路,我们不仅仅需要处理逻辑功能,我们同样需要有些特殊符号,用于表示逻辑图表中的这些逻辑功能。
其中有三种最基本的逻辑操作,而其他的功能,无论多么复杂,都可以从这三种基本逻辑操作去推导出来。
这三个逻辑操作就是:与And,或Or,非Not。
每一个逻辑操作,都有一个特定的符号来表示,都对应一个特定的行为,如下详解:
与门用于实现逻辑与的功能。
必须是两个输入都是逻辑真值1,输出才会是真值1。
有任何一个输入是逻辑假值0,输出都是0。
逻辑与的功能,对于输入的的个数,没有限制,所以与门的输入,理论上也是没有限制的。
只是实际上,商业上所应用的逻辑与门的输入个数,是2,3或4个。
为了实际情况中,为了方便处理其大小,一个标准的集成电路(IC)一般包含14或16个引脚(pin)。
逻辑或OR门,有点像逻辑与的取反。
逻辑或,见名知意,如果任何一个输入是真值1,那么输出都是真值1。
就像我们可以说,如果下雨了,或者开了洒水车,草坪就会变湿。可以看到,即使是下雨的同时,也开了洒水车,那么草坪仍然会变湿。
这种表述,可以正好反映出逻辑或的功能。
OR的符号,是用正号,加号,“+”来表示的。
而对应的逻辑或门,用下图中的图形来表示:
和逻辑与门类似,逻辑或的输入个数也是不限的。
不过和逻辑与门类似,实际上常用的逻辑或门的输入个数是2,3或4个。
反相器和与门、或门都有点不一样,其有且只有一个输入和一个输出,输出的值是输入值的相反的状态。
逻辑非的功能,在其他很多引用中都用到了,很有用。
例如,一种可能的实际情况是:
门没有锁上 = 你可以进来
非门的符号表示,参见下图:
有些情况下,用单引号‘来表示取反。
比如0’ =1,1’=0。,3或4个。
在逻辑表达式中,更多的是常用上横线(overbar),即一个逻辑值头上,加上一个横线,来表示取反。
在上述非门的逻辑符号中,其中的三角形实际上是表示一个放大器(amplifier),在数字信号领域中,其意味着“清理”信号,但是并不改变其逻辑值。在输出端有个圆圈,其表示逻辑取反。
其实,此圆圈,也可以放在输入端,此时逻辑值没有变化,也是一样的。
上述中的三种逻辑门电路,可以根据应用的复杂度的不同,而有不同的组合起来实现对应的应用。
其中,由于有些功能被用的太频繁了,所以才会将他们单独命名,有自己的对应的符号以表示此功能,此功能,也是被打包成一个逻辑功能单元,以实现特定的功能。
而接下来,就是详细介绍这些,从基本的三种逻辑门电路中,演化出来的各种功能的电路。
虽然三种基本的门电路,AND,OR和NOT,足够用于实现所有的可能的逻辑功能和操作,但是由于其中一些组合被用到的太多,以至于我们单独将这些组合指定了相应的名称。
下面就是来讨论这些组合逻辑。
先讨论其中的三种。
像三种基本的逻辑门一样,这三个衍生出来的门电路,也有其对应的名称,下面分别对其进行简单总结:
与非门实现了异或的功能,其就是之前所学的AND功能的取反而得。
其符号表示参见下图:
只有两个输入都是为逻辑1的时候,输出才是逻辑0。
两者中的任何一个输入是逻辑0的话,那么输出都是逻辑1。
NAND门的符号中的圆圈,表示取反的意思,对输出进行取反。
需要注意的是,上图中,上横线,是实心的,且是对于两个输入都一次性地覆盖到了,这表示,是对AND功能本身进行取反,而不是分别对两个输入去取反。
对于AND,输入个数是没限制的,对应的NAND,输入也是没有限制的。而实际中,商用的NAND门电路,输入个数一般是2,3或4个,以方便用于14针脚或16针脚的封装。
NOR门电路,是OR门电路的取反。
对于OR门电路,任何一个输入是1的话,那么输出都是1,而NOR门电路,正是对此输出取反,即任何一个输入都是1,那么输出都是0。
从符号表示上来说,NOR功能用一个加号“+”,和一个对于所有输入之上的上横线来表示取反,所组成。
对应的图表如下:
同理,NOR符号中的圆圈,也是表示取反的功能。
NOR功能也是允许输入是任意多个。而实际上也是一般商用的NOR门电路,输入个数是2,3或4个,以适用于标准的IC封装。
异或功能,是个从基本的OR功能演化出来的,一个有趣的且有用的变体。用语言表达异或的功能,可以说成是“要么A,要么B,但不能同时要两者”。XOR门电路,只有当两个输入是不相同的,输出才是1。如果两个输入是相同的,那么输出是逻辑0。
XOR符号,也是从标准的OR功能演化出来的。其包含了一个加号“+”,然后周围用个圆圈包围起来,参见下图:
不像标准的OR/NOR和AND/NAND的功能,XOR功能始终是只有两个输入,商用的XOR门电路,也同样只有两个输入。4个XOR门电路,可以合并进入对应的14针脚的封装。
NOR功能也是允许输入是任意多个。而实际上也是一般商用的NOR门电路,输入个数是2,3或4个,以适用于标准的IC封装。
上述介绍的三种衍化的门电路,只是众多衍化的门电路中的很小一部分。
不过,这三个,又算是其他衍化的门电路的基础。
接下来的内容,将会介绍,从XOR功能衍化出来的一些门电路。这也正好开始了对于实际应用中所用到的门电路的介绍了,去看看,如果用这些简单的门电路来合并出,计算机中的各种可能的复杂组合,实现对应的功能。
前面内容中,我们提到,XOR可以用文字描述为“要么A,要么B,但不是两者同时”。
在现实的数字逻辑中,此句可以有几种不同的,更精确的表述方法。
此处,不去深入介绍关于这类设备的真值表(Truth Table)和图形化表示。我们仍然把更多精力放在此句的进一步的语言表述上:“A取反和B,或者是A和B取反”。
此句用对应的电路来描述,见下图: