技術(非IT系)

全加算器の回路図は?書き方や見方も!(論理回路図・半加算器2つ・ORゲート・真理値表など)

全加算器の基本構造
当サイトでは記事内に広告を含みます

全加算器の回路図は?書き方や見方も!(論理回路図・半加算器2つ・ORゲート・真理値表など)

全加算器は、コンピュータや電子機器で行われる二進数計算の基本となる論理回路です。

回路図にすると複数のゲートが並ぶため難しそうに見えますが、役割を分けて捉えれば、半加算器を二つ組み合わせた構造として理解できます。

この記事では、全加算器の回路図の書き方、信号の流れ、真理値表の見方、論理式との関係を順番に整理します。

全加算器の基本構造

全加算器の基本構造

それではまず全加算器の基本構造について解説していきます。

三つの入力を扱う演算回路

全加算器は、二進数の一桁分を加算するための組み合わせ論理回路です。

入力は加算するビットAとB、そして下位桁から受け取る桁上がりのCinという三つの信号で構成されます。

出力は計算結果の和であるSと、上位桁へ渡す桁上がりであるCoutの二つです。

たとえばAとBだけを足す半加算器では、前の桁から来る桁上がりを扱えません。

複数桁の二進数を正しく加算するには、Cinを入力として受け取る全加算器が必要になります。

全加算器はA、B、Cinを加算し、SとCoutを出力する回路です。

複数桁の二進数加算では、各桁のCoutが次の桁のCinへ接続されます。

半加算器との役割の違い

半加算器は二つの入力だけを加算する回路であり、最下位桁の計算には利用できます。

一方で、二桁目以降では下位桁から桁上がりが伝わるため、半加算器だけでは情報が一つ足りません。

この不足を補う回路が全加算器です。

半加算器は二入力、全加算器は三入力と覚えると、用途の違いを整理しやすくなるでしょう。

実際の回路図では、半加算器二つとORゲート一つで全加算器を表す方法がよく使われます。

回路図で確認する信号の流れ

回路図を見る際は、左側の入力から右側の出力へ信号が進むと考えるのが基本です。

AとBは最初の半加算器に入り、そこで中間的な和と桁上がりが作られます。

中間的な和はCinとともに二つ目の半加算器へ入り、最終的なSを生み出します。

二つの半加算器から出た桁上がりはORゲートに集まり、最終出力Coutになります。

この順序を追えば、線が交差する図でもどの信号が何を意味するのかを見失いにくくなります。

全加算器の回路図の書き方

続いては全加算器の回路図の書き方を確認していきます。

半加算器二つを配置する手順

全加算器を手書きする場合は、最初に半加算器を横方向に二つ配置すると分かりやすくなります。

左側の半加算器にはAとBを入力し、右側の半加算器には左側で得られた和とCinを入力します。

半加算器を四角形で描くなら、内部にHAと書いて半加算器であることを示すとよいでしょう。

ゲート単位で詳しく描く場合は、各半加算器をXORゲートとANDゲートの組み合わせに置き換えます。

まず構造を箱で描き、その後に必要ならゲート記号へ展開する方法なら、作図の途中で混乱しにくくなります。

一つ目の半加算器の入力はAとBです。

出力は中間和Xと中間桁上がりC1として扱います。

Xは二つ目の半加算器へ、C1は最後のORゲートへ接続します。

ORゲートを接続する位置

二つ目の半加算器は、中間和XとCinを加算します。

ここで得られる和がSであり、桁上がりはC2です。

C1とC2はどちらも桁上がりを意味するため、二つの信号をORゲートへ入力します。

ORゲートの出力がCoutです。

どちらか一方でも桁上がりが発生すればCoutを1にするため、桁上がりの統合にはORゲートが使われます。

線の向きをそろえ、C1とC2のラベルを付けると、回路図の可読性が大きく向上します。

論理ゲートで直接描く方法

全加算器は、XORゲート二つ、ANDゲート二つ、ORゲート一つでも直接表現できます。

AとBを最初のXORゲートへ入れ、その出力をXとします。

XとCinを二つ目のXORゲートへ入れた出力がSです。

