超前進位加法器

超前進位加法器

超前進位加法器(carry look ahead adder)是對普通的全加器進行改良而設計成的並行加法器,主要是針對普通全加器串聯時互相進位產生的延遲進行了改良。超前進位加法器是通過增加了一個不是十分複雜的邏輯電路來做到這點的。

基本介紹

  • 中文名:超前進位加法器
  • 外文名:carry look ahead adder
簡介,原理,波紋進位加法器,相關條目,

簡介

電子學中,加法器(英語:adder)是一種用於執行加法運算的數字電路部件,是構成電子計算機核心微處理器算術邏輯單元的基礎。在這些電子系統中,加法器主要負責計算地址索引數據。除此之外,加法器也是其他一些硬體,例如二進制數乘法器的重要組成部分。
儘管可以為不同計數系統設計專門的加法器,但是由於數字電路通常以二進制為基礎,因此二進制加法器在實際套用中最為普遍。在數字電路中,二進制數的減法可以通過加一個負數來間接完成。為了使負數的計算能夠直接用加法器來完成,計算中的負數可以使用二補數補碼)來表示,具體的細節可以參考數字電路相關的書籍。
為了減少多位二進制數加減計算所需的時間,工程師設計了一種比脈動進位加法器速度更快的加法器電路,這種加法器被稱為“超前進位加法器”(carry-lookahead adder)。

原理

下面簡述超前進位加法器的主要原理。我們先來考慮構成多位加法器的單個全加器從其低一位獲得的進位信號,我們可以將它變換為
。現在為二級制數的每一位構建兩個新信號
(1)生成(Generate)信號
(2)傳輸(Propagate)信號:
於是,某位全加器從低一位獲得的進位可以表示為
,例如次低位全加器從最低位獲得的進位為
,而從最低位開始第三位的那個全加器獲得的進位信號則為
,(圖片需要更換,缺少括弧c2=G1+(P1*c1),因為這是或和與的運算,從左往右執行,而不是加和乘的運算)。在多位脈動進位加法器中,
必須連線到低一位的進位輸出信號,如果使用這種方式構成多位全加器,則邏輯門的延遲會發生累加,導致降低電路的計算效率下降。超前進位加法器採取的方式是,將
邏輯函式代入到
,即
,於是,這一位的進位輸出就只取決於
幾個信號,而這幾個信號都是計算電路外部的已知信號,而非低一位的計算結果。上面考慮的是從最低位開始第三位的情況。採用類似的代入方法,可以用各位的生成信號
傳輸信號,以及最低位從外部獲取的進位信號
來表示多位全加器的所有進位信號。
通過列出多位加法器各位的進位輸出,可以發現高位的進位輸出表達式(積之和式)涉及的變數更多,對應的邏輯電路連線會變得更複雜,而且在實際套用中會遭遇邏輯門的扇入問題。因此有必要對位數過高的全加器進行邏輯劃分,如將六十四位全加器分為四個十六位超前進位加法器來實現。多位二進制數加法器的標準晶片通常具有超前進位的組成形式,例如:7400系列的7483、74283晶片。

波紋進位加法器

可以使用多個一位全加器來構成N位加法器,其中對應低位的全加器將其進位輸出信號Cout連線到高一位的全加器的進入輸入端Cin。這種構成多位加法器的形式被稱為“波紋進位加法器”或“脈動進位加法器”(ripple-carry adder),“波紋”形象地描述了進位信號依次向前傳遞的情形。如果不需要連線其他進位信號,則最低位的全加器可以用半加器替換。
波紋進位加法器的電路布局形式較為簡單,設計這種電路花費時間較短。然而,波紋進位加法器的進位輸出、輸入所經過的路徑上比其他布局方式具有較多的邏輯門,高位的計算必須等待低位的進位輸出信號被計算出來才能開始,因此造成了更大的延遲時間
下面簡單計算信號在加法器中的延遲。每一個全加器具有三級邏輯函式。在一個32位的波紋進位加法器中,有32個全加器,隨之產生的邏輯門延遲則可以根據關鍵路徑的延遲時間來決定,即2倍的最高位全加器輸入信號、進位輸出延遲,加上31乘以3倍的其他全加器上的延遲,總共等於95倍的邏輯門延遲。一個n位波紋進位加法器的最壞情形延遲方程為
從位位置0到進位輸出的進位有一點不同:
輸入進位必須經過n個進位生成器模組來得到進位輸出的效果
交替進位極性最佳化的與或非門的設計可以減少一半的延遲時間。

相關條目

  1. 波紋進位加法器

相關詞條

熱門詞條

聯絡我們