Document

論理回路
第9回 フリップフロップ
http://www.info.kindai.ac.jp/LC
38号館4階N-411 内線5459
[email protected]
組み合わせ回路と順序回路
 定義2.4
(組み合わせ回路)
– ある時刻の出力信号が、現在の入力信号だ
けで決まる回路
 定義3.2
(順序回路)
– ある時刻の出力信号が、現在の入力信号だ
けでなく、過去の入力信号の影響も受ける
回路 (回路内にバッファ・メモリがある)
順序回路の例
7
8
9
4
5
6
1
2
3
戻る
0
次へ
暗証番号
9876
9→8→7→6 の順に
押すと手続き開始
6→7→8→9や
6789同時押しではダメ
状態

定義3.1 (状態)
– 論理回路の入力の履歴
1入力 状態11
1入力 状態1
0入力 状態10
初期状態
1入力 状態01
0入力 状態0
0入力 状態00
順序回路の入出力

順序回路 = 組み合わせ回路 + メモリ
– 入力 : 外部から+以前の出力から
– 出力 : 外部へ+以降の入力へ
外
部
入
力
組み合わせ回路
メモリ
外
部
出
力
同期式順序回路

定義3.3 (同期式順序回路)
– クロックに同期して回路が動作する
順序回路
組み合わせ回路
メモリ
クロック信号
同期式順序回路の動作
入力 X
入力 Y
出力 X +Y
クロック
遅延
出力はクロックに
同期して変化
クロック時以外の
入力変化は影響無し
順序回路の状態遷移

定義3.4 (状態遷移関数)
– 順序回路の次の状態Q +
 現在の入力I
および現在の状態Q から決定
Q +=f (Q, I )
f :状態遷移関数
順序回路の出力

定義3.5 (順序回路の出力)
– 順序回路の出力O
 現在の入力I
および現在の状態Q から決定
O =g (Q, I )
g :状態遷移関数
状態遷移と出力
組み合わせ回路
順序回路
出力 O
h (I )
g (Q, I )
次の状態 Q +
無し
f (Q, I )
g,h : 出力関数
f : 状態遷移関数
有限オートマトン

定義3.6 (有限オートマトン)
– 以下の5項で定義する計算機械
有限個の状態
 有限個の入力
 状態遷移
 初期状態
 最終状態

1 状態1
1 0 0
初期状態
0
初期状態のとき
0が入力されたら
状態0へ
状態0
1
最終状態
順序機械

定義3.7 (順序機械)
– 以下の6項で定義する計算機械
有限個の状態
 有限個の入力
 状態遷移
 初期状態
 出力
 出力関数

初期状態のとき
0が入力されたら
1を出力し状態0へ
1/0 状態1
1/1
初期状態 0/0 0/1
0/1 状態0
1/0
入力,出力
状態遷移表, 状態遷移図
入力/出力
入力
現状態
次状態/出力
入力I
現状態q
0
1
q0
q1
q1 / 1
q0 / 0
q0 / 0
q1 / 1
状態
状態
0/1
q0
1/0
状態 q0 のときに 0 が入力されたら
1 を出力し状態 q1 へ
0/0
q1
1/1
状態遷移表と真理値表

遷移表は真理値表でも表現できる
入力
入力I
現状態q
0
1
q0
q1
q1 / 1
q0 / 0
q0 / 0
q1 / 1
状態 q0 のときに
0 が入力されたら
1 を出力し状態 q1 へ
I
0
0
1
1
q
q0
q1
q0
q1
出力
q+
O
q1
1
q0
0
q0
0
q1
1
ミーリマシンとムーアマシン

ミーリマシン(Mealy machine)
– 現状態Q と入力I で出力O が決まる
O = g (Q, I )

入力/出力
状態
状態
ムーアマシン(Moore machine)
– 現状態Q のみで出力O が決まる
O = g (Q )
状態
出力
入力
状態
出力
例題 : 順序機械と状態遷移図

