全加器是一種邏輯電路,用于在兩個二進制數(shù)字之間執(zhí)行完整的加法運算。全加器由三個輸入和兩個輸出組成,其中輸入包括兩個待加二進制數(shù)位和前一個位置產(chǎn)生的進位信號,輸出則為該二進制數(shù)位的和以及下一個位置產(chǎn)生的進位信號。全加器是一種序列邏輯電路,其主要作用是計算兩個二進制數(shù)位以及上一位傳遞下來的進位幾率后的二進制數(shù)位值以及向下傳遞的新的進位幾率。全加器采用了兩個半加器的級聯(lián),并通過引入額外的輸入以實現(xiàn)是否考慮上一位產(chǎn)生的進位信號。在電路實現(xiàn)中,使用異或門、與門和或門來分別表示和、進位和總進位三個輸入。通過電路的連通,可以得到全加器的輸出。
全加器采用了兩個半加器的級聯(lián),并通過引入額外的輸入以實現(xiàn)是否考慮上一位產(chǎn)生的進位信號。在電路實現(xiàn)中,使用異或門、與門和或門來分別表示和、進位和總進位三個輸入。通過電路的連通,可以得到全加器的輸出。全加器是一種序列邏輯電路,其主要作用是計算兩個二進制數(shù)位以及上一位傳遞下來的進位幾率后的二進制數(shù)位值以及向下傳遞的新的進位幾率。全加器是一種邏輯電路,用于在兩個二進制數(shù)字之間執(zhí)行完整的加法運算。全加器由三個輸入和兩個輸出組成,其中輸入包括兩個待加二進制數(shù)位和前一個位置產(chǎn)生的進位信號,輸出則為該二進制數(shù)位的和以及下一個位置產(chǎn)生的進位信號。
全加器的真值表理解如下:
全加器:當將兩個多位二進制數(shù)相加時,除了最低位以外,每一位都應該考慮來自低位的進位,即將兩個對應位的加數(shù)和來自低位的進位3個數(shù)相加。這種運算稱為全加,所用的電路稱為全加器。1
真值表:全加器的真值表描述了全加器在不同輸入條件下的輸出狀態(tài)。例如,當輸入A、B、C、I時,全加器的真值表會給出相應的輸出S。
表達式:根據(jù)真值表,可以寫出全加器的表達式。例如,全加器的表達式為S=A'BCI'+AB'CI'+A'B'CI+ABCI。
與非表達式:將全加器的表達式轉換為與非形式,即S=(A'BCI'+AB'CI'+A'B'CI+ABCI)''=((A'BCI')'(AB'CI')'(A'B'CI)'(ABCI)')'。
全加器能進行加數(shù)、被加數(shù)和低位來的進位信號相加,并依據(jù)求和作用給出該位的進位信號。依據(jù)它的功用,能夠列出它的真值表,如表1.2所示。
表1.2 一位全加法真值表
module FA_struct (A, B, Cin, Sum, Count);
input A;
input B;
input Cin;
output Sum;
output Count;
wire S1, T1, T2, T3;
// -- statements -- //
xor x1 (S1, A, B);
xor x2 (Sum, S1, Cin);
and A1 (T3, A, B );
and A2 (T2, B, Cin);
and A3 (T1, A, Cin);
or O1 (Count, T1, T2, T3 );
endmodule
該實例顯示了一個全加器由兩個異或門、三個與門、一個或門構成 (或者可以理解為兩個半加器與一個或門的組合)。S1、T1、T2、T3則是門與門之間的連線。代碼顯示了用純結構的建模方式,其中xor 、and、or 是Verilog HDL 內(nèi)置的門器件。以 xor x1 (S1, A, B) 該例化語句為例:xor 表明調(diào)用一個內(nèi)置的異或門,器件名稱xor ,代碼實例化名x1(類似原理圖輸入方式)。括號內(nèi)的S1,A,B 表明該器件管腳的實際連接線(信號)的名稱,其中 A、B是輸入,S1是輸出。
半加器、全加器是組合電路中的基本元器件,也是CPU中處理加法運算的核心,理解、掌握并熟練應用是硬件課程的最基本要求。本文簡單介紹半加器、全加器,重點對如何構造高效率的加法器進行分析。
所謂半加器,是指對兩位二進制數(shù)實施加法操作的元器件。其真值表、電路圖和邏輯符號分別如下圖所示:
根據(jù)真值表,其輸入輸出之間的對應關系為:
從半加器的真值表、電路圖可以看出,半加器只能對單個二進制數(shù)進行加法操作,只有兩個輸入,無法接受低位的進位,因此稱為半加器。
對此,全加器則解決了這個問題,全加器有三個輸入(包括來自低位的進位),兩個輸出,其對應的真值表、電路圖和邏輯符號如下所示:
有了全加器,構造加法器就非常容易了,假設有A3A2A1A0和B3B2B1B0,利用全加器構造A3A2A1A0+B3B2B1B0的串行進位加法器電路圖如下圖所示:
圖中的C-1=0,因為已是最低位,沒有進位。這種串聯(lián)方法只是完成了基本功能,從效率上則完全不可行。
全加器真值表和半加器真值表詳細分析
那如何做呢?其實方法挺簡單的,只需要把Ci和參與運算的兩個4位二進制數(shù)之間的關系梳理清楚就行了。