計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X...

45
計計計計計 計計計計計 6 6 計計計計計計 計計計計計計
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    258
  • download

    5

Transcript of 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X...

Page 1: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

計算機概論計算機概論第第 66 章 數位邏輯設計章 數位邏輯設計

Page 2: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-16-1  邏輯電路 邏輯電路 (Logic Circuit)(Logic Circuit)兩個二元變數兩個二元變數 XX 、、 YY 進行相加的結果,進行相加的結果, SUMSUM代表和,代表和, CARRYCARRY 代表進位代表進位

X 與 Y 相加

X Y SUM CARRY 0 0 1 1

0 1 0 1

0 1 1 0

0 0 0 1

Page 3: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

SUM = ((NOT X) AND Y) OR (X AND (NOT Y)) SUM = ((NOT X) AND Y) OR (X AND (NOT Y)) = (X’ * Y) + (X * Y’) = (X’ * Y) + (X * Y’)

CARRY = X AND YCARRY = X AND Y = X * Y = X * Y

Page 4: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.
Page 5: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-2 6-2 布林代數 布林代數 (Boolean Algebr(Boolean Algebra)a)

值為值為 00 或或 11 的二元變數 的二元變數 (binary variable)(binary variable) 值為值為 00 或或 11 的常數 的常數 (constant)(constant) ANDAND 、、 OROR 、、 NOTNOT 運算子 運算子 (operator)(operator) (( 、、 )) 、、 [[ 、、 ]] 、、 {{ 、、 } } 等括號等括號 = = 等號等號

Page 6: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

舉例來說,假設有個布林函數舉例來說,假設有個布林函數 F(X, Y, Z) = F(X, Y, Z) = XYZ’ + (X’Z’)(Y + Z)XYZ’ + (X’Z’)(Y + Z) ,且,且 X = 1X = 1 、、 Y = 1Y = 1 、、

Z = 0Z = 0 ,則運算過程如下:,則運算過程如下:

F(X, Y, Z) = XYZ’ + (X’Z’)(Y + Z) = X * Y * Z’ + (X’ * Z’) * (Y + Z) = 1 * 1 * 0’ + (1’ * 0’) * (1 + 0) = 1 * 1 * 1 + (0 * 1) * (1 + 0) = 1 + 0 * 1 = 1 + 0 = 1

Page 7: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

X Y Z F(X, Y, Z)00001111

00110011

01010101

00100010

欄數為二元變數的個數,加上一個存放結果的欄位,故有 n+1 欄。

每個二元變數有 0 、1 兩種值,所以 n 個二元變數會有 2n 種組合,故有 2n 列。

將 X 、 Y 、 Z 的值代入 F ( X 、 Y 、Z ),就可以算出這個欄位的值。

6-2-16-2-1  真值表 真值表 (Truth Table)(Truth Table)布林函數布林函數 F(X, Y, Z) = XYZ’ + (X’Z’)(Y + Z) F(X, Y, Z) = XYZ’ + (X’Z’)(Y + Z) 的真值表推算如下:的真值表推算如下:

Page 8: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-2-26-2-2  文氏圖 文氏圖 (Venn Diagram)(Venn Diagram)

Page 9: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

以文氏圖來表示以文氏圖來表示 F(X, Y, Z) = X’Z’ + XYF(X, Y, Z) = X’Z’ + XY

Page 10: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-2-36-2-3  布林代數恆等式 布林代數恆等式一、公設一、公設P1.P1. 00 與與 11 的存在的存在 (a)(a) X + 0 = XX + 0 = X

(b)(b) X * 1 = XX * 1 = XP2.P2. 交換律交換律 (a) (a) X + Y = Y + XX + Y = Y + X

(b) (b) X * Y = Y * XX * Y = Y * XP3.P3. 結合律結合律 (a) (a) X + (Y + Z) = X + (Y + Z) = (X + Y) + Z(X + Y) + Z

(b) (b) X * (Y * Z) = X * (Y * Z) = (X * Y) * Z(X * Y) * Z

Page 11: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

P4.P4. 分配律分配律 (a) X + (Y * Z) = (a) X + (Y * Z) = (X + Y) * (X + Z)(X + Y) * (X + Z)

(b) X * (Y + Z) = (b) X * (Y + Z) = (X * Y) + (X * Z)(X * Y) + (X * Z)

P5.P5. 互補互補 (a) X + X’ = 1(a) X + X’ = 1 (b) X * X’ = 0(b) X * X’ = 0

二、定理二、定理T1. 冪次 (a) X + X = X (b) X * X = X

Page 12: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

T2. 0T2. 0 與與 11 的特性的特性 (a) X + 1 = 1(a) X + 1 = 1 (b) X * 0 = 0(b) X * 0 = 0

T3. Absorption (a) X + XY = X (b) X * (X + Y) = X (c) X + X’Y = X + Y (d) X * (X ‘ + Y) = X * Y

