3回目の研修では順序回路の説明を行い、同期式5進カウンタを設計しました。

組み合わせ回路は現在の入力値で出力が決まりますが、順序回路は 現在の内部状態=過去の入力の履歴で決まる論地回路です。
あらかじめ定めた時間間隔ごとに状態が更新される同期式順序回路が主流になっています。
従って、状態を記憶する機能が必要になります。この機能を実現するために、フリップフロップを使用します。
フリップフロップは、出力値を更新する条件が成立するまでは、現在の状態を保持する素子です。
例えば、SRフリップフロップの出力がセット状態の場合は、リセット信号が入力されるまでセット状態を維持します。逆に、出力がリセット状態の場合は、セット信号が入力されるまでリセット状態を維持します。
Dフリップフロップは、入力状態が変化しても、ストローブ信号が入力されるまでは、出力の状態は変化しません。ストローブ信号を、一定周期でON/OFFするパルス信号を入力することで、パルス信号に同期した信号を出力することができます。

演習ではグループで同期式5進カウンタを設計してもらいました。
クロック信号に同期して、出力が0から4まで順に変化する回路です。
どのグループも完成していましたが、かなり難しかったようですので、もう一度考え方を整理します。

カウンタと言っていますが、数を数える回路にはなっていません。
現在の出力状態を基に次の状態を決めて、フリップフロップに入力しています。

まず、5進カウンタなので0から4の状態を繰り返し出力します。
従って、出力信号は3本必要になります。2本では0から3までしか表現できません。3本なら0から7まで表現することが可能です。
出力信号が3本まので、フリップフロップは3個必要になります。

次に、現在の出力状態に対して、次の出力決めるために真理値表を作成します。

次回の出力値が×のところは、現在の出力状態が起こらないので検討しない箇所です。

Dフリップフロップを使用して、真理値表の条件で入力信号を作り出せば、良いことが分かります。
回路の概要は、次のようになります。

現在の状態から次回の状態を作り、フリップフロップに入力するため、入力設定回路の入力信号は、フリップフロップの出力信号(Q0,Q1,Q2)になります。
真理値表を分解して、各入力設定回路の真理値表を作成します。

このまま、回路を設計しても良いですが、簡略化できそうなら論理式を作成してから、ブール代数やカルノー図を使用して簡略化します。
カルノー図を使用する際には、真理値表の×の部分も1として使用します。
ただし、×だけのグルーピングはしません。

論理式から回路設計をすれば完成です。