組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路...
Post on 24-Feb-2020
29 Views
Preview:
TRANSCRIPT
1
論理回路
第9回フリップフロップ
http://www.info.kindai.ac.jp/LC38号館4階N-411 内線5459
takasi-i@info.kindai.ac.jp
組み合わせ回路と順序回路
組み合わせ回路
– ある時刻の出力信号が、現在の入力信号だけで決まる回路
順序回路
– ある時刻の出力信号が、現在の入力信号だけでなく、過去の入力信号の影響も受ける回路 (回路内にバッファ・メモリがある)
順序回路の例
7 8 9
4 5 6
1 2 3
戻る 0 次へ
9→8→7→6 の順に
押すと手続き開始
暗証番号
9876
6→7→8→9や6789同時押しではダメ
状態
• 定義3.1 (状態)– 論理回路の入力の履歴
初期状態
状態1
状態0
1入力
0入力
状態11
状態10
1入力
0入力
状態01
状態00
1入力
0入力
順序回路の入出力
• 順序回路 = 組み合わせ回路 + メモリ
– 入力 : 外部から+以前の出力から
– 出力 : 外部へ+以降の入力へ
組み合わせ回路
外部入力
外部出力
メモリ
同期式順序回路
• 定義3.3 (同期式順序回路)– クロックに同期して回路が動作する
組み合わせ回路
メモリ
順序回路
クロック信号
2
同期式順序回路の動作
入力 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項で定義する計算機械
• 有限個の状態
• 有限個の入力
• 状態遷移
• 初期状態
• 終状態 初期状態
状態0
状態1
終状態
0
11
1
00
初期状態のとき
0が入力されたら状態0へ
順序機械
• 定義3.7 (順序機械)– 以下の6項で定義する計算機械
• 有限個の状態
• 有限個の入力
• 状態遷移
• 初期状態
• 出力
• 出力関数
初期状態
状態0
状態1
0/1
1/11/0
1/0
0/10/0
入力,出力
初期状態のとき
0が入力されたら
1を出力し状態0へ
3
状態遷移表, 状態遷移図
入力I現状態q 0 1
q0 q1 / 1 q0 / 0q1 q0 / 0 q1 / 1
状態 状態
入力/出力入力
現状態 次状態/出力
q0 q1
0/1
0/0
1/0 1/1
状態 q0 のときに 0 が入力されたら
1 を出力し状態 q1 へ
状態遷移表と真理値表
• 遷移表は真理値表でも表現できる
入力I現状態q 0 1
q0 q1 / 1 q0 / 0q1 q0 / 0 q1 / 1
入力 出力
I q q + O0 q0 q1 10 q1 q0 01 q0 q0 01 q1 q1 1
状態 q0 のときに
0 が入力されたら
1 を出力し状態 q1 へ
ミーリマシンとムーアマシン
• ミーリマシン(Mealy machine)– 現状態Q と入力I で出力O が決まる
O = g (Q, I )
• ムーアマシン(Moore machine)– 現状態Q のみで出力O が決まる
O = g (Q )
状態 状態
入力/出力
状態
出力
状態
出力
入力
例題 : 順序機械と状態遷移図
• 初期状態から、1を偶数回入力すると1を、奇数回入力すると0を出力する順序機械
q0 q1 0/01/0
0/01/1
q0/00 q1/0
q2/1
1
11 0
0
ミーリマシン
ムーアマシン
状態遷移表
現状態次状態 出力
I=0 I=1 I=0 I=1q0 q0 q1 0 0q1 q1 q0 0 1
ミーリ
マシン
現状態次状態
出力I=0 I=1
q0 q0 q1 0q1 q1 q2 0q2 q0 q1 1
ムーア
マシン
双安定回路
高電位=値1値0で安定
値1で安定
高電位=値0値1で安定
値0で安定
双安定回路
1ビットを記憶可能
1ビットのメモリ
4
フリップフロップ
• フリップフロップ
– 1ビットのメモリ
• 状態1または状態0を保持
フリップ
フロップ入力
Q
Q
状態Q と
Q の否定を出力
クロック 10状態001状態1
QQ状態
SRフリップフロップ
• Set-Reset フリップフロップ
– Set信号S およびReset信号R を入力
Set信号で1にセット、Reset信号で0にリセット
S R Q +
0 0 Q1 0 10 1 01 1 -
現状維持
1にセット
0にリセット
SRFFS
R
Q
QCK
入力11は禁止
SRフリップフロップの動作
入力 R
出力 Q
出力 Q
クロック
入力 S
S =1ならば
1にセット
R =1ならば
0にリセット
S =1,R =1ならば
値は不定
Dフリップフロップ
• Delay / Data latch フリップフロップ
– Data信号D を入力
Data信号に出力を合わせる
D Q +
0 01 1
0にリセット
1にセット
DFFDQ
QCK
Dフリップフロップの動作
入力 D
出力 Q
出力 Q
クロック
D =1ならば
1にセット
D =0ならば
0にリセット
Tフリップフロップ
• Toggle / Trigger フリップフロップ
– Toggle信号T を入力
Toggle信号で値を反転
T Q +
0 Q1 Q
現状維持
値を反転
DFFTQ
QCK
5
Tフリップフロップの動作
入力 T
出力 Q
出力 Q
クロック
T =1ならば
値を反転
JKフリップフロップ
• JK フリップフロップ
– Set信号J および Reset信号K を入力
Set信号で1にセット、Reset信号で0にリセット
Set信号,Reset信号共に入った場合は値反転
J K Q +
0 0 Q1 0 10 1 01 1 Q
現状維持
1にセット
0にリセット
JKFFJ
K
Q
QCK
入力11は値反転
JKフリップフロップの動作
入力 K
出力 Q
出力 Q
クロック
入力 J
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にリセット
SRFFS
R
Q
QCK
Clr Pr
プリセットクリア
直接値を
セットできない
TFFには必須
プリセット,クリア付Tフリップフロップの動作
プリセット
出力 Q
出力 Q
クロック
入力 T
クリア
T信号を入れても不定のまま
クロックに関係無く
強制的に1にセット
強制的に
0にリセット
6
セット優先SRフリップフロップ
• セット優先SRフリップフロップ
– Set信号S および Reset信号R を入力
Set信号で1にセット、Reset信号で0にリセット
Set信号,Reset信号共に入った場合は1にセット
S R Q +
0 0 Q1 0 10 1 01 1 1
現状維持
1にセット
0にリセット
セット優先
SRFFS
R
Q
QCK
入力11は1にセット
問題: フリップフロップの動作
• セット優先SRFFの動作を記入せよ(遅延は無視してよい)
入力 R
出力 Q
出力 Q
クロック
入力 S
SRFFの特性展開表
S R Q +
0 0 Q1 0 10 1 01 1 -
S R Q Q + Q +
0 00 0 11 1 0
0 10 0 11 0 1
1 00 1 01 1 0
1 10 - -1 - -特性表
特性展開表
JKFFの特性展開表
J K Q +
0 0 Q1 0 10 1 01 1 Q
J K Q Q + Q +
0 00 0 11 1 0
0 10 0 11 0 1
1 00 1 01 1 0
1 10 1 01 0 1特性表
特性展開表
問題 : 特性展開表
• D,T フリップフロップの
特性展開表を作れ
D Q Q + Q +
001
101
T Q Q + Q +
001
101
D Q +
0 01 1
T Q +
0 Q1 Q
SRFFの論理関数
S R Q +
0 0 Q1 0 10 1 01 1 -
1-0111-000
10110100SRQ
Q +
0-1010-110
10110100SRQ
Q +
7
SRFFの論理回路
S
R
Q +
Q +
SRFF
S
R
Q +
Q +
SRFF
S
R
Q +
Q +
SRFF
DFFの論理関数,論理回路
D Q +
0 01 1
Q + Q +
10110010D
Q
01101010D
Q
D Q +
Q +
DFF
ただしこの回路は
FFに求められる
値保持機能が無い
TFFの論理関数,論理回路
T Q +
0 Q1 Q
Q + Q +
01110010T
Q
10101010T
Q
T Q +
Q +
TFF
JKFFの論理関数
J K Q +
0 0 Q1 0 10 1 01 1 Q
1001111000
10110100JKQ
Q +
0110100110
10110100JKQ
Q +
JKFFの論理回路
J
K
Q +
Q +
JKFFJ
K
Q +
Q +
JKFF
入力要求
• 定義3.9 (入力要求)– FFの状態をQからQ +へ遷移するためは どんな入力をすればいいか?
例 : SRFFで、現状態がQ=0であるとき、
Q +=1にするためにはS,R にどんな入力を
入れればいいか?
S=1, R=0を入れればQ +=1になる
8
SRFFの入力要求表
S R Q Q +
0 00 01 1
0 10 01 0
1 00 11 1
1 10 -1 -
Q Q + S R0 0 0 -0 11 01 1
S,R =0,0 または 0,1のとき
Q の遷移は 0→0
SRFFの入力要求表
S R Q Q +
0 00 01 1
0 10 01 0
1 00 11 1
1 10 -1 -
Q Q + S R0 0 0 -0 1 1 01 0 0 11 1 - 0
DFFの入力要求表
Q Q + D0 0 00 1 11 0 01 1 1
D Q Q +
00 01 0
10 11 1
TFFの入力要求表
Q Q + T0 0 00 1 11 0 11 1 0
T Q Q +
00 01 1
10 11 0
問題 : 入力要求表
J K Q Q +
0 00 01 1
0 10 01 0
1 00 11 1
1 10 11 0
Q Q + J K0 00 11 01 1
• JKFFの入力要求表を
作成せよ
SRFFによるDFFの設計
回路全体がDFFとなるように
D→SR変換回路を作成する
DFF
D
Q
QSRFF
S
R
Q
Q
D→SR変換回路
9
DFFの拡大入力要求表SRフリップフロップ
入力 出力
D→SR変換回路
入力 出力
D Q S R Q +
00 0 - 01 0 1 0
10 1 0 11 0 - 1
入力 出力
Dフリップフロップ
D→SR変換回路
D→SR変換回路
入力 出力
D Q S R
00 0 -1 0 1
10 1 01 - 0
-0110010D
Q
S
0110-010D
Q
R
SRFFを用いたDFF
SRFFS
R
Q
Q
DFF
D Q
Q
変換回路作成手順
1. 目的の回路の入出力表作成
2. 使用する回路の入力要求表作成
3. 変換回路の論理関数を求める
4. 回路を実装
使用する回路の入出力
入力 出力
変換回路の入出力
入力 出力
Q Q +
0101
入力 出力
目的の回路の入出力
SRFFによるTFFの設計
SRFFS
R
Q
Q
T→SR変換回路
TFF
T
Q
Q
回路全体がTFFとなるように
T→SR変換回路を作成する
TFFの拡大入力要求表SRフリップフロップ
入力 出力
T→SR変換回路
入力 出力
T Q S R Q +
00 0 - 01 - 0 1
10 1 0 11 0 1 0
入力 出力
Tフリップフロップ
10
T→SR変換回路
T→SR変換回路
入力 出力
T Q S R
00 0 -1 - 0
10 1 01 0 1
0-110010T
Q
S
1010-010T
Q
R
SRFFを用いたTFF
QSRFF
S
R
Q
Q
TFF
TQ
問題 : DFFによるTFFの設計
• DFFを用いてTFFを設計せよ
DFFDQ
Q
T→D変換回路
TFF
T
Q
Q
回路全体がTFFとなるように
T→D変換回路を作成する
クロック入力付SRFF
• クロック信号が1のときのみ動作
QSRFF
S
R
Q
Q
クロック付SRFF
SQ
R
CK
レジスタ/ラッチ
• 同期したフリップフロップの集まり
– n ビットの一斉読み出し、書き込みが可能
DFFD Q
CKDFF
D Q
CKDFF
D Q
CKDFF
D Q
CK
D0 D1 D2 D3
クロック
Q0 Q1 Q2 Q3
シフタ
• 同期したフリップフロップの集まり
– クロック入力ごとに、値が隣のFFに移動する
DFFD3 Q3
CKDFF
D2 Q2
CKDFF
D1 Q1
CKDFF
D0 Q0
CK
D
クロック
Q0 Q1 Q2 Q3
11
シフタの動作
出力 Q0
出力 Q1
出力 Q2
クロック
入力 D
遅延 Q1の値が1クロック遅れでQ2に伝播
シフタ-レジスタ
• シフタとレジスタの組み合わせ
DFFD0 Q0
CK
I0
クロック
I1
Q0
DFFD1 Q1
CK
I2
Q1
DFFD2 Q2
CK
I3
Q2
DFFD3 Q3
CK
Q3
S
マルチプレクサ
シフタ-レジスタ
• シフタとレジスタの組み合わせ
クロック
DFFD0 Q0
CK
I0 I1
Q0
DFFD1 Q1
CK
I2
Q1
DFFD2 Q2
CK
I3
Q2
DFFD3 Q3
CK
Q3
S
S=0 ⇒レジスタ
シフタ-レジスタ
• シフタとレジスタの組み合わせ
DFFD0 Q0
CK
I0
クロック
I1
Q0
DFFD1 Q1
CK
I2
Q1
DFFD2 Q2
CK
I3
Q2
DFFD3 Q3
CK
Q3
S
S=1 ⇒シフタ
非同期式カウンタ
• 同期していないフリップフロップの集まり
– 入力が1になった数を計測する
TFFTQ
Q
Q0
TFFTQ
Q
Q1
TFFTQ
Q
Q2
TFFTQ
Q
Q3
SW
非同期式カウンタの動作
出力 Q0
出力 Q1
出力 Q2
入力 SW
出力 Q3
遅延
遅延*2遅延*3
遅延*4
12
同期式カウンタ
• 同期したフリップフロップの集まり
– 入力が1になった数を計測する
TFFT Q
CK
Q0 Q1 Q2 Q3
SW
クロック
TFFT Q
CKTFFT Q
CKTFFT Q
CK
同期式カウンタの動作
出力 Q0
出力 Q1
出力 Q2
クロック
入力 SW
遅延
遅延
遅延
スイッチを
押している間
カウンタ作動
演習問題 : 状態遷移図
• 下の状態遷移表から状態遷移図を作成せよ
q1
q2
q3q0
入力I現状態q 0 1
q0 q1 / 0 q2 / 1q1 q1 / 0 q3 / 0q2 q2 / 0 q3 / 0q3 q0 / 0 q1 / 1
演習問題 : 状態遷移図
• 下の状態遷移表から状態遷移図を作成せよ
q1
q2
q3q0
0/0
1/1 1/0
0/0
0/0 1/0
0/01/1
入力I現状態q 0 1
q0 q1 / 0 q2 / 1q1 q1 / 0 q3 / 0q2 q2 / 0 q3 / 0q3 q0 / 0 q1 / 1
演習問題: フリップフロップの動作
• SRFFの動作を記入せよ(遅延は無視してよい)
入力 R
出力 Q
出力 Q
クロック
入力 S
演習問題: フリップフロップの動作
• SRFFの動作を記入せよ(遅延は無視してよい)
入力 R
出力 Q
出力 Q
クロック
入力 S
13
演習問題:SRFFによるJKFFの設計
• 回路全体がJKFFとなるようにT→SR変換回路を作成せよ
SRFFS
R
Q
Q
JK→SR変換回路
JKFF
JQ
QK
SRフリップフロップ
入力 出力
JK→SR変換回路
入力 出力
J K Q S R Q +
0 00 0 - 01 - 0 1
0 10 0 - 01 - 0 0
1 00 1 0 11 - 0 1
1 10 1 0 11 0 1 0
入力 出力
JKQ 0 0 0 1 1 1 1 0
0 0 0 1 1
1 - 0 0 -
S
JKQ 0 0 0 1 1 1 1 0
0 - - 0 0
1 0 1 1 0
R
Q
SRFFS
R
Q
Q
JKFF
J Q
K
top related