31
論理回路第10順序回路入門

順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

論理回路第10回

順序回路入門

Page 2: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

順序回路:1つ以上の入力とすくなくとも1つの出力を持ち、

各出力の論理値が現在の状態と現在の入力の組合せによって決まる回路。

出力

状態

入力 0

S0

1

S0

0

S1

0

S1

1

S1

0

S2

1

S2

1

S3

0

S1

1

S1

0

S2

1

S2

...

...

S3

入力 出力

状態

入力 出力

組合せ回路 順序回路

組合せ回路

組合せ回路

時系列

現在の入力が決まると

(遅延はあるが)出力は一意に決まる入力の履歴(状態)と現在の入力で出力が決まる

0 0 0 0 0 0 1 0 0 0 0 1

⇒1が3個入ると出力1を出す回路

Page 3: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

1 2 3 4

9 0 1 2

6 7 8 9

3 4 5 6

2

34

56

1

7

組合せ式と順序式のアナロジー:2種類の鍵

番号の与え方の順番は関係なし

その時点で番号が揃っていればOK

その時点での入力だけで鍵の開放が決まる

⇒組合せ式機械

番号の与え方に順番がある

リセットして、右、左、右…に番号を合わせる

入力シークエンスで鍵が開放される。

⇒順序機械

内部で過去の履歴を記憶

A)シリンダー錠B)ダイヤル式鍵

Page 4: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

87654321 XXXXXXXXF ⊕⊕⊕⊕⊕⊕⊕=

パリティ回路(組合せ回路で)

