順序論理回路を設計するとき、状態数が2のべき乗にならない場合、未使用状態が発生します。例えば3状態の回路では2ビットのフリップフロップを使うため、4通りある状態のうち1つが使われません。このような場合、次状態方程式をカルノー図から求める際に、未使用状態をどのように扱うかが重要になります。この記事では、状態割り当て時に発生する未使用状態と、カルノー図でのドントケアの扱いについて詳しく解説します。
状態割り当てで未使用状態が発生する理由
順序論理回路では、現在の状態をフリップフロップ(FF)の出力で表します。例えば2個のFFを使用すると、状態はQ1Q2の2ビットで表現されます。
2ビットの場合、表現できる状態は00、01、10、11の4種類です。しかし、設計する回路が3状態しか必要としない場合、4種類のうち1種類は使用されません。
例えば状態A、B、Cだけを使う回路では、状態割り当てによって00、01、10を使用し、11は未使用状態になります。この未使用の状態を「未使用状態」または「無効状態」と呼びます。
未使用状態はカルノー図で必ずドントケアになるのか
未使用状態だからといって、常にカルノー図でドントケアとして扱うわけではありません。ここが重要なポイントです。
ドントケアとは、その入力条件が実際の動作では発生しないため、出力が0でも1でも回路設計上問題ない状態を意味します。
つまり、未使用状態が「絶対に発生しない」と保証されている場合、その状態における次状態出力は自由に決められるため、カルノー図ではX(ドントケア)として扱うことができます。
未使用状態を存在しないものとして扱う場合
一方で、教科書の解答で未使用状態を単純に無視している場合があります。これは、その状態を回路設計の対象外として扱っているためです。
例えばQ1Q2=11という状態自体を考えない設計では、その状態から次にどう変化するかを定義する必要がありません。そのため、カルノー図上では値を記入せず、存在しない条件として扱うことがあります。
ただし、実際のハードウェアではノイズや電源投入時などによって、意図せず未使用状態になる可能性があります。その場合を考慮して、未使用状態から正常状態へ戻るように設計することもあります。
ドントケアとして扱うメリット
未使用状態をドントケアとして扱う最大のメリットは、論理式を簡単化できることです。
カルノー図では、1のグループを作る際にドントケアを1として利用したり、0として利用したりできます。その結果、より大きなグループを作ることができ、回路を構成する論理ゲート数を減らせます。
例えばQ1Q2=11の状態が未使用なら、その場所を都合よく利用してQ2’の式を簡単にすることができます。教科書のQ2’=x¯Q2+x¯Q2¯のような式も、この考え方によって導かれる場合があります。
なぜQ1’では無視し、Q2’ではドントケアにしたのか
質問のように、同じ未使用状態でもQ1’では存在しないものとして扱い、Q2’ではドントケアとして利用することがあります。
これは、カルノー図から最小化した結果、設計者にとって都合のよい論理式が得られるかどうかの違いです。未使用状態は「必ずこうしなければならない」という決まりはありません。
つまり、Q1’を求めるときには11のセルを利用しても式の簡略化にメリットがなかったため無視し、Q2’を求めるときには利用すると簡単な式になるためドントケアとして使用した、と考えることができます。
実際の設計では未使用状態からの復帰も考える
大学の論理回路の問題では、未使用状態を自由に扱ってよい場合が多いですが、実際の回路設計では安全性も考慮します。
例えば3状態のカウンタを設計した場合、何らかの原因で未使用状態11になったとしても、次のクロックで00など正常な状態に戻るように設計することがあります。
このような設計では、未使用状態を完全なドントケアにはせず、復帰動作を指定してカルノー図を作成します。
まとめ|未使用状態の扱いは回路の目的によって決まる
順序論理回路で状態数が少ない場合に発生する未使用状態は、カルノー図では基本的にドントケアとして利用できます。ただし、必ず利用する必要があるわけではありません。
未使用状態を使うか無視するかは、論理式を簡単化できるか、また実際の回路で未使用状態が発生した場合を考慮するかによって決まります。
今回のようにQ1’では無視され、Q2’ではドントケアとして利用されている場合も、誤りではなく、それぞれの論理式を最も簡単にするための設計判断と考えると理解しやすくなります。


コメント