コンピュータに記録されたbit2つを加算した結果を求める回路です。
入力値が4パターンになるので、計算も以下の4パターンを求めます。
・ 0 + 0 = 00
・ 0 + 1 = 01
・ 1 + 0 = 01
・ 1 + 1 = 10
表にしてみましょう。
学習の目的
「半加算器」「全加算器」を理解する
2進数の加算を行う回路について学びましょう。
コンピュータに記録されたbit2つを加算した結果を求める回路です。
入力値が4パターンになるので、計算も以下の4パターンを求めます。
・ 0 + 0 = 00
・ 0 + 1 = 01
・ 1 + 0 = 01
・ 1 + 1 = 10
表にしてみましょう。
ここで、出力Cは繰り上がり(Carry)を表し、出力Sは合計(Sum)を表します。
さて、ここで論理回路の登場です。
でもさ、今までやった論理回路って、出力は一つだったよね。
そうですね。なので、複数の論理回路を組み合わせることで、半加算器を実現するんです。
あれ?そういえば、出力Cは、「論理積」と同じだ。
ほんとだ!!
そして、出力Sは「排他的論理和」じゃないか?
正解です。半加算器は、論理積と、排他的論理和を組み合わせてつくられるんです。
CPU(演算装置)に入っているんですよ。
複数の桁で加算を行う時は、下の桁からの繰り上がりを考慮しないといけません。
そのため、最下位桁以外は、3つの入力に対して計算を行います。
下の桁からの入力をCin、上の桁への繰り上げをCoutとします。
表を見ると複雑な気がするけど、単純に足し算なんだね。
入力の1の数が0個なら「00」、1個なら「01」。
2個なら「10」で、3個なら「11」だね。
これで、2進数の加算を行うことができるんです。
一番下の桁は繰り上がりはないので半加算器、それより上の桁は繰り上がりも考慮して、全加算器で値を求めます。
例えば、6ビットの加算を行う仕組みの図です。
左から計算を行うと思ってください。
全加算器の回路は、半加算器を2個と、論理和を使って表現できるんです。
これで、2進数の加算を行うことができるんです。
一番下の桁は繰り上がりはないので半加算器、それより上の桁は繰り上がりも考慮して、全加算器で値を求めます。
それでは用語を整理しましょう。
|
半加算器 |
2つの入力の値を加算し、その桁の値と繰り上がりを出力する回路。 |
|
全加算器 |
2つの入力の値と下の桁からの繰り上がりを加算し、その桁の値と繰り上がりを出力する回路。 |