順序回路(Sequential circuit)

順序回路は現在の入力だけではなく記憶された内部状態にも依存する回路です。

演習1 1bitカウンタ

1bitカウンタを作成しLEDを点滅させなさい。またクロック周波数を変更して点滅周期との関係を考えなさい。

 

解説

FFの出力を反転して入力に戻す回路で、最も簡単な順序回路です。クロックタイミング毎に出力が反転するので、LEDの点滅周期はクロック周波数の半分になります。

 

1bitカウンタ回路図
1bitカウンタ回路のブロック実装図(アニメーション付き)

演習2 M系列生成回路

M系列生成回路図(4bit)

右の4bitの線形帰還シフトレジスタ回路を組み上げて動作を確認しなさい。

解説

1から15までの値が1回ずつばらばらの並びで1周期分発生し、それを繰り返します。全てのFFの初期値が零の場合には変化しません。どこかを1にする必要があります。この回路はM系列生成器と呼ばれ、所定のFFの出力のXORをフィードバックする構成の線形帰還シフトレジスタの一つです。N段のFFに対して2^N-1サイクル周期の乱数を発生させる回路として利用されます。非常に簡単な回路で生成できるため通信をはじめ様々な分野で利用されています。5bitのM系列生成回路の例を示します。周期は31です。

M系列生成回路図(5bit)

7bitのM系列生成回路を示します。周期は127です。どちらもCube-Dで動作確認が可能です。

M系列生成回路図(7bit)
M系列生成回路(4bit)のブロック実装図(アニメーション付き)

演習3 5進カウンタ

1桁の5進カウンタを作成しなさい(0→1234012340…)。

 

解説

5進カウンタは、0→1→2→3→4→0  のように4の次に0に戻るカウンタなので、状態数は5で右のような状態遷移となります。log2(5)<3なので3bitの内部状態を持たせ、それぞれs2,s1,s0とします。

 s0が1になる直前の条件を表にまとめます

5進カウンタの内部状態s0用のカルノー図

よってs0(n+1) = s2(n)s0(n) = s2(n)+s0(n)

s1が1になる直前の条件を表にまとめます

5進カウンタの内部状態s1用のカルノー図

よってs1(n+1) = s1(n)・s0(n)+s1(n)・s0(n)

                          = s1(n) ^ s0(n)

s2が1になる直前の条件を表にまとめます

5進カウンタ内部変数s2用のカルノー図

よってs2(n+1) = s1(n)・s0(n)

これらを回路図にすると右図となります。

5進カウンタ状態遷移図
5進カウンタ特性図
5進カウンタ回路図

 

ブロック実装回路では3bitFFはLED付きにしてください。

5進カウンタ回路のブロック実装図(アニメーション付き)

演習4 自動販売機

50円と100円硬貨が入れられる挿入口1つがあり、100円の商品を販売する自動販売機がある。100円硬貨1枚あるいは50円硬貨2枚で商品が取り出せ、50円硬貨の次に100円硬貨を挿入すると、商品と50円のつり銭が出てくる仕様である。50円硬貨未投入状態をSt0、50円硬貨投入状態をSt50とし、2つのスイッチに2種類の硬貨投入を割り当て、状態遷移を回路で実現しなさい。なお、スイッチにはそれぞれエッジ検出器(パルス出力)を接続すること

 

解答例

右に状態遷移図を示します。c50は50円硬貨が投入されたタイミングで1パルスだけHレベルとなる。c100も同様に100円硬貨が投入されたときにHとなります。

 内部状態がSt0にある時に、どちらの硬貨も投入されない(c50+c100=0)間は状態は変化しない。50円硬貨が投入される(c50=1)とSt50に遷移する。この状態でどちらの硬貨も投入されない(c50+c100=0)間は状態はSt50のまま。St50で50円硬貨が投入されると商品が得られて(出力=1)、St0状態に戻る。St0=0, St50=1とし、現時点の状態をSi、商品出力タイミングをenとすると、

 Si+1 = Si・c50 + Si・ (c50+c100)

 en = Si・c50 + c100

自動販売機の状態遷移図
自動販売機の状態遷移回路図

これをそのまま回路化する。enはカウンタのen端子に接続して商品を取り出した個数として表示する。

回路をブロックに置き換えてボートに装着する。ボード裏面にもブロックを装着しジャンパ線も3本使用する。内部状態はLED付きのFFを割り当てて内部状態をLEDで目視できるようにする。作成した回路で動作確認をしてみる。下の動画は下記のボタン操作と同じものである。

  1. 50円硬貨(S1) →St50に遷移
  2. 50円硬貨(S1) →St0に戻り、商品ゲット
  3. 50円硬貨(S1)→St50に遷移
  4. 100円硬貨(S2)→St0に戻り、商品ゲット
  5. 100円硬貨(S2)→St0のまま、商品ゲット
  6. 100円硬貨(S2)→St0のまま、商品ゲット
自動販売機の状態遷移回路のブロック実装図(アニメーション付き)