资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,*,第三章 補充,深入研究卡諾圖,1,第三章 補充深入研究卡諾圖1,3A.1,簡介,簡化布林函數會盎數位電路較為簡單,(,通常也比較快,).,用布林性質來簡化布林函數很耗時而且容易出錯,.,這個補充部份會介紹一種簡單,而且系統化的布林表示式簡化法,.,2,3A.1 簡介簡化布林函數會盎數位電路較為簡單(通常也比較,3A.1,簡介,在,1953,Maurice Karnaugh,是貝爾實驗室的一名電信工程師,.,正當他在試著找出數位邏輯以及其應用是否能用在電話電路時,他發現了一種布林表示式的圖形簡化法,.,這個圖形表示法,就是後來大家所知的,Karnaugh map,或,Kmap,是以他的名字來命名的,.,3,3A.1 簡介在1953,Maurice Karnaugh,3A.2 Kmaps,的術語,Kmap,是一個由行和列組成的矩陣,它代表了布林函數的輸出值,.,矩陣的每個空格就是布林函數最小項所導出,(minterms),的輸出值,.,最小項,(minterm),是包含所有函數變數的積項,項中每個變數只出現一次,不管是不是補數,.,4,3A.2 Kmaps 的術語Kmap是一個由行和列組成的矩,例如,某函數的輸入,x,和,y,其最小項為,:,考慮布林函數,其最小項為,:,3A.2 Kmaps,的術語,5,例如,某函數的輸入x 和 y,其最小項為:3A.2,同樣地,有三個輸入的函數,其最小項如右所示,.,3A.2 Kmaps,的術語,6,同樣地,有三個輸入的函數,其最小項如右所示.3A.2 K,3A.2 Kmaps,的術語,每個最小項在,Kmap,中都有一個位置,.,這表示在真值表中,每一列都會有一個位置,.,F(x,y)=xy,的真值表和,Kmap,如右所示,.,7,3A.2 Kmaps 的術語每個最小項在Kmap 中都有一個,3A.2 Kmaps,的術語,來看另一個例子,F(x,y)=x+y,的真值表和,Kmap,如右所示,.,這個函數和,OR,是相同的意思,所以,:,8,3A.2 Kmaps 的術語來看另一個例子,F(x,y),3A.3,二個變數的,Kmap,化簡,當然,我們,Kmap,導出的最小項並不是其最簡的型式,.,我們就從這個例子開始,.,我們可以藉著在,Kmap,中找尋相鄰的,1,將其以,2,的次方個群組起來進行化簡,.,在我們的例子中,我們有二個這樣的群組,.,你找出來了嗎,?,9,3A.3 二個變數的Kmap化簡當然,我們Kmap導出的最,3A.3,二個變數的,Kmap,化簡,圈選這二個,1,群組的最好方式如下所示,.,我們可知這二個群組的大小都是,2,的次方,並且有重疊,.,下一張投影片我們會規納出一些圈選的規則,.,10,3A.3 二個變數的Kmap化簡圈選這二個1群組的最好方式如,Kmap,的化簡方式為,:,群組只能包含,1;,不能有,0.,群組不能是斜的框,.,群組必須,2,的次方,就算只有一個,1.,群組必需越大越好,.,Kmap,中的群組可以重疊,而且邊邊可以視為捲紙一樣頭尾相接,.,3A.3,二個變數的,Kmap,化簡,11,Kmap的化簡方式為:3A.3 二個變數的Kmap化簡11,3A.4,三個變數的,Kmap,化簡,三個變數的,Kmap,建構方式入下圖所示,.,我們將每個最小項放入矩陣的空格中,.,這邊要注意到的是表上方的,yz,其對應值的順序並不是一般的,00,01,10,11,順序,.,12,3A.4 三個變數的Kmap化簡三個變數的Kmap,建構方,3A.4,三個變數的,Kmap,化簡,Kmap,第一列所包含的最小項,其,x,值為,0.,第一行的,y,和,z,值都為,0.,13,3A.4 三個變數的Kmap化簡Kmap第一列所包含的最小項,3A.4,三個變數的,Kmap,化簡,考慮函數,:,其,Kmap,如下,.,最大的,1,群組,(2,次方個,),為何,?,14,3A.4 三個變數的Kmap化簡考慮函數:14,3A.4,三個變數的,Kmap,化簡,這個圈選方式告訴我們,改變,x,和,y,變數對函數的值是沒有影響的,:,它們是無關的,.,這表示函數,可簡化為,F(x)=z.,你可以用真值表或布林性質來驗證,.,15,3A.4 三個變數的Kmap化簡這個圈選方式告訴我們,改變,3A.4,三個變數的,Kmap,化簡,現在來看複雜一點的,Kmap.,考慮下面函數,:,其,Kmap,如下所示,.,只有二個,1,群組,.,你找到了嗎,?,16,3A.4 三個變數的Kmap化簡現在來看複雜一點的 Kmap,3A.4,三個變數的,Kmap,化簡,在這個,Kmap,中,我們看到了圈選邊邊的例子,.,這個例子使我們了解,x,和,y,的值和包在群組中函數的值是無關的,.,這個函數的項給我們什麼啟示,?,在上方的綠色圈選呢,?,17,3A.4 三個變數的Kmap化簡在這個 Kmap 中,我們,3A.4,三個變數的,Kmap,化簡,上面綠色圈起來的部份表示只有,x,的值是有效的,.,所以化簡後是,取補數,.,整個化簡後函數是,記得原始的函數中有六個最小項,!,18,3A.4 三個變數的Kmap化簡上面綠色圈起來的部份表示只有,3A.5,四個變數的,Kmap,化簡,我們可以將模型擴充為,16,個最小項,其輸入就有,4,個變數,.,下面是,16,個最小項的,Kmap,格式,.,19,3A.5 四個變數的Kmap化簡我們可以將模型擴充為16個最,3A.5,四個變數的,Kmap,化簡,我們畫出以下函數的,Kmap:,圖中可圈出三個群組,Kmap?,別忘了群組可以重疊,.,20,3A.5 四個變數的Kmap化簡我們畫出以下函數的 Kmap,3A.5,四個變數的,Kmap,化簡,這三個群組為,:,紫色的在右邊,.,粉紅色的在上下,.,綠色的在四個角落,.,所以最後化簡成三項,:,21,3A.5 四個變數的Kmap化簡這三個群組為:21,3A.5,四個變數的,Kmap,化簡,有可能可以選擇,Kmap,中不同的最大群組,.,下面二個圖所化簡出來的函數會不同,但是邏輯上是等效的,.,22,3A.5 四個變數的Kmap化簡有可能可以選擇Kmap中不同,3A.6 Dont Care,情況,在實際的電路中,不見得所有的輸入狀況都會定義它的輸出,.,例如,某些計算機的七段顯示器,.,這些,LEDs,可以顯示,2,7,-1,種樣式,但我們只需要用其中,0,到,9.,如果在設計電路時明知某些情形不會出現,我們就稱這些輸入為,dont care,情況,.,這些情況在,Kmap,化簡中非常有用,.,23,3A.6 Dont Care 情況 在實際的電路中,不見,3A.6 Dont Care,情況,在,Kmap,中,dont care,情況標示為,X,如下圖所示,.,在化簡時,我們可以自由選擇要不要圈入,X,來化簡,.,24,3A.6 Dont Care 情況在 Kmap中,don,3A.6 Dont Care,情況,下面函數為,Kmap,圈選的化簡結果,:,25,3A.6 Dont Care 情況 下面函數為Kmap圈選,3A.6 Dont Care,情況,不同的圈選方式會有不同的結果,:,26,3A.6 Dont Care 情況不同的圈選方式會有不同的,3A.6 Dont Care,情況,此函數的真值表,:,和這個函數的真值表是不同的,:,但是,這些不同的輸入對應就是,dont care,情況,.,27,3A.6 Dont Care 情況此函數的真值表:27,Kmaps,是一種簡單圖形化的布林化簡方法,Kmap,是一個矩陣,這個矩陣是由布林函數最小項的輸出所組成,.,在這一節中,我們介紹了,2-3-,及,4-,輸入的,Kmaps.,這個方法可以擴充到任何輸入,.,3A,結論,28,Kmaps 是一種簡單圖形化的布林化簡方法3A 結論28,複習一下,Kmap,化簡的規則,:,只能圈選,1;,沒有,0.,圈選的群組樣式不能形成對角線,.,群組中,1,的個數必需是,2,的次方,就算是只有一個,1.,群組越大越好,.,群組可以重疊,Kmap,可以視為頭尾相接,.,盡量利用,dont care,情況,.,3A,結論,29,複習一下Kmap化簡的規則:3A 結論29,End of Chapter 3A,30,End of Chapter 3A30,
展开阅读全文