同時にAとBを一つ目のANDゲートへ入れ、XとCinを二つ目のANDゲートへ入れます。

二つのANDゲートの出力をORゲートへ接続すればCoutが完成します。

XORは和のビット、ANDとORは桁上がりに関係すると押さえると、ゲートの配置理由を説明しやすくなります。

真理値表と出力の読み方

続いては真理値表と出力の読み方を確認していきます。

八通りの入力組み合わせ

全加算器にはA、B、Cinの三つの入力があるため、入力の組み合わせは二の三乗で八通りです。

各行で三つの値を足し、その結果を二進数で二桁に分けるとSとCoutを求められます。

A B Cin 合計 S Cout
0 0 0 0 0 0
0 0 1 1 1 0
0 1 0 1 1 0
0 1 1 2 0 1
1 0 0 1 1 0
1 0 1 2 0 1
1 1 0 2 0 1
1 1 1 3 1 1

表では、合計が偶数ならSが0、奇数ならSが1になります。

合計が二以上なら、上位ビットとしてCoutが1になります。

和Sが一になる条件

Sは、入力A、B、Cinのうち1である信号の数が奇数のときに1になります。

1が一つだけの場合と、三つすべてが1の場合が該当します。

この性質は排他的論理和で表せるため、SにはXORゲートが使われます。

二入力XORでは入力が異なるときに1となり、さらにCinとのXORを取ることで三入力の奇偶判定ができます。

Sは入力値の合計の最下位ビットと考えると、真理値表と二進数計算がつながります。

SはA XOR B XOR Cinで表せます。

XORは入力中の1の個数が奇数なら1、偶数なら0を返す演算です。

桁上がりCoutが一になる条件

Coutは、三つの入力のうち少なくとも二つが1のときに1になります。

たとえばAとBが1なら、Cinが0でも合計は2となるため桁上がりが発生します。

Aが1でCinが1の場合、またはBが1でCinが1の場合も同様です。

これは二つの入力が同時に1となる条件をANDゲートで取り出し、それらをORゲートでまとめる構造と一致します。

真理値表のCout列だけを縦に追うと、二つ以上の1を検出する出力であることが確認できます。

論理式と半加算器の関係

続いては論理式と半加算器の関係を確認していきます。

和を表す論理式

全加算器の和Sは、A XOR B XOR Cinと表されます。

ここで最初にA XOR Bを計算し、その結果とCinのXORを取る流れが、半加算器二つの接続と対応します。

論理式を読むときは、XORを単なる記号として覚えるより、入力の1の数を数える演算として理解すると実用的です。

回路図でXORゲートが二段に並ぶ理由も、式を見れば自然に説明できます。

論理回路の設計では、式と回路図を往復して確認する習慣が重要になります。

桁上がりを表す論理式

Coutは、A AND B、A AND Cin、B AND Cinのいずれかが成り立つときに1です。

論理式では、CoutはAB OR ACin OR BCinの形で表せます。

半加算器二つを利用する構成では、AとBのAND出力と、A XOR BとCinのAND出力をORで結合します。

一見すると式の項数が異なって見えますが、論理的には同じ出力を作れます。

回路の表現方法が変わっても真理値表が一致すれば同じ機能です。

和Sは三つの入力の奇偶を判定する出力です。

桁上がりCoutは三つの入力のうち二つ以上が1かどうかを判定する出力です。

半加算器二つで構成できる理由

一つ目の半加算器はAとBを加算し、途中の和Xと桁上がりC1を出力します。

二つ目の半加算器はXとCinを加算し、最終和Sと桁上がりC2を出力します。

このときC1とC2は別々の計算段階で生じた桁上がりですが、どちらが1でも上位桁へ渡す必要があります。

そこでORゲートを使い、C1 OR C2をCoutとして出力します。

部品を組み合わせて複雑な機能を作る考え方は、より大きな演算回路にも共通する基本です。

複数桁加算回路での接続方法

続いては複数桁加算回路での接続方法を確認していきます。

リップルキャリー回路の構成

複数桁の二進数を加算するには、各桁に全加算器を一つずつ配置します。

