1.07k likes | 1.36k Views
資電學院 計算機概論 F7810. 第六章 數位邏輯. 陳邦治編著 旗標出版社. 本章重點. 電腦的硬體是由邏輯電路所組成 數位邏輯 (digital logic) 是分析及設計邏輯電路時所必須瞭解的知識 若要瞭解電腦的邏輯電路的原理及設計方式便必須學習數位邏輯. 大綱. 邏輯運算子及邏輯閘 布林運算的重要定理 通用閘 布林運算式的正規表示法 布林運算式的化簡 組合邏輯 循序邏輯. 3. 3. 邏輯運算子及邏輯閘. 因為邏輯運算處理的值是邏輯值,邏輯值也可稱為布林值 ( 即 true 與 false) ,所以邏輯運算又稱為布林運算
E N D
資電學院計算機概論F7810 第六章 數位邏輯 陳邦治編著 旗標出版社
本章重點 • 電腦的硬體是由邏輯電路所組成 • 數位邏輯(digital logic)是分析及設計邏輯電路時所必須瞭解的知識 • 若要瞭解電腦的邏輯電路的原理及設計方式便必須學習數位邏輯
大綱 • 邏輯運算子及邏輯閘 • 布林運算的重要定理 • 通用閘 • 布林運算式的正規表示法 • 布林運算式的化簡 • 組合邏輯 • 循序邏輯 3 3
邏輯運算子及邏輯閘 • 因為邏輯運算處理的值是邏輯值,邏輯值也可稱為布林值(即true與false),所以邏輯運算又稱為布林運算 • 常用的邏輯運算子有AND、OR、NOT、NAND、NOR、XOR及XNOR等 • 「NOT」是比較特別的邏輯運算子,它只有一個輸入、一個輸出 • 其他的邏輯運算子則是有二個輸入、一個輸出 • 為了簡化表達的方式,通常會用「1」來代替布林值「true」,用「0」來代替布林值「false」
AND運算子 • AND運算子輸入與對應輸出的關係是「當二個輸入值皆為true時,輸出值為true;否則輸出值為false」 • AND運算子輸入與對應輸出的關係利用真值表(truth table)定義如下
AND運算子 (cont.) • 當AND運算子的二個輸入x與y之值皆為1時,對應的輸出值為1,其他輸入狀況對應的輸出值皆為0 • 通常將「x AND y」的敘述簡化寫成「x‧y」 • AND 閘(gate)如下圖
OR 運算子 • OR運算子輸入與對應輸出的關係是「當二個輸入值皆為false時,輸出值為false;否則輸出值為true」 • OR運算子輸入與對應輸出的關係利用真值表定義如下
OR 運算子 (cont.) • 由上表可知當OR運算子的二個輸入x與y之值皆為0時,對應的輸出值為0,其他輸入狀況對應的輸出值皆為1 • 通常將「x OR y」的敘述簡化寫成「x+y」 • OR 閘如下圖
NOT運算子 • NOT運算子輸入與對應輸出的關係是「輸出值為輸入值的『1的補數』」 • NOT運算子輸入與對應輸出的關係利用真值表定義如下
NOT運算子 (cont.) • 由上表可知當NOT運算子的輸入值為0時,對應的輸出值為1;輸入值為1時,對應的輸出值為0 • 通常將「NOT x」的敘述簡化寫成 • NOT 閘如下圖
範例 • 請依以下8種(X、Y、Z)的可能值,計算運算式 之結果值為何?
NAND運算子 • NAND運算子輸入與對應輸出的關係是「當二個輸入值皆為true時,輸出值為false;否則輸出值為true」 • NAND運算子輸入與對應輸出的關係利用真值表定義如下
NAND運算子 (cont.) • 由上表可知當NAND運算子的二個輸入x與y之值皆為1時,對應的輸出值為0,其他輸入狀況對應的輸出值皆為1 • NAND 閘如下圖 輸入x,y與輸出F間之對應關係如下列關係式
範例 • 下列那一個運算式有誤? (A) 0 NAND 0 = 1 (B) 0 NAND 1 = 1 (C) 1 NAND 0 = 0 (D) 1 NAND 1 = 0 • 解:C • NAND運算子只有在二個運算元之值皆為1 (true)時,結果為0 (false),其他的情形下結果皆為1
NOR運算子 • NOR運算子輸入與對應輸出的關係是「當二個輸入值皆為false時,輸出值為true;否則輸出值為false」 • NOR運算子輸入與對應輸出的關係利用真值表定義如下
NOR運算子 (cont.) • 由上表可知當NOR運算子的二個輸入x與y之值皆為0時,對應的輸出值為1,其他輸入狀況對應的輸出值皆為0 • NOR 閘如下圖 輸入x,y與輸出F間之對應關係如下列關係式如下
範例 • 下列那一個運算式有誤? (A) 0 NOR 0 = 1 (B) 0 NOR 1 = 0 (C) 1 NOR 0 = 0 (D) 1 NOR 1 = 1。 • 解:D • NOR運算子只有在二個運算元之值皆為0 (false)時,結果為1 (true),其他的情形下結果皆為0
XOR運算子 • XOR運算子輸入與對應輸出的關係是「當二個輸入值不同時,輸出值為true;否則輸出值為false」 • XOR運算子輸入與對應輸出的關係利用真值表定義如下
XOR運算子 (cont.) • 由上表可知當XOR運算子的二個輸入x與y之值為(1, 0)或(0, 1)時,對應的輸出值為1,其他輸入狀況對應的輸出值皆為0 • XOR 閘如下圖 輸入x,y與輸出F間之對應關係如下列關係式
範例 • (1 XOR 1) XOR (1 XOR 0) XOR (1 XOR 1)的結果為何? • 解: (1 XOR 1) XOR (1 XOR 0) XOR (1 XOR 1) =0 XOR 1 XOR 0 =1 XOR 0 =1
XNOR運算子 • XNOR運算子輸入與對應輸出的關係是「當二個輸入值相同時,輸出值為true;否則輸出值為false」 • XNOR運算子輸入與對應輸出的關係利用真值表定義如下
XNOR運算子 (cont.) • 由上表可知當XNOR運算子的二個輸入x與y之值為(0, 0)或(1, 1)時,對應的輸出值為1,其他輸入狀況對應的輸出值皆為0 • XNOR 閘如下圖 輸入x,y與輸出F間之對應關係如下列關係式
範例 • 下圖之邏輯電路,當 (1) C=0,(2) C=1 時 輸出Y 的值為何? (1)C=0時 (2)C=1時
範例 • 下圖的輸出值 F 為何? 解:
範例 • 有一邏輯電路圖如下: 若A=100101112、 B=110100012,則C=?
範例 • 兩個8 bits的暫存器X及Y,內容分別為X=5D16,Y=AB16。若將X、Y暫存器之內容經過OR之邏輯處理後將其結果存入另一暫存器Z中,則Z的內容應為何?(結果請以16進位表示) • 解:FF16
範例 • 請將NOT 、AND、OR、NAND、NOR、XOR及XNOR共七個邏輯運算子轉換成對等的「if –then-else」結構
NOT對等的「if –then-else」結構 • NOT運算子輸入與輸出間對應的真值表定義如下 由上表可知當NOT運算子的輸入值為0時(即false),對應的輸出值為1;當輸入x的值為1時(即true),輸出值為false。 因此,NOT運算子對等的「if –then-else」結構如下: if (x) then false else true ;
AND對等的「if –then-else」結構 • AND運算子輸入與輸出間對應的真值表定義如下 將上述的真值表整理為「以變數x為輸入,F為輸出」之結果如下表
AND對等的「if –then-else」結構 (cont.) • 由上表可知,當輸入x的值為1時,輸出值與y值同,當輸入x的值為0時,輸出值為false • AND運算子對等的「if –then-else」結構如下: if (x) then y else false ;
OR對等的「if –then-else」結構 • OR運算子輸入與輸出間對應的真值表定義如下 將上述的真值表整理為「以變數x為輸入,F為輸出」之結果如下表
OR對等的「if –then-else」結構 (cont.) • 由上表可知,當輸入x的值為1時,輸出值為true,當輸入x的值為0時,輸出值與y值同。 • OR運算子對等的「if –then-else」結構如下: if (x) then true else y ;
NAND對等的「if –then-else」結構 • NAND運算子輸入與輸出間對應的真值表定義如下 將上述的真值表整理為「以變數x為輸入,F為輸出」之結果如下表
NAND對等的「if –then-else」結構(cont.) • 由上表可知,當輸入x的值為1時,輸出值與(not y)相同,當輸入x的值為0時,輸出值為true。 • NAND運算子對等的「if –then-else」結構如下 if (x) then (not y) else true ;
NOR對等的「if –then-else」結構 • NOR運算子輸入與輸出間對應的真值表定義如下 將上述的真值表整理為「以變數x為輸入,F為輸出」之結果如下表
NOR對等的「if –then-else」結構(cont.) • 由上表可知,當輸入x的值為1時,輸出值為false,當輸入x的值為0時,輸出值與(not y)值同。 • NOR運算子對等的「if –then-else」結構如下 if (x) then false else (not y) ;
XOR對等的「if –then-else」結構 • XOR運算子輸入與輸出間對應的真值表定義如下 將上述的真值表整理為「以變數x為輸入,F為輸出」之結果如下表
XOR對等的「if –then-else」結構(cont.) • 由上表可知,當輸入x的值為1時,輸出值與(not y)值同,當輸入x的值為0時,輸出值與y值同 • XOR運算子對等的「if –then-else」結構如下 if (x) then (not y) else y ;
XNOR對等的「if –then-else」結構 • XNOR運算子輸入與輸出間對應的真值表定義如下 將上述的真值表整理為「以變數x為輸入,F為輸出」之結果如下表
XNOR對等的「if –then-else」結構(cont.) • 由上表可知,當輸入x的值為1時,輸出值與y值同,當輸入x的值為0時,輸出值與(not y)值同。 • XNOR運算子對等的「if –then-else」結構如下 if (x) then y else (not y) ;
布林運算的重要定理 • 本節的主要目的是介紹與布林運算有關的重要定理 • 布林運算的相關定理通常會被使用在布林運算式的化簡用途上 • 本節將依單一律、結合律、分配律、交換律、吸收律及笛摩根定律之順序一一介紹
單一律 (Law of Tautology) • 單一律是指在布林運算式中僅有單獨一個變數的可能值未確定之前提下,布林運算式的結果值與該變數的關係 • 下表為單一律的可能情形
結合律(Associative Law) • 結合律是指改變計算的順序,針對「+」及「‧」可滿足結合律之特性
「‧」的結合律 • X‧(Y‧Z)=(X‧Y)‧Z 證明
分配律(Distributive Law) • 分配律有二類分別是「加對乘的分配律」及「乘對加的分配律」,分別介紹如下: • (1)加對乘的分配律: • X+(Y‧Z)=(X+Y)‧(X+Z) • (2)乘對加的分配律: • X‧(Y+Z)=(X‧Y)+(X‧Z)
交換律(Commutative Law) • 交換律是指改變運算元的順序但運算的結果值不會改變。 • 「+」及「‧」二個運算子都滿足交換律,分別介紹如下: • (1) X+Y=Y+X • (2) X‧Y=Y‧X
吸收律(Absorption Law) (1) X+X‧Y=X 證明: X+X‧Y = X‧(1+Y) (根據「乘法對加法的分配律」,左方的等式會成立) = X‧1 = X (2) X‧(X+Y)=X 證明: X‧(X+Y) =X‧X+X‧Y (利用「乘法對加法的分配律」推導) =X+X‧Y (利用「單一律」推導) =X (利用前題的結果)