カルノ―図とは、複雑な論理式を簡単に表記することを目的とした図法です。
ここでは、論理変数をA~Dの4変数としました。それを図1のように、縦にAとB、横にCとDを割り付け(この割付は任意です)、4行4列のマスにしました(3変数ならば4行2列になります)。
重要なのは並べ方です。通常の真理値表での並べ方ではなく、カルノー図では隣のビット変化が1だけのように並べます。これをグレイコードといいます。
また、上端のセルと下端のセル、右端のセルと左端のセルが連続していると考えます。
例えばアのマスは、A=0、B=1、C=0、D=1、すなわち論理式 A・B・C・D と対応しています。このようにして、すべてのマスにより、4個の論理変数およびその否定の論理積の組合せを示すことができます。
例えば、次の論理式Rがあるとします。
R=A・B・C・D+A・B・C・D+A・B・C・D
+A・B・C・D+A・B・C・D+A・B・C・D
論理式の各項に対応するマスに1を記入します。Rの第1項の、A・B・C・D は、A=0、B=0,C=0、D=1ですから、1行2列の位置に1を記入します(青の部分)。Rの項数は6ですので、6個のマスに1が記入されます。
これにより、論理式Rがカルノー図として表現されたことになります。また、このカルノー図があれば、論理式Rを作成することは容易です。
ここでは、論理関数は全ての論理変数の組み合せに対して1あるいは0の値が定まっているとしています。ところが現実には、論理変数の特定の組み合わせが許されない場合があり,この時は論理変数は不確定になります。そのような項を禁止項(don’t care項)といいます。
禁止項に対応するマスにはφを記入します。この値を勝手に1あるいは0とすることにより、以降のグループ化をもっと適切みできることがあります。
しかし、ここでは禁止項に関しては省略します。
上端と下端、右端と左端がつながっていると考え、上下・左右で2つの1が並ぶとき、それをグループとして囲みます。グループ化をしやすいように、グレイコードの並べ方にしたのです。
このとき、重複がなく、グループの個数が最小にすることが大切です(グループ個数が最終の論理式の項数になります)。
ここでは、5個のグループがありますが、ア、イ、ウの3つのグループにしました。
アのグループを例にします。
上のマス:A=0、B=0、C=0、D=1 → A・B・C・D
下のマス:A=0、B=1、C=0、D=1 → A・B・C・D
ですから、アの論理式は次のようにまります。
ア=A・B・C・D+A・B・C・D
=A・(B+B)・C・D
=A・C・D
「隣り合う1をグループ化する」ことにより、(B+B)のような組合せが発生するので、論理式が簡素になるのです。グループ化したとき、0と1の両方がある論理変数(ここではB)が消されます。
イとウも同様に、次のようになります。慣れると次のような演算をするまでもなく、結果が得られましょう。
イ=A・B・C・D+A・B・C・D
=(A+A)・B・C・D
=B・C・D
ウ=A・B・C・D+A・B・C・D
=A・B・(C+C)・D
=A・B・D
それで、全体の論理式Rは、
R=A・C・D+B・C・D+A・B+D
となります。
先に示したRと比較すれば、かなり簡素になりました。それだけ回路を作成するのに素子の数や接合点が少なくすることができます。
エの場合、AとBがそれぞれ0と1をとるので、AとBを消すとC・Dになります。
このように、ある列(行)がすべて1のときは、列(行)の見出しと同じになります。
オの場合,BとDはそれぞれ0と1をとるので消されます。AとCは1だけですからA・Cになります。
このように、2×2の場合は、0、1の両方になる変数(2個)は消され、1だけならX、0だけならXとすればよいのです。
問題:カルノー図と等価な論理式は?【解答】 |