T4. 狄摩根 (a) (X + Y)’ = X’ * Y’ (b) (X * Y)’ = X’ + Y’

Page 13: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

T5. 反身律 (X’)’ = X

T6. Consensus

(a) XY + X’Z + YZ = XY + X’Z(b) (X + Y) * (X’ + Z) * (Y + Z) = (X + Y) * (X’ + Z)

Page 14: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-36-3  邏輯閘 邏輯閘 (Logic Gate)(Logic Gate)6-3-16-3-1    ANDAND 閘閘

Page 15: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-3-26-3-2    OROR 閘閘

Page 16: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-3-36-3-3    NOTNOT 閘閘

Page 17: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-3-46-3-4    XORXOR 閘閘

Page 18: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-3-56-3-5    NANDNAND 閘閘

Page 19: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

使用使用 NANDNAND 閘來模擬閘來模擬 ANDAND 閘閘

使用 NAND 閘來模擬 OR 閘

Page 20: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

使用 NAND 閘來模擬 NOT 閘

Page 21: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-3-66-3-6    NORNOR 閘閘

使用 NOR 閘來模擬 AND 閘

Page 22: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

使用使用 NORNOR 閘來模擬閘來模擬 OROR 閘閘

使用 NOR 閘來模擬 NOT 閘

Page 23: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-3-76-3-7    XNORXNOR 閘閘

Page 24: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-4 6-4 邏輯簡化邏輯簡化 (Logic Minimization)(Logic Minimization)

6-4-16-4-1  標準形式 標準形式 (Standard Form)(Standard Form) 積項積項 (product terms)(product terms) 和項和項 (sum terms) (sum terms) 最小項最小項 (miniterms)(miniterms) 最大項最大項 (maxiterms) (maxiterms)

最小項之和最小項之和 (sum of miniterms)(sum of miniterms)

Page 25: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

最大項之積最大項之積 (product of maxterms)(product of maxterms)

X Y 最小項 符號

0011

0101

X’Y’X’YXY’XY

m0

m1

m2

m3

1

Page 26: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

X Y Z 最小項 符號00001111

00110011

01010101

X’Y’Z’X’Y’ZX’YZ’X’YZXY’Z’XY’ZXYZ’XYZ

m0

m1

m2

m3

m4

m5

m6

m7

Page 27: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

X Y 最大項 符號

0011

0101

X+YX+Y’X’+YX’+Y’

m0

m1

m2

m3

0

Page 28: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

MMii’ = m’ = mii 且 且 mmii’ = M’ = Mii

X Y Z 最大項 符號00001111

00110011

01010101

X+Y+ZX+Y+Z’X+Y’+ZX+Y’+Z’X’+Y+ZX’+Y+Z’X’+Y’+ZX’+Y’+Z’

m0

m1

m2

m3

m4

m5

m6

m7

Page 29: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

將布林函數將布林函數 F(X, Y, Z) = X’Y + XZF(X, Y, Z) = X’Y + XZ 表示成最小項之和表示成最小項之和(1(1 )首先,將)首先,將 F(X, Y, Z) = X’Y + XZF(X, Y, Z) = X’Y + XZ 的真值表寫出來的真值表寫出來

X Y Z F(X , Y , Z ) 最 小 項 符 號00001111

00110011

01010101

00110101

X ’Y ’Z ’X ’Y ’ZX ’Y Z ’X ’Y ZX Y ’Z ’X Y ’ZX Y Z ’X Y Z

m 0

m 1

m 2

m 3

m 4

m 5

m 6

m 7

(( 22 )以)以 OROR 運算子連接所有布林值等於運算子連接所有布林值等於 11 的最小項的最小項

F (X, Y, Z) = m2 + m3 + m5 + m7

= Σ m (2, 3, 5, 7)

Page 30: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

將布林函數 F(X, Y, Z) = X’Y + XZ 表示成最大項之積( 1 )首先,將 F(X, Y, Z) = X’Y + XZ 的真值表寫出來

X Y Z F(X , Y , Z ) 最 大 項 符 號00001111

00110011

01010101

00110101

X + Y + ZX + Y + Z ’X + Y ’ + ZX + Y ’ + Z ’X ’ + Y + ZX ’ + Y + Z ’X ’ + Y ’ + ZX ’ + Y ’ + Z ’

M 0

M 1

M 2

M 3

M 4

M 5

M 6

M 7

(( 22 )以 )以 AND AND 運算子連接所有布林值等於 運算子連接所有布林值等於 0 0 的最大項的最大項

F (X, Y, Z) = M0 + M1 + M4 + M6

= ΠM (0, 1, 4, 6)

Page 31: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-4-2  卡諾圖 (Karnaugh Map)

兩個二元變數的卡諾圖

以卡諾圖將 F(X, Y) = XY + XY’ 簡化為積項之和( 1 ) F(X, Y) = XY + XY’ = m3 + m2 = Σ m (2, 3)

0 1

0 m 0 m 1

