夏強勝,李 娟
(安慶師范大學(xué)物理與電氣工程學(xué)院,安徽安慶246133)
數(shù)字電路中,邏輯函數(shù)表達式是邏輯電路圖的實現(xiàn)基礎(chǔ)。為了使用最少的電子器件實現(xiàn)某一邏輯功能,最簡的邏輯函數(shù)表達式是這一過程實現(xiàn)的前提,因此,邏輯函數(shù)表達式化簡就顯得尤為關(guān)鍵。通常,公式法和卡諾圖法是邏輯函數(shù)化簡的兩種主要方法。然而,兩種化簡方法各有優(yōu)勢和不足[1-3]。公式法適用范圍廣,但化簡過程較為繁瑣,需要扎實的邏輯代數(shù)基礎(chǔ);卡諾圖法化簡過程直觀清晰,但在邏輯變量較多時,過程也趨于復(fù)雜。
一般地,在卡諾圖法化簡教學(xué)中,大家習(xí)慣于從化簡的步驟出發(fā)學(xué)習(xí)卡諾圖法化簡。這種學(xué)習(xí)過程割裂公式法和卡諾圖法之間的內(nèi)在聯(lián)系,使得對卡諾圖法化簡的利用僅停留在方法的層次上,而沒有上升到本質(zhì)理解的層次。其實,公式法和卡諾圖法化簡存在緊密的聯(lián)系,教學(xué)過程中可通過對兩者聯(lián)系的學(xué)習(xí)和分析,達到對卡諾圖法化簡的更好掌握。本文在卡諾圖法的化簡教學(xué)中通過聯(lián)系公式法化簡,幫助大家理解卡諾圖法化簡過程中的物理意義,實現(xiàn)對卡諾圖法化簡的更深層次理解和應(yīng)用。
要實現(xiàn)邏輯函數(shù)的卡諾圖化簡,先得用卡諾圖將邏輯函數(shù)表示出來。一般地,卡諾圖采用小方格一一對應(yīng)邏輯函數(shù)最小項的方式來表示邏輯函數(shù)。2變量邏輯函數(shù)使用22個小方格表示,3變量邏輯函數(shù)使用23個小方格表示,以此類推。為了方便卡諾圖的相鄰項化簡,這些最小項不能任意或者順序排列,而必須按照特定的規(guī)律排列[4]??紤]到在公式法化簡中,當(dāng)兩個最小項有且僅有一個變量取值不同時,可消除取值不同的變量進而得到更簡單的與項,如。這就要求卡諾圖中最小項排列應(yīng)遵循的原則:幾何相鄰的最小項有且僅有一個變量取值不同。格雷碼的編碼方式正好滿足此條件,所以表示最小項的卡諾圖小方格采用格雷碼的編碼方式,進而實現(xiàn)幾何相鄰項也就是邏輯相鄰項。圖1所示為2到4變量情形下采用格雷碼方式表示的卡諾圖最小項。
圖1 卡諾圖的編碼方式
由于邏輯函數(shù)可以表示為若干最小項之和的形式,因此任意一個邏輯函數(shù)都可以用卡諾圖表示出來。具體方法:將邏輯函數(shù)表示為最小項之和的形式,并在最小項對應(yīng)的卡諾圖小方格中填1,其余位置填0。同時,為了使卡諾圖更簡潔,化簡過程更清晰,此處的0可省略[5]。例如邏輯函數(shù)用卡諾圖表示,如圖2所示。
圖2 邏輯函數(shù)Y的卡諾圖表示
由于卡諾圖采用格雷碼的編排方式,最小項的幾何相鄰也就是邏輯相鄰,相鄰項可依據(jù)規(guī)則進行化簡。如圖 3(a)所示,2個相鄰的最小項可合并化簡,消去 1個變量,消除的是取值不同的那個變量實現(xiàn)化簡[6]。這里變量B取值不同,消去;變量A和變量C取值相同,保留。2個最小項相鄰除了位置上的幾何相鄰,還應(yīng)考慮到卡諾圖上的首尾相鄰,卡諾圖中的首尾最小項同樣是邏輯相鄰,可合并化簡,如圖 3(b)所示。
圖3 2個最小項相鄰情形
圖 4(a)所示為 4 個最小項相鄰的情形,結(jié)合公式法化簡可得化簡規(guī)則:4個最小項相鄰,消去取值不同的2個變量。本例中變量A和變量C有兩種不同取值,消去;變量B和變量D取值相同,保留。除此之外,4個最小項相鄰的情形還包括圖4(b)~(d)所示情形,都可以通過消去取值不同的2個變量以獲得最簡表達式[7]。
圖4 4個最小項相鄰情形
圖5 (a)所示為8個最小項相鄰情形,結(jié)合公式法化簡,消去取值不同的變量A、B和C,可得此外,8 個最小項相鄰還有圖 5(b)所示情形。綜上所述,2n個最小項相鄰可消去n個取值不同的變量,得到最簡的與式。
圖5 8個最小項相鄰情形
卡諾圖化簡的本質(zhì)就是相鄰項的確定,以上已對最小項相鄰的可能情形進行了羅列,但在具體問題中,相鄰項的確定還需要考慮到以下因素。下面通過具體實例對卡諾圖化簡中的相鄰項規(guī)律進行歸納總結(jié)。
圖6所示為例1邏輯函數(shù)卡諾圖。先可以確定最小項m1,m3,m5和 m7,消去取值不同的變量可化簡為C;同時,在這4個最小項內(nèi)部,m1和m3,m1和m5,m3和m7,m5和m7兩兩相鄰,如其中m1和m3相鄰的化簡結(jié)果為(圖6中虛線圈所示):可 以 發(fā) 現(xiàn) ,是 C 的 子 項 ,能 為 C 吸 收因此,當(dāng)2n個最小項構(gòu)成的相鄰項確定后,其內(nèi)部所有的2n-1到21個最小項所構(gòu)成的相鄰項都是最大相鄰項的子項,可以被吸收,無需圈出。最大相鄰項確立后,還剩唯一的最小項m6,本著表達式最簡的原則,將m6和m7作為相鄰項圈起來進行化簡可得所以,卡諾圖的化簡最終結(jié)果為這種利用已用過的最小項化簡在公式法化簡中同樣能找到依據(jù):上式第2步將最小項m7兩次利用,這在邏輯函數(shù)的公式法化簡中是合情合理的。在卡諾圖的化簡中,最小項m7被圈了2次,這和公式法化簡中的最小項m7兩次利用是同一機理。所以,確立相鄰項第1條準(zhǔn)則:先從最多的最小項相鄰找起,一直找到所有最小項都被圈起來,同時要保證不能出現(xiàn)子項。
圖6 邏輯函數(shù)Y1的卡諾圖化簡
圖7所示為例2邏輯函數(shù)卡諾圖。依據(jù)確立的相鄰項的第1條準(zhǔn)則,很容易圈出圖7所示相鄰項,化簡結(jié)果為然而,這個結(jié)果并不是最簡的。在公式法化簡中,已知BC是AB和兩項的冗余項,可以被這兩項所吸收。在卡諾圖化簡中,處理冗余項的方法也就是確立相鄰項的第2條準(zhǔn)則:檢查已圈出的相鄰項,保證每一個被圈出的相鄰項至少有一個獨立的最小項;如果滿足此條件,相鄰項保留,否則略去。本例中BC項所對應(yīng)的圈中的最小項都不是獨立的,分別被AB和兩項包含,所以BC項是它們的冗余項,卡諾圖化簡中必須把此相鄰項略去。
圖7 邏輯函數(shù)Y2的卡諾圖化簡
此例是余孟嘗版《數(shù)字電子技術(shù)》教材中利用公式法化簡的例題。這里,結(jié)合公式法和卡諾圖法進行分析。先利用公式法化簡,通過添加前兩項的冗余項后,分別和后兩項結(jié)合實現(xiàn)對前兩項的消除,如(2)式所示;同時發(fā)現(xiàn),通過添加后兩項的冗余項后,分別和前兩項結(jié)合實現(xiàn)后兩項的消除,如(3)式所示。兩種化簡方式都正確,結(jié)果也都是最簡的,但邏輯函數(shù)的形式卻不盡相同。為了找出這種不同產(chǎn)生的原因,可借助卡諾圖化簡。
圖8 邏輯函數(shù)Y3的卡諾圖化簡
綜上所述,本文在卡諾圖的化簡教學(xué)中結(jié)合公式法化簡,把卡諾圖化簡的物理意義呈現(xiàn)出來,幫助學(xué)生從本質(zhì)上理解卡諾圖的化簡,并通過總結(jié)給出卡諾圖化簡的一般規(guī)律,達到更好地理解和利用卡諾圖化簡邏輯函數(shù)的目的。另外,要想熟練使用卡諾圖化簡邏輯函數(shù),還需多做練習(xí),歸納總結(jié)出卡諾圖化簡方法的潛在規(guī)律。