第六章 數位邏輯

117
第第第 數數數數 第第第第第 第第第 / 第第第 第第第第第

Upload: buck

Post on 05-Jan-2016

62 views

Category:

Documents


0 download

DESCRIPTION

計算機概論. 第六章 數位邏輯. 陳維魁 / 陳邦治 旗標出版社. 本章重點. 電腦的硬體是由邏輯電路所組成 數位邏輯 (digital logic) 是分析及設計邏輯電路時所必須瞭解的知識 若要瞭解電腦的邏輯電路的原理及設計方式便必須學習數位邏輯. 大綱. 邏輯運算子及邏輯閘 布林運算的重要定理 通用閘 布林運算式的正規表示法 布林運算式的化簡 組合邏輯 循序邏輯. 3. 3. 邏輯運算子及邏輯閘. 因為邏輯運算處理的值是邏輯值,邏輯值也可稱為布林值 ( 即 true 與 false) ,所以邏輯運算又稱為布林運算 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第六章 數位邏輯

第六章數位邏輯

計算機概論

陳維魁 / 陳邦治旗標出版社

Page 2: 第六章 數位邏輯

2

本章重點

電腦的硬體是由邏輯電路所組成 數位邏輯 (digital logic) 是分析及設計邏輯電路時所必須瞭解的知識

若要瞭解電腦的邏輯電路的原理及設計方式便必須學習數位邏輯

Page 3: 第六章 數位邏輯

3

大綱 邏輯運算子及邏輯閘 布林運算的重要定理 通用閘 布林運算式的正規表示法 布林運算式的化簡 組合邏輯 循序邏輯

33

Page 4: 第六章 數位邏輯

4

邏輯運算子及邏輯閘

因為邏輯運算處理的值是邏輯值,邏輯值也可稱為布林值 ( 即 true 與 false) ,所以邏輯運算又稱為布林運算

常用的邏輯運算子有AND 、 OR 、 NOT 、 NAND 、 NOR 、 XOR 及 XNOR等

– 「 NOT 」是比較特別的邏輯運算子,它只有一個輸入、一個輸出

– 其他的邏輯運算子則是有二個輸入、一個輸出 為了簡化表達的方式,通常會用「 1 」來代替布林值

「 true 」,用「 0 」來代替布林值「 false 」

Page 5: 第六章 數位邏輯

5

AND 運算子

AND 運算子輸入與對應輸出的關係是「當二個輸入值皆為 true 時,輸出值為 true ;否則輸出值為 false 」

AND 運算子輸入與對應輸出的關係利用真值表 (truth table) 定義如下

Page 6: 第六章 數位邏輯

6

AND 運算子 (cont.)

當 AND 運算子的二個輸入 x 與 y 之值皆為 1時,對應的輸出值為 1 ,其他輸入狀況對應的輸出值皆為 0

通常將「 x AND y 」的敘述簡化寫成「 x y‧ 」 AND 閘 (gate) 如下圖

Page 7: 第六章 數位邏輯

7

OR 運算子

OR 運算子輸入與對應輸出的關係是「當二個輸入值皆為 false 時,輸出值為 false ;否則輸出值為 true 」

OR 運算子輸入與對應輸出的關係利用真值表定義如下

Page 8: 第六章 數位邏輯

8

OR 運算子 (cont.)

由上表可知當 OR 運算子的二個輸入 x 與 y 之值皆為 0 時,對應的輸出值為 0 ,其他輸入狀況對應的輸出值皆為 1

通常將「 x OR y 」的敘述簡化寫成「 x + y 」 OR 閘如下圖

Page 9: 第六章 數位邏輯

9

NOT 運算子

NOT 運算子輸入與對應輸出的關係是「輸出值為輸入值的『 1 的補數』」

NOT 運算子輸入與對應輸出的關係利用真值表定義如下

Page 10: 第六章 數位邏輯

10

NOT 運算子 (cont.)

由上表可知當 NOT 運算子的輸入值為 0 時,對應的輸出值為 1 ;輸入值為 1 時,對應的輸出值為 0

通常將「 NOT x 」的敘述簡化寫成 NOT 閘如下圖

Page 11: 第六章 數位邏輯

11

範例

Page 12: 第六章 數位邏輯

12

