在數(shù)字電路中,卡諾圖是用最小項(xiàng)方格表示邏輯函數(shù)的方法,其是用圖形表示輸入變量與函數(shù)之間的邏輯關(guān)系,它用幾何位置上的相鄰,形象地表示了組成邏輯函數(shù)的各個(gè)最小項(xiàng)之間在邏輯上的相鄰性。初學(xué)者往往以為卡諾圖只是數(shù)字電路分析和設(shè)計(jì)中用以化簡(jiǎn)邏輯函數(shù)的一種工具。其實(shí)不然,實(shí)際上靈活運(yùn)用卡諾圖,可以使邏輯電路的分析和設(shè)計(jì)過程大大地簡(jiǎn)化,讓一些難題迎刃而解。下面介紹卡諾圖在化簡(jiǎn)之外的幾點(diǎn)靈活運(yùn)用。
1 卡諾圖的應(yīng)用
1.1 利用卡諾圖結(jié)構(gòu)幫助記憶格雷碼
格雷碼是一種常用的無(wú)權(quán)BCD碼,相鄰兩碼之間只有一位二進(jìn)制數(shù)碼不同。常用于模擬量的轉(zhuǎn)換中,當(dāng)模擬量發(fā)生微小變化而可能引起數(shù)字量發(fā)生變化時(shí),格雷碼僅改變1位,這樣與其他碼同時(shí)改變兩位或多位的情況相比更為可靠,可減少出錯(cuò)的可能性,提高電路的抗干擾能力,它是一種典型的可靠性代碼,這種碼制在數(shù)控裝置中有著廣泛的應(yīng)用。但由于這種編碼所具有的獨(dú)特性,實(shí)際應(yīng)用中很難記憶。經(jīng)研究和探討,我們觀察到利用卡諾圖按照一定規(guī)律取值,可用于實(shí)現(xiàn)記憶格雷碼。這種獨(dú)特的記憶方式,可幫助學(xué)生方便、輕松地記住該編碼,并應(yīng)用于實(shí)際中。
選用四變量卡諾圖并令:G3G2G1G0分別作為四位格雷碼的輸入變量。將變量G3G2作為高位,GlGO作為低位。畫出四變量卡諾圖。從四變量卡諾圖中我們可見,卡諾圖中四變量若按箭頭所示的方向順序取值,其所取的值變化順序正好即為四位格雷碼的編碼表,如圖1格雷碼的卡諾圖表示法所示。十進(jìn)制數(shù)從 0~15,對(duì)應(yīng)四位格雷碼的輸入代碼依次分別為0000—0001—0011——1001一1000,如表l所示格雷嗎碼的編碼表。
1.2 卡諾圖在組合邏輯電路競(jìng)爭(zhēng)冒險(xiǎn)中的應(yīng)用
競(jìng)爭(zhēng)冒險(xiǎn),是數(shù)字電路中一種特有的現(xiàn)象。不同的門電路有著不同的延遲時(shí)間,輸入信號(hào)經(jīng)過不同的途徑進(jìn)行傳輸,到達(dá)輸出端的時(shí)間有早有遲,狀態(tài)變化有先有后,存在時(shí)差。這種狀態(tài)變化存在時(shí)差的現(xiàn)象就叫做“競(jìng)爭(zhēng)”。如果競(jìng)爭(zhēng)結(jié)果是使穩(wěn)態(tài)輸出的邏輯關(guān)系受到短暫破壞,出現(xiàn)不應(yīng)有的尖峰脈沖,這種現(xiàn)象就叫做“冒險(xiǎn)”。冒險(xiǎn)可能使電路產(chǎn)生暫時(shí)或永久的邏輯錯(cuò)誤。
在進(jìn)行邏輯電路設(shè)計(jì)時(shí),我們必須應(yīng)發(fā)現(xiàn)和判別出產(chǎn)生競(jìng)爭(zhēng)冒險(xiǎn)的可能,并采取積極有效的措施將競(jìng)爭(zhēng)冒險(xiǎn)予以消除。判斷和消除競(jìng)爭(zhēng)冒險(xiǎn)的方法很多,最簡(jiǎn)便和最直觀的方法就是使用卡諾圖。
使用卡諾圖判斷一個(gè)組合邏輯電路是否存在著競(jìng)爭(zhēng)冒險(xiǎn)的一般步驟是:首先畫出該電路邏輯函數(shù)的卡諾圖,然后在函數(shù)卡諾圖上畫出與表達(dá)式中所有乘積項(xiàng)相對(duì)應(yīng)的卡諾圈,如果圖中有相切的卡諾圈,則該邏輯電路存在著競(jìng)爭(zhēng)冒險(xiǎn)如圖2所示,所謂卡諾圈相切即兩個(gè)卡諾圈之間存在不被同一卡諾圈包含的相鄰最小項(xiàng)。
如果邏輯函數(shù)的卡諾圖中存在著相切的卡諾圈,該邏輯電路就存在著競(jìng)爭(zhēng)冒險(xiǎn);那么,只要使函數(shù)的卡諾圖中消除相切的卡諾圈,即可消除競(jìng)爭(zhēng)冒險(xiǎn)現(xiàn)象。在卡諾圖上,加上一個(gè)與兩相切卡諾圈相交的一個(gè)圈(一項(xiàng)),破壞卡諾圈的單獨(dú)相切性。加上此圈后,邏輯函數(shù)多了一個(gè)冗余項(xiàng),冗余項(xiàng)的加入并不改變?cè)壿嫼瘮?shù)的邏輯值,但冗余項(xiàng)的加入?yún)s可以有效地消除冒險(xiǎn)。
例如圖3所示的卡諾圖中,有兩處存在卡諾圈相切現(xiàn)象,故其表示的邏輯函數(shù)式F=ABC十ABD+AD存在冒險(xiǎn)??杉觾蓚€(gè)卡諾圈(虛線圈)破壞其相切性,也即增加兩個(gè)冗余項(xiàng)BCD和ACD,消除競(jìng)爭(zhēng)冒險(xiǎn)后,該邏輯函數(shù)的表達(dá)式如下所示:
由此可見,使用卡諾圖判斷和消除數(shù)字電路中的競(jìng)爭(zhēng)冒險(xiǎn),簡(jiǎn)便直觀,易于操作。
1.3 用卡諾圖完成兩邏輯函數(shù)的邏輯運(yùn)算
首先將邏輯函數(shù)F1和F2在同一張卡諾圖中表示出來。為區(qū)別起見,將函數(shù)F1出現(xiàn)的l填在卡諾圖小方格的左上角,將另一函數(shù)F2出現(xiàn)的l填在卡諾圖小方格的左下角。
下面以幾個(gè)常見的邏輯運(yùn)算為例來說明。
1)求兩邏輯函數(shù)Y1和Y2的或運(yùn)算F1+F2
根據(jù)或運(yùn)算的特點(diǎn),求或運(yùn)算時(shí),只要將Y1、Y2卡諾圖中出現(xiàn)的所有l(wèi)都畫入包圍圈,然后根據(jù)卡諾圖寫出表達(dá)式。
2)求兩邏輯函數(shù)Fl和F2的與運(yùn)算Fl·F2
根據(jù)與運(yùn)算的特點(diǎn),求與運(yùn)算時(shí),只要將F1、F2卡諾圖中重復(fù)出現(xiàn)的l畫入包圍圈,然后根據(jù)卡諾圖寫出表達(dá)式。
3)求兩邏輯函數(shù)Fl和F2的異或運(yùn)算Fl+F2
根據(jù)異或運(yùn)算的特點(diǎn),求異或運(yùn)算時(shí),只要將Fl、F2卡諾圖中不重復(fù)出現(xiàn)的l畫入包圍,然后根據(jù)卡諾圖寫出表達(dá)式。
例:已知兩邏輯函數(shù)F1(A,B,C)=∑m(0,1,3),F(xiàn)2(A,B,C)=∑m(0,4,5,7),試用卡諾圖分別求出F1+F2;Fl·F2和Fl+F2。
解:
1)將邏輯函數(shù)Fl、F2在同一張卡諾圖中表示出來,將函數(shù)出現(xiàn)的1填在卡諾圖小方格的左上角,將函數(shù)F2出現(xiàn)的l填在卡諾圖小方格的左下角,如圖4;
2)求Fl+F2時(shí),將Fl、F2卡諾圖中出現(xiàn)的所有l(wèi)都畫入包圍圈,如圖5;
3)求F1·F2時(shí),將F1、F2卡諾圖中重復(fù)出現(xiàn)的1畫入包圍圈,如圖6;
4)求F1+F2時(shí),將F1、F2卡諾圖中不重復(fù)出現(xiàn)的1畫入包圍圈,如圖7;
5)根據(jù)圖5、6、7寫出函數(shù)表達(dá)式:
1.4 使用降維卡諾圖化簡(jiǎn)多變量函數(shù)
在卡諾圖中,通常我們用“0”、“1”以及無(wú)關(guān)項(xiàng)“d”(或用“×”表示)作為卡諾圖中的單元值,函數(shù)的變量都作為卡諾圖的變量,一般來說,卡諾圖的維數(shù)也就是函數(shù)的變量數(shù).如果將某些變量也作為圖中的單元值,則所得到的卡諾圖維數(shù)將減少,這樣的卡諾圖叫做降維卡諾圖。在用中規(guī)模集成電路,特別是用數(shù)據(jù)選擇器來實(shí)現(xiàn)函數(shù)時(shí),使用降維卡諾圖化簡(jiǎn)多變量函數(shù)是非常有用的。降維卡諾圖化簡(jiǎn)原理在此不再贅述。
例如邏輯函數(shù)F(A,B,C,D)=∑m(0,3,5,6,9,10,12,15) 如果選用8選1數(shù)據(jù)選擇器74LSl5l實(shí)現(xiàn)組合邏輯函數(shù),由于8選l數(shù)據(jù)選擇器的地址變量為3個(gè),將邏輯函數(shù)降維為三維卡諾圖后與8選1數(shù)據(jù)選擇器含 Di的卡諾圖對(duì)照比較(見圖8),很容易獲得數(shù)據(jù)選擇器輸入信號(hào)與邏輯函數(shù)變量的關(guān)系:令A(yù)2=A,A1=B,A0=C,則 Do="D3"=D5=D6=D,Dl=D2=D4=D7=D,畫出邏輯圖,如圖9所示。
如果選用4選一數(shù)據(jù)選擇器實(shí)現(xiàn)邏輯函數(shù),還可以將三維卡諾圖繼續(xù)降維成二維卡諾圖后與4選l數(shù)據(jù)選擇器含Di的卡諾圖對(duì)照比較(見圖11),獲得數(shù)據(jù)選擇器輸入信號(hào)與邏輯函數(shù)變量的關(guān)系:A1=A,A0=B,D0=D3=CD+CD=C+D,Dl=D2=CD+CD=C+D
用4選一數(shù)據(jù)選擇器實(shí)現(xiàn)邏輯函數(shù)見圖10。
2 結(jié)束語(yǔ)
從以上幾例論述可知,卡諾圖的用途不只限于邏輯函數(shù)化簡(jiǎn)的功能,可廣泛用于記憶或設(shè)計(jì)有關(guān)碼制,競(jìng)爭(zhēng)冒險(xiǎn)中的判斷,數(shù)據(jù)選擇器實(shí)現(xiàn)組合邏輯函數(shù)和邏輯函數(shù)的邏輯運(yùn)算等,深入理解卡諾圖的內(nèi)涵,巧妙地應(yīng)用它,能得到意想不到的效果,為數(shù)字邏輯電路的分析和綜合帶來很大的方便。
評(píng)論
查看更多