九州テクノカレッジ

論理回路

#200603

Yu Tomita
九州テクノカレッジ

今日の内容

系列機械による論理回路の

  • 解析(順序回路→系列機械)
  • 設計(系列機械→順序回路)
    • 簡単化(系列機械→系列機械)
Yu Tomita
九州テクノカレッジ

順序回路\leftrightarrow系列機械

  • 順序回路の入出力(と状態)は系列機械で解析可能

    • どんな順序回路(カウンタなど)の動作も,系列機械で表現可能
  • 系列機械の入出力(と状態)は順序回路で設計可能

    • どんな系列機械(ミーリーマシンなど)も順序回路に変換可能
Yu Tomita
九州テクノカレッジ

順序回路の解析

  1. FFの数(nn)から状態の最大数(2n2^n)を求める
  2. 各状態遷移に対する入力条件表を用意
  3. 入力条件表から拡大状態遷移表を作成
  4. 拡大状態遷移表から得られる各ノードをエッジで結び, 入力条件(と出力)のラベルを付与
Yu Tomita
九州テクノカレッジ

順序回路の解析(例1)

最も単純な順序回路の一つ: FF回路そのもの(JK-FF)

  • 入力は(J,K)(J,K)のペア
    • JJKKは0,1以外に-(ドントケア値)も書ける
      • こうするとエッジが複雑にならない
    • TT は無視
  • 状態の数は21=22^1=2
    • 状態はq0q_0q1q_1のみ
Yu Tomita
九州テクノカレッジ

状態遷移に対するJK-FFの入力条件表

QtQt+1Q^t\to Q^{t+1} JJ,KKの条件 状態動作
000\to 0 0, - 保持/リセット
010\to 1 1, - 反転/セット
101\to 0 -, 1 反転/リセット
111\to 1 -, 0 保持/セット
Yu Tomita
九州テクノカレッジ

状態遷移の表をエッジにしてまとめると次のような図になる:

Yu Tomita
九州テクノカレッジ

順序回路の解析(例2)

シフトレジスタ: データを一時的に記憶する回路

  • D-FFを用いることで構成

 width:600px

Yu Tomita
九州テクノカレッジ

シフトレジスタの動作を確認
https://yutomi7a.github.io/simcirjs/shiftRegister.html

Yu Tomita
九州テクノカレッジ

シフトレジスタの解析

  • FFは2: 状態の数は最大で22=42^2=4

  • 順序回路の状態遷移表を作成

    • 00→01→11→10→00と遷移?
    • 01から10になることもある

Yu Tomita
九州テクノカレッジ

シフトレジスタの状態遷移表

(Q1,Q0)t(Q_1, Q_0)^t (Q1,Q0)t+1(Q_1,Q_0)^{t+1} D0D_0
0, 0 0, 0 0
0, 0 0, 1 1
0, 1 1, 0 0
0, 1 1, 1 1
1, 0 0, 0 0
1, 0 0, 1 1
1, 1 1, 0 0
1, 1 1, 1 1
Yu Tomita
九州テクノカレッジ

状態遷移表から得られるミーリーマシンは以下の通り

Yu Tomita
九州テクノカレッジ

順序回路の設計

  1. 順序機械(ミーリーマシン)を状態遷移図にする
  2. 状態などの2進表現を決める
  3. 状態遷移表を描く
  4. 状態遷移表から論理関数(特性関数)を求める
  5. 組み合わせ回路を設計
Yu Tomita
九州テクノカレッジ

ミーリーマシンの順序回路化(例1)

100円カプセルトイ自販機(前回の自販機と同じ):

  • 100円硬貨1枚を受け付けて商品を出力
  • 返却機能あり
    • 100円入れた状態でそれ以上投入すると返却
    • 何も入れてない状態でレバーを回しても何も返却されない
Yu Tomita
九州テクノカレッジ

カプセルトイ自販機のミーリーマシン

Yu Tomita
九州テクノカレッジ

カプセルトイ自販機の2進表現

  • 状態1: 硬貨を待機する状態→0

  • 状態2: レバーを待機する状態→1

  • 入力: 硬貨(投入)→0, レバー→1

  • 出力: 商品(カプセルトイ)→1,0, (硬貨の)返却→0,1, なし→0,0

