邏輯閘簡介
歡迎來到這一章!我們將要探索電腦的「大腦」。你有沒有想過,一台由金屬和矽組成的機器,究竟是如何「思考」或做出決定的呢?這一切都要從邏輯閘 (Logic Gates) 說起。它們是一些微小的電子元件,作用就像開關一樣,接收訊號(0 和 1),並根據一組規則決定輸出什麼。
學完這些筆記後,你將能夠繪製這些邏輯閘、使用真值表 (Truth Tables) 預測它們的輸出,並了解它們如何結合起來進行數學運算和儲存數據。如果剛開始覺得有點抽象也不用擔心,我們會透過許多日常生活中的例子來讓你輕鬆理解!
1. 基本邏輯元件
在電腦系統中,我們使用布林邏輯 (Boolean logic)。這意味著所有事物不是真 (True, 1) 就是假 (False, 0)。每個邏輯閘都有一套特定的規則來處理這些 1 和 0。
NOT 閘(「反相」閘)
NOT 閘是最簡單的。它只有一個輸入並將其反轉。如果你輸入 1,它會輸出 0;如果你輸入 0,它會輸出 1。
比喻:想像一個總是跟你唱反調的朋友,你說什麼他都說相反的!
NOT 閘的真值表:
輸入 A | 輸出 Q
0 | 1
1 | 0
AND 閘(「全部或沒有」閘)
AND 閘只有在所有輸入皆為 1 時,才會輸出 1。只要其中有一個輸入是 0,輸出就是 0。
比喻:要啟動一台需要兩把安全鑰匙的汽車,你必須同時轉動鑰匙 A AND 鑰匙 B。
AND 閘的真值表:
A | B | 輸出 Q
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1
OR 閘(「只要有一個就行」閘)
OR 閘只要輸入中至少有一個為 1,就會輸出 1。只有當所有輸入都是 0 時,它才會輸出 0。
比喻:如果你有前門鑰匙 OR 後門鑰匙,你就可以進入建築物。
OR 閘的真值表:
A | B | 輸出 Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1
快速複習:請記住,AND 比較挑剔(需要全部都是 1),而 OR 則比較隨和(只需要其中一個是 1 就行)。
2. 特殊邏輯閘
學會了基礎知識後,我們來看看「反相」邏輯閘和「互斥」邏輯閘。
NAND 和 NOR 閘
這些只是在 AND 和 OR 閘的輸出端加上一個 NOT 閘。在電路圖中,它們的輸出端有一個小圓圈(「氣泡」),表示訊號被反相了。
NAND (NOT AND):只有當所有輸入皆為 1 時才輸出 0。(與 AND 完全相反)。
NOR (NOT OR):只有當所有輸入皆為 0 時才輸出 1。(與 OR 完全相反)。
XOR 閘(「互斥」閘)
XOR (Exclusive OR,互斥或) 閘對於加法運算非常重要。如果輸入不同,它就輸出 1;如果輸入相同(皆為 0 或皆為 1),它就輸出 0。
比喻:想像一個「單人座」。你可以坐人 A OR 人 B,但不能兩個人同時坐!
XOR 閘的真值表:
A | B | 輸出 Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0
你知道嗎? NAND 閘被稱為「通用邏輯閘 (Universal Gates)」,因為你可以只用 NAND 閘來建構出任何其他類型的邏輯閘!
3. 組合邏輯閘:電路與表達式
在真實的電腦中,邏輯閘是連接在一起的。要計算這些電路的結果,只需從左到右,一步一步來即可。
編寫布林表達式
我們使用特定的符號來書寫電路的功能:
AND:用點 \( \cdot \) 表示,或直接寫在一起,如 \( AB \)
OR:用加號 \( + \) 表示
NOT:用字母上方的橫線表示,如 \( \overline{A} \)
XOR:用圓圈加號表示 \( \oplus \)
範例:若 A 和 B 輸入到一個 AND 閘,其結果再與 C 進行 OR 運算,則寫作:\( Q = (A \cdot B) + C \)。
為電路建立真值表
如果遇到複雜的電路,不要慌!只需按照以下步驟:
1. 在電路圖中,為每個邏輯閘的輸出標上臨時字母(例如 X 或 Y)。
2. 在真值表中為這些臨時字母建立對應的欄位。
3. 計算第一個邏輯閘的值,然後利用這些結果計算下一個邏輯閘,直到得出最終輸出。
重點總結:布林表達式 (Boolean Expression) 就像是一句數學式,用來描述邏輯電路 (Logic Circuit) 的運作。
4. 位元加法:半加器與全加器
邏輯閘不僅僅是用來看的,它們還能進行數學運算!為了進行二進位加法,我們使用加法器電路 (Adder circuits)。
半加器 (Half-Adder)
半加器用來相加兩個單一位元 (A 和 B)。它有兩個輸出:
1. 和 (Sum, S):使用 XOR 閘計算。
2. 進位 (Carry, C):使用 AND 閘計算。
為什麼叫「半」加器? 因為它無法處理來自前一位數的「進位輸入 (Carry In)」。它只能相加兩個位元,而不是三個。
全加器 (Full-Adder)
全加器是更完整的版本。它可以相加三個位元:A、B 以及來自前一位數的進位輸入。這使得電腦可以透過串聯多個全加器來進行長二進位數字的加法。
常見錯誤:學生經常在電路圖中混淆 XOR 和 OR 閘。請仔細觀察,XOR 閘的輸入端有一條額外的弧線!
5. 資料儲存:D 型觸發器 (D-Type Flip-Flop)
到目前為止,我們的邏輯閘只能對「當下」發生的事情做出反應。但電腦需要記憶功能。
邊緣觸發 D 型觸發器 (Edge-triggered D-type flip-flop) 是一種用作記憶單元的邏輯電路。它可以儲存一個位元(0 或 1)。
運作原理:
1. 它有兩個主要輸入:數據 (Data, D) 和 時脈 (Clock)。
2. 電路只有在時脈訊號「跳動」(從 0 變為 1)的那一刻,才會查看數據輸入。
3. 在時脈跳動的那一刻,D 的值是多少,它就會將該值儲存起來,並作為輸出保持住,直到下一次時脈跳動。
比喻:想像在拍照。「時脈」就像快門按鈕。相機只有在你按下按鈕的那一刻,才會「記住」它面前的東西(數據)。即使之後人走開了,照片還是會保持原樣,直到你拍下一張為止。
快速複習:對於 AQA A Level 考試,你不需要知道觸發器內部複雜的邏輯閘結構——只需記住它儲存 1 個位元的數據,並由時脈訊號控制即可。
總結檢查表
- 你能繪製 NOT, AND, OR, XOR, NAND 和 NOR 的符號嗎?
- 你能為每個獨立的邏輯閘填寫真值表嗎?
- 你知道半加器使用 XOR(求和)和 AND(求進位)嗎?
- 你理解 D 型觸發器在時脈跳動時儲存單一位元數據的原理嗎?
如果剛開始覺得有點困難也別擔心!邏輯閘就像拼圖一樣。一旦你學會了每個邏輯閘的「規則」,剩下的就只是跟隨電路連線的過程而已!