• 検索結果がありません。

論理回路

N/A
N/A
Protected

Academic year: 2021

シェア "論理回路"

Copied!
71
0
0

読み込み中.... (全文を見る)

全文

(1)

論理回路

第 8 回 フリップフロップ

http://www.info.kindai.ac.jp/LC

38 号館 4 階 N-411 内線 5459

[email protected]

(2)

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

組み合わせ回路

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

順序回路

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

(3)

順序回路の例

7 8 9

4 5 6

1 2 3

戻る 0 次へ

9→8→7→6 の順に 押すと手続き開始 暗証番号

9876

6→7→8→9 や

6789 同時押しではダメ

(4)

状態

定義 : 状態

– 論理回路の入力の履歴

初期状態

状態 1

状態 0 1 入力

0 入力

状態 11 状態 10 1 入力

0 入力

状態 01 状態 00 1 入力

0 入力

(5)

順序回路の入出力

順序回路 = 組み合わせ回路 + メモ リ

– 入力 : 外部から + 以前の出力から – 出力 : 外部へ + 以降の入力へ

組み合わせ回路

外部入力 外部出力

メモリ

(6)

同期式順序回路

定義 : 同期式順序回路

– クロックに同期して回路が動作する

組み合わせ回路

メモリ 順序回路

クロック信号

(7)

同期式順序回路の動作

入力 X 入力 Y 出力 X +Y

クロック

遅延 出力はクロックに

同期して変化

クロック時以外の 入力変化は影響無し

(8)

順序回路の出力

定義 : 順序回路の出力

– 順序回路の出力 O

現在の入力 I および現在の状態 Q から決

O = f

(Q, I )

f : 出力関数

(9)

順序回路の状態遷移

定義 : 状態遷移関数

– 順序回路の次の状態 Q +

現在の入力 I および現在の状態 Q から決

Q

+

= g (Q, I )

g : 状態遷移関数

(10)

状態遷移と出力

組み合わせ回路 順序回路 出力 O

h (I ) f (Q, I )

次の状態 Q +

無し g (Q, I )

f,h : 出力関数

g : 状態遷移関数

(11)

有限オートマトン

定義 : 有限オートマトン

– 以下の 5 項で定義する計算機 械

有限個の状態

有限個の入力

状態遷移

初期状態

最終状態

初期状態

状態 0 状態 1

最終状態 0

1 1

1 0 0

初期状態のとき 0 が入力された

ら状態 0 へ

(12)

順序機械

定義 : 順序機械

– 以下の 6 項で定義する計算機械

有限個の状態

有限個の入力

状態遷移

初期状態

出力

出力関数

初期状態

状態 0 状態 1

0/1 1/1 1/0

1/0 0/0 0/1

入力 , 出力 初期状態のとき

0 が入力されたら 1 を出力し状態 0

(13)

状態遷移表 , 状態遷移図

入力 I 現状態

q

0 1

q

0

q

1

/ 1 q

0

/ 0 q

1

q

0

/ 0 q

1

/ 1

状態 状態

入力 / 出力 入力

現状態 次状態 / 出力

q0 0/1 q1 0/0

1/0 1/1

状態 q0 のときに 0 が入力されたら 1 を出力し状態 q1

q

1

/ 1

0/1

(14)

状態遷移表と真理値表

遷移表は真理値表でも表現できる

入力 I 現状態

q

0 1

q

0

q

1

/ 1 q

0

/ 0 q

1

q

0

/ 0 q

1

/ 1

入力 出力 I Q Q + O

0 q0 q1 1

0 q1 q0 0

1 q0 q0 0

1 q1 q1 1

q

1

/ 1

q1 1

状態 q0 のときに 0 が入力されたら

1 を出力し状態 q1

(15)

ミーリマシンとムーアマシン

ミーリマシン (Mealy machine)

– 現状態 Q と入力 I で出力 O が決まる

O = f (Q, I )

ムーアマシン (Moore machine)

– 現状態 Q のみで出力 O が決まる

O = f (Q )

状態 状態

入力 / 出力

状態 出力

状態 出力 入力

(16)

例題 : 順序機械と状態遷移 図

初期状態から、 1 を偶数回入力すると

1 を、奇数回入力すると 0 を出力する 順序機械

q0 q1 0/0 1/0

0/0

1/1

q0/0

0 q1/0

q2/1 1

1

1 0

0 ミーリマシン

ムーアマシン

(17)

状態遷移表

現状態 次状態 出力

I=0 I=1 I=0 I=1

q0 q0 q1 0 0

q1 q1 q0 0 1

ミーリ マシン

現状態 次状態 I=0 I=1 出力

q0 q0 q1 0

q1 q1 q2 0

q2 q0 q1 1

ムーア マシン

(18)

双安定回路

高電位 = 値 1

値 0 で安定 値 1 で安定

