デジタル回路を学ぶと、「順序回路(シーケンシャル回路)」という言葉が出てきます。組合せ回路とは異なり、順序回路は「状態」を持つのが特徴で、過去の入力履歴に応じて出力が変わるという、より高度な動作を持っています。
今回は、順序回路とは何か、どういう動作をするのか、そしてその使い道について、初心者にもわかりやすく解説します。
順序回路ってなに?
順序回路(Sequential Circuit)は、組合せ回路と異なり、過去の入力履歴や状態に基づいて出力が決まる回路です。つまり、現在の入力だけでなく、それ以前の状態にも影響されて出力が変わるのがポイントです。
たとえば、「ボタンを3回押したらランプが点く」というような動作を実現したいときに、順序回路が必要です。この場合、「ボタンが3回押された」という過去の履歴を記憶する必要があるため、組合せ回路ではなく順序回路を使うことになります。
順序回路の仕組み
順序回路の基本的な構成要素は、組合せ回路と「フリップフロップ(FF)」という記憶素子です。フリップフロップは、1ビットの情報(0か1)を記憶することができるので、これを使って現在の「状態」を保持します。順序回路は、この状態と入力の組み合わせによって出力が決まります。
順序回路は、以下の3つの要素で構成されます。
- 入力:外部から与えられる信号です。組合せ回路と同様に、出力に影響を与えます。
- フリップフロップ(記憶素子):現在の「状態」を保持するための記憶素子です。入力と一緒に次の状態を決定し、その状態を保持します。
- 出力:入力と現在の状態に基づいて決まる信号です。
状態の遷移
順序回路では、「状態遷移(ステートトランジション)」と呼ばれる概念が重要です。これは、入力や現在の状態に応じて次の状態がどのように変化するかを示すものです。例えば、カウンタのような回路では、クロック信号が入るたびに次の状態へと移り変わっていきます。
順序回路の種類
順序回路にはいくつかの種類があり、それぞれが異なる用途で使われます。代表的なものをいくつか紹介します。
1. レジスタ
レジスタは、複数のフリップフロップを組み合わせてビット単位のデータを一時的に保持するための回路です。たとえば、8ビットのレジスタは8つのフリップフロップで構成され、8ビットのデータを一時的に記憶できます。プロセッサやメモリの設計で非常に重要な役割を果たします。
カウンタ
カウンタは、クロック信号のパルスに応じて数をカウントする回路です。例えば、毎秒1回カウントアップする時計のような動作を実現できます。順序回路の代表的な例で、ビットごとに状態が遷移していくので、カウントするために使われます。
シフトレジスタ
シフトレジスタは、データを左右に「シフト」させることができるレジスタです。例えば、1ビットずつデータをずらしていくことで、パラレルなデータをシリアルに変換したり、逆にシリアルなデータをパラレルに変換したりするのに使います。
状態機械(ステートマシン)
状態機械は、ある状態から別の状態へと遷移していく順序回路の一つです。入力信号やクロック信号によって次の状態へと移行し、現在の状態に応じて出力が変わります。たとえば、エレベーターの制御や信号機の動作など、状態の変化に応じて動作を制御するシステムで使われます。
なぜ順序回路は重要なのか?
順序回路は、デジタル回路の中でも特に複雑な動作を実現するために欠かせません。特に以下の点で重要です。
履歴に基づく動作が可能
組合せ回路と異なり、順序回路はフリップフロップによって過去の入力履歴を記憶することができるため、「前回の動作」や「ある特定の状態」に応じた制御が可能です。これにより、状態が変わるごとに異なる動作を行うシステムを作ることができます。
クロック同期でタイミングを制御
順序回路は、クロック信号と呼ばれるタイミング信号に基づいて動作します。これにより、タイミングを揃えてデータの処理や状態の変更を行うことができ、デジタル回路全体の制御がしやすくなります。
多様な応用が可能
順序回路は、メモリ、プロセッサ、通信装置、信号制御など、様々な分野で使用されます。データを一時的に保存したり、状態の遷移を制御したりすることで、デジタルシステム全体の動作を複雑かつ高度にすることができます。
まとめ
順序回路は、入力の状態と過去の履歴に基づいて出力が決まるという特徴を持つデジタル回路です。フリップフロップを使って状態を記憶し、その状態と入力に応じて出力や次の状態が変わります。
カウンタやレジスタ、シフトレジスタ、状態機械など、順序回路にはさまざまな種類があり、デジタルシステムの制御やデータの記憶・転送など、非常に多くの応用があります。
組合せ回路とともに、順序回路を理解することで、デジタル回路全体の仕組みや設計の基本が見えてきます。順序回路の動作や特徴をしっかりと理解し、デジタルシステムの設計に役立ててください!