2

したがって、私の状態図には 7 つの状態 (000 から 110)、入力 B ボタン、および 4 つの出力 P、Q、R、および S があります。

16 行 (うち 2 行に X があります) の真理値表を作成しました。これから、S2' S1' S0' PQR と S の 7 つの K-Map を作成することになっています。入力 B (0, 1) が列側 (または行) になることは理解していますが、行に問題があります。S2 は最上位桁、S0 は最下位桁です。

片側が 3 ビット (S2/S1/S0) の K-Map は見たことがありませんが、他の方法でそれを表す方法がわかりません。それが 3 ビットの場合、それらの数値はどのような順序で入力されますか? 2 つについては、00/01/11/10 だとわかっています。

2 の場合、これは正しい考えのように思えますが、3 つのうちの 2 つ (S2/S1/S0) をどのように決定しますか? 入力 B 側は、その隣に追加の変数を取得しますか (したがって、列では S2/S1、行では B/S0 になりますか?)。S2/S1/S0 のどちらを反対側に配置するかをどのように決定しますか?

私にとって大きな助けになるのは、S2/S1/S0 状態図の真理値表/k-map の例を見ることです。私は S1/S0 の例しか見たことがないので、4 つの状態 (00/01/10/11) しかありません。

ご協力いただきありがとうございます。私の質問が混乱している場合は申し訳ありません。私の問題についてもっと明確にできるかどうか教えてください。

4

1 に答える 1

0

まず、あなたの質問に対する答えがあります:

すべてのカルノー マップ内のセルの数は、すべての可能な入力の組み合わせの数と一致します。マップのセルにインデックスを付ける方法は、真理値表に対応する必要があります。次の図は、さまざまなサイズのカルノー マップの例であり、隣接するセルの視覚化は非常に簡単です。

さまざまなサイズのカルノー マップ

ご覧のとおり、要点は、隣接する 2 つのセルは 1 つの変数の値のみが異なり、隣接する 4 つのセルは 2 つの変数の値が異なるということです。そのため、サイズが 2^n のグループを探す必要があります。Map のインデックス付けは少し混乱しているように見えるかもしれませんが、これは真理値表のすべての行の間のすべての関係を表示するためのものです。

K マップにインデックスを付けたが、どの行がどの変数に対応しており、どの順序で入力する必要があるかがわからない場合は、次のように確認できます。

  • インデックス 0 = 1 つの変数が trueでない場合
  • インデックス 1 =最下位ビットのみが true の場合 ( abcdで順序付けされた真理値表の場合、dになります)
  • index 2 = 最下位から 2 番目のビットのみが true である (同じ真理値表の場合、c )
  • インデックス 4 = 最下位から 3 番目のビットのみが true である (同じ真理値表の場合、b )
  • インデックス 8 = 最下位から 4 番目のビットのみが true である ( aとなる同じ真理値表の場合)

例として:ここでは、ムーア マシンとして実装された 01364 シーケンス ジェネレーターの状態図を確認できます。マシンのすべてのエッジは、リセット ボタンの入力値によってラベル付けされます。

01364 ムーア マシンとして実装されたシーケンス ジェネレーター

マシンの望ましい動作と状態に一致する出力値は、次の遷移表で説明できます。

 state || output (decimal) | reset || next state
-------------------------------------------------
  S_0  ||        0         |   0   ||    S_1
       ||                  |   1   ||    S_0
-------------------------------------------------
  S_1  ||        1         |   0   ||    S_2
       ||                  |   1   ||    S_0
-------------------------------------------------
  S_2  ||        3         |   0   ||    S_3
       ||                  |   1   ||    S_0
-------------------------------------------------
  S_3  ||        6         |   0   ||    S_4
       ||                  |   1   ||    S_0
-------------------------------------------------
  S_4  ||        4         |   0   ||    S_0
       ||                  |   1   ||    S_0

10 進出力をバイナリ ( q_2q_1およびq_0 ; d_2d_1およびd_0 )に一致するように状態の表現をエンコードした後、遷移テーブルは次のようになります。

 state || q_2 | q_1 | q_0 | reset || d_2 | d_1 | d_0 || next state