高電位 = 値 0

値 1 で安定 値 0 で安定

双安定回路

1 ビットを記憶可能

1 ビットのメモリ

(19)

フリップフロップ

フリップフロップ

– 1 ビットのメモリ

状態 1 または状態 0 を保持

フリップ

入力 フロップ 状態 Q

Q の否定を出力

クロック 状態 0 0 1

0 状態 1 1

状態

(20)

SR フリップフロップ

Set-Reset フリップフロップ

– Set 信号 S および Reset 信号 R を入力

Set 信号で 1 にセット、 Reset 信号で 0 にリ セット

S R Q

+

0 0 Q

1 0 1

0 1 0

1 1 -

現状維持 1 にセット 0 にリセット

入力 11 は禁止

S

SRFF

R

CK

(21)

SR フリップフロップの動作

入力 R 出力 Q 出力 Q クロック

入力 S

S =1 ならば 1 にセット

R =1 ならば 0 にリセッ

S =1,R =1 ならば 値は不定

(22)

D フリップフロップ

Delay / Data latch フリップフロップ

– Data 信号 D を入力

Data 信号に出力を合わせる

D Q

+

0 0

1 1

0 にリセット 1 にセット

D

DFF CK

(23)

D フリップフロップの動作

入力 D 出力 Q 出力 Q クロック

D =1 ならば 1 にセット

D =0 ならば 0 にリセッ

(24)

T フリップフロップ

Toggle / Trigger フリップフロップ

– Toggle 信号 T を入力 Toggle 信号で値を反転

T Q

+

0 Q

1 Q

現状維持 値を反転

T

TFF CK

(25)

T フリップフロップの動作

入力 T 出力 Q 出力 Q クロック

T =1 ならば 値を反転

(26)

JK フリップフロップ

JK フリップフロップ

– Set 信号 J および Reset 信号 K を入力 Set 信号で 1 にセット、 Reset 信号で 0 にリ

セット

Set 信号 ,Reset 信号共に入った場合は値反

J K Q

+

0 0 Q

1 0 1

0 1 0

1 1 Q

現状維持 1 にセット 0 にリセット

入力 11 は値反転

J

JKFF

K

CK

(27)

JK フリップフロップの動作

入力 K 出力 Q 出力 Q クロック

入力 J

J =1 ならば 1 にセット

K =1 ならば 0 にリセッ

J =1,K =1 ならば 値反転

(28)

コラム : 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 は相手を替える

(29)

クロック入力付 SRFF

クロック信号が 1 のときのみ動作

SRFF Q S

R

Q Q クロック付 SRFF

S Q

R CK

(30)

プリセット , クリア付フリップ フロップ

プリセット , クリア付フリップフロッ

– 通常の入力 (SR,D,T,JK) に加え、    

  Preset 信号 Pr と Clear 信号 Clr を入力 Preset 信号でクロックに関係無く 1 にセッ

Clear 信号でクロックに関係無く 0 にリセッ

ト 直接値を

セットできない TFF には必須

S

SRFF

R

CK Clr Pr プリセット

クリア

(31)

プリセット , クリア付

T フリップフロップの動作

プリセット

出力 Q 出力 Q クロック

入力 T

クリア

T 信号を入れても

不定のまま クロックに関係無 く

強制的に 1 にセッ ト

強制的に 0 にリセッ

(32)

セット優先 SR フリップフ ロップ

セット優先 SR フリップフロップ

– Set 信号 S および Reset 信号 R を入力 Set 信号で 1 にセット、 Reset 信号で 0 にリ

セット

Set 信号 ,Reset 信号共に入った場合は 1 に

S R Q

セット +

0 0 Q

1 0 1

0 1 0

1 1 1

現状維持 1 にセット 0 にリセット

入力 11 は 1 にセット

セット優先

SRFF

S

R

CK

(33)

セット優先 SR フリップフロップ の動作

入力 R 出力 Q 出力 Q クロック

入力 S

S =1 ならば 1 にセット

R =1 ならば 0 にリセッ

S =1,R =1 ならば 1 にセット

(34)

SRFF の特性展開表

S R Q +

0 0 Q

1 0 1

0 1 0

1 1 -

S R Q Q + Q +

0 0 0

1

0 1 0

1

1 0 0

1

1 1 0

特性表 1

特性展開表

- -

- -

0 1

0 1

1 0

1 0

0 1

1 0

(35)

JKFF の特性展開表

J K Q +

0 0 Q

1 0 1

0 1 0

1 1 Q

J K Q Q + Q +

0 0 0

1

0 1 0

1

1 0 0

1

1 1 0

特性表 1

特性展開表

0 1

1 0

0 1

0 1

1 0

1 0

0 1

1 0

(36)

SRFF の論理関数

S R Q +

0 0 Q

1 0 1

0 1 0

1 1 -

