李金燦
(華南農業大學珠江學院,廣東 廣州 510900)
卡諾圖在數字電子技術課程中的應用
李金燦
(華南農業大學珠江學院,廣東 廣州 510900)
卡諾圖是數字電子技術課程一項重要的圖形工具,它在邏輯函數化簡方面要優于公式法.它能快速驗證實驗數據的準確性,為數據選擇器實現邏輯函數提供直觀的降維卡諾圖,其次態卡諾圖在時序邏輯電路設計中可以起到重要的橋梁作用.
卡諾圖化簡;降維卡諾圖;次態卡諾圖
數字電子技術課程作為電氣電子類專業一門重要的專業基礎課,其教學目標是讓學生通過系統的學習,能掌握基本原理,認識常用的邏輯芯片,并能設計出滿足要求的邏輯電路.而卡諾圖在整門課程中的地位是非常重要的,它典型用于邏輯函數的化簡,亦可用于快速驗證實驗結果,還可用于組合邏輯電路如數據選擇器的設計,及時序邏輯電路的設計[1].本文將通過實際的例子來敘述卡諾圖在這幾方面的應用.
卡諾圖(Karnaugh map)是由美國貝爾實驗室電信工程師莫里斯·卡諾(Maurice Karnaugh)在1953年根據維奇圖(Veitch diagram)改進而得到,在數字邏輯、故障診斷等許多領域廣泛應用[2].卡諾圖是邏輯函數一種用圖形表示的描述方法,它可以與真值表、邏輯代數式、邏輯圖、波形圖等其它描述方法相互轉換.
2.1 卡諾圖在邏輯函數化簡的應用
為減少邏輯電路使用的門電路數量或門輸入端,需對邏輯函數進行化簡,化簡方法有公式法和圖形法即卡諾圖法.公式法化簡比較快速,但需對常用公式非常熟悉.且某些邏輯函數在化簡過程中,不能直觀的判斷結果是否為最簡.而使用卡諾圖化簡[3],則可以直接得到最簡結果.其缺點是對于變量個數超過4個的函數,卡諾圖方格數將急劇增多,難以繪制.
要使用卡諾圖快速化簡邏輯函數,必須掌握邏輯函數的卡諾圖填入、畫“卡諾圈”和與項求解.邏輯函數可分為標準和非標準與或式,對于標準式,可直接在卡諾圖中相應的最小項方格填“1”即可.但對于非標準式,則需通過找出“交集方格”填“1”.如化簡函數,該函數屬于非標準式,要找出函數中每個“與項”的公共部分.因變量A、B負責卡諾圖的行,變量C、D負責卡諾圖的列,以為例,只需令“A=0,C=0”,“A=0”可找出第1、2行,“C=0”可找出第1、2列,它們交集為m0、m1、m4、m5,在相應的最小項方格填“1”即可.其它“與項”按相應的方法填入,如圖1所示.

圖1 卡諾圖填入
接下來需畫“卡諾圈”,即將卡諾圖中所有為“1”的小方格用最少的圈數圈完.其合并規律有3個,(1)2個相鄰的小方格可以合并,消去1個變量;(2)4個相鄰的小方格可以合并,消去2個變量;(3)8個相鄰的小方格可以合并,消去3個變量.這里涉及“相鄰”的概念,是指“幾何相鄰”,包括相接、相對、相重合.在畫圈時一般按“8個1→4個1→2個1→1個1”的順序,畫完后需對“卡諾圈”進行檢驗是否成立,其方法是檢查圈內是否至少有一個從未被其它圈圈過的“1”.畫完“卡諾圈”的卡諾圖如圖2所示:

圖2 卡諾圈
最后將每個“卡諾圈”對應的“與項”寫出再進行“相或”即可得到函數的最簡與或式.大部分圖書資料并沒有將“與項”的獲得方法寫出,只是列舉一些常見的“卡諾圈”及結果.作者根據多年的教學經驗,歸納出方便快捷的方法:行看左邊AB,列看上方CD;卡諾圖內所有的“1”對應的變量取值不同,則將該變量去掉;對應的變量取值相同則保留該變量,變量取值為“1”時保留為原變量,為“0”時保留為反變量.
以卡諾圖中“8個1”的卡諾圈為例,先看左邊,上面“4個1”對應變量A取值為0,而下面“4個1”對應變量A取值為1,取值不同,去掉變量A;上下“4個1”對應變量B均取值為0,保留為反變量B.再看上方,4列“2個1”對應的變量C、D的取值均不相同,所以去掉變量C、D.該卡諾圈對應的與項是,與“8個相鄰小方格合并消去3個變量”的化簡規律是一致的.按同樣的方法可以寫出其它2個卡諾圈對應的與項是和,函數的化簡結果為
2.2 卡諾圖在實驗過程中的應用
數字電子技術是一門對動手能力要求很高的課程,在理論課堂教學外,還需配套進行驗證性和綜合性實驗.學生在實驗過程中,往往只會按實驗指導書給出的步驟搭建邏輯電路,并根據實驗箱的顯示狀態記錄實驗數據,但對數據的正確性不能快速判斷.
現以邏輯函數F(A,B,C,D)=ABC+ACD+BCD為例,要求用合適的邏輯芯片實現,并根據實驗結果列出真值表進行驗證.若直接對該函數式進行實現,需要2片三輸入端或四輸入端的與門和1片三輸入端的或門.但若將函數式轉換成與非-與非形式,即則只需使用2片三輸入端或四輸入端的與非門.搭建好電路便能很快得到該函數的真值表,學生一般會將16種的取值可能一一代入原函數進行驗證,驗證時間過長.若能巧妙使用卡諾圖,便可快速驗證.先將函數填入到卡諾圖中,如圖3所示:

