有限状態マシン:フィードバックを活用したプログラマブルシーケンスコントローラの構築
フィードバックは現代エンジニアリングの基石であり、単純な回路を多機能制御システムに変えます。負と正のフィードバックループを埋め込むことで、設計者は適応、安定化、複雑なロジックを驚くほどシンプルに実行するデバイスを作れます。
- コンパレータ + 負フィードバック → 制御可能ゲインアンプ
- コンパレータ + 正フィードバック → ヒステリシス付きコンパレータ
- 組み合わせロジック + 正フィードバック → マルチバイブレータ
プロセス計装では、測定システムと負フィードバックの結合で、セットポイントからの偏差を自動補正するクローズドループコントローラが生まれます。
ルックアップテーブルをROMにプログラミングし、データ出力をアドレス入力にルーティングバックすると、新しいデバイスクラスが出現します:有限状態マシン(FSM)。この構造は格納データを用いて次のアドレスを指示し、所定の出力シーケンスを生成します。

基本アイデアはシンプルです:各ROMアドレスが次の状態のアドレスを保持。クロックと同期しタイミングハザードを避けるため、データ出力を4ビットD型フリップフロップを通してから次のアドレスにします。クロックパルスがマシンをステップバイステップで遷移させます。

直感的なアナロジーは郵便局のボックス列。各ボックス(アドレス)に次のボックスを指示する紙切れ(データ)が入っています。紙切れを望ましい順序で配置することで、開くボックスの順序、ひいては読み出される情報の順序を指定します。
16アドレス可能ロケーションで、FSMは16個の異なる安定状態を取り得ます。ROMは各アドレスの次の状態を事前プログラミングされ、マシンは各クロックエッジで前進します。
一般的な応用の1つは、4ビットグレイコードのような任意のカウントシーケンス生成です:
アドレス -----> データ グレイコードカウントシーケンス: 0000 -------> 0001 0 0000 0001 -------> 0011 1 0001 0010 -------> 0110 2 0011 0011 -------> 0010 3 0010 0100 -------> 1100 4 0110 0101 -------> 0100 5 0111 0110 -------> 0111 6 0101 0111 -------> 0101 7 0100 1000 -------> 0000 8 1100 1001 -------> 1000 9 1101 1010 -------> 1011 10 1111 1011 -------> 1001 11 1110 1100 -------> 1101 12 1010 1101 -------> 1111 13 1011 1110 -------> 1010 14 1001 1111 -------> 1110 15 1000
このテーブルを実行すると、FSMはアドレス0000で開始、データ0001を読み、次のクロックでアドレス0001にジャンプ、以下同様。最終プログラム状態(アドレス1000)に達すると、格納データ0000がシーケンスを先頭にループバックさせます。
ROMのアドレスラインを拡張し、データ出力を追加すると柔軟性がさらに向上。例えば、5ビットアドレスROMは、追加機能ライン(A4)で制御される2つの異なるカウントシーケンス——バイナリとグレイ——をエンコード可能。以下のテーブルがこのデュアルモード動作を示します:
アドレス -----> データ アドレス -----> データ 00000 -------> 0001 10000 -------> 0001 00001 -------> 0010 10001 -------> 0011 00010 -------> 0011 10010 -------> 0110 00011 -------> 0100 10011 -------> 0010 00100 -------> 0101 10100 -------> 1100 00101 -------> 0110 10101 -------> 0100 00110 -------> 0111 10110 -------> 0111 00111 -------> 1000 10111 -------> 0101 01000 -------> 1001 11000 -------> 0000 01001 -------> 1010 11001 -------> 1000 01010 -------> 1011 11010 -------> 1011 01011 -------> 1100 11011 -------> 1001 01100 -------> 1101 11100 -------> 1101 01101 -------> 1110 11101 -------> 1111 01110 -------> 1111 11110 -------> 1010 01111 -------> 1010 11111 -------> 1110
この設定では、A4 = 0でFSMがバイナリカウント、A4 = 1でグレイコードシーケンスに従います。プログラマは任意のシーケンスを定義し、サイクル再開タイミングも決定可能で、FSMを完全プログラマブルなカウントデバイスにします。
さらにアドレスとデータラインを持つROMを使用すると、更なる拡張が可能。設計ではD0-D3をA0-A3にルーティングバックして状態フィードバックとし、D4-D7で状態とは無関係な任意出力を提供。これによりFSMの能力がカウンティングを超え、現在状態と外部入力(A4-A7)の両方に依存する複雑な組み合わせロジックを実行可能になります。

さらに、フリップフロップのクロックは単純な矩形波ジェネレータである必要はなく、外部イベントに結びつけることで、特定信号発生時にのみFSMが前進するようにできます。このイベント駆動アプローチは、FSMの動作を現実世界のプロセスに密接に整合させます。
したがって、ルックアップテーブルでプログラミングされたROMにフィードバックとクロック制御を組み合わせることで、真の有限状態マシンが実現されます。ROMに格納されたプログラムが振る舞い全体を指示し、理論的チューリングマシンの「プログラムが計算を指示する」原理を実践的に体現。この実践的具現化は、フィードバック、メモリ、シーケンシャルロジックを組み合わせて洗練され、信頼性が高く、多機能なデジタルシステムを構築する力を示しています。
産業技術