最下位桁のCinには通常0を入力し、その全加算器のCoutを次の桁のCinへつなぎます。

この接続を最上位桁まで繰り返す構成をリップルキャリー加算器と呼びます。

桁上がりが波のように下位桁から上位桁へ伝わるため、この名称が使われます。

回路図ではCoutからCinへ伸びる線を見つけると、各全加算器のつながりを把握しやすくなります。

四ビット加算の考え方

四ビット同士を加算する場合は、基本的に全加算器を四つ直列に接続します。

最下位桁ではA0とB0を加算し、次の桁ではA1とB1に前段のCoutを加えます。

同じ処理がA2とB2、A3とB3でも続き、最後のCoutは演算結果のさらに上位のビットになります。

最下位桁だけはCinが0なので半加算器でも計算できますが、全加算器で統一しておくと設計と説明が簡潔になります。

各桁の和Sと次桁へのCoutを別々に追うことが、複数桁回路を読むコツです。

四ビット加算では下位桁から順に桁上がりが伝わります。

最終的な出力は四つのSと、最上位桁のCoutで構成されます。

遅延時間と高速化の視点

リップルキャリー回路は構造が単純で理解しやすい一方、桁数が増えると桁上がりの伝達待ちが長くなります。

上位桁の演算結果は、下位桁のCoutが確定するまで決まりません。

この影響を小さくするため、実際のプロセッサではキャリールックアヘッド加算器などの高速な方式も利用されます。

ただし、全加算器の入出力と桁上がりの意味を理解していれば、高速加算器の考え方にも進みやすくなります。

基礎回路としての全加算器は、デジタル回路学習の重要な入口といえるでしょう。

回路図を読む際の注意点

続いては回路図を読む際の注意点を確認していきます。

交差線と接続点の判別

論理回路図では、線が交差していても必ずしも電気的に接続されているとは限りません。

一般的には接続点に黒丸が描かれるか、接続を明確に示す記号が使われます。

黒丸のない交差は、単に線が通過しているだけの場合があります。

全加算器の図を読むときに接続を誤ると、CinやCoutの経路を取り違える原因になります。

特にORゲートの入力線は、二つの桁上がり出力が正しく入っているか確認しましょう。

入力名と出力名の統一

回路図ではA、B、Cin、S、Coutという記号が標準的に用いられます。

ただし教材や設計図によっては、CinをC0、CoutをC1やCarryと表記する場合もあります。

記号の見た目だけで判断せず、どの信号がどこから来てどこへ進むのかを確認することが大切です。

入力と出力の役割をラベルで固定することは、作図ミスの予防にもつながります。

自分で描く際には途中信号にもX、C1、C2などの名称を付け、信号線を省略しすぎないようにしましょう。

真理値表による動作確認

回路図を書き終えたら、真理値表の八通りを使って動作を確認します。

すべての組み合わせを試すことで、ANDとORの接続間違い、XORの入力間違いなどを見つけられます。

とくにA、B、Cinがすべて1の行では、合計が3となりSとCoutの両方が1になる点が重要です。

この行で出力が異なる場合、回路のどこかで桁上がり処理が欠けている可能性があります。

回路図、論理式、真理値表の三つを照合することが、理解と検証を確実にする方法です。

全加算器の確認では、入力がすべて1のときにSとCoutがともに1になるかを必ず確認します。

この結果は二進数の1と1と1を足して11になることに対応します。

全加算器の回路図のまとめ

全加算器は、A、B、Cinの三つを加算し、和Sと桁上がりCoutを出力する論理回路です。

回路図は半加算器二つとORゲート一つで構成でき、ゲート単位ではXOR二つ、AND二つ、OR一つとして描けます。

Sは入力中の1の数が奇数のときに1となり、Coutは二つ以上の入力が1のときに1となります。

この関係を真理値表で確かめれば、論理式と回路図の対応が明確になります。

複数桁の二進数加算では、各全加算器のCoutを次の桁のCinへ接続します。

半加算器二つ、中間和、二つの桁上がり、ORゲートという流れを押さえれば、全加算器の回路図は自分でも書けるようになるでしょう。