Altifigence Academy

8 / 63 · 概念

真理値表から論理式へ:最小項・最大項・SOP・POS

出力が 1 の行と 0 の行から同じ関数を導き、カルノー図の表記と結び付けます。

真理値表の一行だけを選ぶ

入力順を A,B,CA,B,C に固定し、A を最上位ビットとします。行 5 は ABC=101 です。この行だけで 1 になる積項は m5=AB‾Cm_5=A\overline B C です。すべての変数をちょうど一度ずつ含む項を最小項(minterm)と呼びます。「ゲート数が最小」という意味ではありません。

関数 FF が行 1・3・5・6・7 で 1 なら、それぞれの最小項最小項 すべての入力変数を一度ずつ含み、特定の入力組合せだけで 1 になる AND 項です。出力が 1 の行の最小項を OR で結合できます。を OR で結合します。

F=Σm(1,3,5,6,7)=A‾B‾C+A‾BC+AB‾C+ABC‾+ABCF=\Sigma m(1,3,5,6,7)=\overline A\overline B C+\overline A B C+A\overline B C+AB\overline C+ABC

これは積の和(SOP)の形です。標準 SOP では各項にすべての変数が入ります。一般の SOP では、一部の変数が省略される場合があります。

0 の行からも同じ関数を作れます

行 2、ABC=010 だけで 0 になる和項は M2=A+B‾+CM_2=A+\overline B+C です。その行で各リテラルがすべて 0 になるように選んでいます。最大項最大項 すべての入力変数を一度ずつ含み、特定の入力組合せだけで 0 になる OR 項です。出力が 0 の行の最大項を AND で結合します。(maxterm)は、特定の一行だけを 0 にする OR 項です。

F が 0 の行は 0・2・4 なので、次の和の積(POS)が得られます。

F=ΠM(0,2,4)=(A+B+C)(A+B‾+C)(A‾+B+C)F=\Pi M(0,2,4)=(A+B+C)(A+\overline B+C)(\overline A+B+C)

Σ と Π は真理値表真理値表 可能な入力組合せをすべて列挙し、各組合せの出力を記した表です。時間に伴う変化は波形で別途確認します。 詳しく見るの行番号の集合を簡潔に表す記法です。Σm には 1 の行、ΠM には 0 の行を記します。

同じ真理値表から二つの式を作る
  1. 出力が 1 の行: 1・3・5・6・7 の最小項を OR
  2. 同じ F: 1 なら C=1 または A=B=1
  3. 出力が 0 の行: 0・2・4 の最大項を AND

標準形が出発点、簡単化は次の段階

上の関数は F=C+ABF=C+AB に簡単化できます。C=1 の四行を一つにまとめ、C=0 で残る 110 を AB で覆います。AB は C を含まない項なので、この式は SOP ですが標準 SOP ではありません。

次のカルノー図の講義では、入力を変えたときにどの変数が消えるかに注目して、このまとまりを視覚的に探します。

実習 · 同じ関数の三つの表現を結び付ける

真理値表の行・標準形・簡単化した式

F = C + A · B

3 入力真理値表・X は仕様上任意の出力
ABCF
0000
0011
0100
0111
1000
1011
1101
1111

上部の A・B・C ボタンは観測する入力だけを変えます。マップ内の 0・1・X ボタンは関数の仕様そのものを変えます。この二つを区別してください。点線は現在の入力、青い枠は選択した積項が覆うセルです。

最初の関数で ABC=110 にすると F=1 です。C=0 でも AB 項が 1 だからです。下の C のグループと A·B のグループを交互に押し、m7 が両方に含まれることを確認します。同じセルを二度含めても OR の結果は変わりません。

次に m6 の出力を二度押し、1 → X → 0 と変えます。最終的な関数は C 一つで表せます。Σm から 6 が消え、ΠM に 6 が加わるはずです。途中の X は、その行の出力を仕様が要求しない状態です。入力が発生し得て出力も決まっているなら、コスト削減のために勝手に X にしてはいけません。

Σm は必須の 1、ΠM は必須の 0、d はドントケアの行の集合を表します。d が空でなければ、Σm または ΠM だけでは完全な真理値表を指定したことになりません。実習の「最小 SOP」は、まず積項数、同数ならリテラル数を最小化した式の一つであり、実ゲート面積の最適解を意味しません。

自分で考えてみましょう

F=C+AB の m6 の要求だけを 1 から 0 に変えると、どの式になりますか。m6 を X に変える場合とは、仕様上何が違いますか。

解説を見る

F=C です。m6=0 は、その入力で必ず 0 を出す要求です。m6=X は、その行では 0 と 1 のどちらの実装も許しますが、他の行の要求はすべて守る必要があります。

選択はこのブラウザに適用されます。フッターからいつでも変更できます。