組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路...

13
1 論理回路 9回 フリップフロップ http://www.info.kindai.ac.jp/LC 38号館4N-411 内線5459 [email protected] 組み合わせ回路と順序回路 組み合わせ回路 ある時刻の出力信号が、現在の入力信号だけで 決まる回路 順序回路 ある時刻の出力信号が、現在の入力信号だけで なく、過去の入力信号の影響も受ける回路 (回路 内にバッファ・メモリがある) 順序回路の例 7 8 9 4 5 6 1 2 3 戻る 0 次へ 9876 の順に 押すと手続き開始 暗証番号 9876 67896789同時押しではダメ 状態 定義3.1 (状態) 論理回路の入力の履歴 初期状態 状態1 状態0 1入力 0入力 状態11 状態10 1入力 0入力 状態01 状態00 1入力 0入力 順序回路の入出力 順序回路 = 組み合わせ回路 + メモリ 入力 : 外部から+以前の出力から 出力 : 外部へ+以降の入力へ 組み合わせ回路 メモリ 同期式順序回路 定義3.3 (同期式順序回路) クロックに同期して回路が動作する 組み合わせ回路 メモリ 順序回路 クロック信号

Upload: others

Post on 24-Feb-2020

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

1

論理回路

第9回フリップフロップ

http://www.info.kindai.ac.jp/LC38号館4階N-411 内線5459

[email protected]

組み合わせ回路と順序回路

組み合わせ回路

– ある時刻の出力信号が、現在の入力信号だけで決まる回路

順序回路

– ある時刻の出力信号が、現在の入力信号だけでなく、過去の入力信号の影響も受ける回路 (回路内にバッファ・メモリがある)

順序回路の例

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 (同期式順序回路)– クロックに同期して回路が動作する

組み合わせ回路

メモリ

順序回路

クロック信号

Page 2: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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へ

Page 3: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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ビットのメモリ

Page 4: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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

Page 5: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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にリセット

Page 6: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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 +

Page 7: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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になる

Page 8: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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変換回路

Page 9: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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フリップフロップ

Page 10: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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

Page 11: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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

Page 12: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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

Page 13: 組み合わせ回路と順序回路 論理回路組み合わせ回路と順序回路 組み合わせ回路 – ある時刻の出力信号が、現在の入力信号だけで 決まる回路

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