8個の入力が同時に得られる場合

)))))))((((((( 87654321 XXXXXXXXF ⊕⊕⊕⊕⊕⊕⊕=

パリティ回路(順序回路で)

入力が1個づつ到着する場合、間隔分の遅延回路と1個のXORで

1X F⊕遅延

直ちに結果が得られる、ゲート数は多い

結果は最後に出る。同じ回路の使い回し。出力はその都度変化。

それぞれの入力に対し出力は多様な値をとる。

2X3X4X5X6X7X8X

Page 5: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

遅延と記憶

遅延AB F

A

B

F∆

論理ゲートは遅延がある1/2

Page 6: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

論理ゲートは遅延がある2/2

X X’

Time

X

Time

X’

ε1 ε2

遅延

普通はゲートの遅延がドミナントだが、高速LSIでは配線/容量による遅延も無視できなくなる。

Page 7: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

回路内にフィードバックループが存在すると

X

X

?

Time

X

NOTゲートが奇数個のループは発振する。

偶数個の場合は?

Page 8: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

2個のNOTゲートのループ回路の振る舞い

X

Y

1 1 00 0 0 11

X=1 で安定 X=0 で安定双安定な回路⇒外部の刺激で安定状態を制御したい

⇒フリップフロップ⇒記憶回路

⇒記憶回路を含む回路を順序回路と言う

Page 9: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

2個のNORゲートのループ

PQ

SR

S,Rの入力が“0”の時のゲート出力は?

(1) P=0とした時;0

0

0

P=0 and Q=1で安定1

(2) P=1とした時;

P=1 and Q=0で安定

01

双安定回路⇒Set Reset Flip Flop:

記憶回路

Page 10: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

一番単純な非同期式順序回路(非同期式RSフリップフロップ)

R

S

Q

~Q

ケース1:Q=0、RS=00→01→00

と変化した場合

0

0

0

10

1

→1 →0

→0→1

→1→0

ケース2:Q=1,RS=00→10→00

と変化した場合

0

0

1

0

0

1

→0→1

→0 →1

→1→0

2つの安定状態を持つ1ビットメモリ ⇒フリップフロップ

Page 11: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

)(

)()(

2

1

tx

txtx

n

M

M

⎥⎥⎥⎥

⎢⎢⎢⎢

)(

)()(

2

1

ts

tsts

m

M

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

)(

)()(

2

1

to

toto

k

M

M

入力X, 出力O, 状態Sとすると

=S =X =O

)](),([)( tStXHtO =

]),(),(),([)( 21 K∆−∆−= tXtXtXutS

過去の入力が状態で保持されるとすると

)](),([)()( 1 iiiii tStXGtStS =∆+=+

H

G

X

S

O

出力は入力と状態で決まる。

状態はこれまでの入力系列で決まる。

次状態は現在の入力と現状態で決まる。

)(),(),(),(),( 1234 tXtXtXtXtX ∆−∆−∆−∆−L )(),(),(),()( 1234 tOtOtOtOtO ∆−∆−∆−∆−L

Page 12: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

状態の記憶の方法:記憶回路の実現方法は各種存在

1.遅延回路:文字通り信号を遅らせて再び入力側に返す。

2.専用のメモリ素子(フリップフロップ)を用いる(これが一般的)

遅延線など

組合せ回路

フリップフロップ

組合せ回路

1)遅延素子+

組合せ回路

2)フリップフロップ+

組合せ回路

Page 13: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

次状態

y1

y2

入力

現状態

順序回路の例(遅延回路を使った場合)

非同期式順序回路

Page 14: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

記憶回路(遅延回路):情報を遅延させること。

入力

出力

記憶回路

(遅延回路)

状態決定回路

(組合せ回路)

ミーリー型

出力決定回路

(組合せ回路)出力

記憶回路

(遅延回路)

状態決定回路

(組合せ回路)

ムーア型

出力決定回路

(組合せ回路)

入力

現在の時刻から次の状態に対応する情報を遅らせて次の時刻における現在の状態に対応させること。

過去の状態を全て記憶する必要は無く、現状態と次状態への状態変化を管理すれば順序回路が構成できる(有限状態遷移)。

2値なのでn個(ビット)あると2n通りの状態を記憶することができる。

状態数が多いほど複雑な動き

Page 15: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

同期式順序回路/非同期式順序回路

現状態から次状態への遷移が時刻で定められず連続的に進むもの

⇒非同期式順序回路

状態変化は一定周期のクロックで一斉に起こるもの

⇒同期式順序回路

同期式の方が速度が遅くなる場合があるが、設計、解析が容易

(今後、特に断らない限り同期式順序回路に対象を限る)

Page 16: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

出力

状態

入力 0 1 0 0 1 0 1 1 0 1 0 1

S0 S0 S1 S1 S1 S2 S2 S3 S1 S1 S2 S2

0 0 0 0 0 0 1 0 0 0 0 1

...

...

S3

状態遷移表(State Transition Table)

S3

S2

S1

S0

力入力入

力出状態次の現在の状態

S0 S1

S1 S2

S2 S3

S0 S1

0 1 0 1

0 00 0

0 10 0

Page 17: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

力入

/出力次状態現在の状態

S0

S1

S2S3

S0/00 1

S1/0S1/0 S2/0

S2/0 S3/1S0/0 S1/0

状態遷移表の表記法2: 次状態と出力をまとめることも

Page 18: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

Qj/Oq

01

状態

Qj/Or

10力

/

Qj/OsQj/OpQi

1100入

出力次の現在の状態

2入力の場合の状態遷移表の例

入力の組合せで場合分けする。

Page 19: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

力入

/出力次状態現在の状態

S0

S1

S2S3

S0/00 1

S1/0S1/0 S2/0

S2/0 S3/1S0/0 S1/0

右で示す順序回路は4状態あるので2ビットで表現できる。

2個の状態保存用メモリ

Q2 ,Q1を用いて状態を表すこと

ができる。(状態割当)

Q2 ,Q1

S0→“00”

S1→“01”

S2→“10”

S3→“11”

01/000/01 111/110/01 010/001/00 101/000/00 010Q2 Q1

力入

/出力次状態現在の状態

状態の割当

Page 20: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

力入力入

力出状態次の現在の状態

例) 1が3回続くと出力1を出す回路

S0

S1

S2S3

S0 S1

S0 S2

S0 S3S0 S3

0 1 0 1

0 00 00 10 1

入力と現在の状態で出力が決まるもの⇒ミーリー型順序回路

現在の状態だけで出力が決まるもの ⇒ムーア型順序回路

←ミーリー型

Page 21: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

Q

Q+R

S

FF

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

-11

101

010

Q00

Q+RS

SR=1は禁止入力

Q+は次状態を示す。

特性表(真理値表でない)

0/1以外の値が入っているので真理値表で無い

Page 22: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

-111-011110110010110001011000000Q+

Q(t+ε)QR S

RS FFの真理値表(展開特性表)

)()()()( tQtRtStQ ⋅+=+ε

QRSQ ⋅+=⇒ +

ある時刻t と遅延ε後の次の状態の関係

1-11

1-0

10110100SR

Q

Q+

実現1

実現2

実現31

Page 23: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

各種のフリップフロップ(1/3)

A) Dフリップフロップ

Q

Q

D

11

00

Q+D

現状態によらず入力Dの値が次の状態になる。

データを記憶/保存するのに便利⇒ラッチ(Latch)と呼ぶことも

Page 24: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

各種のフリップフロップ(2/3)

B) Tフリップフロップ

Q

QT

1

0

Q+T

Q

Q

Tが0だと状態は不変

Tが1になると状態が反転(トグル)する注)Tが1のままだとQが次々と反転して発振してしまうことになる。

Tを非常に狭い幅のパルスとするか、

上がりエッジを検出する特別な回路構成にするか、

別途クロックを用いてクロックに同期させて状態変化を起こすか、

もう一段フリップフロップを付加して状態変化をずらせる、

などの対応が行われる。カウンタ回路には便利だが一般の回路には使い難い

Page 25: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

C) JKフリップフロップ

