基礎數位電子學/數字加法器
當新增 2 個數字時,我們將得到一個和和一個進位。假設第一個數字是 A,第二個數字是 B,那麼 A + B 將產生一個和 S 和一個進位 C
0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1
從上面可以看出,在邏輯閘方面,AND 門會產生兩個輸入的和。邏輯閘 XOR 門會產生進位。
半加器可以使用 AND 門和 XOR 門構造,如下所示
以上情況只是沒有進位時的特例。如果有進位,那麼
輸入 輸出 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1
可以使用兩個半加器構造一個全加器,將A 和B 連線到一個半加器的輸入,將來自該半加器的和連線到第二個加器的輸入,將Ci 連線到另一個輸入,並將兩個進位輸出進行或運算。等效地,S 可以是A、B 和Ci 的三位異或,而Co 可以是A、B 和Ci 的三位多數函式。
可以使用多個全加器建立邏輯電路來新增N 位數字。每個全加器的輸入都是一個Cin,它是前一個加器的Cout。這種加法器是行波進位加法器,因為每個進位位都“行波”到下一個全加器。注意,第一個(也是唯一第一個)全加器可以用半加器代替。
行波進位加法器的佈局很簡單,這使得設計時間很短;然而,行波進位加法器速度相對較慢,因為每個全加器必須等待從前一個全加器計算出來的進位位。門延遲可以透過檢查全加器電路輕鬆計算出來。每個全加器需要三級邏輯。在 32 位[行波]加法器中,有 32 個全加器,因此關鍵路徑(最壞情況)延遲為 門延遲。
為了減少計算時間,工程師設計了更快的二進位制數加法方法,使用超前進位加法器。它們透過為每個位元位置建立兩個訊號(P 和 G)來工作,這些訊號基於進位是否從較低有效位位置傳遞(至少一個輸入是 '1')、該位元位置是否生成進位(兩個輸入都是 '1')、或者該位元位置是否抑制進位(兩個輸入都是 '0')。在大多數情況下,P 僅僅是半加器的和輸出,而 G 是同一個加法的進位輸出。在生成 P 和 G 之後,會建立每個位元位置的進位。一些先進的超前進位架構包括 曼徹斯特進位鏈、布倫特-孔加法器 和 科格-斯通加法器。
一些其他的多位加法器架構將加法器分解成塊。可以根據電路的傳播延遲調整這些塊的長度,以最佳化計算時間。這些基於塊的加法器包括進位旁路加法器,它將為每個塊而不是每個位元確定 P 和 G 值,以及 進位選擇加法器,它會預先生成塊的兩種可能的進位輸入的和和進位值。
其他加法器設計包括 條件和加法器、進位跳躍加法器 和 進位完成加法器。
透過組合多個超前進位加法器,可以建立更大的加法器。這可以在多個層級上使用,以建立更大的加法器。例如,以下加法器是一個 64 位加法器,它使用四個 16 位 CLA 和兩級 LCU。