1 -

0 1

1

1 -

0 0

0

10 11

01

SR

00

Q

Q +

0 -

1 0

1

0 -

1 1

0

10 11

01

SR

00

Q

Q +

(37)

SRFF の論理回路

S

R

Q +

Q + SRFF

S

R

Q +

Q + SRFF

S

R

Q +

Q + SRFF

ループがある

(38)

DFF の論理関数 , 論理回路

D Q +

0 0

1 1

Q + Q +

1 0

1

1 0

0

1

D

0

Q

0 1

1

0 1

0

1

D

0

Q

D Q +

Q + DFF

ただしこの回路は FF に求められる 値保持機能が無い

(39)

TFF の論理関数 , 論理回路

T Q +

0 Q

1 Q

Q + Q +

0 1

1

1 0

0

1

T

0

Q

1 0

1

0 1

0

1

T

0

Q

T Q +

Q + TFF

(40)

JKFF の論理関数

J K Q +

0 0 Q

1 0 1

0 1 0

1 1 Q

1 0

0 1

1

1 1

0 0

0

10 11

01

JK

00

Q

Q +

0 1

1 0

1

0 0

1 1

0

10 11

01

JK

00

Q

Q +

(41)

JKFF の論理回路

J

K

Q +

Q +

JKFF J

K

Q +

Q + JKFF

(42)

入力要求

定義 : 入力要求

– FF の状態を Q から Q + へ遷移するためは どんな入力をすればいいか?

例 : SRFF で、現状態が Q=0 であるとき、

Q +=1 にするためには S,R にどんな入力を 入れればいいか?

S=1, R=0 を入れれば Q +=1 になる

(43)

SRFF の入力要求表

S R Q Q

+

0 0 0 0

1 1

0 1 0 0

1 0

1 0 0 1

1 1

1 1 0 -

1 -

Q Q

+

S R

0 0

0 1

1 0

1 1

S,R =0,0 または 0,1 のとき Q の遷移は 0→0

0 0 1 0

0 0 0 0

0

0 0 -

(44)

SRFF の入力要求表

S R Q Q

+

0 0 0 0

1 1

0 1 0 0

1 0

1 0 0 1

1 1

1 1 0 -

1 -

Q Q

+

S R

0 0 0 -

0 1

1 0

1 1

1 0

0 1

- 0

(45)

DFF の入力要求表

Q Q

+

D

0 0

0 1

1 0

1 1

D Q Q

+

0 0 0

1 0

1 0 1

1 1 0

1

1

0

(46)

TFF の入力要求表

Q Q

+

T

0 0

0 1

1 0

1 1

T Q Q

+

0 0 0

1 1

1 0 1

1 0 1

1

0

0

(47)

SRFF による DFF の設計

回路全体が DFF となるように D→SR 変換回路を作成する

DFF

D

Q SRFF Q

S R

Q Q D→SR

変換回路

(48)

DFF の拡大入力要求表

出力 入力

D→SR 変換回路

出力 入力

SR フリップフロップ

D Q Q +

0 0 0

1 0

1 0 1

1 1

入力 出力

D フリップフロップ

0 -

0 1

1 0

- 0

R S

(49)

D→SR 変換回路

D→SR 変換回路

入力 出力

D Q S R

0 0 0 -

1 0 1

1 0 1 0

1 - 0

- 0

1

1 0

0

1

D

0

Q

S

0 1

1

0 -

0

1

D

0

Q

R

(50)

SRFF を用いた DFF

S SRFF R

Q Q DFF

D Q

Q

(51)

変換回路作成手順

1.

目的の FF の

特性展開表作 成

2.

使用する FF の 入力要求表作成

3.

変換回路の論理 関数を求める

4.

回路を実装

使用する FF の入出力

入力 出力

変換回路の入出力

入力 出力

Q Q +

0 1 0 1

入力 出力

目的の FF の入出力

(52)

SRFF による TFF の設計

回路全体が TFF となるように T→SR 変換回路を作成する

TFF

T

Q SRFF Q

S R

Q Q T→SR

変換回路

(53)

TFF の拡大入力要求表

1 0

0 1

0 -

- 0

R S

出力 入力

SR フリップフロップ

出力 入力

T→SR 変換回路

T Q Q +

0 0 0

1 1

1 0 1

1 0

入力 出力

T フリップフロップ

(54)

T→SR 変換回路

T→SR 変換回路

入力 出力

T Q S R

0 0 0 -

1 - 0

1 0 1 0

1 0 1

0 -

1

1 0

0

1

T

0

Q

S

1 0

1

0 -

0

1

T

0

Q

R

(55)

SRFF を用いた TFF

SRFF Q S

R

Q Q TFF

T Q

(56)

レジスタ (register)

同期したフリップフロップの集まり

n ビットの一斉読み出し、書き込みが可能

クロック