圖3 驗證函數卡諾圖
從卡諾圖中立刻可以看出,當變量ABCD的取值組合為0111、1011、1110和1111這4種組合時,函數輸出值為1,其余取值組合輸出均為0.
2.3 卡諾圖的降維應用
一般將卡諾圖的變量數稱為維數,如果把某些變量也作為卡諾圖小方格的值,則會減少卡諾圖的維數,這種卡諾圖稱為降維卡諾圖[4].在使用數據選擇器(MUX)實現組合邏輯函數時,教材一般只會介紹公式法,亦即拼湊法.拼湊法的關鍵是要分別列出數據選擇器的輸出端表達式和待求函數的標準與或式,然后將待求函數拼成與數據選擇器輸出表達的樣式,通過對比,得出數據選擇器地址輸入端和數據輸入端的值.當待求函數變量數是2-3個時,拼湊的過程不會很復雜,但若變量是4個時,則會變得很繁瑣,對比過程容易出錯.此時若引入圖形法即降維卡諾圖將會大大減少工作量.降維卡諾圖一般適用于數據選擇器地址端數少于待求函數變量數的情況.下面舉例說明卡諾圖如何降維,以及如何應用于函數實現過程.
現使用八選一數據選擇器74LS151來實現函數F(A,B,C,D)=∑m(0,1,5,6,7,9,12,13,14),因74LS151的地址端只有3個,而函數變量數有4個,所以需對函數降維.首先畫出函數的卡諾圖,如圖4所示:
一般默認降變量“D”,可以先畫出三變量“A,B,C”的空白卡諾圖,根據原卡諾圖的小方格取值即函數值來確定其值.降維可分成四種情況:
(1)當ABC取值為000時,當D=0,F=1;當D=1,F=1,不論D取值為0還是1,F都為1,所以在三變量卡諾圖m0對應小方格填“1”.
(2)當ABC取值為001時,當D=0,F=0;當D=1,F=0,不論D取值為0還是1,F都為0,所以在三變量卡諾圖m1對應小方格填“0”.
(3)當ABC取值為010時,當D=0,F=0;當D=1,F=1,F的取值與D的取值相同,所以在三變量卡諾圖m2對應小方格填“D”.
(4)當ABC取值為111時,當D=0,F=1;當D=1,F=0,F的取值與D的取值相反,所以在三變量卡諾圖m7對應小方格填“”.

圖4 函數卡諾圖
最后得函數的降維卡諾圖,如圖5所示.再將74LS151輸出信號的卡諾圖畫出,如圖6所示,通過兩卡諾圖對比,可以快速得出74LS151地址輸入端A2A1A0和數據輸入端D7-D0的值,之后便可畫出74LS151的連線圖,實現待求函數.

圖5 降維卡諾圖

圖6 數據選擇器卡諾圖
2.4 次態卡諾圖的應用
次態卡諾圖是指卡諾圖小方格填入的數據不是一個函數值,而是當前狀態的下一個狀態,一般是一組二進制數.在進行時序邏輯電路設計,需根據給定的條件,如狀態轉移圖求解狀態方程,此時需引入次態卡諾圖,之后再將其拆分成各觸發次態卡諾圖來求解[5].現以設計一個同步六進制加法計數器為例,首先根據其計數規則,采用3個觸發器實現,畫出相應的狀態轉移圖,如圖7所示:

圖7 狀態轉移圖
設圖中狀態圈內二進制數組合對應Q2Q1Q0狀態,按箭頭指向可以清晰的看出某一狀態在輸入信號作用下的下一個狀態,即次態,可用次態卡諾圖表示,如圖8所示:

圖8 次態卡諾圖
將次態卡諾圖中8個小方格中的二進制數組合分別取左、中、右各1個數字構成三個新的卡諾圖,化簡可得次態的表達式.再根據所選用觸發器的類型,變換狀態方程的形式,通過對比法可以求出觸發器的驅動方程.
上面敘述的4種情況基本是卡諾圖在數字電子技術課程的全部應用,通過實例分析,可以快速掌握各種卡諾圖應用的使用場合及方法.熟練使用卡諾圖可加深對課程的理解,亦可加快邏輯電路的設計進度.
〔1〕余孟嘗.數字電子技術基礎簡明教程[M].北京:高等教育出版社,2006.
〔2〕王芳.基于數字電路中卡諾圖的應用研究[J].山西電子技術,2008(06):22-24.
〔3〕葉騰,朱桂英.卡諾圖化簡數學新方法[J].河北科技大學學報,2012,33(03):202-206.
〔4〕郝卜,張陽,柴毅哲,等.降維卡諾圖在邏輯函數設計中的應用[J].降維卡諾圖在邏輯函數設計中的應用,2012,25(04):33-36.
〔5〕任駿原.基于次態卡諾圖的J、K激勵函數最小化方法及時序邏輯電路自啟動設計[J].浙江大學學報(理學版),2010,37(4):425-427.
G642
A
1673-260X(2017)08-0212-03
2017-05-06
2014年廣東省質量工程項目《從化供電局校外實踐教學基地建設》(4720);北方國際大學聯盟第四期教育教學研究項目《EDA仿真軟件在數字電子技術課程教學中的應用研究》(20140408002)