0+0=0, 0+1=1, 1+0=1, 1+1=102A,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]