論理回路 - 近畿大学Set信号,Reset信号共に入った場合は値反転 JKQ+ 00Q 101 010...

Preview:

Citation preview

論理回路

第8回 フリップフロップ

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同時押しではダメ

状態

定義: 状態

– 論理回路の入力の履歴

初期状態

状態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

Recommended