シーケンス回路
- 状態推移図
- 制御回路
制御回路は状態推移図(flow diagram:流れ図,または,フロー図とも呼ばれる)で記述されることが多い.制御回路は処理の実行順序を示している.図では条件付状態推移を行っている.まず,Aの処理をし,次の時刻で
X=0 なら 状態 B,X=1 (^X=0) なら状態 Cへ進む.状態 B または C に推移後、次の時刻では状態
D に進む. さらに,Y が 1 なら A に戻り Y=0 なら E に移り終了する.各状態では定められた仕事をすることになる。
- 状態推移図の例
- 動作表
状態推移図は,処理過程を直感的に理解するのに便利である.A,B,Cの状態間の推移は次のの動作表のようにまとめることができる
- 動作表の例
- 動作の記述
この動作表では現在の状態と条件が定まると、次の時刻での状態が定まることになる.入力 X
の条件により異なる処理をすることは言語記述では
if (X) then B else C
に相当する.また,Y
は繰り返し条件を指定する.したがって,この制御回路全体の言語記述では
do{
A;
if (^X) then B ;
else
C;
D;
} while
(Y)
となる.A,B,C,Dは特定の処理を実行することになるが、ここでは、制御の流れのみに注目しているから、具体的な内容は記述していない。
- 問題
上の記述と、以下の記述の相違点を述べよ。また、下の記述に相当する状態推移図を書きなさい。
while(Y){
A;
if
(^X) then B ;
else C;
D;
}
- D型FFとクロック信号
- D型FF
D型FFはCKの立ち上がりでD信号の値を記憶しQに出力します。^QはQの逆を出力します。また、PR(Preset)は0になると記憶を1に、CLR(CLeaR)は0になると、記憶を0にします。
- クロック信号
一定時間間隔で、パルスを発生する信号をクロック信号と言います。FFはこのクロック信号で記憶する値を更新します。
- 制御回路の合成
- 設計手法
状態遷移図で記述された回路は,一つの状態に一つのFF(フリップフロップ)を用いることにより簡単に合成することができます.まず,各状態
A〜E に対して,QA〜QEの5つのFFを用意します.各FFの中で一つのFFのみが値1を取ることとし,他のFFの値は0とします.最初状態 A とするため,QA
のみが1であるよう設定されているものとします.
状態 A から B への推移は 、QA が1であれば 次の時刻でXの値に従い QB または QC
を1とし,QA を0に戻すことで実現できる.同様に,CからDへの推移は 、QC が1のとき次の時刻で QDを1,QC
を0とすることとなる.この動作を回路にすると次の図となる.
- 初期設定
この回路が期待道理に動作するには、各FFが正しく初期化される必要がある。FFには通常、プリセットとクリアを行う端子があり、プリセットを0にするとFFは1に、クリアを0にするとFFは0に設定される。初期設定にはリセット信号を用いる。この信号で、FFのQAのみ1にセットし、他のFFは0にクリアする。
- 問題
リセット信号が0になったら、FFを初期化する回路を付加しなさい。
- 問題
条件Xが1のとき、A>B>C、0のとき、A>C を繰り返し実行する回路を設計しましょう。
- 問題
計数器を用いて、カウンタを道いて、状態A,B,Cを10回繰り返す回路を設計しなさい。
- 実験
- 内容
例題のシーケンス回路をパッチボードで制作してください。クロックとリセット信号は、発信用PIC(OSCラベル)を利用します。スイッチはトグル型を利用します。
- 回路図
- 動作確認
OSCのリセットスイッチで全体をリセットします。スイッチX,Y の値に従い、LEDが点灯することを確認してください。