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


