1
論理回路学
7. 前半の復習
Part.2
佐藤証 ⻄9-613
[email protected]
10進数⇔2進数変換
77=1001101(2)
2
3
2進数の加減算
27=0011011(2)
77=1001101(2)
104=01101000(2)
-77=10110011(2)
1101000(2)
=64+32+8=104
00011011(2)
=16+8+2+1=27
27=00011011(2)
-77=10110011(2)
00110010(2) 2の補数
=32+16+2=50
 減算は2の補数
を加える
演習1 (解答)
 次式を2進数に変換し,2の補数を⽤いて計算しなさい
37=0100101(2)
27=0011011(2)
27=00011011(2)
64=01000000(2)
-64=11000000(2)
1000000(2)
=64
11011011(2)の補数
00100101(2) =37
答 -37
4
5
全加算器と半加算器
 2進数の加算では各桁で、2bitの
⼊⼒と1bitの桁上がりの計3bit
の加算(全加算器)が必要
 最下位は桁上りがないので2bit
の加算(半加算器)でよい
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
Ci Co
0 0
1 0
0 0
1 1
0 0
1 1
0 1
1 1
S
0
1
1
0
1
0
0
1
A
0
0
1
1
A B Ci
S
Co
B
0
1
0
1
Co S
0 0
0 1
0 1
1 0
6
複数桁の加算器
1 0
0 0
1 1
1
1
A3 B3
A2 B2
A1 B1
A0 B0
A B Ci
FA
Co S
A B Ci
FA
Co S
A B Ci
FA
Co S
A B
HA
Co S
0
0
S3
S2
1
1
1
1
S1
桁上げ
S0
1
0
1011+0011=1110
4桁⽬ 0 1 0
0
Ci A B
FA
Co S
0
1
3桁⽬
1 0 0
2桁⽬
1 1 1
1桁⽬
0 1 1
1
Ci A B
FA
Co S
1
Ci A B
FA
Co S
0
Ci A B
FA
Co S
0
1
1
1
1
0
7
演習2(解答)
 並列加算器と直列加算器で次式の計算の過程を⽰しなさい
1011+0001=1100
1 0
0 0
1
A1 B1
A0 B0
A B Ci
FA
Co S
A B Ci
FA
Co S
A B Ci
FA
Co S
A B
HA
Co S
0
S3
S2
4桁⽬ 0 1 0
Ci A B
FA
Co S
1
1
S1
1
1
0
1
A2 B2
0
0
1 0
A3 B3
0
S0
0
3桁⽬
1 0 0
2桁⽬
1 1 0
1桁⽬
0 1 1
1
Ci A B
FA
Co S
1
Ci A B
FA
Co S
0
Ci A B
FA
Co S
0
1
1
1
1
0
0
8
組合せ回路と順序回路
 組合せ回路の出⼒はその時点の⼊⼒だけで決定する
 順序回路は前の状態を内部に保存するメモリを持ち、出⼒は⼊⼒
と内部状態で決定する
 並列加算器は組合せ回路、直列加算器は順序回路
⼊⼒信号
出⼒信号
内部状態
 フリップフロップ
S
0
0
1
1
R
0
1
0
1
Q
Q
0
1
Q
Q
1
0
動作
保持
Reset
Set
禁止
J
0
0
1
1
K
0
1
0
1
Q
Q
0
1
Q
Q
Q
1
0
Q
動作
保持
Reset
Set
反転
T Q Q 動作
0 Q Q 保持
1 Q Q 反転
T
0
0
1
1
D
0
1
0
1
Q
Q
Q
0
1
Q 動作
Q
保持
Q
1
取込
0
9
RSフリップフロップ
 R=S=1とすると出⼒はQ=Q=0となる
 次にR=S=0とすると通常は状態の保持だが、Sが早く0になるか
Rが早く0になるかによって出⼒が異なってしまう
SがRよりも早く0に変化した場合
1 R
0
Q
0
0 R
Q
0
1 R
Q
1 S
0
Q
0 S
どっちにころぶ
かわからない
B
0
1
0
1
Q
0 S
1
Q
RがSよりも早く0に変化した場合
0 R
A
0
0
1
1
1
F
1
0
0
0
1 S
1
Q
0
Q
0 R
0 S
1
Q
0
Q
RS-FFでS=R=1は禁⽌
10
RSフリップフロップ




R=S=0(保持)のときの回路の状態を調べる
NOR⼊⼒の⼀⽅が0なので、他⽅の⼊⼒を反転するNOT
データが0→1→0→1と回るループを作っている
SRAMの1ビットの記憶回路はこのNOTのループ
R
S
R
S
0
0
0
0
1
0
0
1
Q
Q
Q
Q
R
Q
R
Q
0
0
0
1
1
0
0
0
Q
S
Q
S
A B NOR
0 0 1
0 1 0
1 0 0
1 1 0
11
クロック入力端子付きFF
 クロック(の⽴ち上がりまたは⽴下り)に同期して出⼒が変化
 クロックが⼊っていない時の変化は無視される
 出⼒の変化には遅延があることに注意