1 m 2 m 3

X Y

Page 32: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

(( 22 ))

(( 33 ))

0 1

0 0 0

1 1 1

X Y

0 1

0 0 0

1 1 1

X Y

1 1

( 4 )找出矩形涵蓋的積項並求取其和, XY’ + XY = (X)(Y’ + Y) = X

Page 33: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

三個二元變數的卡諾圖

以卡諾圖將 F(X, Y, Z) = X’YZ + X’YZ’ + XYZ +

XY’Z 簡化為積項之和( 1 ) F (X, Y, Z) = Σm (2, 3, 5, 7)

00 01 11 10

0 m 0 m 1 m 3 m 2

1 m 4 m 5 m 7 m 6

YZX

m0 m1 m3 m2

m4 m5 m7 m6

Page 34: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

(( 22 ))

(( 33 ))

00 01 11 10

0 m 0 m 1 m 3 m 2

1 m 4 m 5 m 7 m 6

YZX

0 0 1 1

0 1 1 0

00 01 11 10

0 0 0 1 1

1 0 1 1 0

YZX

Page 35: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

(( 44 )) X’YZ + X’YZ’ = (X’Y)(Z + Z’) = X’YX’YZ + X’YZ’ = (X’Y)(Z + Z’) = X’Y ,, XXY’Z Y’Z

+ XYZ = XZ(Y’ + Y) = XZ+ XYZ = XZ(Y’ + Y) = XZ ,兩者相加於是,兩者相加於是 得到得到 X’Y + XZX’Y + XZ 四個二元變數的卡諾圖四個二元變數的卡諾圖

00 01 11 10

00 m 0 m 1 m 3 m 2

01 m 4 m 5 m 7 m 6

11 m 1 2 m 1 3 m 1 5 m 1 4

10 m 8 m 9 m 1 1 m 1 0

WXYZ

Page 36: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

以卡諾圖將以卡諾圖將 F(W, X, Y, Z) = F(W, X, Y, Z) = ΣΣm (0, 2, 4, 6, 8, m (0, 2, 4, 6, 8, 10, 13, 15) 10, 13, 15) 簡化為積項之和簡化為積項之和(( 11 ))

00 01 11 10

00 1 0 0 1

01 1 0 0 1

11 0 1 1 0

10 1 0 0 1

WXYZ

Page 37: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

(( 22 ))

(( 33 ))找出矩形涵蓋的積項並求取其和,本找出矩形涵蓋的積項並求取其和,本 例有三個矩形,例有三個矩形, W’Z’ + WXZ + W’Z’ + WXZ +

X’Z’X’Z’

00 01 11 10

00 1 0 0 1

01 1 0 0 1

11 0 1 1 0

10 1 0 0 1

WXYZ

Page 38: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

以卡諾圖將布林函數簡化為和項之積以卡諾圖將布林函數簡化為和項之積F(X, Y, Z) = X’YZ + X’YZ’ + XYZ + XY’ZF(X, Y, Z) = X’YZ + X’YZ’ + XYZ + XY’Z以卡以卡

諾圖將布林函數簡化為和項之積諾圖將布林函數簡化為和項之積(( 11 )) F(X, Y, Z) = F(X, Y, Z) = ΣΣm(2, 3, 5, 7)m(2, 3, 5, 7)

(( 22 )) 00 01 11 10

0 0 0 1 1

1 0 1 1 0

YZX

Page 39: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

(( 33 ))

(( 44 )找出矩形涵蓋的積項並求取其和得到)找出矩形涵蓋的積項並求取其和得到 X’X’Y’ + Y’ +

XZ‘XZ‘(( 55 )) F(X, Y, Z) = (X’Y’ + XZ’)’ = (X + Y)F(X, Y, Z) = (X’Y’ + XZ’)’ = (X + Y)

(X’ + Z)(X’ + Z)

00 01 11 10

0 0 0 1 1

1 0 1 1 0

YZX

Page 40: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

無所謂情況無所謂情況 (Don’t Care Condition)(Don’t Care Condition)

00 01 11 10

00 1 1 0 0

01 d 1 d 0

11 0 0 d 1

10 0 0 d 1

WXYZ

Page 41: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

找出矩形涵蓋的積項並求取其和,得到找出矩形涵蓋的積項並求取其和,得到W’Y’ + WYW’Y’ + WY

00 01 11 10

00 1 1 0 0

01 d 1 d 0

11 0 0 d 1

10 0 0 d 1

WXYZ

Page 42: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

6-46-4 組合電路組合電路 (Combinational (Combinational Circuit)Circuit)

Page 43: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.
Page 44: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.
Page 45: 計算機概論 第 6 章 數位邏輯設計. 6-1 邏輯電路 (Logic Circuit) 兩個二元變數 X 、 Y 進行相加的結果, SUM 代表和, CARRY 代表進位.

半加法器半加法器

X 與 Y 相加X Y SUM CARRY0011

0101

0110

0001