Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
組み合わせ回路と順序回路
組み合わせ回路
– ある時刻の出力信号が、現在の入力信号だけで決まる回路
順序回路
– ある時刻の出力信号が、現在の入力信号だけでなく、過去の入力信号の影響も受ける回路 (回路内にバッファ・メモリがある)
順序回路の例
7 8 9
4 5 6
1 2 3
戻る 0 次へ
9→8→7→6 の順に
押すと手続き開始
暗証番号
9876
6→7→8→9や6789同時押しではダメ
状態
定義: 状態
– 論理回路の入力の履歴
初期状態
状態1
状態0
1入力
0入力
状態11
状態10
1入力
0入力
状態01
状態00
1入力
0入力
順序回路の入出力
順序回路 = 組み合わせ回路 + メモリ
– 入力 : 外部から+以前の出力から
– 出力 : 外部へ+以降の入力へ
組み合わせ回路
外部入力
外部出力
メモリ
同期式順序回路
定義: 同期式順序回路
– クロックに同期して回路が動作する
組み合わせ回路
メモリ
順序回路
クロック信号
同期式順序回路の動作
入力 X
入力 Y
出力 X +Y
クロック
遅延
出力はクロックに
同期して変化
クロック時以外の
入力変化は影響無し
順序回路の出力
定義: 順序回路の出力
– 順序回路の出力O現在の入力I および現在の状態Q から決定
O = f (Q, I )
f : 出力関数
順序回路の状態遷移
定義: 状態遷移関数
– 順序回路の次の状態Q +
現在の入力I および現在の状態Q から決定
Q += g (Q, I )
g : 状態遷移関数
状態遷移と出力
組み合わせ回路 順序回路
出力 O h (I ) f (Q, I )
次の状態 Q + 無し g (Q, I )
f,h : 出力関数
g : 状態遷移関数
有限オートマトン 定義: 有限オートマトン
– 以下の5項で定義する計算機械
有限個の状態
有限個の入力
状態遷移
初期状態
終状態 初期状態
状態0
状態1
終状態
0
11
1
00
初期状態のとき
0が入力されたら状態0へ
順序機械 定義: 順序機械
– 以下の6項で定義する計算機械
有限個の状態
有限個の入力
状態遷移
初期状態
出力
出力関数
初期状態
状態0
状態1
0/1
1/11/0
1/0
0/10/0
入力,出力
初期状態のとき
0が入力されたら
1を出力し状態0へ
状態遷移表, 状態遷移図
入力I現状態q 0 1q0 q1 / 1 q0 / 0q1 q0 / 0 q1 / 1
状態 状態
入力/出力入力
現状態 次状態/出力
q0 q1
0/1
0/0
1/0 1/1
状態 q0 のときに 0 が入力されたら
1 を出力し状態 q1 へ
q1 / 1
0/1
状態遷移表と真理値表
遷移表は真理値表でも表現できる
入力I現状態q 0 1q0 q1 / 1 q0 / 0q1 q0 / 0 q1 / 1
入力 出力
I Q Q + O0 q0 q1 10 q1 q0 01 q0 q0 01 q1 q1 1
q1 / 11q1
状態 q0 のときに
0 が入力されたら
1 を出力し状態 q1 へ
ミーリマシンとムーアマシン
ミーリマシン(Mealy machine)– 現状態 Q と入力 I で出力O が決まる
O = f (Q, I )
ムーアマシン(Moore machine)– 現状態 Q のみで出力O が決まる
O = f (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ビットのメモリ
フリップフロップ
フリップフロップ
– 1ビットのメモリ
状態1または状態0を保持
フリップ
フロップ入力
状態Q と
Q の否定を出力
クロック 10状態001状態1
状態 QQ
Q
Q
SRフリップフロップ
Set-Reset フリップフロップ
– Set信号S およびReset信号R を入力
Set信号で1にセット、Reset信号で0にリセット
S R Q +
0 0 Q1 0 10 1 01 1 -
現状維持
1にセット
0にリセット
入力11は禁止
SRFFS
RCK
Q
Q
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にセット
DFFDCK
Q
Q
Dフリップフロップの動作
入力 D
出力 Q
出力 Q
クロック
D =1ならば
1にセット
D =0ならば
0にリセット
Tフリップフロップ
Toggle / Trigger フリップフロップ
– Toggle信号T を入力
Toggle信号で値を反転
T Q +
0 Q1 Q
現状維持
値を反転
TFFTCK
Q
Q
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にリセット
入力11は値反転
JKFFJ
KCK
Q
Q
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は相手を替える
クロック入力付SRFF
クロック信号が1のときのみ動作
QSRFF
S
R
Q
Q
クロック付SRFF
SQ
R
CK
プリセット,クリア付フリップフロップ
プリセット,クリア付フリップフロップ
– 通常の入力(SR,D,T,JK)に加え、Preset信号Pr とClear信号Clr を入力
Preset信号でクロックに関係無く1にセット
Clear信号でクロックに関係無く0にリセット
直接値を
セットできない
TFFには必須SRFF
S
RCK
Clr Pr
プリセットクリア
Q
Q
プリセット,クリア付Tフリップフロップの動作
プリセット
出力 Q
出力 Q
クロック
入力 T
クリア
T信号を入れても不定のまま
クロックに関係無く
強制的に1にセット
強制的に
0にリセット
セット優先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にリセット
入力11は1にセット
セット優先
SRFFS
RCK
Q
Q
セット優先SRフリップフロップの動作
入力 R
出力 Q
出力 Q
クロック
入力 S
S =1ならば
1にセット
R =1ならば
0にリセット
S =1,R =1ならば
1 にセット
SRFFの特性展開表
S R Q +
0 0 Q1 0 10 1 01 1 -
S R Q Q + Q +
0 001
0 101
1 001
1 101特性表
特性展開表
----
010110100110
JKFFの特性展開表
J K Q +
0 0 Q1 0 10 1 01 1 Q
J K Q Q + Q +
0 001
0 101
1 001
1 101特性表
特性展開表
0110
010110100110
SRFFの論理関数
S R Q +
0 0 Q1 0 10 1 01 1 -
1-0111-00010110100SR
QQ +
0-1010-11010110100SR
QQ +
QSRQQRSQ
SRFFの論理回路
S
R
Q +
Q +
SRFF
S
R
Q +
Q +
SRFF
S
R
Q +
Q +
SRFF
QSRQQRSQ
QSR
QRS
ループがある
DFFの論理関数,論理回路
D Q +
0 01 1
Q + Q +
10110010D
Q
01101010D
Q
D Q +
Q +
DFF
ただしこの回路は
FFに求められる
値保持機能が無いDQDQ
TFFの論理関数,論理回路
T Q +
0 Q1 Q
Q + Q +
01110010T
Q
10101010T
Q
T Q +
Q +
TFF
QTQT
QTQTQQTQTQ
JKFFの論理関数
J K Q +
0 0 Q1 0 10 1 01 1 Q
100111100010110100JK
QQ +
011010011010110100JK
QQ +
QJQKQQKQJQ
JKFFの論理回路
J
K
Q +
Q +
JKFFJ
K
Q +
Q +
JKFF
QJQK
QKQJ
QJQKQQKQJQ
入力要求
定義: 入力要求
– FFの状態をQからQ +へ遷移するためは どんな入力をすればいいか?
例 : SRFFで、現状態がQ=0であるとき、
Q +=1にするためには S,R にどんな入力を
入れればいいか?
S=1, R=0を入れればQ +=1になる
SRFFの入力要求表S R Q Q +
0 00 01 1
0 10 01 0
1 00 11 1
1 10 -1 -
Q Q + S R0 00 11 01 1
S,R =0,0 または 0,1のとき
Q の遷移は 0→0
000 1
000 0
00 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 11 01 1
1 00 1- 0
DFFの入力要求表
Q Q + D0 00 11 01 1
D Q Q +
00 01 0
10 11 1
01
1
0
TFFの入力要求表
Q Q + T0 00 11 01 1
T Q Q +
00 01 1
10 11 0
11
0
0
SRFFによるDFFの設計
回路全体がDFFとなるように
D→SR変換回路を作成する
DFF
D
Q
QSRFF
S
R
Q
Q
D→SR変換回路
DFFの拡大入力要求表
出力入力
D→SR変換回路
出力入力
SRフリップフロップ
D Q Q +
00 01 0
10 11 1
入力 出力
Dフリップフロップ
0-0110-0RS
D→SR変換回路D→SR変換回路
入力 出力
D Q S R
00 0 -1 0 1
10 1 01 - 0
-0110010D
Q
S
0110-010D
Q
R
DRDS
SRFFを用いたDFF
SRFFS
R
Q
Q
DFF
D Q
Q
DRDS
変換回路作成手順
1. 目的の FF の特性展開表作成
2. 使用する FF の入力要求表作成
3. 変換回路の論理関数を求める
4. 回路を実装
使用する FF の入出力
入力 出力
変換回路の入出力
入力 出力
Q Q +
0101
入力 出力
目的の FF の入出力
SRFFによるTFFの設計
回路全体がTFFとなるように
T→SR変換回路を作成する
TFF
T
Q
QSRFF
S
R
Q
Q
T→SR変換回路
TFFの拡大入力要求表
10010--0RS
出力入力
SRフリップフロップ
出力入力
T→SR変換回路
T Q Q +
00 01 1
10 11 0
入力 出力
Tフリップフロップ
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
QTRQTS
SRFFを用いたTFF
QSRFF
S
R
Q
Q
TFF
TQ
QTRQTS
レジスタ (register) 同期したフリップフロップの集まり
– n ビットの一斉読み出し、書き込みが可能
クロック
DFFD Q
CKDFF
D Q
CKDFF
D Q
CKDFF
D Q
CK
D0 D1 D2 D3
Q0 Q1 Q2 Q3
シフタ (shifter) 同期したフリップフロップの集まり
– クロック入力ごとに、値が隣のFFに移動する
DFFD3 Q3
DFFD2 Q2
DFFD1 Q1
DFFD0 Q0
D
クロック
Q0 Q1 Q2 Q3
)1( 01 DDiQD ii
CKCKCKCK
シフタの動作
出力 Q0
出力 Q1
出力 Q2
クロック
入力 D
遅延 Q0の値が1クロック遅れでQ1に伝播
シフト-レジスタ シフタとレジスタの組み合わせ
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 ⇒シフタ
非同期式カウンタ (counter) 同期していないフリップフロップの集まり
– 入力が1になった数を計測する
TFFTQ
Q
Q0
TFFTQ
Q
Q1
TFFTQ
Q
Q2
TFFTQ
Q
Q3
SW
非同期式カウンタの動作
出力 Q0
出力 Q1
出力 Q2
入力 SW
出力 Q3
遅延
遅延*2遅延*3
遅延*4
同期式カウンタ 同期したフリップフロップの集まり
– 入力が1になった数を計測する
TFFT Q
CK
Q0 Q1 Q2 Q3
SW
クロック
TFFT Q
CKTFFT Q
CKTFFT Q
CK
同期式カウンタの動作
出力 Q0
出力 Q1
出力 Q2
クロック
入力 SW
遅延
遅延
遅延
スイッチを
押している間
カウンタ作動
演習問題 : 状態遷移図
下の状態遷移表から状態遷移図を作成せよ
q1
q2
q3q0
0/0
1/1 1/0
0/0
0/0 1/01/10/0
入力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によるJKFFの設計
SRFFS
R
Q
Q
JK→SR変換回路
JKFF
JQ
QK
回路全体がJKFFとなるように
JK→SR変換回路を作成する
RS
出力入力
SRフリップフロップ
JKFFの拡大入力要求表
出力入力
JK→SR変換回路
J K Q Q +
0 00 01 1
0 10 01 0
1 00 11 1
1 10 11 0
入力 出力
JKフリップフロップ
10-00--0
10010-01
JK→SR変換回路JK→SR変換回路
入力 出力
J K Q S R
0 00 0 -1 - 0
0 10 0 -1 0 1
1 00 1 01 - 0
1 10 1 01 0 1
-00-11100010110100J K
QS
0110100--010110100J K
QR
QKRQJS
SRFFを用いたJKFF
QSRFF
S
R
Q
Q
JKFF
J Q
K
QKRQJS