Transcript Document
布林代數與邏輯閘
Chapter 2
1
二值布林代數
B = {0,1}
運算原則
x
0
0
1
1
y
0
1
0
1
xy
0
0
0
1
x
0
0
1
1
y
0
1
0
1
x+y
0
1
1
1
封閉性
兩個單位元素 (identity elements)
(1) + : 0
(2)‧: 1
2-2
x x
0 1
1 0
交換律
分配律
2-3
補數
x+x'=1: 0+0'=0+1=1; 1+1'=1+0=1
x‧x'=0: 0‧0'=0‧1=0; 1‧1'=1‧0=0
二值布林代數只有兩個固定元素0和1, 其中 0 ≠ 1
註記
兩個二元運算子 + : OR運算; ‧ : AND運算
一個補數運算子: NOT運算
二值布林代數亦被稱為「二進位元邏輯」(binary logic)
2-4
布林代數的基本定理與性質
對偶性
OR和AND的運算子互換; AND OR
單位元素; 1 0
2-5
• 定理 1(a): x + x = x
– x+x = (x+x) 1
= (x+x) (x+x')
= x+xx'
= x+0
=x
由假說:
– 定理1(b): x x = x
– xx = x x + 0
= xx + xx'
= x (x + x')
=x1
=x
2-6
2(b)
5(a)
4(b)
5(b)
2(a)
定理2
x + 1 = 1 (x + 1)
= (x + x')(x + 1)
= x + x' 1
= x + x'
=1
x 0 = 0 由對偶性
定理 3: (x')' = x
由假說5 定義了 x的補數, x + x' = 1 與 x x' = 0
x‘ 的補數為x, 亦即 (x’)' = x
2-7
定理6
x + xy = x 1 + xy
= x (1 +y)
=x1
=x
x (x + y) = x 由對偶性
利用真值表
x
0
0
1
1
y
0
1
0
1
xy
0
0
0
1
x + xy
0
0
1
1
2-8
迪摩根定理
(x+y)' = x' y'
(x y)' = x' + y'
x
0
0
1
1
y
0
1
0
1
x+y
0
1
1
1
(x+y) x
1
1
0
1
0
0
0
0
2-9
y
1
0
1
0
xy
1
0
0
0
•
運算子之優先順序
(1)
(2)
(3)
(4)
–
括號;
NOT;
AND;
OR
範例
– x y' + z
– (x y + z)'
2-10
布林函數
布林函數的組成
二元變數
二元運算子OR 與AND
單元運算子NOT
括號
範例
F1= x y z‘
F2 = x‘ y’ z + x‘ y z + x y‘
2-11
函數內變數為 n 個時,其真值表共有 2n 列。
2-12
布林函數可以由一個代數表示式轉換成一個含有邏
輯閘且接成特殊結構的電路圖。
圖2-1就是 F1 的邏輯電路圖 (也稱作簡圖)。
2-13
我們利用某些布林代數的恆等式盡可能來化簡函數:
此函數被化簡成僅有兩項,並且可以由圖2-2(b) 的邏
輯閘實現。
2-14
2-15
代數演算
當布林函數利用邏輯閘來實現時,每一個項需要一個閘。
文字字元 (literal) :每一項中的一個變數,可以是補數也可以
不是。 (每個變數即為閘的輸入)
項:每一項利用一個邏輯閘來實現
藉由縮減布林表示式中之項數、文字數或兩者,通常可以得
到一個較簡單的電路。布林代數的演算主要包含將一個表示
式簡化以得到一個比較簡單的電路。
困難點 (無特定法則可遵循)
範例
1. x(x'+y) = xx' + xy = 0+ xy = xy
2. x+x'y = (x+x')(x+y) = 1 (x+y) = x+y
3. (x+y)(x+y') = x+xy+xy'+yy' = x(1+y+y') = x
2-16
4. x‘y’z + x‘yz + xy’ = x‘z(y’+y) + xy‘ = x'z + xy'
5. xy + x'z + yz = xy + x'z + yz(x+x')
= xy + x'z + yzx + yzx‘
= xy(1+z) + x'z(1+y)= xy +x'z
6. (x+y)(x‘+z)(y+z) = (x+y)(x’+z) 由前述結果,利用對偶
性。
2-17
一個函數的補數
函數 F 的補數為 F',可以由 F 值中之0換成1,1換成0求得。
一個函數的補數可以利用迪摩根定理而以代數的方式推導
出。
(A+B+C)‘ = (A+x)’
令 B+C = x
= A‘x’
由迪摩根定理
= A‘(B+C)’
以 B+C = x代換
= A'(B'C')
由迪摩根定理
= A'B'C'
結合律
通式
(A+B+C+ ... +F)' = A'B'C' ... F'
(ABC ... F)' = A'+ B'+C'+ ... +F'
2-18
F1'=(x'yz' + x'y'z)' = (x'yz')' (x'y'z)'
= (x+y'+z) (x+y+z')
F2'=[x(y'z'+yz)]' = x' + (y'z'+yz)'
= x' + (y'z')' (yz)'
= x' + (y+z) (y'+z')
一種較簡易的方法 ----- 利用對偶性
用求出函數的對偶函數,然後將對偶函數中的文字取補數。
x'yz' + x'y'z => (x'+y+z') (x'+y'+z) (對偶性)
=>
(x+y'+z)(x+y+z')
2-19
範例2-3
2-20
正規形式與標準形式
全及項(最小項)與全或項(最大項)
全及項:一個AND項,由項內所有文字字元的正常形式或
補數形式 AND 起來組成
範例:兩個二元變數x 與 y,
xy, xy', x'y, x'y'
全及項又可稱為標準積 (standard product)
n 個變數可以組合成 2n 個全及項。
全或項:一個 OR 項
全或項又可稱為標準和 (standard sum)
n 個變數可以組合成 2n 個全或項
2-21
每一個全或項為其相對應全及項的補數,反之亦然。
表2-3列有3個變數所形成的8個全或項。
2-22
一個布林函數可用下列方式表示:
真值表
全及項之和
f1 = x'y'z + xy'z' + xyz = m1 + m4 +m7
f2 = x'yz+ xy'z + xyz'+xyz = m3 + m5 +m6 + m7
2-23
布林函數的補數
產生一個 0的全及項
f1' = m0 + m2 +m3 + m5 + m6
= x'y'z'+x'yz'+x'yz+xy'z+xyz'
f1 = (f1')'
= (x+y+z)(x+y'+z) (x+y'+z') (x'+y+z')(x'+y'+z)
= M0 M2 M3 M5 M6
任何布林函數可用下列方式表示:
全及項之和
全或項之積
正規形式
2-24
全及項之和
F = A+B'C
= A (B+B') + B'C
= AB +AB' + B'C
= AB(C+C') + AB'(C+C') + (A+A')B'C
=ABC+ABC'+AB'C+AB'C'+A'B'C
F = A'B'C +AB'C' +AB'C+ABC'+ ABC
= m1 + m4 +m5 + m6 + m7
F(A, B, C) = ∑(1, 4, 5, 6, 7)
或者, 先建構真值表
2-25
全或項之積
x + yz = (x + y)(x + z)
= (x+y+zz')(x+z+yy')
=(x+y+z)(x+y+z’)(x+y'+z)
F = xy + x'z
(xy + x') (xy +z)
(x+x')(y+x')(x+z)(y+z)
(x'+y)(x+z)(y+z)
x' + y = x' + y + zz’ = (x'+y+z)(x'+y+z')
F = (x+y+z)(x+y'+z)(x'+y+z)(x'+y+z')= M0M2M4M5
F(x, y, z) = P (0, 2, 4, 5)
2-26
=
=
=
正規形式之間的轉換
F(A, B, C) = ∑ (1, 4, 5, 6,7)
F(A, B, C) = ∏ (0, 2, 3)
由迪摩根定理
F(A, B, C) = P (0, 2, 3)
mj' = Mj
全及項之和 ↔ 全或項之積
運算符號 S 與 P互換並將原表示式中所缺的那些項列出即
可
S of 1's
P of 0's
2-27
範例
F = xy + xz
F(x, y, z) = S(1, 3, 6, 7)
F(x, y, z) = P (0, 2, 4, 6)
2-28
標準形式
正規形式很少使用
積項之和
F1 = y' + zy+ x'yz'
和項之積
F2 = x(y'+z)(x'+y+z'+w)
F3 = AB+C(D+E)
F3 = AB+C(D+E) = AB + CD + CE
2-29
二階層電路 (two-level implementation)
多階層電路 (two-level implementation)
2-30
邏輯閘
2-31
2-32
多重輸入NOR 閘定為OR 閘的補數
多重輸入NAND 閘定為AND 閘的補數
串接 NAND 運算 = 積項之和
串接 NOR 運算 = 和項之積
2-33
互斥-OR和全等閘都具有交換性及結合性
以硬體的觀點,多重輸入變數的互斥-OR卻很少使用。
互斥-OR函數是一個奇函數 (odd function) (也就是說,當輸入變
數是奇數個為1時,輸出為1)。
2-34
圖2-8說明3-輸入互斥-OR函數的結構,通常利用2-輸入閘串接來
完成,如圖(a) 所示。
在符號上可以用單一個3-輸入閘來表示,如圖(b) 所示。
圖(c) 為其真值表,明顯地指出當只有一個輸入是1或所有3個輸
入是1則輸出為1 (也就是當輸入變數總數是奇數個1時,其輸出值
為1) (3-8節將會進一步討論互斥-OR閘)。
2-35