Yu Tomita
九州テクノカレッジ

カプセルトイ自販機の状態遷移表

状態(QtQ^{t}) 次状態(Qt+1Q^{t+1}) 入力(II) 出力(O1,O0O_1,O_0)
0 0 1 0,0
0 1 0 0,0
1 0 1 1,0
1 1 0 0,1
Yu Tomita
九州テクノカレッジ

カプセルトイ自販機の特性関数

Qt+1=IQ^{t+1} = \overline{I}

O1=QtIO_1 = Q^t \cdot I

O0=QtIO_0 = Q^t \cdot \overline{I}

Yu Tomita
九州テクノカレッジ

D-FFの特性方程式(Qt+1=DQ^{t+1} = D)を思い出すと, 次のような回路が得られる.

Yu Tomita
九州テクノカレッジ

ミーリーマシンの順序回路化(例2)

押しボタン式信号機:

  • ボタンを押してからCPのエッジ2つ分で青(緑)信号を出力
  • 赤と緑だけを考える
    • 緑は一瞬だけ: 次のCPのエッジですぐ赤に戻る
Yu Tomita
九州テクノカレッジ

信号機のミーリーマシン

Yu Tomita
九州テクノカレッジ

信号機の2進表現

  • 状態1: ボタンを待機する状態→0,0

  • 状態2: CPを一つ待機する状態→0,1

  • 状態3: CPを一つ待機して緑を出力する直前の状態→1,0

  • 入力: なし→0, ボタン→1

  • 出力: 赤→0, 緑→1

Yu Tomita
九州テクノカレッジ

信号機の状態遷移表

状態(Q1t,Q0tQ_1^{t},Q_0^{t}) 次状態(Q1t1,Q0t+!Q_1^{t_1},Q_0^{t+!}) 入力(II) 出力(OO)
0,0 0,0 0 0
0,0 0,1 1 0
0,1 1,0 0 0
0,1 1,0 1 0
1,0 0,0 0 1
1,0 0,0 1 1
Yu Tomita
九州テクノカレッジ

信号機の特性関数

Q1t+1Q_1^{t+1}について:

I\Q1t,Q0t_I\backslash ^{Q_1^{t},Q_0^{t}} 00 01 11 10
0 0 1 - 0
1 0 1 - 0

よって, Q1t+1=Q0tQ_1^{t+1} = Q_0^{t}

Yu Tomita
九州テクノカレッジ

信号機の特性関数

Q0t+1Q_0^{t+1}について:

I\Q1t,Q0t_I\backslash ^{Q_1^{t},Q_0^{t}} 00 01 11 10
0 0 0 - 0
1 1 0 - 0

よって, Q0t+1=IQ1t+Q0tQ_0^{t+1} = I\cdot \overline{Q_1^{t} + Q_0^{t}}

Yu Tomita
九州テクノカレッジ

信号機の特性関数

OOについて:

I\Q1t,Q0t_I\backslash ^{Q_1^{t},Q_0^{t}} 00 01 11 10
0 0 0 - 1
1 0 0 - 1

よって, O=Q1tO = Q_1^{t}

Yu Tomita
九州テクノカレッジ

信号機の順序回路

D-FFの特性方程式(Qt+1=DQ^{t+1} = D)を思い出して実装すると次のような形になる:

 width:600px

Yu Tomita
九州テクノカレッジ

ミーリーマシンの簡単化

  • 状態数を最小化
  • 状態数が減少→用いるFF回路の数が減少
  • FF回路の数が減少→低コスト化, 省電力化
Yu Tomita
九州テクノカレッジ

状態の最小化の手順

  1. 与えられたミーリーマシンにおいて,「同じ入力であれば同じ出力を出して同じ次状態に遷移する」二つの状態をひとまとめにする
    • 状態数がnnあれば, 長さn1n-1の入力列について調べ上げる
  2. 上の結果できた状態と別の状態が統合可能か検討する
  3. 最初に戻る

今回は簡単のため, 繰り返しは省略

Yu Tomita
九州テクノカレッジ

簡単化前のミーリーマシン(例)

  • 2進数で「4の倍数のときだけアホになる1を出力」

※ある状態でのみ出力1となる系列機械は有限状態オートマトンとも呼ばれる.

Yu Tomita
九州テクノカレッジ

