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