半加算器の特徴は
・1bitどうしの加算のみ
・和(SUM)と桁上がり(CARRY)の出力は二つ
※2bit以上の値を扱うときは全加算器を使用
2進数の1bitどうしの加算は以下の4パターン
①0+0=0
②0+1=1
③1+0=1
④1+1=0+CARRY
CARRYってなんやねんと思うかもしれませんが、ただ桁上がりを表しているだけです。
10進数は0~9の値しか使えないので、8+2=10となり、桁上がりで10の位に1がたちますね
それと同じで2進数は0と1の値しか使えないので1+1=0+CARRYとなり、
CARRYが1のときに桁あがりしたよってことになります。
文章だとわかりづらいので下に真理値表と回路図をかいてみました。
入力(被加算と加算)を「A」,「B」、和を「SUM」、桁上がり(CARRY)を「carry_out」とします。
B | A | SUM | carry_out |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
真理値表からSUMとcarry_outを式で表すと
となります。(「+」はOR、「*」はANDを表しています)
この二つの式を回路図で表すと
となります。ちょっと回路が複雑に見えるので
上の回路図をXOR(排他的論理和)を使って表すと
となり、スッキリ小さな回路になります。
コメント