李音 薛娓娓
(延安大學(xué)西安創(chuàng)新學(xué)院 陜西省西安市 710100)
在數(shù)字電子技術(shù)這門課程中,在開始的邏輯代數(shù)基礎(chǔ)章節(jié)中,學(xué)習(xí)完數(shù)制、碼制、邏輯代數(shù)的基本運(yùn)算之后就要進(jìn)行公式法化簡與卡諾圖化簡的內(nèi)容了,作為基礎(chǔ)內(nèi)容存在于第一章節(jié),雖然是基礎(chǔ)內(nèi)容,但是卻是數(shù)字電路設(shè)計里面的一個主要部分,它奠定了邏輯電路設(shè)計思路的基礎(chǔ)。在這部分內(nèi)容的講述中,主要要跟學(xué)生說清楚、講明白為什么要進(jìn)行化簡,目標(biāo)是什么樣的?;喪菫榱说玫阶詈喪?,要根據(jù)最簡式設(shè)計電路,這樣設(shè)計出來的電路才是最簡單的。
在利用公式法化簡之前,首先要對所有的基本公式、常用公式、基本定理進(jìn)行學(xué)習(xí),學(xué)習(xí)這部分內(nèi)容時要進(jìn)行分類學(xué)習(xí),在邏輯代數(shù)中,有些公式是與普通代數(shù)是一樣的,很容易理解,例如:0?A=0,0+A=A,AB=BA,A+B=B+A,因為這些完全符合普通代數(shù)的乘法和加法。但是也有一些是很容易弄錯的,例如,A?A=A , A+A=A,1+A=A,這些就和普通代數(shù)有著很大的區(qū)別,所以要提醒學(xué)生,在這個部分的學(xué)習(xí)過程中,必須注意與普通代數(shù)之間的區(qū)別,要提醒學(xué)生,邏輯代數(shù)只有:”0”和”1”,這樣比較好理解,提醒學(xué)生邏輯與和邏輯或的特點,0 與任何值等于0,1 或任何值等于1。另外有些定理比較好推導(dǎo),和普通代數(shù)一樣例如A+AB=A,這種不需要記憶,現(xiàn)場推導(dǎo)出來就可以使用。但也有一些不易于推導(dǎo),例如還有多余項定理這種,就需要學(xué)生熟練,最好直接記下來,直接使用。
公式法化簡的思路是最終得到的化簡式中項越少越好,每個項里面變量越少越好。這里只針對與或式。
上面這道例題屬于公式法化簡的一種典型例題,這種使用公式法化簡最好,這個做法現(xiàn)在最后兩項中,提取出,剩下1+A,1 或任何值等于1,所以接著最后在表達(dá)式里面找A 與,有A 的項直接可以消去,有的項直接消去就可以。
(1)在利用公式法進(jìn)行化簡時,邏輯代數(shù)中只有邏輯與和邏輯或,沒有除法也沒有減法,例如AB=AC,即B=C。還有A+B=A+C,即B=C,這兩個式子都是錯誤命題,前一個用了除法,兩邊同時除以A,才可以得到B=C,第二個用了減法,兩邊同時減去A,得到B=C,可以給學(xué)生舉例像第一個式子中A=0,B=0,C=1所以AB=AC 成立,但是B 不等于C,第二個式子中A=1,B=0,C=1 所以A+B=A+C 成立,但是B 不等于C。
(2)公式法化簡存在的問題就是有時候沒有辦法很快的確定,我們得到的式子是不是最簡式,那么公式法化簡就可以彌補(bǔ)這樣的缺陷。
這種利用卡諾圖化簡的依據(jù)就是相鄰的最小項可以合并,并消去不同的變量,那么我們就需要卡諾圖中所有對應(yīng)的最小項是邏輯相鄰的。圖1分別為二變量、三變量、四變量所對應(yīng)的最小項的卡諾圖。
圖1:二變量、三變量、四變量所對應(yīng)的最小項的卡諾圖
(1)如果已知表達(dá)式,要求利用卡諾圖化簡,首先把表達(dá)式寫成最小項和的式子,注意變量都有哪些,按照缺什么補(bǔ)什么的辦法,使每一項都成為最小項。
上式中共有三項,可以觀察出變量為A、B、C、D 四個變量,第一項已經(jīng)是最小項,最小項就是要求每個變量都有,而且都是以變量或者反變量的形式出現(xiàn)并且與起來。第二項只有A、B、D 三個變量,缺C,給第二項與上,這樣就得到了兩項,均為最小項。第三項只有A、C、D 三個變量,缺B,給第二項與上,這樣就得到了兩項,均為最小項。最后根據(jù)每個最小項判斷都是哪個最小項,m 的角碼是多少,原變量為“1”,反變量為“0”,對應(yīng)0101 轉(zhuǎn)換成十進(jìn)制為5,即是m5,對應(yīng)1010 轉(zhuǎn)換成十進(jìn)制為10,即是m10,對應(yīng),1000 轉(zhuǎn)換成十進(jìn)制為8,即是m8,對應(yīng),1111 轉(zhuǎn)換成十進(jìn)制為15,即是m15,對應(yīng)1011 轉(zhuǎn)換成十進(jìn)制為11,即是m11,這樣就得到上面的最終表達(dá)式。
(2)“填1”,按照卡諾圖中最小項的位置,對應(yīng)位置填1,得到卡諾圖2。
圖2:例題1 的卡諾圖
“圈圈”,規(guī)則:2n(1,2,4,8...)個1 圈起來,1 均是是邏輯相鄰的關(guān)系,注意以橫豎中線對折,重合的部分均是邏輯相鄰;圈起來的圈為正方形或長方形,注意邊邊角角的相鄰關(guān)系;每個1 都可以被重復(fù)圈;每個圈里面至少有一個1 沒有被其他圈圈過;注意:圈數(shù)越少越好,則對應(yīng)的項越少,圈越大越好,每項對應(yīng)的變量數(shù)越少。
(3)寫表達(dá)式。
每個圈對應(yīng)一個項,最后把所有的項或起來就得到表達(dá)式了,方法是留下相同的變量,去掉不同的變量。
例1:
圖3中總共圈了兩個圈,其中四個1 被重復(fù)圈了,左側(cè)四個1 與右側(cè)四個1 是一個圈,注意這個是一個圈,以豎中線折疊具有相鄰性,所以是一個圈,對應(yīng)項為,因為A、B、C、D 值中只有相同值D=0,其他A、B、C 值都不同,0 對應(yīng)反變量,所以為。對應(yīng)的下面8 個1 是一個圈,A、B、C、D 值中只有相同值A(chǔ)=1,其他B、C、D 值都不同,1 對應(yīng)原變量,所以為A。故得到
圖3:例題2 的卡諾圖
例2:如圖4,對卡諾圖進(jìn)行圈1,并寫出最簡式。
圖4:例題3 的卡諾圖
圖4(a)中有6 個1,四個1 不能圈,圈出來不是正方形,也不是長方形,只能兩個1 圈,總共3 個圈,對應(yīng)的表達(dá)式為另外我們應(yīng)該注意到這個卡諾圖還有另一種圈法,但是還是3 個圈,每個圈有兩個1,所以就結(jié)果來看都是對的,而且電路簡易程度是一樣的。
圖4(b)中有8 個1,只能兩個1 圈,總共4 個圈,對應(yīng)的表達(dá)式為另外和圖(a)一樣,這個卡諾圖也還有另一種圈法,但是還是4 個圈,每個圈有兩個1。由此可見,有時候我們在進(jìn)行化簡時結(jié)果可能不一樣,但是都是正確的。
圖4(c)中有8 個1,總共3 個圈,四個1 圈,對應(yīng)的表達(dá)式為但是明顯這個結(jié)果是不對的,可以八個1 圈,通過表達(dá)式我們也可以發(fā)現(xiàn)有C 也有,相加是等于1 的,那么像這種,所有最小項都存在,加起來是等于1 的。
圖4(d)中有12 個1,公用四個1,八個1 圈,總共2 個圈,對應(yīng)的表達(dá)式為
從以上可以看出來,卡諾圖圈法不是唯一的,最簡式不是唯一的;另外在填1 時,也可以根據(jù)表達(dá)式直接填1,例如表達(dá)式中有A,所有A=1 的格子都填1,像,所有A=1 且B=0 的格子都填1;最后圈1 時要注意邊邊角角的相鄰的1。
以上為公式法化簡和卡諾圖化簡需要注意的一些問題,公式法化簡適用于變量比較多時使用,由其是多余項定理的使用,但是缺點是無法確定是不是最簡式,卡諾圖優(yōu)點是可以根據(jù)圈圈確定是最簡式,但是存在當(dāng)變量太多,卡諾圖太復(fù)雜不易于圈圈的問題。