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