加算器の設計 1)1 桁の 2 進0

加算器の設計
1)1 桁の
2 進0,1に対する加算
0
0
1
+0
+1
+0
0
1
1
1
+1
10
○ 真理値表
入力 X,Y、出力を和 S、桁上げ C
○加算器の論理関数
S = XY ∨ XY = X ⊕ Y
C = XY
○論理回路
○
(Half Adder)
→下位からの桁上げを考慮しない
1ビット加算器
2)下位からの桁上げを考慮した加算器
○i 桁目の真理値表
入力:Xi,Yi,Ci-1、
出力:和 Si、桁上げ Ci
○論理関数
S i = X i ⊕ Yi ⊕ Ci −1
Ci = ( X i ⊕ Yi )Ci −1 ∨ X iYi
○論理回路
○
(Full Adder)
→下位からの桁上げを考慮した 1 ビッ
ト加算器
○ n桁の加算器
減算器の設計
1)1 桁の
2 進0,1に対する減算
0
1
1
−0
−1
−0
0
0
1
0
−1
1(借り)
○ 真理値表
入力:X,Y、出力:差 D、借り B
○減算器の論理関数
D = XY ∨ XY = X ⊕ Y
B = XY
○論理回路
○
(Half Subtractor)
→下位への貸しを考慮しない
1ビット減算器
2)下位への貸しを考慮した減算器
○i 桁目の真理値表
入力:Xi,Yi,Bi-1、
出力:差 Di、借り Bi
○論理関数
Di = X i ⊕ Yi ⊕ Bi −1
Bi = X iYi ∨ ( X i ⊕ Yi ) Bi −1
○論理回路
○
(Full Subtractor)
→下位からの借りを考慮した
1 ビット減算器
○ n桁の減算器←加算器と同様
☆補数を用いて負の数を表す
→減算器を用いず減算を
で行う
(b)補数による減算
○n桁の2進数 a,b の減算 a−b
→a+(−b)
○2の補数表現→ −b:2n−b
(1) a ≥ b の場合(n=7)
1)通常の減算
1101010
−0011101
1001101
2)補数による減算
106
−29
77
1101010
+1100011 ←−29 の補数表現
11001101
○最上位より生じた桁上げは無視し、結
果は正数
(2) a 〈 b の場合
1)通常の減算
1101010
−1110010
10001000
2)補数による減算
106
−114
−8
1101010
+0001110 ←−114 の補数表現
1111000 ←−8 の補数表現
○桁上げがなく結果は負の数
○符号ビットがある場合
01101010
+11100011 ←−29 の補数表現
101001101 ←あふれあり
01101010
+10001110 ←−114 の補数表現
11111000 ←あふれ無し
☆符号ビットも数値ビットと一緒に演
算可能
○あふれビット(carry bit):Cf
○加算による減算の計算手順
(1)bの2の補数 bc を求める
(2)a と bc の和を加算により求める
(3)Cfを無視して結果を得る
(C)補数器と減算器
○ 2の補数を用いる減算器
○ 加減算器
加算:S=1,D=0、減算:S=0,D=1