解答

Page 13: 第六章 數位邏輯

13

NAND 運算子

NAND 運算子輸入與對應輸出的關係是「當二個輸入值皆為 true 時,輸出值為 false ;否則輸出值為 true 」

NAND 運算子輸入與對應輸出的關係利用真值表定義如下

Page 14: 第六章 數位邏輯

14

NAND 運算子 (cont.)

由上表可知當 NAND 運算子的二個輸入 x 與 y之值皆為 1 時,對應的輸出值為 0 ,其他輸入狀況對應的輸出值皆為 1

NAND 閘如下圖

輸入 x , y 與輸出 F 間之對應關係如下列關係式

Page 15: 第六章 數位邏輯

15

範例

下列那一個運算式有誤 ? (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

Page 16: 第六章 數位邏輯

16

NOR 運算子

NOR 運算子輸入與對應輸出的關係是「當二個輸入值皆為 false 時,輸出值為 true ;否則輸出值為 false 」

NOR 運算子輸入與對應輸出的關係利用真值表定義如下

Page 17: 第六章 數位邏輯

17

NOR 運算子 (cont.)

由上表可知當 NOR 運算子的二個輸入 x 與 y之值皆為 0 時,對應的輸出值為 1 ,其他輸入狀況對應的輸出值皆為 0

NOR 閘如下圖

輸入 x , y 與輸出 F 間之對應關係如下列關係式如下

Page 18: 第六章 數位邏輯

18

範例

下列那一個運算式有誤 ? (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

Page 19: 第六章 數位邏輯

19

XOR 運算子

XOR 運算子輸入與對應輸出的關係是「當二個輸入值不同時,輸出值為 true ;否則輸出值為 false 」

XOR 運算子輸入與對應輸出的關係利用真值表定義如下

Page 20: 第六章 數位邏輯

20

XOR 運算子 (cont.)

由上表可知當 XOR 運算子的二個輸入 x 與 y之值為 (1, 0) 或 (0, 1) 時,對應的輸出值為 1,其他輸入狀況對應的輸出值皆為 0

XOR 閘如下圖

Fxy

輸入 x , y 與輸出 F 間之對應關係如下列關係式

Page 21: 第六章 數位邏輯

21

範例

(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

Page 22: 第六章 數位邏輯

22

XNOR 運算子

XNOR 運算子輸入與對應輸出的關係是「當二個輸入值相同時,輸出值為 true ;否則輸出值為 false 」

XNOR 運算子輸入與對應輸出的關係利用真值表定義如下

Page 23: 第六章 數位邏輯

23

XNOR 運算子 (cont.)

由上表可知當 XNOR 運算子的二個輸入 x 與 y之值為 (0, 0) 或 (1, 1) 時,對應的輸出值為 1,其他輸入狀況對應的輸出值皆為 0

XNOR 閘如下圖

輸入 x , y 與輸出 F 間之對應關係如下列關係式

Page 24: 第六章 數位邏輯

24

範例

下圖之邏輯電路,當 C=0 時 輸出 Y 的值為何?

Page 25: 第六章 數位邏輯

25

範例

下圖之邏輯電路,當 C=1 時 輸出 Y 的值為何?

Page 26: 第六章 數位邏輯

26

範例

下圖的輸出值 F 為何?

解:

Page 27: 第六章 數位邏輯

27

範例

有一邏輯電路圖如下: 若 A=100101112、 B=110100012,則 C= ?

Page 28: 第六章 數位邏輯

28

範例

兩個 8 bits 的暫存器 X 及 Y ,內容分別為 X = 5D16, Y = AB16 。若將 X 、 Y 暫存器之內容經過 OR 之邏輯處理後將其結果存入另一暫存器 Z 中,則 Z 的內容應為何? ( 結果請以 16 進位表示 )

解: FF16

Page 29: 第六章 數位邏輯

29

範例

請將 NOT 、 AND 、 OR 、 NAND 、 NOR、 XOR 及 XNOR 共七個邏輯運算子轉換成對等的「 if –then-else 」結構

Page 30: 第六章 數位邏輯

30

NOT 對等的「 if –then-else 」結構

NOT 運算子輸入與輸出間對應的真值表定義如下

由上表可知當 NOT 運算子的輸入值為 0 時 ( 即 false) ,對應的輸出值為 1 ;當輸入 x 的值為 1 時 ( 即 true) ,輸出值為 false 。因此, NOT 運算子對等的「 if –then-else 」結構如下:

if (x) then false else true ;

Page 31: 第六章 數位邏輯

31

AND 對等的「 if –then-else 」結構

AND 運算子輸入與輸出間對應的真值表定義如下

將上述的真值表整理為「以變數 x 為輸入, F 為輸出」之結果如下表

Page 32: 第六章 數位邏輯

32

AND 對等的「 if –then-else 」結構 (cont.)

由上表可知,當輸入 x 的值為 1 時,輸出值與y 值同,當輸入 x 的值為 0 時,輸出值為 false

AND 運算子對等的「 if –then-else 」結構如下:

if (x) then y else false ;

Page 33: 第六章 數位邏輯

33

OR 對等的「 if –then-else 」結構

OR 運算子輸入與輸出間對應的真值表定義如下

將上述的真值表整理為「以變數 x 為輸入, F 為輸出」之結果如下表

Page 34: 第六章 數位邏輯

34

OR 對等的「 if –then-else 」結構 (cont.)

由上表可知,當輸入 x 的值為 1 時,輸出值為true ,當輸入 x 的值為 0 時,輸出值與 y 值同。

OR 運算子對等的「 if –then-else 」結構如下: if (x) then true else y ;

Page 35: 第六章 數位邏輯

35

NAND 對等的「 if –then-else 」結構

NAND 運算子輸入與輸出間對應的真值表定義如下

將上述的真值表整理為「以變數 x 為輸入, F 為輸出」之結果如下表

Page 36: 第六章 數位邏輯

36

NAND 對等的「 if –then-else 」結構(cont.)

由上表可知,當輸入 x 的值為 1 時,輸出值與(not y) 相同,當輸入 x 的值為 0 時,輸出值為true 。

NAND 運算子對等的「 if –then-else 」結構如下

if (x) then (not y) else true ;

Page 37: 第六章 數位邏輯

37

NOR 對等的「 if –then-else 」結構

NOR 運算子輸入與輸出間對應的真值表定義如下

將上述的真值表整理為「以變數 x 為輸入, F 為輸出」之結果如下表

Page 38: 第六章 數位邏輯

38

NOR 對等的「 if –then-else 」結構 (cont.)

由上表可知,當輸入 x 的值為 1 時,輸出值為false ,當輸入 x 的值為 0 時,輸出值與 (not y)值同。

NOR 運算子對等的「 if –then-else 」結構如下 if (x) then false else (not y) ;

Page 39: 第六章 數位邏輯

39

XOR 對等的「 if –then-else 」結構

XOR 運算子輸入與輸出間對應的真值表定義如下

將上述的真值表整理為「以變數 x 為輸入, F 為輸出」之結果如下表

Page 40: 第六章 數位邏輯

40

XOR 對等的「 if –then-else 」結構 (cont.)

由上表可知,當輸入 x 的值為 1 時,輸出值與(not y) 值同,當輸入 x 的值為 0 時,輸出值與y 值同

XOR 運算子對等的「 if –then-else 」結構如下 if (x) then (not y) else y ;

Page 41: 第六章 數位邏輯

41

XNOR 對等的「 if –then-else 」結構

XNOR 運算子輸入與輸出間對應的真值表定義如下

將上述的真值表整理為「以變數 x 為輸入, F 為輸出」之結果如下表

Page 42: 第六章 數位邏輯

42

XNOR 對等的「 if –then-else 」結構(cont.)

由上表可知,當輸入 x 的值為 1 時,輸出值與y 值同,當輸入 x 的值為 0 時,輸出值與 (not y) 值同。

XNOR 運算子對等的「 if –then-else 」結構如下

if (x) then y else (not y) ;

Page 43: 第六章 數位邏輯

43

布林運算的重要定理

本節的主要目的是介紹與布林運算有關的重要定理

布林運算的相關定理通常會被使用在布林運算式的化簡用途上

Page 44: 第六章 數位邏輯

44

單一律 (Law of Tautology)

單一律是指在布林運算式中僅有單獨一個變數的可能值未確定之前提下,布林運算式的結果值與該變數的關係

下表為單一律的可能情形

Page 45: 第六章 數位邏輯

45

結合律 (Associative Law)

結合律是指改變計算的順序,針對「 + 」及「‧」可滿足結合律之特性

Page 46: 第六章 數位邏輯

46

「 + 」的結合律

Page 47: 第六章 數位邏輯

47

「‧」的結合律

X (Y Z)=(X Y) Z‧ ‧ ‧ ‧證明

Page 48: 第六章 數位邏輯

48

分配律 (Distributive Law)

分配律有二類– 加對乘的分配律:

X+(Y Z)=(X+Y) (X+Z) ‧ ‧

– 乘對加的分配律: X (Y+Z)=(X Y)+(X Z) ‧ ‧ ‧

Page 49: 第六章 數位邏輯

49

範例

Page 50: 第六章 數位邏輯

50

範例

Page 51: 第六章 數位邏輯

51

交換律 (Commutative Law)

交換律是指改變運算元的順序但運算的結果值不會改變。

「+」及「‧」二個運算子都滿足交換律,分別介紹如下:– (1) X+Y=Y+X – (2) X Y=Y X‧ ‧

Page 52: 第六章 數位邏輯

52

吸收律 (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 ( 利用前題的結果 )

Page 53: 第六章 數位邏輯

53

笛摩根定律 (DeMorgan’s Law)

笛摩根定律常用在布林運算式的化簡上,主要分為二類–

笛摩根定律可擴充至任意個運算元,假設運算元的個數為 n 個,則擴充後的笛摩根定律如下

Page 54: 第六章 數位邏輯

54

範例

有一邏輯電路如下圖所示,此電路中輸出 Z 與輸入X , Y 的關係式應為: (A) Z = X . Y (B) Z = X+ Y (C) Z = X' + Y' (D) Z = (X' . Y')'

Page 55: 第六章 數位邏輯

55

範例

下列邏輯電路圖經化簡後結果為何? (A) A+B+C+D (B)A+B'+C+D (C) A+B+C'+D (D) A+B+C+D'

解: D

Page 56: 第六章 數位邏輯

56

通用閘

「通用閘」 (universal gate) 是指可被利用來表示所有邏輯電路的邏輯閘

「通用閘」有二種分別是 NAND gate 與 NOR gate

所有的邏輯電路均可利用 AND gate , OR gate與 NOT gate 三種邏輯閘組成– 「通用閘」可取代 AND gate , OR gate 與 NOT

gate 三種邏輯閘的功能

Page 57: 第六章 數位邏輯

57

NAND gate 為「通用閘」的理由 (1/3)

利用 NAND gate 取代 NOT gate 的功能

最少使用 1 個 NAND gate 便可取代 NOT gate 的功能

Page 58: 第六章 數位邏輯

58

NAND gate 為「通用閘」的理由 (2/3)

利用 NAND gate 取代 AND gate 的功能

最少使用 2 個 NAND gate 便可取代 AND gate 的功能

Page 59: 第六章 數位邏輯

59

NAND gate 為「通用閘」的理由 (3/3)

利用 NAND gate 取代 OR gate 的功能

最少使用 3 個 NAND gate 便可取代 OR gate 的功能

Page 60: 第六章 數位邏輯

60

NOR gate 為「通用閘」的理由 (1/3)

利用 NOR gate 取代 NOT gate 的功能

最少使用 1 個 NOR gate 便可取代 NOT gate 的功能

Page 61: 第六章 數位邏輯

61

NOR gate 為「通用閘」的理由 (2/3)

利用 NOR gate 取代 OR gate 的功能

最少使用 2 個 NOR gate 便可取代 OR gate 的功能

Page 62: 第六章 數位邏輯

62

NOR gate 為「通用閘」的理由 (3/3)

利用 NOR gate 取代 AND gate 的功能

最少使用 3 個 NOR gate 便可取代 AND gate 的功能

Page 63: 第六章 數位邏輯

63

範例

下列敘述何者有誤?– (A) 利用 NOT 和 OR 邏輯閘可組成任意邏輯電路– (B) 利用 NOT 和 AND 邏輯閘可組成任意邏輯電路

– (C) 利用 AND 和 OR 邏輯閘可組成任意邏輯電路

– (D) 利用 NOR 邏輯閘可組成任意邏輯電路。 解: C

Page 64: 第六章 數位邏輯

64

布林運算式的正規表示法

布林運算式的正規表示法是在執行布林運算式化簡動作時會使用到的基本知識及工具

布林運算式的正規表示法可分為– 「最小項的和」 (sum of minterms)– 「最大項的積」 (product of maxterms)

Page 65: 第六章 數位邏輯

65

「最小項」 (minterm)

「最小項」:包含所有變數且「最小項」變數間的運算子皆為「 AND 」,也就是「‧」

例如在三個變數情況下 ( 假設變數為X 、 Y 及 Z) ,「最小項」的可能性有八種,詳列如右表

Page 66: 第六章 數位邏輯

66

「最小項」 (cont.)

由上表可知「最小項」的「替代符號」之下標恰與 (X, Y, Z) 二進位值轉換後的 10 進位值相等– 以 X Y Z‧ ‧ 為例,此時 (X, Y, Z)=(1, 1, 1) 時, (1, 1,

1) 的二進位值為 1112,將 1112轉換成 10 進位值結果為 710,所以 X Y Z‧ ‧ 會以 m7做為「替代符號」,其他情況可依此類推

「最小項」會包含所有變數的乘積項

Page 67: 第六章 數位邏輯

67

「最小項的和」 ( sum of minterms)

將最小項以「 OR 」運算子結合,也就是用「+」運算子結合,便是「最小項的和」

範例

Page 68: 第六章 數位邏輯

68

「最大項」 (maxterm)

「最大項」:包含所有變數且「最大項」變數間的運算子皆為「 OR 」,也就是「+」

在三個變數情況下 ( 假設變數為 X、 Y 及 Z) ,「最大項」的可能性有八種,詳列如右表:

Page 69: 第六章 數位邏輯

69

「最大項」 (cont.)

Page 70: 第六章 數位邏輯

70

「最大項的積」 (product of maxterms)

將最大項以「 AND 」運算子結合,也就是用「‧」運算子結合,便是「最大項的積」

範例

Page 71: 第六章 數位邏輯

71

布林運算式的化簡

對布林運算式執行化簡的目的為希望能減少硬體成本的支出

透過執行布林運算式化簡,通常可減少數位電路所需要的邏輯閘數量,如此一來便可降低硬體成本的支出

布林運算式的化簡法有二種– 「定理化簡法」– 「卡諾圖 (Kamaugh Map) 化簡法」

Page 72: 第六章 數位邏輯

72

定理化簡法

因為本法是直接利用基本的定理如單一律、交換律或結合律等定理來進行布林運算式的化簡,所以必須對基本的定理相當熟悉,但是某些特殊的問題利用本法困難度將較高 ( 如範例3)

Page 73: 第六章 數位邏輯

73

範例 1

請利用定理來化簡以下布林運算式

Page 74: 第六章 數位邏輯

74

範例 2

Page 75: 第六章 數位邏輯

75

範例 3

本範例若利用基本定理乘進行布林運算式的化簡工作,必須加入額外項『 X+ 』,對於一般人來說困難度較高,因為當題目不同時,必須加入的額外項不同且加入的位置也會不同

最好能有一種方法,可以很簡單的解決在本範例中所遭遇的問題

以下將介紹「卡諾圖化簡法」來解決以上的問題

Page 76: 第六章 數位邏輯

76

卡諾圖化簡法

卡諾圖化簡法的特性是作法固定與容易理解。卡諾圖化簡法的作法分為以下四個步驟

– (1) 若布林運算式有 n 個變數,則卡諾圖應有 2n 個方格。

– (2) 若布林運算式採「最小項的和」表示,則必須在卡諾圖中相對應的方格內填入 1 。若採「最大項的積」則填入 0

Page 77: 第六章 數位邏輯

77

卡諾圖化簡法 (cont.)

– (3)卡諾圖中相鄰的方格僅有一個位元不同。合併方式如下:

a. 相鄰的 2k個方格可被合併。 b.選擇相鄰方格數最多的方式來簡化。 c.每個被使用的方格皆至少被選用一次,但不限制被選用的次數

Page 78: 第六章 數位邏輯

78

卡諾圖型式 -- 二個變數

Page 79: 第六章 數位邏輯

79

相鄰方格合併

四個相鄰方格合併,只有一種情況

二個相鄰方格合併,共有四種情況

Page 80: 第六章 數位邏輯

80

卡諾圖型式 – 三個變數

由於卡諾圖規定相鄰的方格僅能有一個位元不同,所以第三欄必須調整為「 11 」,而第四欄則調整為「 10 」

Page 81: 第六章 數位邏輯

81

相鄰方格合併 (1/3)

二個相鄰方格合併,共有十二種情況

Page 82: 第六章 數位邏輯

82

相鄰方格合併 (2/3)

四個相鄰方格合併,共有六種情況

Page 83: 第六章 數位邏輯

83

相鄰方格合併 (3/3)

八個相鄰方格合併,只有一種情況

Page 84: 第六章 數位邏輯

84

範例1

Page 85: 第六章 數位邏輯

85

範例2

Page 86: 第六章 數位邏輯

86

範例3

Page 87: 第六章 數位邏輯

87

範例4

Page 88: 第六章 數位邏輯

88

範例5

Page 89: 第六章 數位邏輯

89

範例6

Page 90: 第六章 數位邏輯

90

組合邏輯 (combinational logic)

組合邏輯是一種邏輯電路,組合邏輯電路在某一時刻的輸出值僅與該時刻的輸入值有關,與該時刻之前的輸入值沒有任何關連

組合邏輯的電路結構是由邏輯閘所組成,不得包含以下三種設備– 記憶單元– 回授 (feedback) 線路– 時脈 (clock)

Page 91: 第六章 數位邏輯

91

常見的組合邏輯電路

本節將介紹幾個較常見的組合邏輯電路,內容包含了– 半加器– 全加器– 解碼器– 編碼器– 多工器

Page 92: 第六章 數位邏輯

92

半加器 (half adder)

半加器的功能是執行二個輸入位元 (x 與 y) 的相加動作,輸出值為輸入值相加後的和 (sum; S) 及進位 (carry ; C)

由於半加器只有二個輸入,因此無法處理前一個位元的進位,也就是說半加器處理的並不是完整的加法運算,因此稱之為半加器

半加器之輸出與輸入對應的方塊圖如下

Page 93: 第六章 數位邏輯

93

半加器 (cont.)

輸出與輸入對應的真值表

輸出結果值

輸出與輸入對應的邏輯電路圖

Page 94: 第六章 數位邏輯

94

全加器 (full adder)

全加器的功能是執行三個輸入位元 (x 、 y 與z) 的相加動作,因此除了二個相對應的位元直接相加外,另外,必須加上前一位元的進位部份一併執行加法動作

全加器的輸出值為輸入值相加後的和 (sum ;S) 及進位 (carry ; C)

全加器之輸出與輸入對應的方塊圖如下

Page 95: 第六章 數位邏輯

95

全加器 (cont.)

輸出與輸入對應的真值表

輸出結果值

輸出與輸入對應的邏輯電路圖

Page 96: 第六章 數位邏輯

96

解碼器 (decoder)

解碼器的功能是將 n 個輸入對應出 2n 個輸出 以 2 個輸入對應出 22 = 4 個輸出的解碼器來做為範例說明如下

Page 97: 第六章 數位邏輯

97

解碼器 (cont.)

輸出與輸入對應的邏輯電路圖

Page 98: 第六章 數位邏輯

98

編碼器 (encoder)

編碼器的功能是 2n個輸入會產生 n 個輸出 以 4 個輸入對應出 2 個輸出的編碼器來做為範例說明如下

Page 99: 第六章 數位邏輯

99

編碼器 (cont.)

輸出與輸入對應的邏輯電路圖

Page 100: 第六章 數位邏輯

100

多工器 (multiplexer)

多工器的功能是由多個輸入中選擇一個當作輸出。

以 2 個輸入對應出 1 個輸出的多工器來做為範例 – 利用 1條選擇線 (S) 來選擇 2 個輸入 (x 及 y) 中的 1 個做為輸出,輸出與輸入對應的真值表如下

上表中當 S=0 時代表選擇 x 做為輸出;當 S=1 時代表選擇 y 做為輸出

Page 101: 第六章 數位邏輯

101

多工器 (cont.)

2×1多工器對應的方塊圖

2×1多工器對應的邏輯電路圖

Page 102: 第六章 數位邏輯

102

4 個輸入對應 1 個輸出的多工器

利用 2條選擇線 (S0 及 S1) 來選擇 4 個輸入 (A、 B 、 C 及 D) 中的 1 個做為輸出,輸出與輸入對應的真值表如下

當 (S1,S0)=(0,0) 時,選擇 A 做為輸出當 (S1,S0)=(0,1) 時,選擇 B 做為輸出當 (S1,S0)=(1,0) 時,選擇 C 做為輸出當 (S1,S0)=(1,1) 時,選擇 D 做為輸出

Page 103: 第六章 數位邏輯

103

4 個輸入對應 1 個輸出的多工器

4×1多工器對應的方塊圖

4×1多工器對應的邏輯電路圖

由範例可知,若為 2n×1 的多工器則有 n 條選擇線。如 8×1 的多工器有 3條選擇線,若為 16×1 的多工器則有 4條選擇線,其他情況可依此類推

Page 104: 第六章 數位邏輯

104

循序邏輯

計算機內部執行輸入訊號與記憶體儲存的資料間之邏輯運算是利用組合邏輯電路來完成

但是組合邏輯電路並無法完成某些工作,例如控制 ALU 之動作

實際上 ALU 是由循序邏輯 (sequential logical)來控制,而 ALU 的運算工作則是利用組合邏輯來完成

Page 105: 第六章 數位邏輯

105

循序邏輯電路結構

組合邏輯的特性是給予一組輸入資料,隨即便可得到對應的輸出。但是若輸出值會與記憶單元目前的狀態和輸入有關時便必須採用循序邏輯

循序邏輯的電路結構必須包括記憶單元與回授線路 (feedback circuit)

Page 106: 第六章 數位邏輯

106

循序邏輯電路結構 (cont.)

在循序邏輯電路結構中之輸出會與以下二項資料有關– 1. 輸入。– 2.記憶單元內目前的狀態

上圖為循序邏輯電路結構範例。圖中包含一個組合電路與記憶單元,此二者構成一個回授線路,將輸出接回輸入便可構成「回授線路」

Page 107: 第六章 數位邏輯

107

R-S 正反器 (Reset-Set Flip Flop)

R-S 正反器為最常見的循序邏輯電路 可利用 NOR 閘或 NAND 閘來製作

Page 108: 第六章 數位邏輯

108

利用 NOR 閘設計的 R-S 正反器

內部邏輯電路圖 真值表

精簡真值表

Page 109: 第六章 數位邏輯

109

利用 NAND 閘設計的 R-S 正反器

內部邏輯電路圖 真值表

精簡真值表

Page 110: 第六章 數位邏輯

110

鐘控 R-S 正反器 (Clocked R-S Flip-Flop)

利用 NOR 閘設計的 R-S正反器加上兩個 AND 閘及 clock 所構成

邏輯電路圖

真值表

Page 111: 第六章 數位邏輯

111

鐘控 R-S 正反器 (cont.)

特性方程式

Page 112: 第六章 數位邏輯

112

鐘控 D 型正反器 (Clocked D Flip-Flop)

R-S 正反器的變形 邏輯電路圖

Page 113: 第六章 數位邏輯

113

鐘控 D 型正反器 (cont.)

真值表 特性方程式

Page 114: 第六章 數位邏輯

114

鐘控 J-K 正反器

解決鐘控 R-S 正反器的可能會有「不穩定」狀態的問題

邏輯電路圖

Page 115: 第六章 數位邏輯

115

鐘控 J-K 正反器 (cont.)

真值表

由上表知當 J = K = 1 時,鐘控 J-K 正反器的輸出 Q(t+1)=,不再是「不穩定」狀態,因此解決了鐘控 R-S 正反器的「不穩定」狀態問題

特性方程式

Page 116: 第六章 數位邏輯

116

鐘控 T 型正反器 (Clocked T Flip-Flop)

為鐘控 J-K 正反器的變形 邏輯電路圖

Page 117: 第六章 數位邏輯

117

鐘控 T 型正反器 (cont.)

真值表 特性方程式