1. 程式人生 > 其它 >6、邏輯代數的化簡(公式法和卡諾圖法)

6、邏輯代數的化簡(公式法和卡諾圖法)

一、邏輯函式的化簡

將一個邏輯表示式變得最簡單、運算量最少的形式就叫做化簡。由於 運算量越少,實現邏輯關係所需要的閘電路就越少,成本越低,可靠性相對較高,因此在設計邏輯電路時,需要求出邏輯函式的最簡表示式。

由此可以看到,函式化簡是為了簡化電路,以便用最少的門實現它們,從而降低系統的成本,提高電路的可靠性。

通常來說,我們化簡的結果會有以下五種形式

為什麼是這五種情況,這個跟我們實現的邏輯電路的元器件是有關係的。在所有的邏輯電路中,都是通過與、或、非三種邏輯電路來實現的,之前說過邏輯“與或”、“或與”、“與或非”組合邏輯電路是具有完備性的,也就是說能夠通過它們不同數量的組合能夠實現任何電路。

通過不同的“與或”電路組成的電路,最後化簡的表示式就是“與或”表示式,其他同理。

二、將使用“與或”表示式的化簡

  • 表示式中乘積項的個數應該是最少的

    ​ 表達了最後要用到的與門是最少的,因為每一個乘積項都需要一個與門來實現。同時也對應了或門輸入端的個數變少,有2個與項或門就有2個輸入端,有3個與項或門就有3個輸入端。

​ 所以第一個條件是為了我們的與門和或門最少。

  • 每一個乘積項中所含的變數個數最少

    它是解決每一個與門的輸入端最少。

邏輯函授的化簡有三種方法

三、邏輯函式的代數化簡法

3.1 並項法

並項法就是將兩個邏輯相鄰(互補)的項合併成一個項,這裡就用到了“合併律”

將公因子A提取出來合併成一項,b和b非相或的結果就等於1,所以最後的結果就是A。

3.2 吸收法

吸收法是利用公式“吸收律”來消去多餘的項

3.3 消項法

消項法又稱為吸收律消項法

3.4 消因子法(消元法)

3.4 配項法

左邊的例子用到了方法1,右邊的例子用到了方法2。

3.5 邏輯函式的代數法化簡的優缺點

優點:對變數的個數沒有限制。在對定律掌控熟練的情況下,能把無窮多變數的函式化成最簡。

缺點:需要掌握多個定律,在使用時需要能夠靈活應用,才能把函式化到最簡,使用門檻較高。在有些函式下,並不能化到最簡。

綜上所述,代數法化簡的缺點遠遠大於它的優點,因而引出了卡諾圖化簡法。

四、卡諾圖化簡

4.1 概念

  • 卡諾圖是由美國工程師卡諾(Karnaugh)首先提出的一種用來描述邏輯函式的特殊方格圖。

  • 在學習卡諾圖之前有個概念需要清楚:

    • 最小項的定義:一個函式的某個乘積項包含了函式的全部變數,其中每個變數都以原變數或反變數的形式出現,且僅出現一次,則這個乘積項稱為該函式的一個標準積項,通常稱為最小項

      簡單來說最小項就是變數只有與非的表示式,3變數的與非表示式能夠組合出8種不同的形式。它們的特點是8種不同的與非表示式,輸入同樣的變數取值,如:000,最後只有一種表示式會得1,其餘得0,所以叫做最小項。

    • 邏輯相鄰最小項,如果兩個最小項之間,只有一個變數不同,其餘都相同,這個就叫做邏輯相鄰最小項。

編號 A B F
m0 0 0 0
m1 0 1 1
m2 1 0 1
m3 1 1 0

這個真值表是AB變數的數值是按照順序來變化的,可以看到編號為m1和m2之間變數並不相鄰,都互相取反了。我們可以通過調整順序,將這個真值表變成邏輯相鄰(格雷碼)。

編號 A B F
m0 0 0 0
m1 0 1 1
m3 1 1 0
m2 1 0 1

