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


