半加算器は 2 つの数値のみを加算するために使用されます。この問題を克服するために、全加算器が開発されました。全加算器は、3 つの 1 ビット 2 進数 A、B、およびキャリー C を加算するために使用されます。全加算器には、3 つの入力状態と 2 つの出力状態 (合計とキャリー) があります。
ブロック図
真理値表
上の表では、
- 「A」と「B」は入力変数です。これらの変数は、追加される 2 つの有効ビットを表します。
- 'Cで' はキャリーを表す 3 番目の入力です。直前の下位位置からキャリー ビットがフェッチされます。
- 「Sum」と「Carry」は、出力値を定義する出力変数です。
- 入力変数の下の 8 行は、これらの変数で発生する可能性のある 0 と 1 のすべての組み合わせを指定します。
注: 独自のマップ メソッドを使用して、各出力「ブール関数」を簡素化できます。
SOP フォームは、K-map を使用して次のように取得できます。
通信販売トラバーサル バイナリ ツリー
合計 = x' y' z+x' yz+xy' z'+xyz
キャリー = xy+xz+yz
半加算回路の構成:
上のブロック図は全加算回路の構成を示しています。 。上記の回路では、半加算器回路が 2 つあり、OR ゲートを使用して結合されています。最初の半加算器には、2 つのシングルビット バイナリ入力 A および B があります。ご存知のとおり、半加算器は 2 つの出力、つまり Sum と Carry を生成します。最初の加算器の「Sum」出力は後半の加算器の最初の入力となり、最初の加算器の「Carry」出力は後半の加算器の 2 番目の入力になります。後半の加算器は再び「Sum」と「Carry」を提供します。全加算器回路の最終結果は「Sum」ビットです。 「キャリー」の最終出力を見つけるために、最初と 2 番目の加算器の「キャリー」出力を OR ゲートに提供します。 OR ゲートの結果は、全加算回路の最終的なキャリーアウトになります。
MSB は最後の「Carry」ビットによって表されます。
全加算器論理回路は、以下を使用して構築できます。 'そして' そして ' XOR ゲート と ORゲート 。
jsセット
全加算器の実際の論理回路は上図のようになります。全加算回路の構成はブール式でも表すことができます。
和:
- 入力AとBのXOR演算を実行します。
- キャリー付きの結果の XOR 演算を実行します。したがって、合計は (A XOR B) XOR C となります。でこれは次のようにも表されます。
(A ⊕ B) ⊕ Cで
運ぶ:
- 入力 A と B の「AND」演算を実行します。
- 入力 A と B の「XOR」演算を実行します。
- 前の 2 つのステップから得られる両方の出力の「OR」演算を実行します。したがって、「Carry」は次のように表すことができます。
A.B + (A ⊕ B)