2013年6月6日 星期四

卡諾圖

以布林定理化簡布林函數時,常常不知如何著手,甚至在函數中那一項需要分解,那一項需要合併,也難一眼看出,而且最後結果是否為最簡式往往無法確定,所以使用者期望能有一種化簡方法是有程序可循的,有一定規則的,”卡諾圖”滿足了上述要求。  卡諾圖是由美國貝爾實驗室,一位名叫卡諾的電機工程師發展出來的,它是利用真值表透過圖形的操作來達到簡化的目的,雖然使用卡諾圖化簡法簡單容易,但只限於五個元素以下的卡諾圖結構,因為五個元素以上太複雜,若真有需要,可使用電腦程式來化簡。

卡諾圖化簡的要點:
  1. 如果布林函數有幾個變數,卡諾圖就必須有個方格。
  2. 任意相鄰的兩格,亦即相鄰的兩項,其對應的變數字母只有一個是不同的。
  3. 下圖分別代表(a)二變數卡諾圖 (b)二變數卡諾圖 (c)四變數卡諾圖。
P3-2.gif (656 bytes)p3-3.gif (1181 bytes)p3-4.gif (2856 bytes)

  1. 二個相鄰的1可消去一個互補的變數,四個相鄰的1可消去二個互補的變數,八個相鄰的1可消去三個互補的變數,十六個相鄰的1可消去四個互補的變數。
  2. 使用卡諾圖化簡時,由於所圈選的1越多,所能消除的變數越多,因此在圈選時應儘可能以能圈出最多個相鄰的1為優先考量,若遇到獨立的空格其內值為1時,只好個別獨立選出不可遺漏。

化簡的步驟:
  1. 將在真值表中可產生的每個基礎乘積項,對應的填入卡諾圖的空格中,並標記為,其他的空格則填入
  2. 依序圈出相鄰的8個1、相鄰的4個1、相鄰的2個1,空格中的可被重複圈選,以便消除最多的變數。
  3. 如果還留下獨立的1,也要個別圈選。
  4. 觀察圈選的狀況,要讓所有的空格都被圈到,而圈選的組數要愈少愈好。
  5. 每一個圈選的結果是一個乘積項,將所有的乘積項OR起來即是化簡後的布林代數式。

圈選二個1的範例:
P4-1.gif (1665 bytes)P4-2.gif (1763 bytes)
上下兩列亦屬於相鄰的方格
P4-3.gif (2780 bytes)
  左右兩列亦屬於相鄰的方格

圈選四個1的範例:
P5-1.gif (2196 bytes)
p5-2.gif (2619 bytes)
p5-3.gif (2678 bytes)
P5-4.gif (2645 bytes)
P5-5.gif (2783 bytes)

圈選八個1的範例:
p5-6.gif (2786 bytes)p5-7.gif (2813 bytes)
P5-8.gif (2843 bytes)

圈選十六個1的範例:

重複圈選的範例:

<例一>

<例二>
利用卡諾圖化簡p7-1.gif (231 bytes)之布林代數式

隨意條件:
        在邏輯電路的應用中,主要是處理輸入與輸出的關係,但並非所有的輸入狀況皆會發生,對這些輸入狀態而言,其對應的輸出是0或1整體而言是無關緊要的,我們稱這種輸出為隨意狀態或未確定狀態(Don't   Care)通常在卡諾圖中可以視化簡的須要將它當成0或1。
<例四>

沒有留言:

張貼留言