1 / 30

深入研究卡諾圖

深入研究卡諾圖. 第三章 補充. 3A.1 簡介. 簡化布林函數會盎數位電路較為簡單 ( 通常也比較快 ). 用布林性質來簡化布林函數很耗時而且容易出錯 . 這個補充部份會介紹一種簡單 , 而且系統化的布林表示式簡化法. 3A.1 簡介. 在 1953, Maurice Karnaugh 是貝爾實驗室的一名電信工程師 . 正當他在試著找出數位邏輯以及其應用是否能用在電話電路時 , 他發現了一種布林表示式的圖形簡化法 . 這個圖形表示法 , 就是後來大家所知的 Karnaugh map, 或 Kmap, 是以他的名字來命名的.

mercer
Download Presentation

深入研究卡諾圖

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 深入研究卡諾圖 第三章 補充

  2. 3A.1 簡介 • 簡化布林函數會盎數位電路較為簡單 (通常也比較快). • 用布林性質來簡化布林函數很耗時而且容易出錯. • 這個補充部份會介紹一種簡單, 而且系統化的布林表示式簡化法.

  3. 3A.1 簡介 • 在1953, Maurice Karnaugh 是貝爾實驗室的一名電信工程師. • 正當他在試著找出數位邏輯以及其應用是否能用在電話電路時, 他發現了一種布林表示式的圖形簡化法. • 這個圖形表示法, 就是後來大家所知的Karnaugh map,或 Kmap, 是以他的名字來命名的.

  4. 3A.2 Kmaps 的術語 • Kmap是一個由行和列組成的矩陣, 它代表了布林函數的輸出值. • 矩陣的每個空格就是布林函數最小項所導出(minterms)的輸出值. • 最小項 (minterm)是包含所有函數變數的積項, 項中每個變數只出現一次, 不管是不是補數.

  5. 3A.2 Kmaps 的術語 • 例如, 某函數的輸入x和 y, 其最小項為: • 考慮布林函數, • 其最小項為:

  6. 3A.2 Kmaps 的術語 • 同樣地, 有三個輸入的函數, 其最小項如右所示.

  7. 3A.2 Kmaps 的術語 • 每個最小項在Kmap 中都有一個位置. • 這表示在真值表中, 每一列都會有一個位置. • F(x,y) = xy的真值表和Kmap 如右所示.

  8. 3A.2 Kmaps 的術語 • 來看另一個例子, F(x,y) = x + y的真值表和Kmap 如右所示. • 這個函數和OR 是相同的意思, 所以:

  9. 3A.3 二個變數的Kmap化簡 • 當然, 我們Kmap導出的最小項並不是其最簡的型式. • 我們就從這個例子開始. • 我們可以藉著在Kmap中找尋相鄰的1, 將其以2的次方個群組起來進行化簡. • 在我們的例子中, 我們有二個這樣的群組. • 你找出來了嗎?

  10. 3A.3 二個變數的Kmap化簡 • 圈選這二個1群組的最好方式如下所示. • 我們可知這二個群組的大小都是2的次方, 並且有重疊. • 下一張投影片我們會規納出一些圈選的規則.

  11. 3A.3 二個變數的Kmap化簡 Kmap的化簡方式為 : • 群組只能包含1; 不能有0. • 群組不能是斜的框. • 群組必須2的次方– 就算只有一個1. • 群組必需越大越好. • Kmap中的群組可以重疊, 而且邊邊可以視為捲紙一樣頭尾相接.

  12. 3A.4 三個變數的Kmap化簡 • 三個變數的Kmap, 建構方式入下圖所示. • 我們將每個最小項放入矩陣的空格中. • 這邊要注意到的是表上方的yz其對應值的順序並不是一般的00, 01, 10, 11順序.

  13. 3A.4 三個變數的Kmap化簡 • Kmap第一列所包含的最小項, 其x值為0. • 第一行的y和z值都為0.

  14. 3A.4 三個變數的Kmap化簡 • 考慮函數: • 其Kmap 如下. • 最大的1群組(2次方個)為何?

  15. 3A.4 三個變數的Kmap化簡 • 這個圈選方式告訴我們, 改變 x和 y變數對函數的值是沒有影響的: 它們是無關的. • 這表示函數, 可簡化為 F(x) = z. 你可以用真值表或布林性質來驗證.

  16. 3A.4 三個變數的Kmap化簡 • 現在來看複雜一點的 Kmap. 考慮下面函數: • 其Kmap 如下所示. 只有二個1 群組. • 你找到了嗎?

  17. 3A.4 三個變數的Kmap化簡 • 在這個 Kmap 中, 我們看到了圈選邊邊的例子. • 這個例子使我們了解, x 和 y的值和包在群組中函數的值是無關的. • 這個函數的項給我們什麼啟示? 在上方的綠色圈選呢?

  18. 3A.4 三個變數的Kmap化簡 • 上面綠色圈起來的部份表示只有x的值是有效的. • 所以化簡後是, 取補數, . • 整個化簡後函數是 記得原始的函數中有六個最小項!

  19. 3A.5 四個變數的Kmap化簡 • 我們可以將模型擴充為16個最小項, 其輸入就有4個變數. • 下面是16個最小項的 Kmap格式.

  20. 3A.5 四個變數的Kmap化簡 • 我們畫出以下函數的 Kmap: • 圖中可圈出三個群組 Kmap? 別忘了群組可以重疊.

  21. 3A.5 四個變數的Kmap化簡 • 這三個群組為: • 紫色的在右邊. • 粉紅色的在上下. • 綠色的在四個角落. • 所以最後化簡成三項:

  22. 3A.5 四個變數的Kmap化簡 • 有可能可以選擇Kmap中不同的最大群組. • 下面二個圖所化簡出來的函數會不同, 但是邏輯上是等效的.

  23. 3A.6 Don’t Care 情況 • 在實際的電路中, 不見得所有的輸入狀況都會定義它的輸出. • 例如, 某些計算機的七段顯示器. 這些 LEDs 可以顯示 2 7 -1 種樣式, 但我們只需要用其中0到9. • 如果在設計電路時明知某些情形不會出現, 我們就稱這些輸入為 don’t care 情況. • 這些情況在Kmap化簡中非常有用.

  24. 3A.6 Don’t Care 情況 • 在 Kmap中, don’t care 情況標示為 X, 如下圖所示. • 在化簡時, 我們可以自由選擇要不要圈入X來化簡.

  25. 3A.6 Don’t Care 情況 • 下面函數為Kmap圈選的化簡結果:

  26. 3A.6 Don’t Care 情況 • 不同的圈選方式會有不同的結果:

  27. 3A.6 Don’t Care 情況 • 此函數的真值表: 和這個函數的真值表是不同的: • 但是, 這些不同的輸入對應就是don’t care 情況.

  28. Kmaps 是一種簡單圖形化的布林化簡方法 Kmap 是一個矩陣, 這個矩陣是由布林函數最小項的輸出所組成. 在這一節中, 我們介紹了2- 3- 及 4-輸入的 Kmaps. 這個方法可以擴充到任何輸入. 3A 結論

  29. 3A 結論 複習一下Kmap化簡的規則: • 只能圈選1; 沒有 0. • 圈選的群組樣式不能形成對角線. • 群組中1的個數必需是2的次方 – 就算是只有一個1. • 群組越大越好. • 群組可以重疊Kmap可以視為頭尾相接. • 盡量利用don’t care 情況.

  30. End of Chapter 3A

More Related