入力列に対する出力の一致を調べ上げる:

  • 状態数は4: 長さ3の入力列について調べる
    • 実際には, 二つの状態が同じ入力列で同じ出力列を出すだけで, それらは統合可能
    • このとき状態遷移は無視できる(理由は省略)
  • 同じ入力に対し, 同じ出力となる状態を統合
  • 統合した状態は一つのノードとしてグラフ化
Yu Tomita
九州テクノカレッジ
入力列\状態 q0q_0 q1q_1 q2q_2 q3q_3
000 111 011 111 011
001 110 010 110 010
010 100 000 100 000
011 100 000 100 000
100 001 001 001 001
101 000 000 000 000
110 000 000 000 000
111 000 000 000 000
Yu Tomita
九州テクノカレッジ

簡単化されたミーリーマシンの状態遷移図

  • q0q_0,q2q_2が一致
  • q1q_1, q3q_3も一致
  • よって, 次のような簡単なミーリーマシンが描ける

width:600px

Yu Tomita
九州テクノカレッジ

最終課題(レポート形式)

  1. 次の論理関数をカルノー図を用いて簡単化し最小積和形を求めよ.
  • F1=AB+AC+ABC+ABCF_1= A\,B+A\,C+A\,\overline{B}\,C+\overline{A}\,B\,\overline{C}
  • F2=WXYZ+WX+XYZF_2= W\,X\,Y\,Z+\overline{W}\,\overline{X}+X\,\overline{Y}\,Z
  1. F2F_2の解答をAND, OR, NOT素子だけを使って実現してみよ(3入力のAND,OR素子を使っても構わない).
  • 前回と同様メールまたはLINEアカウントから画像を提出すること.
  • 締め切り: 6/10 23:59まで(以降の提出は減点)
  • 締め切り: 6/15 23:59まで(以降の提出は減点)
Yu Tomita
九州テクノカレッジ

補遺: 系列機械の定義

Yu Tomita
九州テクノカレッジ

系列機械の定義

KK : 状態(qiq_i)の集合
Σ\Sigma: 入力の集合
Δ\Delta: 出力の集合
δ:K×ΣK\delta: K\times \Sigma\to K: 遷移関数(ある状態である入力が入った時の次状態)
λ:K×ΣΔ\lambda: K\times \Sigma\to \Delta: 出力関数(ある状態である入力が入った時の出力)
これらの五つ組(K,Σ,Δ,δ,λ)(K,\Sigma,\Delta,\delta,\lambda)系列機械と呼ぶ.

Yu Tomita
九州テクノカレッジ

遷移関数と出力関数

δ(qi,I)=qjλ(qi,I)=J\delta(q_i,I) = q_j \\ \lambda(q_i,I) = J

qjq_j
: 状態qiq_iのときに II を入力した後の次状態

JJ
: 状態 qiq_i のときに II を入力した際の出力

Yu Tomita
九州テクノカレッジ

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

- ミーリーマシンの出力関数は入力と現状態に依存

  • ムーアマシンの出力関数は現状態のみに依存
    • なのでλ(qi)=J\lambda(q_i) = Jという形になる
Yu Tomita
九州テクノカレッジ

遷移関数の拡張

集合Σ\Sigmaの要素の列からなる集合をΣ\Sigma^*と書くと, δ\delta

δ:K×ΣK\delta^*: K\times \Sigma^* \to K

と拡張される. この関数は次のように働く.

δ(qi,I1In)=qj\delta^*(q_i,I_1\ldots I_n) = q_j

qjq_j: 状態qiq_iのときにnn個の列 I1InI_1\ldots I_n を入力した後の最終的な状態

Yu Tomita
九州テクノカレッジ

出力関数の拡張

集合Δ\Deltaの要素の列からなる集合をΔ\Delta^*と書くと, λ\lambda

λ:K×ΣΔ\lambda^*: K\times \Sigma^* \to \Delta^*

と拡張される. この関数は次のように働く.

λ(qi,I1In)=J1Jn\lambda^*(q_i,I_1\ldots I_n) = J_1\ldots J_n

J1JnJ_1\ldots J_n: 状態 qiq_i のときにnn個の列 I1InI_1\ldots I_n を入力した際の出力列

Yu Tomita

タイトル用書式:色反転+中央寄せ