數位邏輯與基本元件

全加器(full adder)

全加器是把二進位加法中「單一一欄」相加的小電路——而一台二進位計算機的全部算術能力,就是靠把它的複本疊起來建成的。當你用手相加時,你從右邊一欄一欄做,每一欄有三樣東西要合併:那一欄的兩個數字,以及從前一欄進來的進位。全加器對一個位元正是做這件事:它取三個輸入(位元 A、位元 B 和一個進位輸入),產生兩個輸出(這一欄的和位元,以及交給下一欄的進位輸出)。

它在三個輸入上的真值表遵循單純的算術:你是在把三個 1 位元的數相加,所以總和是 0、1、2 或 3,用二進位是兩個位元——一個和、一個進位。當三個輸入中有奇數個為 1 時,和位元為 1,這恰好是 XOR:Sum = A XOR B XOR Cin。當至少兩個輸入為 1 時,進位輸出為 1:Cout =(A AND B)OR(Cin AND(A XOR B)),常被描述為「三者中的多數」。它較簡單的表親半加器只加兩個位元、沒有進位輸入,就是 Sum = A XOR B、Carry = A AND B——只在最開頭那一欄有用。

它為何重要:全加器是計算機算術的原子。把 n 個串起來,進位輸出接進位輸入,你就能把兩個 n 位元的數相加;再用一個巧妙的小技巧(餵給第一個的進位輸入),同樣的硬體還能用二補數做減法。所以加法、減法、位址計算和迴圈計數全都追溯到這個三輸入、兩輸出的積木。誠實的提醒是:單純串接的版本很慢,因為每個加器都必須等鄰居傳來進位——這個限制正是促成更快加法器設計的動機。

把 A=1、B=1、Cin=1 這一欄相加。三個輸入加起來是 3,用二進位是 11:Sum = 1、Cout = 1。用公式檢驗:Sum = 1 XOR 1 XOR 1 = 1;Cout =(1 AND 1)OR(1 AND(1 XOR 1))= 1 OR 0 = 1。所以這一欄寫下一個 1、往後進位一個 1——就像在紙上寫「1 進位 1」一樣。

三位元進、兩位元出(和與進位):全加器就是把紙筆的逐欄相加做成閘。

全加器的「全」指的是它接受一個進位輸入,這和半加器不同。那第三個輸入至關重要——沒有它就無法把加器串起來處理多位元數字,因為每一欄的進位都必須傳到下一欄。

又稱
1-bit full adder全加法器一位元全加器