跳轉至內容

計算機硬體基礎:邏輯閘

來自 Wikibooks,開放書籍,開放世界

試卷 2 - ⇑ 計算機系統基礎 ⇑

← 程式翻譯器型別 邏輯閘 布林門組合 →


1854 年,英國數學家 喬治·布林 開發了布林代數。與使用數字的代數不同,布林代數使用真值,即 **真** (1) 和 **假** (0)。透過使用真值定義句子並對這些真值執行運算,您可以計算出複雜語句的總體結論。布林代數對計算機科學產生了巨大影響,計算機理解的語言是一種 1 和 0 的語言,即布林語言。

0 0 0 0
1 0 0 1
0 1 0 1
1 1 1 1
0 1
1 0
布林代數在真值表中的示例

邏輯閘是執行布林輸入運算的硬體部件,使我們能夠使用抽象的布林代數建立複雜裝置。邏輯閘是硬體的基本構建塊,處理器將由數十億個邏輯閘組成。邏輯閘通常有一個或兩個輸入,在下面的示例中,它們由 A 和 B 定義。你需要了解六種型別的門

非門(NOT)

[編輯 | 編輯原始碼]
非門只有一個輸入和一個輸出

非門 始終輸出與輸入相反的值,例如 1(非門)0。非門接收一個布林輸入並將其翻轉。可以進行雙重否定。這將反轉原始否定。符號將在其上有一個額外的橫線。

在布林代數中,我們透過在字母 () 或字母 () 上方放置橫線來編寫 非門 符號。

以下是工作中的非門的示例
  • 非(不下雨) = 下雨

總而言之,這是一個顯示 A 和 之間關係的真值表

A
0 1
1 0

與門(AND) (.)

[編輯 | 編輯原始碼]
與門接收兩個輸入並將它們組合成一個輸出

與門 將組合兩個輸入的布林值(可以獲得兩個以上的輸入,但我們不需要了解這裡那種型別的門)。當且僅當 **兩個輸入都為真** 時,它才會輸出真。如果任何輸入為假,它將輸出假。

在布林代數中,我們透過在兩個 () 或更多 () 值之間放置一個點來編寫 與門 符號。

以下是工作中的與門的示例
  • 六大於四,貓大於沙鼠 = 真

記住 AND 門工作原理的一個簡單方法是把它想象成一個點亮燈泡的電路。如果兩個開關都開啟,燈泡就會亮;如果任何一個開關關閉,燈泡就不會亮。

與 AND 門等效的電路圖

總結一下,下面是一個真值表,顯示了兩個輸入 A 和 B 的所有不同值以及將這些值 AND 運算後的結果。

A B A.B
0 0
0
0 1
0
1 0
0
1 1
1

OR (+)

[edit | edit source]
OR 門接受兩個輸入並將其組合成一個輸出。

OR 門將組合兩個輸入的布林值。如果一個或多個輸入為真,則輸出為真。如果兩個輸入都為假,則輸出為假。

在布林代數中,我們透過在兩個 () 或多個 () 值之間放置一個加號來表示 OR 符號。

以下是一些 OR 門工作示例:
  • 人類有兩條腿 OR 大象有 8 條腿 = TRUE

記住 OR 門工作原理的一個簡單方法是把它想象成一個點亮燈泡的電路。如果一個或多個開關開啟,燈泡就會亮;如果兩個開關都關閉,燈泡就不會亮。

與 OR 門等效的電路圖

總結一下,下面是一個真值表,顯示了兩個輸入 A 和 B 的所有不同值以及將這些值 OR 運算後的結果。

A B A+B
0 0
0
0 1
1
1 0
1
1 1
1

XOR ()

[edit | edit source]
XOR 門接受兩個輸入並將其組合成一個輸出。

異或,XOR,門將組合兩個輸入的布林值。如果只有一個輸入為真,則輸出為真。如果兩個輸入都為假或兩個輸入都為真,則輸出為假。

在布林代數中,我們透過在兩個 () 或多個 () 值之間放置一個帶圓圈的加號來表示 XOR 符號。

以下是一些 XOR 門工作示例:
  • 在下雨 XOR 不下雨 = TRUE

為了總結,這裡是一個真值表,顯示了兩個輸入 A 和 B 的所有不同值以及將這些值異或在一起的結果

A B
0 0
0
0 1
1
1 0
1
1 1
0

與非門(NAND)

[edit | edit source]
一個與非門接收兩個輸入,並將它們組合成一個輸出

一個與非門將組合兩個輸入的布林值,將它們與在一起,然後對結果取反。如果一個或更少輸入為真,那麼輸出將為真。如果兩個輸入都為真,那麼輸出將為假。要繪製一個與非門,您需要繪製一個與門並在前面新增一個圓圈,如上所示。

在布林代數中,我們透過取一個與方程並對結果取反來寫一個與非符號 ().

以下是一些與非門工作的示例
  • (A=A) 與非 (A<>B) = TRUE

為了總結,這裡是一個真值表,顯示了兩個輸入 A 和 B 的所有不同值以及將這些值與非在一起的結果

A B
0 0 0
1
0 1 0
1
1 0 0
1
1 1 1
0

或非門(NOR)

[edit | edit source]
一個或非門接收兩個輸入,並將它們組合成一個輸出

一個或非門將組合兩個輸入的布林值,將它們或在一起,然後對結果取反。如果沒有輸入為真,那麼輸出將為真。如果一個或兩個輸入為真,那麼結果將為假。要繪製一個或非門,您需要繪製一個或門並在前面新增一個圓圈,如上所示。

在布林代數中,我們透過取一個或方程並對結果取反來寫一個或非符號 ().

以下是一些或非門工作的示例
  • (A=A) 或非 (A<>B) = FALSE
A B
0 0 0
1
0 1 1
0
1 0 1
0
1 1 1
0


練習:邏輯閘

給出或語句的符號和門圖

答案

+

給出與語句的符號和門圖

答案

.

給出異或語句的符號和門圖

答案

給出以下方程的答案

真與真

答案

真 + 假

答案

真 + 真

答案

答案

非(真) . 真

答案

答案

畫一個與非門和真值表

答案

A B
0 0 0
1
0 1 0
1
1 0 0
1
1 1 1
0

完成下表

名稱 與非門(NAND) 或非門(NOR) 與門(AND) 非門(NOT) 或門(OR) 異或門(XOR)
符號
真值表

答案

名稱 與非門(NAND) 或非門(NOR) 與門(AND) 非門(NOT) 或門(OR) 異或門(XOR)
符號
真值表
A B
0 0 0
1
0 1 0
1
1 0 0
1
1 1 1
0
A B
0 0 0
1
0 1 1
0
1 0 1
0
1 1 1
0
A B A.B
0 0
0
0 1
0
1 0
0
1 1
1
A
0 1
1 0
A B A+B
0 0
0
0 1
1
1 0
1
1 1
1
A B
0 0
0
0 1
1
1 0
1
1 1
0
華夏公益教科書