420 likes | 1.14k Views
布林代數與邏輯閘. Chapter 2. 二值布林代數. B = {0,1} 運算原則 封閉性 兩個單位元素 (identity elements) (1) + : 0 (2)‧ : 1. 交換律 分配律. 補數 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 運算
E N D
布林代數與邏輯閘 Chapter 2
二值布林代數 • B = {0,1} • 運算原則 • 封閉性 • 兩個單位元素 (identity elements) (1) +: 0 (2)‧: 1
交換律 • 分配律
補數 • 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)
布林代數的基本定理與性質 • 對偶性 • OR和AND的運算子互換; AND OR • 單位元素; 1 0
定理 1(a): x+x = x • x+x= (x+x) 1 由假說: 2(b) = (x+x) (x+x') 5(a) = x+xx' 4(b) = x+0 5(b) = x 2(a) • 定理1(b): x x = x • xx = x x + 0 = xx + xx' = x (x + x') = x 1 = x
定理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
定理6 • x + xy = x 1 + xy = x (1 +y) = x 1 = x • x (x + y) = x 由對偶性 • 利用真值表
迪摩根定理 • (x+y)' = x' y' • (x y)' = x' + y'
運算子之優先順序 • 括號; • NOT; • AND; • OR • 範例 • x y' + z • (x y + z)'
布林函數 • 布林函數的組成 • 二元變數 • 二元運算子OR 與AND • 單元運算子NOT • 括號 • 範例 • F1= x y z‘ • F2 = x‘ y’ z + x‘ y z + x y‘
布林函數可以由一個代數表示式轉換成一個含有邏輯閘且接成特殊結構的電路圖。布林函數可以由一個代數表示式轉換成一個含有邏輯閘且接成特殊結構的電路圖。 圖2-1就是 F1 的邏輯電路圖 (也稱作簡圖)。
代數演算 • 當布林函數利用邏輯閘來實現時,每一個項需要一個閘。 • 文字字元 (literal) :每一項中的一個變數,可以是補數也可以不是。 (每個變數即為閘的輸入) • 項:每一項利用一個邏輯閘來實現 • 藉由縮減布林表示式中之項數、文字數或兩者,通常可以得到一個較簡單的電路。布林代數的演算主要包含將一個表示式簡化以得到一個比較簡單的電路。 • 困難點 (無特定法則可遵循) • 範例 • x(x'+y) = xx' + xy = 0+ xy = xy • x+x'y = (x+x')(x+y) = 1 (x+y) = x+y • (x+y)(x+y') = x+xy+xy'+yy' = x(1+y+y') = x
x‘y’z+ x‘yz + xy’ = x‘z(y’+y) + xy‘= x'z + xy' • 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 • (x+y)(x‘+z)(y+z) = (x+y)(x’+z) 由前述結果,利用對偶性。
一個函數的補數 • 函數 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'
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')
正規形式與標準形式 • 全及項(最小項)與全或項(最大項) • 全及項:一個AND項,由項內所有文字字元的正常形式或補數形式 AND 起來組成 • 範例:兩個二元變數x 與 y, • xy, xy', x'y, x'y' • 全及項又可稱為標準積 (standard product) • n個變數可以組合成 2n 個全及項。 • 全或項:一個 OR 項 • 全或項又可稱為標準和 (standard sum) • n個變數可以組合成 2n 個全或項
每一個全或項為其相對應全及項的補數,反之亦然。每一個全或項為其相對應全及項的補數,反之亦然。 • 表2-3列有3個變數所形成的8個全或項。
一個布林函數可用下列方式表示: • 真值表 • 全及項之和 • f1= x'y'z + xy'z' + xyz = m1+ m4+m7 • f2 = x'yz+ xy'z + xyz'+xyz = m3 + m5 +m6 + m7
布林函數的補數 • 產生一個 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 M2M3 M5 M6 • 任何布林函數可用下列方式表示: • 全及項之和 • 全或項之積 • 正規形式
全及項之和 • 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) • 或者, 先建構真值表
全或項之積 • 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)
正規形式之間的轉換 • 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
範例 • F = xy + xz • F(x, y, z) = S(1, 3, 6, 7) • F(x, y, z) = P (0, 2, 4, 6)
標準形式 • 正規形式很少使用 • 積項之和 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
二階層電路 (two-level implementation) • 多階層電路 (two-level implementation)
多重輸入NOR 閘定為OR 閘的補數 • 多重輸入NAND 閘定為AND 閘的補數 • 串接 NAND 運算 = 積項之和 • 串接 NOR 運算 = 和項之積
互斥-OR和全等閘都具有交換性及結合性 • 以硬體的觀點,多重輸入變數的互斥-OR卻很少使用。 • 互斥-OR函數是一個奇函數 (odd function) (也就是說,當輸入變數是奇數個為1時,輸出為1)。
圖2-8說明3-輸入互斥-OR函數的結構,通常利用2-輸入閘串接來完成,如圖(a) 所示。 • 在符號上可以用單一個3-輸入閘來表示,如圖(b) 所示。 • 圖(c) 為其真值表,明顯地指出當只有一個輸入是1或所有3個輸入是1則輸出為1 (也就是當輸入變數總數是奇數個1時,其輸出值為1) (3-8節將會進一步討論互斥-OR閘)。