數字算術電路



本章我們將討論基本的算術電路,例如二進位制加法器和二進位制減法器。這些電路可以使用二進位制值0和1進行操作。

二進位制加法器

最基本的算術運算就是加法。執行兩個二進位制數相加的電路稱為二進位制加法器。首先,讓我們實現一個加法器,它執行兩個位的加法。

半加器

半加器是一個組合電路,它執行兩個二進位制數A和B的加法,其中A和B為一位。它產生兩個輸出:和S和進位C。

半加器的真值表如下所示。

輸入 輸出
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

當我們進行兩位的加法時,結果和的值範圍在十進位制的0到2之間。我們可以用二進位制的一位來表示十進位制數字0和1。但是,我們不能用二進位制的一位來表示十進位制數字2。因此,我們需要兩位來用二進位制表示它。

設和S為最低有效位,進位C為結果和的最高有效位。對於前三種輸入組合,進位C為零,S的值將根據輸入中1的個數為零或一。但是,對於最後一種輸入組合,進位C為一,和S為零,因為結果和為二。

從真值表中,我們可以直接寫出每個輸出的布林函式

$$\mathrm{S \: = \: A \: \oplus \: B}$$

$$\mathrm{C \: = \: AB}$$

我們可以用一個2輸入異或門和一個2輸入與門來實現上述函式。半加器的電路圖如下所示。

Half Adder

在上面的電路中,一個二輸入異或門和一個二輸入與門分別產生和S和進位C。因此,半加器執行兩位的加法。

全加器

全加器是一個組合電路,它執行三位A、B和Cin的加法。其中,A和B是兩位並行有效位,Cin是從前一級產生的進位位。這個全加器也產生兩個輸出:和S和進位Cout,它們與半加器類似。

全加器的真值表如下所示。

輸入 輸出
A B Cin Cout S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

當我們進行三位數的加法時,結果和的值範圍在十進位制的0到3之間。我們可以用二進位制的一位來表示十進位制數字0和1。但是,我們不能用二進位制的一位來表示十進位制數字2和3。因此,我們需要兩位來用二進位制表示這兩個十進位制數字。

設和S為最低有效位,進位Cout為結果和的最高有效位。很容易在真值表中填寫所有輸入組合的輸出值。只需計算輸入中1的個數並在輸出處寫入等效的二進位制數。如果Cin等於零,則全加器的真值表與半加器的真值表相同。

化簡後,我們將得到每個輸出的以下布林函式

$$\mathrm{S \: = \: A \: \oplus \: B \: \oplus \: C_{in}}$$

$$\mathrm{c_{out} \: = \: AB \: + \: \left ( A \: \oplus \: B \right ) \: c_{in}}$$

當輸入中存在奇數個1時,和S等於1。我們知道異或門產生一個奇函式輸出。因此,為了產生和S,我們可以使用兩個2輸入異或門或一個3輸入異或門。我們可以使用兩個2輸入與門和一個或門來實現進位Cout。全加器的電路圖如下所示。

Full Adder

這個加法器被稱為全加器,因為實現一個全加器需要兩個半加器和一個或門。如果Cin為零,則全加器變為半加器。我們可以從上面的電路圖或全加器輸出的布林函式中很容易地驗證這一點。

4位二進位制加法器

4位二進位制加法器執行兩個4位數的加法。設4位二進位制數為$\mathrm{A \: = \: A_{3}A_{2}A_{1}A_{0}}$和$\mathrm{B \: = \: B_{3}B_{2}B_{1}B_{0}}$。我們可以透過以下兩種方法之一來實現4位二進位制加法器。

  • 使用一個半加器來進行兩位最低有效位的加法,並使用三個全加器來進行三位更高有效位的加法。
  • 為了一致性,使用四個全加器。由於初始進位Cin為零,用於新增最低有效位的全加器變為半加器。

目前,我們考慮第二種方法。4位二進位制加法器的框圖如下所示。

Four Bit Binary Adder

此處,4個全加器級聯。每個全加器接收兩個並行輸入 A 和 B 的相應位。一個全加器的進位輸出將作為下一個更高位全加器的進位輸入。這個 4 位二進位制加法器產生的結果和最多有 5 位。因此,最後一個階段全加器的進位輸出將是最高有效位 (MSB)。

透過這種方式,我們可以透過級聯所需數量的全加器來實現任何更高位的二進位制加法器。這種二進位制加法器也稱為行波進位(二進位制)加法器,因為進位從一個階段傳播(漣漪)到下一個階段。