初期状態から、1を偶数回入力すると1を、
奇数回入力すると0を出力する順序機械
ミーリマシン
0/0
1/1
q0
q1
0/0
1/0
ムーアマシン
0
1
q0/0
q1/0
1
0
q2/1
1
0
状態遷移表
現状態
ミーリ
マシン
q0
q1
現状態
ムーア
マシン
q0
q1
q2
次状態
I=0
I=1
q0
q1
q1
q0
次状態
I=0
I=1
q0
q1
q1
q2
q0
q1
出力
I=0
0
0
I=1
0
1
出力
0
0
1
双安定回路
高電位=値1
値0で安定
値1で安定
双安定回路
高電位=値0
値1で安定
値0で安定
1ビットを記憶可能
1ビットのメモリ
フリップフロップ

定義3.8 (フリップフロップ)
– 1ビットのメモリ

状態1または状態0を保持
Q
入力
クロック
フリップ
フロップ Q
状態Q と
Q の否定を出力
状態
状態0
状態1
Q
Q
0
1
1
0
SRフリップフロップ

Set-Reset フリップフロップ
– Set信号S およびReset信号R を入力
Set信号で1にセット、Reset信号で0にリセット
S
0
1
0
1
R
0
0
1
1
Q+
Q
1
0
-
現状維持
S
1にセット
R
0にリセット
入力11は禁止
SRFF
CK
Q
Q
SRフリップフロップの動作
入力 S
入力 R
出力 Q
出力 Q
クロック
S =1ならば
1にセット
R =1ならば
0にリセット
S =1,R =1ならば
値は不定
Dフリップフロップ

Delay / Data latch フリップフロップ
– Data信号D を入力
Data信号に出力を合わせる
D
0
1
Q+
0 0にリセット
1 1にセット
D DFF
CK
Q
Q
Dフリップフロップの動作
入力 D
出力 Q
出力 Q
クロック
D =1ならば
1にセット
D =0ならば
0にリセット
Tフリップフロップ

Toggle / Trigger フリップフロップ
– Toggle信号T を入力
Toggle信号で値を反転
T
0
1
Q+
Q 現状維持
Q 値を反転
T TFF
CK
Q
Q
Tフリップフロップの動作
入力 T
出力 Q
出力 Q
クロック
T =1ならば
値を反転
JKフリップフロップ

JK フリップフロップ
– Set信号J および Reset信号K を入力
Set信号で1にセット、Reset信号で0にリセット
Set信号,Reset信号共に入った場合は値反転
J
0
1
0
1
K
0
0
1
1
Q+
Q
1
0
Q
現状維持
J
1にセット
K
0にリセット
入力11は値反転
JKFF
CK
Q
Q
JKフリップフロップの動作
入力 J
入力 K
出力 Q
出力 Q
クロック
J =1ならば
1にセット
K =1ならば
0にリセット
J =1,K =1ならば
値反転
コラム: JKとは?

一説によれば Jack-King フリップフロップ
Jack,Kingが動かなければ(J=0,K=0)
Queenは現状維持
 Jackに求愛されれば(J=1)QueenはJackの元へ
 Kingに求愛されれば(K=1)QueenはKingの元へ
 Jack,Kingから同時に求愛されれば(J=1,K=1)
Queenは相手を替える

プリセット,クリア付フリップフロップ

プリセット,クリア付フリップフロップ
– 通常の入力(SR,D,T,JK)に加え、
Preset信号Pr とClear信号Clr を入力
Preset信号でクロックに関係無く1にセット
Clear信号でクロックに関係無く0にリセット
プリセット
クリア
直接値を
Clr Pr
Q
S
セットできない
SRFF
TFFには必須
R
Q
CK
プリセット,クリア付
Tフリップフロップの動作
入力 T
プリセット
クリア
出力 Q
出力 Q
クロック
T信号を入れても
不定のまま
クロックに関係無く
強制的に1にセット
強制的に
0にリセット
セット優先SRフリップフロップ

