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

8 順序回路の設計 (1)

N/A
N/A
Protected

Academic year: 2021

シェア "8 順序回路の設計 (1)"

Copied!
6
0
0

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

全文

(1)

「論理回路」ノート

(2013

年度

, c

関西学院大学 石浦 菜岐佐

)

http://ist.ksc.kwansei.ac.jp/∼ishiura/lc/

8 順序回路の設計 (1)

フリップフロップを用いた同期式順序回路の設計

状態

8.1

設計の流れ

(1)

状態遷移表の作成

(2)

状態 化

(3)

入出力, 状態の 化

(

割当て)

(4)

関数, 関数を求める

(5)

フリップフロップの入力関数を求める

(6)

組合せ回路の設計

8.2

具体的な設計法

「50 円玉と

100

円玉を受け付け, 150 円のジュースを売る自動販売機の制御部」を設計 入力

何も入らない 50 50円の投入 100 100円の投入

状態

S0 0円が入っている(初期状態) S50 50円が入っている

S100 100円が入っている

出力

(−,−) ジュースもお釣も出さない (J,−) ジュースだけ出す

(J,50) ジュースと50円のお釣を出す

(1)

状態遷移表の作成

1

状態遷移グラフ

S0 S50 S100

−/(−,−) −/(−,−) −/(−,−) 50/(−,−)

100/(J,−) 50/(−,−) 100/(−,−) 50/(J,−),100/(J,50)

2

状態遷移表

現状態 次状態 出力

入力

=

入力

= 50

入力

= 100

入力

=

入力

= 50

入力

= 100

(2)

(2)

状態最小化

状態遷移表で表された順序回路を, 同じ動作をする最も の少ないものに変換する.

この例の場合は, 既に状態数最小なのでこのステップは不要. 状態最小化の方法の詳細は次節で述べる.

(3)

入出力

,

状態の符号化

入力, 状態, 出力を で符号化する 例えば, 次のように符号化できる

入力

x1 x2

50 100

状態

q1 q2 S0

S50

S100

出力

z1 z2 (−,−)

(J,−) (J,50)

☆ 実は, この状態と入出力の符号化によって, 最終的な回路の規模・複雑さは大きく変わってくる. 回路が簡単 になるような符号化を求めるための理論は多数あるが, それはいずれも大変難しい

(この授業では扱わない).

(4)

状態遷移関数

,

出力関数を求める

(3)

で決めた符号化に従って, 状態遷移表を全て だけで表す

2

状態遷移表

現状態 次状態 出力

入力

=

入力

= 50

入力

= 100

入力

=

入力

= 50

入力

= 100

S0 S0 S50 S100 (−,−) (−,−) (−,−)

S50 S50 S100 S0 (−,−) (−,−) (J,−)

S100 S100 S0 S0 (−,−) (J,−) (J,50)

符号化

入力 x1 x2

0 0 50 0 1 100 1 0

状態 q1 q2

S0 0 0 S50 0 1 S100 1 0

出力 z1 z2

(−,−) 0 0 (J,−) 1 0 (J,50) 1 1

3

符号化された状態遷移表

q1q2 q1q2 (次状態) z1z2(出力)

x1x2= 0 0 x1x2= 0 1 x1x2= 1 0 x1x2= 0 0 x1x2= 0 1 x1x2= 1 0

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

0 1 0 1

1 0 1 0

(5)

フリップフロップ入力関数を求める

(D-FF

の場合には超簡単)

(4)

で求めた状態遷移

(つまりフリップフロップの出力のq1, q2

から

q1, q2

への変化) 起こすためには, フリッ

プフロップの入力にどのような値を入れれば良いかを求める

(3)

q d x1

x2

z1

z2

1

q2

1

d2

clock Q D Q D combinational

circuit

D

フリップフロップの場合には,

D

の値が次の時刻にそのまま

Q

に出るので,

d1=q1, d2=q2

となる.

3

符号化された状態遷移表

q1q2 q1q2 (次状態) z1z2(出力)

x1x2= 0 0 x1x2= 0 1 x1x2= 1 0 x1x2= 0 0 x1x2= 0 1 x1x2= 1 0

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

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

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

D-FF

の場合は

q

をそのまま

d

にするだけ

4

フリップフロップの入力関数, 出力関数

q1q2 (FF

への入力)

z1z2(出力)

x1x2= 0 0 x1x2= 0 1 x1x2= 1 0 x1x2= 0 0 x1x2= 0 1 x1x2= 1 0

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

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

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

(6)

組合せ回路の設計

フリップフロップの入力関数と出力関数の を作り, 組合せ回路を設計 例)

d1

の入力関数

4

の表の

d1

の列より

(q1, q2, x1, x2) = (0,0,0,0)

のとき

d1= (q1, q2, x1, x2) = (0,0,0,1)

のとき

d1= (q1, q2, x1, x2) = (0,0,1,0)

のとき

d1=

· · ·

【重要】このとき, 使われていない符号 に対する関数の値は ドントケア とする

(q1, q2) = ( )

(x1, x2) = ( )

は使われていない

(q1, q2, x1, x2) = (0,0,1,1)

のとき

d1= (q1, q2, x1, x2) = (0,1,1,1)

のとき

d1= (q , q , x , x ) = (1,0,1,1)

のとき

d =

(4)

(q1, q2, x1, x2) = (1,1,1,0)

のとき

d1= (q1, q2, x1, x2) = (1,1,1,1)

のとき

d1=

カルノー図を作成し, 論理関数を最小化

d1

q1q2 00 01 11 10

x1x2

00 01 11 10 X 1 1 X X X X X

