0+0=0, 0+1=1, 1+0=1, 1+1=102
A,Bを入力,C,Sを出力とする2入力2出力,1ビットの加算回路を設計する:
A + B = 2×C + S, (A, B, C, S = 0 or 1)
| 半加算器の真理値表 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
C = A·B
S = A·B + A·B = A⊕B
| 全加算器の真理値表 | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
C0 = A·B + B·C1 + C1·A
S =
A·B·C
+
A·B·C
+
A·B·C
+
A·B·C
=
A·(B·C
+
B·C)
+
A·(B·C
+
B·C)
=
A·(B⊕C)
+
A·(B⊕C)
=
A⊕(B⊕C)
=
A⊕B⊕C
|
|
|---|---|
| Full Adder と Half Adder で構成した 2ビット加算回路 | |
|
| |
| 2ビット加算回路のタイムチャート | |
|
|---|
| 3ビット加算器 |
X - Y = X + (Yに対する補数)により,加算器を用いて減算を行うことができる.
| (1) | 符号ビットを含めて全体を4桁に揃える | X=0101, | Y =0011 |
|---|---|---|---|
| (2) | -YをYに対する2の補数により表現(=Y')する | Y'=1100+1=1101 | |
| (3) | X+Y'を求める.このとき,桁溢れは無視する | X+Y'=0101+1101=(1)0010 | |
| (4) | 得られた 0010 は,先頭ビットが0であるから正の数である. | X+Y'= 00102 = (2)10 | |
| (1) | 符号ビットを含めて全体を4桁に揃える | X=0011, | Y =0101 |
|---|---|---|---|
| (2) | -YをYに対する2の補数により表現(=Y') | Y'=1010+1=1011 | |
| (3) | X+Y'を求める. | X+Y'=0011+1011=1110 | |
| (4) | 得られた 1110 は先頭が1であるから,負数を合わす. | ||
| そこで,補数を求める | (X+Y')' = 0001+1 = 210 | ||
(B2 B1 B0) に対する2の補数との加算を行う.
Bに対する2の補数:
|
|---|
| 3ビット減算器 |
|
|
|
|---|---|---|
| 加算回路 | 減算回路 |
|
|---|
| 3ビット加減算器 |
|
|
|---|
01101101(2) + 01011101(2)
[1]
[2]