各種のフリップフロップ(3/3)

Q

QK

J

11

101

010

00

Q+KJ

Q

Q

J,Kともに0の時は状態は不変

Kが1になるとリセット、Jが1になるとセット←(RS FF)

J,Kともに1になると状態が反転←(T FF)

Page 26: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

入力要求表の作成

フリップフロップを用いて順序回路を構成する場合、

現状態から次状態へ変化を起こさせるための入力条件が必要となる。

⇒それぞれのフリップフロップについて現状態、次状態から入力条件を列挙したものが入力要求表。

S

11

01

10

00

RQ+Q →

-11

101

010

Q00

Q+RS

RS FFの特性表 RS FFの入力要求表

0 -

1 0

0 1

- 0

Page 27: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

例)D FFのRS FFによる構成

D S

11

01

10

00

RQ+Q

00

1

0

1

-

1 0

0 1

- 0

DR

DS

=

=

Q

Q

DQ

Q+R

S

FF=

Page 28: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

T S

11

01

10

00

RQ+Q

例)T FFのRS FFによる構成

Q

QT

0

1

1

0

0 -

1 0

0 1

- 0

QTRQTS⋅=⋅=

Q

Q+R

S

FF=

Page 29: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

例)JK FFのRS FFによる構成

J K S

11

01

10

00

RQ+Q

0 -

1 -

- 1

- 0

0 -

1 0

0 1

- 0

Q

QK

J

QKRQJS⋅=⋅=

Q

Q+R

S

FF=

Page 30: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

δ δ

δδ

Q

T

S

R

Q

Q+R

S

FF

クロック付きフリップフロップの必要性

T型FFにおいてT入力は充分に狭いパルスを出す。

もし回路の遅延を以上の幅広い間“1”を保持すると

⇒動作原理上、発振してしまうことになる。

べつのクロック信号を用いて、クロック毎に入力を活性化させると使いやすい。⇒同期式順序回路

Page 31: 順序回路入門signalysis.co.jp/hosei/hw/lecture10.pdf1 0 10/0 11/1 0 1 01/0 10/0 0 0 00/0 01/0 Q2 Q1 0 1 入 力 現在の状態 次状態 /出力 状態の割当 入 力 入 力

Q

Q’

T

CKClock

Clock

T

Q

t1 t2 t3 t4

ε ε

クロック入力付きフリップフロップ

状態変化はクロックに同期

クロックが立ち下がった時から遷移が始まる回路が多い

T入力は任意の幅を持って良い

但しクロックが立ち上がって、下がるまで間とそのわずかな前後

は変化禁止。(動作が保障されない)

以降の議論では特に断らない限りクロックを前提としたFFのみを扱い

クロック信号は明示せず省略することが多い

状態変化のタイミング

Tの変化禁止区間