セット優先SRフリップフロップ
– Set信号S および Reset信号R を入力
Set信号で1にセット、Reset信号で0にリセット
Set信号,Reset信号共に入った場合は1にセット
S
0
1
0
1
R
0
0
1
1
Q+
Q
1
0
1
現状維持
S セット優先 Q
1にセット
SRFF
R
Q
CK
0にリセット
入力11は1にセット
問題: フリップフロップの動作

セット優先SRFFの動作を記入せよ
(遅延は無視してよい)
入力 S
入力 R
出力 Q
出力 Q
クロック
SRFFの特性展開表
S
0
1
0
1
R
0
0
1
1
Q+
Q
1
0
-
特性表
S
R
0
0
0
1
1
0
1
1
Q
0
1
0
1
0
1
0
1
Q+ Q+
0
1
1
0
0
1
0
1
1
0
1
0
-
特性展開表
JKFFの特性展開表
J
0
1
0
1
K
0
0
1
1
Q+
Q
1
0
Q
特性表
J
K
0
0
0
1
1
0
1
1
Q
0
1
0
1
0
1
0
1
Q+ Q+
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
特性展開表
問題 : 特性展開表
D,T フリップフロップの
特性展開表を作れ

D
0
1
Q
0
1
0
1
Q+
Q+
D
0
1
T
0
1
Q+
0
1
Q
0
1
0
1
T
0
1
Q+
Q+
Q
Q
Q+
SRFFの論理関数
S
0
1
0
1
R
0
0
1
1

Q+
Q+
Q
1
0
-
Q+
SR
Q
Q  S  R Q

Q  R  S Q
00 01 11 10
0 0 0 - 1
1 1 0 - 1
SR
Q
00 01 11 10
0 1 1 - 0
1 0 1 - 0
SRFFの論理回路
Q  S  R Q  S  R Q

SRFF
S
Q+
R
Q+

Q  R  S Q  R  S Q
SRFF
S
Q+
SRFF
S
Q+
R
Q+
Q+
R
ループがある
DFFの論理関数,論理回路
Q+
D
0
1
Q+
D
Q
0
1
0
1
0
0
0
1
1
1
Q+
D
Q
0
1
0
1
1
1
0
0
DFF

Q D

Q D
D
Q + ただしこの回路は
FFに求められる
Q + 値保持機能が無い
TFFの論理関数,論理回路
T
0
1
Q+
Q
Q
Q+
T
Q
0
1
0
0
1
1
1
0
Q+
T
Q
0
1
0
1
0
TFF
T

Q  T Q  T Q  T  Q

Q  T Q  T Q  T  Q
Q+
Q+
1
0
1
JKFFの論理関数
J
0
1
0
1

K
0
0
1
1
Q+
Q+
Q
1
0
Q
Q+
JK
Q
Q  J Q  K Q

Q  K Q  J Q
00 01 11 10
0 0 0 1 1
1 1 0 0 1
JK
Q
00 01 11 10
0 1 1 0 0
1 0 1 1 0
JKFFの論理回路
Q  J Q  K Q  J Q  K Q

Q  K Q  J Q  K Q  J Q

JKFF
JKFF
J
Q+ J
Q+
K
Q+ K
Q+
入力要求