二進位制減法器

執行兩個二進位制數減法的電路稱為二進位制減法器。我們可以透過以下兩種方法實現二進位制減法器。

  • 級聯全減器
  • 補碼法

在第一種方法中,我們將透過級聯 'n' 個全減器來得到一個 n 位二進位制減法器。因此,首先您可以實現半減器和全減器,類似於半加器和全加器。然後,您可以透過級聯 'n' 個全減器來實現 n 位二進位制減法器。因此,我們將有兩個獨立的電路用於兩個二進位制數的二進位制加法和減法。

在第二種方法中,我們可以使用相同的二進位制加法器進行兩個二進位制數的減法,只需對第二個輸入進行一些修改即可。因此,內部執行二進位制加法運算,但輸出是結果減法。

我們知道,兩個二進位制數 A 和 B 的減法可以寫成:

$$A-B = A + (B 的 2 的補碼)$$

$$=> A - B = A + (B 的 1 的補碼) + 1$$

4 位二進位制減法器

4 位二進位制減法器產生兩個 4 位數的減法結果。設 4 位二進位制數為,$A = A_3A_2A_1A_0$ 和 $B = B_3B_2B_1B_0$。內部,4 位二進位制減法器的操作類似於 4 位二進位制加法器。如果將二進位制數 A 的普通位、二進位制數 B 的反碼位和初始進位 (借位) Cin 作為 1 應用於 4 位二進位制加法器,則它將成為 4 位二進位制減法器。下圖顯示了 4 位二進位制減法器的框圖

4 Bit Binary Subtractor

這個 4 位二進位制減法器產生一個輸出,最多有 5 位。如果二進位制數 A 大於二進位制數 B,則輸出的 MSB 為零,其餘位儲存 A-B 的大小。如果二進位制數 A 小於二進位制數 B,則輸出的 MSB 為一。因此,為了獲得 A-B 的大小,請取輸出的 2 的補碼。

透過這種方式,我們可以透過級聯所需數量的全加器並進行必要的修改來實現任何更高位的二進位制減法器。

二進位制加法器/減法器

可以隨時用於執行兩個二進位制數的加法或減法的電路稱為二進位制加法器/減法器。二進位制加法器和二進位制減法器都包含一組級聯的全加器。二進位制數 A 的輸入位直接應用於二進位制加法器和二進位制減法器。

二進位制加法器和二進位制減法器中存在全加器的輸入有兩個區別。

  • 在二進位制加法器中,二進位制數 B 的輸入位直接應用於全加器,而在二進位制減法器中,二進位制數 B 的反碼位應用於全加器。
  • 在 4 位二進位制加法器中應用初始進位 C0 = 0,而在 4 位二進位制減法器中應用初始進位 (借位) C0 = 1。

我們知道,一個2 輸入異或門產生的輸出與另一個輸入為零時的第一個輸入相同。類似地,當另一個輸入為一時,它會產生一個與第一個輸入互補的輸出。

因此,我們可以將二進位制數 B 的輸入位應用於 2 輸入異或門。所有這些異或門的另一個輸入是 C0。因此,根據 C0 的值,異或門產生二進位制數 B 的普通位或反碼位。

4 位二進位制加法器/減法器

4 位二進位制加法器/減法器根據初始進位或借位 C0 的值產生兩個 4 位數的加法或減法結果。設 4 位二進位制數為,$A = A_3A_2A_1A_0$ 和 $B = B_3B_2B_1B_0$。4 位二進位制加法器/減法器的操作類似於 4 位二進位制加法器和 4 位二進位制減法器。

將二進位制數 A 和 B 的普通位和初始進位或借位 C0 從外部應用於 4 位二進位制加法器。下圖顯示了 4 位二進位制加法器/減法器的框圖

Adder and Subtractor

如果初始進位 C0 為零,則每個全加器都獲得二進位制數 A 和 B 的普通位。因此,4 位二進位制加法器/減法器產生一個輸出,該輸出是兩個二進位制數 A 和 B 的加法結果

如果初始借位 C0 為一,則每個全加器都獲得二進位制數 A 的普通位和二進位制數 B 的反碼位。因此,4 位二進位制加法器/減法器產生一個輸出,該輸出是兩個二進位制數 A 和 B 的減法結果

因此,藉助額外的異或門,同一個電路可以用於兩個二進位制數的加法和減法。

廣告