將m3和m2進行位置的互換以後,可以看到只有1位變數的值,發生了變化,這樣就叫做邏輯相鄰(格雷碼)。

邏輯相鄰(格雷碼)給我們找到了一個化簡的途徑,在卡諾圖中正是利用了這個原理進行化簡的。

4.2 卡諾圖的構成

卡諾圖主要的做法就是畫一個二維的方格圖,在這個圖裡面,我們把邏輯相鄰的最小項都擺放成位置相鄰。

  • 在這個方格圖中,每一個方格代表邏輯函式的一個最小項,而且幾何相鄰(在幾何位置上,上下或左右相鄰)的小方格具有邏輯相鄰性(格雷碼),即兩相鄰小方格所代表的最小項只有一個變數取值不同

  • 對於有n個變數的邏輯函式,其最小項有2^n個。因此該邏輯函式的卡諾圖由 2^n 個小方格構成,每個小方格都滿足邏輯相鄰項的要求。

這是一個二變數的卡諾圖,變數A寫在左側,0和1表示那一列A不同的取值。變數B寫在上方,0和1表示那一行B不同的取值。格子裡面是存放的是左側與上側的變數結合出來的最小項表示式。結合成最小項時,左側的變數A在高位,上側的變數B在低位。

相鄰方格位置之間的最小項只有一個變數發生了變化,這個就叫做位置相鄰

在卡諾圖中多變數那一行,需要按照邏輯相鄰(格雷碼)的概念進行排序。

N變數的表示式有N種不同的最小項,這個原理在卡諾圖中也是一樣的。在N變數的卡諾圖中,任意位置的最小項都能找到N個對應位置相鄰的最小項。

最小項編號具有格雷碼的迴圈特性,所以在卡諾圖中邊緣的最小項能夠跟它最上面和最左、右邊的最小項位置相鄰。

對於5變數的卡諾圖,我們也應該提供給每一個最小項都有5個位置相鄰的最小項。但是在二維表中,只有上下左右,因此沒有辦法在一個表中提供5個位置相鄰的最小項。那麼一張不行,我們就把它定義成2張卡諾圖。

假設,5個變數分別為:ABCDE,我們把A變數單獨拿出來,將A=0的情況,用一張表來表示;將A=1的情況,再用一張表表示。每個表都是4變數的卡諾圖,結合成最小項時,A變數在最高位,接下來是左側的變數BC,上側的變數DE在低位。

4.3邏輯函式的卡諾圖表示

最小項之和式

最大項之積式

4.4 真值表轉換成卡諾圖

4.5 一般“與或”式的邏輯函式轉換成卡諾圖

1、將式子的不同變數提取出來,變成N變數的卡諾圖。

2、觀察結果F 在何種狀態下結果會變為1,上面式子通過觀察可知,只要有一個與項的結果等於1,其結果F就會等於1.

3、將會使結果F等於1的變數值和卡諾圖對應上,其格子填上1。

4、所有F=1的情況,列出來以後,其他就=0了。

4.6 一般“或與”式的邏輯函式轉換成卡諾圖

1、將式子的不同變數提取出來,變成N變數的卡諾圖。

2、觀察結果F 在何種狀態下結果會變為0,上面式子通過觀察可知,只要有一個或項的結果等於0,其結果F就會等於0.

3、將會使結果F等於0的變數值和卡諾圖對應上,其格子填上0。

4、所有F=0的情況,列出來以後,其他就=1了。

4.7 邏輯函式為其他形式轉換成卡諾圖

4.7 卡諾圖的性質

4.8 卡諾圖的運算

4.9 利用卡諾圖化簡邏輯函式

4.9.1 最小項合併規律

這個圈就叫做卡諾圈。

1、求最簡“與或”式(最小項)

2、圈組合並時注意事項

3、求最簡“或與”式(最大項)

4.9.2 多輸出邏輯函式的卡諾圖化簡法