劉中旭



【摘要】在學習數字邏輯課程時,經常需要對邏輯函數進行化簡?;啎r,一種方法是使用布爾代數的定律進行化簡,另一種方法是使用卡諾圖進行化簡。第一種方法要求準確掌握布爾代數定律和一些化簡技巧,第二種方法則相對簡單。
【關鍵字】卡諾圖 化簡
一、卡諾圖介紹
卡諾圖是由美國貝爾實驗室的電信工程師莫里斯·卡諾(Mau-rice Karnaugh)在1953年根據維奇圖改進而來的,它是一種平面方格圖。1任何一個邏輯函數都可以化為一組最小項之和的表達式,每一個最小項對應卡諾圖中的一個方格。圖1和圖2分別為三變量和四變量的卡諾圖。每一個最小項用m加上下標表示,下標為最小項編號對應的二進制數轉化為十進制數。原變量取值1,非變量取值0,例如ABC編號為110,用m6表示。
二、邏輯函數在卡諾圖中的表示
雖然卡諾圖中的一個方格表示邏輯函數的一個最小項,但在將邏輯函數填寫入卡諾圖中時,不一定需要將邏輯函數化成最小項之和的表達式。例如F=BC,如果化為最小項之和的形式為F=BC(A+A)(D+D)=A BCD+A BCD+ABCD+ABCD,然后在卡諾圖中表示將A BCD、A BCD、ABCD和ABCD的方格填寫1,轉化過程較為繁瑣,如圖3。在熟悉卡諾圖結構后,可以直接填寫,省去轉化為最小項之和的過程,B表示卡諾圖中第2、3行,C表示第3、4列,重合的區域即為BC,如果圖4。
三、卡諾圖化簡規則和步驟
用卡諾圖化簡邏輯函數時,首先要找到2n個相鄰最小項(為1的方格)的組合,用圈包圍;圈中的為1方格的數目盡量要大;每個組合中至少一個為1方格是其他組合沒有的:先畫大圈,再畫小圈,圈盡量少,直到所有為1的方格都被圈包圍。如果1個圈里面有2n個相鄰最小項,則可以消去n個變量。在找相鄰最小項時,除了幾何上相鄰,還包括邏輯上相鄰,即在卡諾圖中最上面和最下面的行、最左側和最右側的列是邏輯上相鄰的。圖5中,4個圈所包圍的最小項均是幾何上相鄰。圖6中的有2個圈,上下組成一個圈,左右組成一個圈,每個圈內的最小項是邏輯相鄰的。
例:用卡諾圖化簡F=ABCD+ABCD+AB+AD+ABC。這是一個4變量的邏輯函數,首先先畫出4變量的卡諾圖,把化簡函數的各項填入卡諾圖中:然后根據化簡規則和步驟畫圈,最下面4個為1的方格用一個圈包圍,用AB表示,最左列和最右列的4個為1的方格用一個圈包圍,用AD表示,總共用了2個圈,因此F=AB+AD,如圖7。
對于4變量及以下的邏輯函數化簡而言,卡諾圖化簡是一種較為簡便的方法,值得注意的是在有些情況下,因圈法的不同,得到的化簡結果不一樣,即一個邏輯函數的最簡與或表達式不是唯一的。
參考文獻:
[1]白中英,謝松云數字邏輯[M].北京:科學出版社,2013