無視
無視
無視
不定
禁止
無視
無視
ゲート入出力遅延
 ⼊⼒信号の変化から出⼒変化までは遅延時間がある
遅延
×
遅延
遅延
○
遅延
12
演習3 (解答)
13
 次の回路のタイムチャートを完成させなさい
状態遷移図
 順序回路を状態遷移図で表記して動作を解析,あるいは状態遷移図か
ら順序回路を設計するときにはFFの値が「状態」を表す
 ⼊⼒と出⼒によってその状態間がどう遷移するかを調べる
 CS実験第⼀J1課題の回路の動作を調べる
- ⼊⼒はE,出⼒はQ1Q0
- 状態はQ1Q0(D-FFから直接なので出⼒と⼀致)
- 2bitなので最⼤で4状態だが,全ての組合せを取らない場合もある
14
15
状態遷移図
 組み合わせ回路の部分をE=0とE=1の場合に分けて簡単にする。
Q1
Q0
状態遷移図
 真理値表からE,Q1Q0とD1D0の関係を求める
前の状態を保持
E
0
1
1
1
1
Q 1 Q 0 D1 D0
Q1 Q0 Q1 Q0
0 0 0 1
0 1 1 0
1 0 1 1
1 1 0 0
Q1
Q0
D1
D0
(D1D0)2=(Q1Q0)2+1 mod 4
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
D1
D0
16
17
状態遷移図
 現在の状態Q1Q0と次の状態D1D0から状態遷移図を作る





クロックTが⼊る毎に状態が変化する
状態はQ1Q0={00,01,10,11}の4つ
⼊⼒はE={0,1}
E=0ならば状態は変わらない
この回路では状態Q1Q0がそのまま出
⼒になっている。
E Q1 Q0 D 1 D 0
0 Q1 Q0 Q1 Q0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 1
1 1 1 0 0
0/00
0/01
1/00
1/01
1/11
0/11
1/10
E/Q1Q0
⼊⼒
0/10
現在の出⼒
小テストの説明
 ネガティブエッジJK-FFのタイムチャートを完成させなさい
○が付いているので
Tの⽴下りで変化
することに注意
J
0
0
1
1
K
0
1
0
1
Q
Q
0
1
Q
Q
Q
1
0
Q
動作
保持
Reset
Set
反転
 マスタースレーブJK-FFのタイムチャートを完
成させなさい
2つのFFは
1/2クロック
ずれて変化する
Tの⽴ち上がりに同期
Tの⽴ち上がりに同期
T
J
K
Q
Set
Set Reset Reset 反転 保持 保持
小テストの説明
 セット優先のRS-FFの状態遷移図を完成させなさい
現在の状態
QQ
01
10
例として
QQ=10
のとき
SR=10→01
と変化するとQQがどう
なるかを調べる
①
10/01
11/01
00/01
01/01
⼊⼒ S R
00 01 10 11
01 01 10 10
10 01 10 10
00/10
10/10
11/10
01/10
SR/QQ
①
②
A B F
0
0
1
1
0
1
0
1
③
1
1
1
0
⑤
④
③
②
④
過渡的にQQ=11
となる点に注意
⑤
小テストの説明
現在の状態
QQ
01
10
現在の状態
QQ
01
10
現在の状態
QQ
01
10
現在の状態
QQ
01
10
⼊⼒ S R
00 01 10 11
01 01 10 10
10 01 10 10
SR/QQ
状態QQが01→01と元に
戻る条件SRとその時の
出⼒QQを書き写す
00/01
01/01
10/01
11/01
⼊⼒ S R
00 01 10 11
01 01 10 10
10 01 10 10
QQが01→10と変化する
場合
⼊⼒ S R
00 01 10 11
01 01 10 10
10 01 10 10
QQが10→01と変化する
場合
01/10
⼊⼒ S R
00/10
10/10
11/10
00 01 10 11
01 01 10 10
10 01 10 10
QQが10→10と戻る場合
全部まとめて状態遷移図のできあがり
00/01
01/01
10/01
11/01
01/10
00/10
10/10
11/10
21
状態遷移図
 組合せ回路部分の動作から現在の状態Q1Q0と次の状態D1D0を求める
Q1
Q0
D1
D0
Q1
D1
Q0
D0
0/00
E Q1 Q0 D 1 D 0
0 Q1 Q0 Q1 Q0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 1
1 1 1 0 0
0/01
1/00
停⽌状態
1/01
1/11
(D1D0)2=(Q1Q0)2+1 mod 4
E/Q1Q0
⼊⼒
0/11
1/10
0/10
現在の出⼒