定義3.9 (入力要求)
– FFの状態をQからQ +へ遷移するためは
んな入力をすればいいか?
例 : SRFFで、現状態がQ=0であるとき、
Q +=1にするためには S,R にどんな入力を
入れればいいか?
S=1, R=0を入れればQ +=1になる
ど
SRFFの入力要求表
SR
00
01
10
11
Q
0
1
0
1
0
1
0
1
Q+
0
1
0
0
1
1
-
Q
0
0
1
1
Q+
0
1
0
1
S R
0 -
S,R =0,0 または 0,1のとき
Q の遷移は 0→0
SRFFの入力要求表
SR
00
01
10
11
Q
0
1
0
1
0
1
0
1
Q+
0
1
0
0
1
1
-
Q
0
0
1
1
Q+
0
1
0
1
S
0
1
0
-
R
0
1
0
DFFの入力要求表
D
0
1
Q
0
1
0
1
Q+
0
0
1
1
Q
0
0
1
1
Q+
0
1
0
1
D
0
1
0
1
TFFの入力要求表
T
0
1
Q
0
1
0
1
Q+
0
1
1
0
Q
0
0
1
1
Q+
0
1
0
1
T
0
1
1
0
問題 : 入力要求表
JK
00
01
10
11
Q
0
1
0
1
0
1
0
1
Q+
0
1
0
0
1
1
1
0
JKFFの入力要求表を
作成せよ

Q
0
0
1
1
Q+
0
1
0
1
J K
SRFFによるDFFの設計
DFF
D
D→SR
変換回路
S
Q
Q
Q
Q
SRFF
R
回路全体がDFFとなるように
D→SR変換回路を作成する
DFFの拡大入力要求表
SRフリップフロップ
入力
出力
D→SR変換回路
入力
D
出力
Q
0
0
1
0
1
1
S
0
0
1
-
入力
R
1
0
0
Q+
0
0
1
1
出力
Dフリップフロップ
D→SR変換回路
D→SR変換回路
入力
D
0
1
S
出力
0
0
0
1
1
-
D
0
1
1
0
0
Q
Q
S
R
0
0
-
1
0
1
0
1
0
1
-
0
SD
RD
D
0
1
R
Q
0
1
SRFFを用いたDFF
SD
RD
DFF
D
S
Q
Q
Q
Q
SRFF
R
変換回路作成手順
使用する回路の入出力
1.
2.
3.
4.
目的の回路の
入出力表作成
使用する回路の
入力要求表作成
変換回路の論理
関数を求める
回路を実装
入力
出力
変換回路の入出力
入力
出力
Q
Q+
0
1
0
1
入力
目的の回路の入出力
出力
SRFFによるTFFの設計
TFF
T
T→SR
変換回路
S
Q
Q
Q
Q
SRFF
R
回路全体がTFFとなるように
T→SR変換回路を作成する
TFFの拡大入力要求表
SRフリップフロップ
入力
出力
T→SR変換回路
入力
T
出力
Q
0
0
1
0
1
1
S
0
1
0
入力
R
0
0
1
Q+
0
1
1
0
出力
Tフリップフロップ
T→SR変換回路
T→SR変換回路
入力
T
0
1
S
出力
0
0
-
1
1
0
T
0
0
1
0
1
Q
Q
S
R
0
0
-
1
-
0
0
1
0
1
0
1
S  T Q
R  T Q
T
0
1
R
Q
0
1
SRFFを用いたTFF
S  T Q
R  T Q
TFF
S
T
Q
Q
Q
Q
SRFF
R
問題 : TFFによるDFFの設計

TFFを用いてDFFを設計せよ
DFF
D
D→T
変換回路
T
Q
Q
Q
Q
TFF
回路全体がDFFとなるように
D→T変換回路を作成する
クロック入力付SRFF

クロック信号が1のときのみ動作
クロック付SRFF
S
S
CK
R
Q
Q
Q
Q
SRFF
R
レジスタ/ラッチ

同期したフリップフロップの集まり
– n ビットの一斉読み出し、書き込みが可能
D0
D1
D
Q
DFF
CK
D2
D
Q
DFF
CK
D3
D
Q
DFF
CK
D
Q
DFF
CK
クロック
Q0
Q1
Q2
Q3
シフタ

