在數(shù)字邏輯電路中,用1位二進制數(shù)碼的“0”和“1”表示一個事物的兩種不同邏輯狀態(tài)。例:一件事情的是和非、真和偽、有和無、好和壞,或者電路的通和斷、電燈的亮和暗、門的開和關等等。這種只有兩種對立邏輯狀態(tài)的邏輯關系成為二值邏輯。當使用兩個數(shù)碼表示邏輯狀態(tài)時,它們之間可以按照指定的某種因果關系進行推理計算,將這種運算稱為邏輯運算。
1849年英國數(shù)學家喬治·布爾提出了邏輯運算的數(shù)學方法——布爾代數(shù)。在實際電路中就是按照二進制進行工作的,所以布爾代數(shù)在電路中的應用非常普遍。
邏輯代數(shù)中有與(AND)、或(OR)、非(NOT)三種。
對于(a)電路來說,只有開關A和開關B都閉合,燈Y才可以點亮。
決定事物結果的全部條件同時成立時,結果才發(fā)生。這種因果關系成為邏輯與,也稱為邏輯相乘。
對于(b)電路來說,開關A和開關B有一個閉合,燈Y就可以點亮。
決定事物結果的諸多條件中任何一個滿足,結果就會發(fā)生。這種因果關系成為邏輯或,也成為邏輯相加。
對于(c)電路來說,只要條件具備了,結果就不發(fā)生了;條件不具備時,結果一定發(fā)生。這種因果關系稱為邏輯非,也稱為邏輯求反。
如果以A、B表示開關的狀態(tài),并以1表示開關閉合,以0表示開關斷開;以Y表示指示燈的狀態(tài),并以1表示燈亮,以0表示不亮,則可以列出以0、1表示的與、或、非邏輯關系的圖表。這種圖表稱為真值表。
在邏輯代數(shù)中,將與、或、非看作時邏輯變量A、B間的三種最基本的邏輯運算,并且以“· ”表示與運算(可以省略不寫),以“+”表示或運算,以變量右上角的“‘”表示非運算。所以與、或、非可以寫成如下表達式:
與 :Y = A · B; 或 :Y = A + B; 非 :Y = A’;
在圖1中只是利用電路模型說明外部條件和結果的邏輯關系,在我們設計時,我們需要施加電壓,經(jīng)過某種單元,可以產(chǎn)生結果的電壓。
實現(xiàn)與邏輯運算的單元電路稱為與門,實現(xiàn)或邏輯運算的單元電路稱為或門,實現(xiàn)非邏輯運算的單元電路稱為非門(也稱為反相器)。
與、或、非邏輯運算單元的常用圖形符號如下:
當A、B不同時,輸出Y為1;當A、B相同時,輸出Y為0,這種邏輯稱為異或邏輯。
Y = A + B = A · B‘ + A’ · B;
當A、B相同時,Y等于1,A、B不同時,Y等于0,這種邏輯稱為同或邏輯。
Y = A · B = A · B + A’·B’
異或和同或互為反運算。
在對于給定的布爾代數(shù)時,可能不是最簡化的,我們需要化簡
以邏輯變量作為輸入,以運算結果作為輸出,那么輸入變量的取值確定之后,輸出的取值便隨之而定。因此,輸出與輸入之間是一種函數(shù)關系。這種函數(shù)關系稱為邏輯函數(shù)。
下面利用一個三人表決器的電路設計來說明一些問題。此電路有三個輸入(A、B、C),一個輸出(Y),只有當兩個及兩個以上輸入贊成時,Y輸出贊成。
設贊成為1,不贊成為0。圖6 :三人表決器真值表
根據(jù)真值表中Y為1的項列出來,對應的A、B、C為1,則留下變量,為0,則留下反變量。
Y = A'BC + AB’C + ABC’ + ABC;
根據(jù)上述布爾表達式,我們得出邏輯電路圖:
如果所有的邏輯都按照這種寫法的話,那么很多的邏輯就會變的很復雜,并且會浪費很多的資源。我們考慮一下,電路既然是按照布爾表達式做出來的,那么布爾表達式能不能化簡一下呢(利用圖1-29中的公式)?
Y = A'BC + AB’C + ABC’ + ABC;
= A'BC + ABC + AB’C + ABC + ABC’+ABC;
= BC(A' + A) + AC(B+B') + AB(C+C')
= BC+AC+AB
上述布爾表達式所對應的邏輯電路圖如下:
若我們不考慮中間的過程,只是考慮A、B、C與Y之間的關系,上述哪一種電路結構都是可以實現(xiàn)功能的。我們將上述兩種電路稱為等效電路。
我們可以將輸入與輸出之間的關系繪制出一副圖,來表示它的邏輯關系。
除了上述幾種方式表示邏輯關系外,我們還可以用卡諾圖來表示邏輯關系
在n變量邏輯函數(shù)中,若m為包含n個因子的乘積項,而且這n個變量均以原變量或反變量的形式在m中出現(xiàn)一次,則稱m為該組變量的最小項。
n個變量有2^n個最小項,比如當n = 3時,此邏輯函數(shù)應有2^3 = 8個最小項。比如一個3變量的邏輯函數(shù),它有8個最小項,分別是:A'B'C'(000), A'B'C(001), A'BC'(010), A'BC(011), AB'C'(100), AB'C(101), ABC'(110), ABC(111)。他們分別可以用m0---m7表示。
根據(jù)定義可以得出:
輸入變量的任何取值下有且僅有一個最小項為‘1’,其他為‘0’。
任意兩個最小項之積為‘0’。
所有最小項之和為‘1’。
如果兩個最小項之間只有一個因子不相同,則認為它們相鄰。相鄰的兩個最小項之和就是把不相同的因子去掉。例如:ABC + ABC' = AB(C+C') = AB。
在上述的三人表決器中,用最小項表示:Y=m3+m5+m6+m7。
卡諾圖是邏輯函數(shù)的一種圖形表示。一個邏輯函數(shù)的卡諾圖就是將此函數(shù)的最小項表達式中的各最小項相應地填入一個方格圖內(nèi),此方格圖稱為卡諾圖。卡諾圖的構造特點使卡諾圖具有一個重要性質(zhì):可以從圖形上直觀地找出相鄰最小項。兩個相鄰最小項可以合并為一個與項并消去一個變量。
我們可以用圓圈圈出相鄰的值為‘1’的最小項,注意只能是矩陣畫(2,4,8·····)。左側紅色的圈為:AB'C和ABC,所以可以化簡成AC。其他兩個圈可以化簡稱為AB和BC。化簡的時候也沒有必要要寫出來,直接看就好了,把對應位置中有變化的哪一項直接去掉就好了。例如:紅色的圈圈出的兩個就只有B發(fā)生了變化,所以直接去掉,就變成了AC。
注意卡諾圖的數(shù)碼表示,如有兩位應該是 00、01、11、10。因為卡諾圖能夠銷項的原因是利用公式:ABC + ABC' = AB(C+C') = AB。不能是00、01、10、11,01和10是兩個變量不同。
另外卡諾圖在畫圈時,可以認為是一個左右、上下都連接的表格,可以最左側一個,最右側一個,構成兩個。因為它們同樣滿足相鄰(只有一個變量不同)。