-------------------------------------------------------------------
  S_0  ||  0  |  0  |  0  |   0   ||  0  |  0  |  1  ||    S_1
       ||     |     |     |   1   ||  0  |  0  |  0  ||    S_0
-------------------------------------------------------------------
  S_1  ||  0  |  0  |  1  |   0   ||  0  |  1  |  1  ||    S_2
       ||     |     |     |   1   ||  0  |  0  |  0  ||    S_0
-------------------------------------------------------------------
  S_2  ||  0  |  1  |  1  |   0   ||  1  |  1  |  0  ||    S_3
       ||     |     |     |   1   ||  0  |  0  |  0  ||    S_0
-------------------------------------------------------------------
  S_3  ||  1  |  1  |  0  |   0   ||  1  |  0  |  0  ||    S_4
       ||     |     |     |   1   ||  0  |  0  |  0  ||    S_0
-------------------------------------------------------------------
  S_4  ||  1  |  0  |  0  |   0   ||  0  |  0  |  0  ||    S_0
       ||     |     |     |   1   ||  0  |  0  |  0  ||    S_0

入力のすべての可能な組み合わせについて遷移表を調べると便利です。これは、いくつかの 'do not care' ( x ) 出力値 (シーケンスに存在しない状態の場合) があるためです。カルノーの地図。

 index | state || q_2 | q_1 | q_0 | reset || d_2 | d_1 | d_0 || next state
---------------------------------------------------------------------------
   0   |  S_0  ||  0  |  0  |  0  |   0   ||  0  |  0  |  1  ||    S_1
   1   |  S_0  ||  0  |  0  |  0  |   1   ||  0  |  0  |  0  ||    S_0
---------------------------------------------------------------------------
   2   |  S_1  ||  0  |  0  |  1  |   0   ||  0  |  1  |  1  ||    S_2
   3   |  S_1  ||  0  |  0  |  1  |   1   ||  0  |  0  |  0  ||    S_0
---------------------------------------------------------------------------
   4   |   -   ||  0  |  1  |  0  |   0   ||  x  |  x  |  x  ||     -
   5   |   -   ||  0  |  1  |  0  |   1   ||  0  |  0  |  0  ||    S_0
---------------------------------------------------------------------------
   6   |  S_2  ||  0  |  1  |  1  |   0   ||  1  |  1  |  0  ||    S_3
   7   |  S_2  ||  0  |  1  |  1  |   1   ||  0  |  0  |  0  ||    S_0
---------------------------------------------------------------------------
   8   |  S_4  ||  1  |  0  |  0  |   0   ||  0  |  0  |  0  ||    S_0
   9   |  S_4  ||  1  |  0  |  0  |   1   ||  0  |  0  |  0  ||    S_0
---------------------------------------------------------------------------
  10   |   -   ||  1  |  0  |  1  |   0   ||  x  |  x  |  x  ||     -
  11   |   -   ||  1  |  0  |  1  |   1   ||  0  |  0  |  0  ||    S_0
---------------------------------------------------------------------------
  12   |  S_3  ||  1  |  1  |  0  |   0   ||  1  |  0  |  0  ||    S_4
  13   |  S_3  ||  1  |  1  |  0  |   1   ||  0  |  0  |  0  ||    S_0
---------------------------------------------------------------------------
  14   |   -   ||  1  |  1  |  1  |   0   ||  x  |  x  |  x  ||     -
  15   |   -   ||  1  |  1  |  1  |   1   ||  0  |  0  |  0  ||    S_0

最後に、d_2、 d_1 、およびd_0 (つまり、 01364シーケンスの数値に一致するバイナリ エンコードされた状態/出力) を定義する関数は、次の K マップで簡単にマークできることがわかります。

バイナリエンコードを定義する関数

f(d_2) = q_1 ⋅ ¬(reset)
f(d_1) = q_0 ⋅ ¬(reset)
f(d_0) = ¬(q_2) ⋅ ¬(q_1) ⋅ ¬(reset)

(すべての画像はラテックスを使用して生成されました。)

于 2016-03-09T02:26:29.093 に答える