最新計算機概論 第4章 數位邏輯設計
4-1 邏輯電路 邏輯電路是由可以完成某些功能的邏輯閘所組成,至於邏輯電路的分析與設計則是透過布林代數。 4-1 邏輯電路 邏輯電路是由可以完成某些功能的邏輯閘所組成,至於邏輯電路的分析與設計則是透過布林代數。 例如下表是兩個二元變數X、Y進行相加的結果,SUM代表和,CARRY代表進位。
AND運算子 OR運算子 NOT運算子
SUM = ((NOT X) AND Y) OR (X AND (NOT Y)) = (X’ * Y) + (X * Y’) CARRY = X AND Y = X * Y
4-2 布林代數 值為0或1的二元變數 (binary variable) 值為0或1的常數 (constant) 4-2 布林代數 值為0或1的二元變數 (binary variable) 值為0或1的常數 (constant) AND、OR、NOT運算子 (operator) (、)、[、]、{、} 等括號 = 等號
XYZ’ + (X’Z’)(Y + Z),且X = 1、Y = 1、Z = 0,則運算過程如下: 舉例來說,假設布林函數F(X, Y, Z) = XYZ’ + (X’Z’)(Y + Z),且X = 1、Y = 1、Z = 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
4-2-1 真值表 F(X, Y, Z) = XYZ’ + (X’Z’)(Y + Z) 的真值表如下:
4-2-2 文氏圖
以文氏圖表示F(X, Y, Z) = X’Z’ + XY
4-2-3 布林代數恆等式
4-3 邏輯閘 4-3-1 AND閘
4-3-2 OR閘
4-3-3 NOT閘
4-3-4 XOR閘
4-3-5 NAND閘
使用NAND閘來模擬AND閘 使用NAND閘來模擬OR閘 使用NAND閘來模擬NOT閘
NAND閘亦可以表示成如下的邏輯符號
4-3-6 NOR閘
使用NOR閘來模擬AND閘 使用NOR閘來模擬OR閘 使用NOR閘來模擬NOT閘
NOR閘亦可以表示成如下的邏輯符號
4-3-7 XNOR閘
4-3-8 多重輸入邏輯閘
4-4 邏輯簡化 4-4-1 標準形式 積項 (product terms) 和項 (sum terms) 最小項 (miniterms) 4-4 邏輯簡化 4-4-1 標準形式 積項 (product terms) 和項 (sum terms) 最小項 (miniterms) 最大項 (maxiterms) 積項之和 (SOP) 和項之積 (POS) 最小項之和 (sum of miniterms) 最大項之積 (product of maxterms)
包含2個及3個二元變數之布林函數的最小項定義:
包含2個及3個二元變數之布林函數的最大項定義:
4-4-2 卡諾圖 包含2個二元變數的卡諾圖
將F(X, Y) = XY + XY’ 簡化為積項之和: F(X, Y) = m3 + m2 = Σm(2, 3)。 XY’ + XY = (X)(Y’ + Y) = X。
包含3個二元變數的卡諾圖
X’YZ + X’YZ’+ XY’Z + XYZ = (X’Y)(Z + Z’) + XZ(Y’ + Y) = X’Y + XZ。 將F(X, Y, Z) = X’YZ + X’YZ’ + XYZ + XY’Z簡化為積項之和: F(X, Y, Z) = m2 + m3 + m5 + m7 = Σm(2, 3, 5, 7)。 X’YZ + X’YZ’+ XY’Z + XYZ = (X’Y)(Z + Z’) + XZ(Y’ + Y) = X’Y + XZ。
包含4個二元變數的卡諾圖
將F(W, X, Y, Z) = Σm(0, 2, 4, 6, 8, 10, 13, 15) 簡化為積項之和: W’Z’ + WXZ + X’Z’。
以卡諾圖將F(X, Y, Z) = X’YZ + X’YZ’ + XYZ + XY’Z簡化為和項之積: F(X, Y, Z) = Σm(2, 3, 5, 7)。 X’Y’ + XZ‘。 由於這個布林函數的補數為X’Y’ + XZ’,故F(X, Y, Z) = (X’Y’ + XZ’)’ = (X + Y)(X’ + Z)。
將F(W, X, Y, Z) = Σm(0, 1, 5, 10, 14) + d(4, 7, 11, 15) 簡化為積項之和: W’Y’ + WY。
4-5 組合電路
4-5-1 分析組合電路 將各個邏輯閘的輸出一一表示成變數。 4-5-1 分析組合電路 將各個邏輯閘的輸出一一表示成變數。 由前往後推算各個變數的布林函數,直到求出最後一個變數的布林函數,即為整個邏輯電路的布林函數。
根據前一個範例的組合電路,推算真值表: 將各個邏輯閘的輸出一一表示成變數F1、F2、F3、F。
4-5-2 設計組合電路 根據題意決定輸入、輸出變數的個數。 推算出真值表。 以卡諾圖從真值表求出簡化的布林函數。 4-5-2 設計組合電路 根據題意決定輸入、輸出變數的個數。 推算出真值表。 以卡諾圖從真值表求出簡化的布林函數。 將布林函數繪製成邏輯電路。 邏輯電路又分成AND-OR、NAND-NAND、OR-AND、NOR-NOR等四種較受歡迎的形式 。
將F(X, Y, Z) = X’YZ + X’YZ’ + XYZ + XY’Z繪製成AND-OR電路: F(X, Y, Z) = X’Y + XZ。
將F(X, Y, Z) = X’YZ + X’YZ’ + XYZ + XY’Z繪製成OR-AND電路: F’(X, Y, Z) = X’Y’ + XZ’,故F(X, Y, Z) = (X’Y’ + XZ’)’ = (X’Y’)’(XZ’)’ = (X + Y)(X’ + Z)。
將F(X, Y, Z) = X’YZ + X’YZ’ + XYZ + XY’Z繪製成NAND-NAND電路:
將F(X, Y, Z) = X’YZ + X’YZ’ + XYZ + XY’Z繪製成NOR-NOR電路:
4-6 常見的組合電路 4-6-1 半加法器
SUM = X’Y + XY’,CARRY = XY,其邏輯電路如下: 或SUM = X’Y + XY’ = X⊕Y,CARRY = XY,其邏輯電路如下:
4-6-2 全加法器
SUM = Cin’X’Y + Cin’XY’ + CinX’Y’ + CinXY,CARRY-OUT = Cin’XY + CinX’Y + CinXY’ + CinXY = XY + CinY + CinX,其邏輯電路如下:
或SUM = Cin’X’Y + Cin’XY’ + CinX’Y’ + CinXY = (Cin⊕X)Y’ + (Cin⊕X)’Y = Cin⊕X⊕Y,CARRY-OUT = Cin’XY + CinX’Y + CinXY’ + CinXY = (Cin⊕X)Y + CinX,其邏輯電路如下:
4-6-4 乘法器 2 x 2乘法器
4 x 3乘法器
4-6-5 解碼器
4-6-6 編碼器
4-6-7 多工器