三、請利用數個 NAND 邏輯閘畫出下列布林代數之邏輯電路接線,只能使用 NAND 邏輯閘,不能使用其他邏輯閘。(20 分)
617f81a06c388.jpg

詳解 (共 1 筆)

詳解 提供者:楊益維

這是一題關於 NAND 邏輯閘通用性(Universality) 的經典應用題。NAND 閘可以組合出任何基礎邏輯運算(NOT, AND, OR)。

要將一個「積之和(Sum of Products, SOP)」形式的布林代數式,全部改用 NAND 閘來實現,最簡單且標準的方法就是利用 狄摩根定律(De Morgan's laws) 進行兩次取反。

一、 布林表達式轉換

原式:

$$Y = \overline{B}\overline{C}\overline{D} + ABD + AC + BC\overline{D}$$

對整個表達式取兩次非(Double Negation),其邏輯值不變:

$$Y = \overline{\overline{\overline{B}\overline{C}\overline{C} + ABD + AC + BC\overline{D}}}$$

根據狄摩根定律 $\overline{W+X+Y+Z} = \overline{W} \cdot \overline{X} \cdot \overline{Y} \cdot \overline{Z}$,我們將最內層的「或(OR)」轉換為「與(AND)」:

$$Y = \overline{ (\overline{\overline{B}\overline{C}\overline{D}}) \cdot (\overline{ABD}) \cdot (\overline{AC}) \cdot (\overline{BC\overline{D}}) }$$

這個形式正好符合 NAND-NAND 結構

  1. 括號內的每一項(如 $\overline{ABD}$)都是一個 NAND 運算。

  2. 最外層的長橫線代表最後將所有結果再進行一次 NAND 運算。

二、 NAND 閘實作步驟

為了完成此電路,我們需要三層邏輯運算:

1. 產生反向訊號(NOT gates using NAND)

如果輸入沒有提供反向變數(如 $\overline{B}$),則需將 NAND 閘的兩個輸入端相連來充當 NOT 閘:

  • $\overline{B} = \text{NAND}(B, B)$

  • $\overline{C} = \text{NAND}(C, C)$

  • $\overline{D} = \text{NAND}(D, D)$

2. 第一層:計算積項(AND terms using NAND)

使用四個 NAND 閘分別計算:

  • $G_1 = \text{NAND}(\overline{B}, \overline{C}, \overline{D})$

  • $G_2 = \text{NAND}(A, B, D)$

  • $G_3 = \text{NAND}(A, C)$

  • $G_4 = \text{NAND}(B, C, \overline{D})$

3. 第二層:總結輸出(OR function using NAND)

將上述四個輸出作為最後一個 NAND 閘的輸入:

  • $Y = \text{NAND}(G_1, G_2, G_3, G_4)$

三、 邏輯電路接線圖描述

在繪製接線圖時,請依照下列配置:

  1. 輸入端: 繪製 A、B、C、D 四條垂直線。

  2. 反向處理: 若需要反向項,從 B、C、D 引出線條接至單輸入 NAND 閘(兩個輸入短路)。

  3. 第一級(NAND 陣列): 畫出四個多輸入的 NAND 閘。

    • 第一個接 $\overline{B}, \overline{C}, \overline{D}$

    • 第二個接 $A, B, D$

    • 第三個接 $A, C$

    • 第四個接 $B, C, \overline{D}$

  4. 第二級(輸出閘): 將這四個 NAND 閘的輸出,匯集接到最後一個四輸入的 NAND 閘,其輸出即為 $Y$

? 考試要點

這題的關鍵在於記住:「任何 SOP 形式的電路,都可以直接對應到兩層 NAND 電路」。第一層 NAND 閘負責處理「積項」,第二層 NAND 閘負責處理「和項」。這種轉換方式在數位電路設計中非常高效。加油,這題 20 分是邏輯考科中必拿的基礎分!