D DFFQ CK

D DFFQ CK

D DFFQ CK

D DFFQ CK

D0 D1 D2 D3

Q0 Q1 Q2 Q3

(57)

シフタ (shifter)

同期したフリップフロップの集まり

– クロック入力ごとに、値が隣の FF に移動 する

D3DFFQ3 D2DFFQ2

D1DFFQ1 D0DFFQ0

D

クロック

Q0 Q1 Q2 Q3

CK CK

CK CK

(58)

シフタの動作

出力 Q0 出力 Q1 出力 Q2 クロック

入力 D

遅延 Q0 の値が 1 クロッ ク遅れで Q1 に伝

(59)

シフト - レジスタ

シフタとレジスタの組み合わせ

DDFF0 Q0

CK

I0

クロック

I1

Q0

DDFF1 Q1

CK

I2

Q1

DDFF2 Q2

CK

I3

Q2

DDFF3 Q3

CK

Q3 S

マルチプレク

(60)

シフト - レジスタ

シフタとレジスタの組み合わせ

クロック

DDFF0 Q0

CK

I0 I1

Q0

DDFF1 Q1

CK

I2

Q1

DDFF2 Q2

CK

I3

Q2

DDFF3 Q3

CK

Q3 S

S=0 ⇒ レジスタ

(61)

シフト - レジスタ

シフタとレジスタの組み合わせ

DDFF0 Q0

CK

I0

クロック

I1

Q0

DDFF1 Q1

CK

I2

Q1

DDFF2 Q2

CK

I3

Q2

DDFF3 Q3

CK

Q3 S

S=1 ⇒ シフタ

(62)

非同期式カウンタ (counter)

同期していないフリップフロップの集 まり

– 入力が 1 になった数を計測する

T TFFQ Q

Q0

T TFFQ Q

Q1

T TFFQ Q

Q2

T TFFQ Q

Q3 SW

(63)

非同期式カウンタの動作

出力 Q0 出力 Q1 出力 Q2 入力 SW

出力 Q3

遅延

遅延 *2

遅延 *3

遅延 *4

(64)

同期式カウンタ

同期したフリップフロップの集まり

– 入力が 1 になった数を計測する

T QTFF CK

Q0 Q1 Q2 Q3

SW

クロック

T QTFF CK

T QTFF CK

T QTFF CK

(65)

同期式カウンタの動作

出力 Q0 出力 Q1 出力 Q2 クロック 入力 SW

遅延

遅延

遅延

スイッチを 押している間 カウンタ作動

(66)

演習問題 : 状態遷移図

下の状態遷移表から状態遷移図を作成せ よ

q1

q2

q3 q0

0/0

1/1 1/0

0/0

0/0 1/0

0/0 1/1

入力 I

現状態 q

0 1

q

0

q

1

/ 0 q

2

/ 1

q

1

q

1

/ 0 q

3

/ 0

q

2

q

2

/ 0 q

3

/ 0

q

3

q

0

/ 0 q

1

/ 1

(67)

演習問題 : フリップフロップの 動作

SRFF の動作を記入せよ

( 遅延は無視してよい )

入力 R 出力 Q 出力 Q クロック

入力 S

(68)

演習問題 : SRFF による JKFF の 設計

S SRFF R

Q Q JK→SR

変換回路 JKFF

J

Q K Q

回路全体が JKFF となるように

JK→SR 変換回路を作成する

(69)

R S

出力 入力

SR フリップフロップ

JKFF の拡大入力要求表

出力 入力

JK→SR 変換回路

J K Q Q +

0 0 0 0

1 1

0 1 0 0

1 0

1 0 0 1

1 1

1 1 0 1

1 0

入力 出力

JK フリップフロップ

1 0

- 0

0 -

- 0

1 0

0 1

0 -

0 1

(70)

JK→SR 変換回路

JK→SR 変換回路

入力 出力

J K Q S R

0 0 0 0 -

1 - 0

0 1 0 0 -

1 0 1

1 0 0 1 0

1 - 0

1 1 0 1 0

1 0 1

- 0

0 -

1

1 1

0 0

0

10 11

01

J K

00

Q

S

0 1

1 0

1

0 0

- -

0

10 11

01

J K

00

Q

R

(71)

SRFF を用いた JKFF

SRFF Q S

R

Q Q JKFF

J Q

K

参照

関連したドキュメント

[r]

• ネット:0個以上のセルのポートをワイヤーを使って結んだも

As soon as an Analytic Engine exists, it will necessarily guide the future course of the

[r]

Whenever any result is sought by its aid, the question will arise—By what course of calculation can these results be arrived at by the machine in the shortest time. — Charles

Whenever any result is sought by its aid, the question will arise—By what course of calculation can these results be arrived at by the machine in the shortest time. — Charles

 

( 内部抵抗0Ωの 理想信号源