同期したフリップフロップの集まり
– クロック入力ごとに、値が隣のFFに移動する
D
Di  Qi 1 (1  i ) D0  D
D0 Q0
DFF
D1 Q1
DFF
D2 Q2
DFF
D3 Q3
DFF
CK
CK
CK
CK
クロック
Q0
Q1
Q2
Q3
シフタの動作
入力 D
出力 Q0
出力 Q1
出力 Q2
クロック
遅延
Q1の値が1クロック
遅れでQ2に伝播
シフタ-レジスタ

シフタとレジスタの組み合わせ
I0
I1
I2
I3
マルチ
プレクサ
S
D0 Q0
DFF
D1 Q1
DFF
D2 Q2
DFF
D3 Q3
DFF
CK
CK
CK
CK
クロック
Q0
Q1
Q2
Q3
シフタ-レジスタ

シフタとレジスタの組み合わせ
S=0 ⇒ レジスタ
I0
I1
I2
I3
S
D0 Q0
DFF
D1 Q1
DFF
D2 Q2
DFF
D3 Q3
DFF
CK
CK
CK
CK
クロック
Q0
Q1
Q2
Q3
シフタ-レジスタ

シフタとレジスタの組み合わせ
S=1 ⇒ シフタ
I0
I1
I2
I3
S
D0 Q0
DFF
D1 Q1
DFF
D2 Q2
DFF
D3 Q3
DFF
CK
CK
CK
CK
クロック
Q0
Q1
Q2
Q3
非同期式カウンタ

同期していないフリップフロップの集まり
– 入力が1になった数を計測する
SW
Q
T TFF
Q
Q
T TFF
Q
Q0
Q
T TFF
Q
Q1
Q
T TFF
Q
Q2
Q3
非同期式カウンタの動作
入力 SW
出力 Q0
出力 Q1
出力 Q2
出力 Q3
遅延
遅延*3
遅延*2
遅延*4
同期式カウンタ

同期したフリップフロップの集まり
– 入力が1になった数を計測する
SW
T Q
TFF
CK
T Q
TFF
CK
T Q
TFF
CK
T Q
TFF
CK
クロック
Q0
Q1
Q2
Q3
同期式カウンタの動作
スイッチを
押している間
カウンタ作動
入力 SW
出力 Q0
出力 Q1
出力 Q2
クロック
遅延
遅延
遅延
演習問題 : 状態遷移図

下の状態遷移表から状態遷移図を作成せよ
入力I
現状態q
0
1
q0
q1
q2
q3
q1 / 0
q1 / 0
q2 / 0
q0 / 0
q2 / 1
q3 / 0
q3 / 0
q1 / 1
0/0
q1
0/0
1/0
0/0 1/1
q0
1/1
q2
0/0
1/0
q3
演習問題: フリップフロップの動作

SRFFの動作を記入せよ
(遅延は無視してよい)
入力 S
入力 R
出力 Q
出力 Q
クロック
演習問題: SRFFによるJKFFの設計
JKFF
J
K
JK→SR
変換回路
S
Q
Q
Q
Q
SRFF
R
回路全体がJKFFとなるように
T→SR変換回路を作成する
JKFFの拡大入力要求表
SRフリップフロップ
入力
出力
JK→SR変換回路
入力
J
0
0
1
1
K
0
1
0
1
出力
Q
S
R
Q+
0
0
-
0
1
-
0
1
0
0
-
0
1
0
1
0
0
1
0
1
1
-
0
1
0
1
0
1
1
0
1
0
入力
出力
JKフリップフロップ
JK→SR変換回路
S
JK→SR変換回路
入力
JK
00
01
10
11
JK
Q
出力
00
01
11
10
Q
S
R
0
0
0
1
1
0
0
-
1
-
0
0
-
1
-
0
00
01
11
10
0
-
-
0
0
1
0
1
1
0
0
0
-
1
0
1
0
1
0
1
-
0
0
1
0
1
0
1
R
JK
Q
S  J Q
R  K Q
SRFFを用いたJKFF
S  J Q
R  K Q
J
JKFF
S
Q
Q
Q
Q
SRFF
K
R