1 X

q1

q2

x1

x2 X 1 1 X X X X X

1 X

d1=

同様にして,

d2

および出力

z1,z2

の最小積和形を求める

( 練習8.1 ).

☆ この回路は 型なので, 出力が状態と入力の両方に依存しているが, 型 の場合は, 出力は状態だけに依存する.

最小化した論理式から回路を設計する

Q D Q

d1 d2 x2

x1

z1

z2

Q D Q

clock q1

q2

練習

8.1

上記の

d1

と同様にして

d2,z1,z2

のカルノー図を作成し, 最小積和形を求めよ.

4

フリップフロップの入力関数, 出力関数

q1q2 d1d2(FF

への入力)

z1z2(出力)

x1x2= 0 0 x1x2= 0 1 x1x2= 1 0 x1x2= 0 0 x1x2= 0 1 x1x2= 1 0

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

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

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

(5)

d

2

q

1

q

2

00 01 11 10

x

1

x

2

00 01 11 10

z

1

q

1

q

2

00 01 11 10

x

1

x

2

00 01 11 10

z

2

q

1

q

2

00 01 11 10

x

1

x

2

00 01 11 10

8.3

状態最小化

状態最小化

( )

とは

与えられた状態遷移表を, 同じ動作で のできるだけ少ないものに変換する 現状態 次状態, 出力

x= 0 x= 1 S0 S1,1 S2,0 S1 S0,1 S2,0 S2 S2,0 S1,1

現状態 次状態, 出力

x= 0 x= 1 S01 S01,1 S2,0

S2 S2,0 S01,1

な状態

(同じ働きをし,

外部からは できない状態) を して一つの状

態にする.

最小化のアルゴリズム

☆ 最初は「 の状態が等価」と仮定して, 状態を

1

つのグループにまとめた所からスター トし, これを識別可能なグループに次々に していく

1)

を観測することにより識別可能な状態を, 出力値に従ってグループ分けする.

(全ての入力に対して

を出す状態を同一グループにまとめる)

2)

下記のグループの をそれ以上できなくなるまで行なう

2.1)

各グループ

G

内の状態について, 同じ入力を与えた時の が同じグループに属して いるかどうか調べる.

2.2)

全ての入力について次状態が同じグループに属していれば, そのグループの分割は終了

2.3)

もしいずれかの入力について次状態が異なるグループに属していれば,

G

G1, G2,· · ·

に分割し,

Gi

の状態同一入力に対する次状態が全て同じグループに属するようにする.

(6)

現状態 次状態, 出力

出力

x= 0 x= 1 0x1 Sa Sa,0 Sb,0 0 0 Sb Sd,1 Sa,1 1 1 Sc Sc,0 Se,0 0 0 Sd Sf,1 Se,1 1 1 Se Sd,1 Sc,1 1 1 Sf Se,1 Sa,0 1 0

現状態 次状態, 出力

次状態のグループ

x= 0 x= 1 0x1 0 Sa,0 Sb,0 0 1 Sc,0 Se,0 0 1 1 Sd,1 Sa,1 1 0 Sf,1 Se,1 2 1 Sd,1 Sc,1 1 0 2 Se,1 Sa,0 1 0

現状態 次状態, 出力

次状態のグループ

x= 0 x= 1 0x1 0 Sa Sa,0 Sb,0 0 1 Sc Sc,0 Se,0 0 1 1 Sd,1 Sa,1 3 0 Sd,1 Sc,1 3 0 3 Sf,1 Se,1 2 1 2 Sf Se,1 Sa,0 1 0

現状態 次状態, 出力

x= 0 x= 1

0 ,0 ,0

1 Sd,1 ,1

3 Sd Sf,1 ,1

2 Sf ,1 ,0

コメント

ここで紹介した状態最小化は, 完全定義

(completely specified;

すべての次状態, 出力が定義されている) の 状態遷移表に対する方法である. 不完全定義

(incompletely specified;

次状態や出力にドントケアが存在す る) の状態最小化には異なるアルゴリズムが必要となるが, それは大変難しい.

状態最小化を行なって得られる回路が, 行なわない回路よりも小さい

.

状態数の減 少によりフリップフロップの個数が減ることはあるが, 逆に論理回路が複雑になることもある.

練習問題の解答例

練習

8.1

d2

q1q2

00 01 11 10

x1x2

00 01 11 10 1 X

1 X

X X X X X d2=q1q2x2+q2x1x2

z1

q1q2

00 01 11 10

x1x2

00 01 11 10 X X 1 X X X X

1 X 1

z1=q2x1+q1x2+q1x1

z2

q1q2

00 01 11 10

x1x2

00 01 11 10 X X X X X X

X 1 z2=q1x1

Nagisa ISHIURA

参照

関連したドキュメント

 続いて,回路の動的分割に基づく解析の有効性が述べられる.結合強度の面から

の量子回路におい て,補助量子ビット数は n である.出力量子状態にお いて s n+1 を保存するための量子ビットは補助量子ビッ

分野 専門 授業形式 講義 科目番号 08C04_30191 単位区別

ModelSimのプロジェクト・メンバーの変更.. VHDLの基本構造① 回路記述: ・論理合成に適した記述をする

順序回路に対するRTL電力マクロモデル化 順序回路に対する消費電力を推定するためには,組み合わせ回路と

5 ESOP 最小化問題の定式化 ここまでの議論で, f-C-NOT 回路の深さ最小化 問題が , ESOP

授業の計画・内容

レジスタ同士が、違うクロックで動作する → 回路全体が簡素化でき、クロック周期を気にせず設計できるが、僅かタイミング