8 / 63 · 概念
真理値表から論理式へ:最小項・最大項・SOP・POS
出力が 1 の行と 0 の行から同じ関数を導き、カルノー図の表記と結び付けます。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
真理値表の一行だけを選ぶ
入力順を に固定し、A を最上位ビットとします。行 5 は ABC=101 です。この行だけで 1 になる積項は です。すべての変数をちょうど一度ずつ含む項を最小項(minterm)と呼びます。「ゲート数が最小」という意味ではありません。
関数 が行 1・3・5・6・7 で 1 なら、それぞれの最小項最小項 すべての入力変数を一度ずつ含み、特定の入力組合せだけで 1 になる AND 項です。出力が 1 の行の最小項を OR で結合できます。を OR で結合します。
これは積の和(SOP)の形です。標準 SOP では各項にすべての変数が入ります。一般の SOP では、一部の変数が省略される場合があります。
0 の行からも同じ関数を作れます
行 2、ABC=010 だけで 0 になる和項は です。その行で各リテラルがすべて 0 になるように選んでいます。最大項最大項 すべての入力変数を一度ずつ含み、特定の入力組合せだけで 0 になる OR 項です。出力が 0 の行の最大項を AND で結合します。(maxterm)は、特定の一行だけを 0 にする OR 項です。
F が 0 の行は 0・2・4 なので、次の和の積(POS)が得られます。
Σ と Π は真理値表真理値表 可能な入力組合せをすべて列挙し、各組合せの出力を記した表です。時間に伴う変化は波形で別途確認します。 詳しく見るの行番号の集合を簡潔に表す記法です。Σm には 1 の行、ΠM には 0 の行を記します。
- 出力が 1 の行: 1・3・5・6・7 の最小項を OR
- 同じ F: 1 なら C=1 または A=B=1
- 出力が 0 の行: 0・2・4 の最大項を AND
標準形が出発点、簡単化は次の段階
上の関数は に簡単化できます。C=1 の四行を一つにまとめ、C=0 で残る 110 を AB で覆います。AB は C を含まない項なので、この式は SOP ですが標準 SOP ではありません。
次のカルノー図の講義では、入力を変えたときにどの変数が消えるかに注目して、このまとまりを視覚的に探します。
実習 · 同じ関数の三つの表現を結び付ける
F = C + A · B
| ABC | F |
|---|---|
| 000 | 0 |
| 001 | 1 |
| 010 | 0 |
| 011 | 1 |
| 100 | 0 |
| 101 | 1 |
| 110 | 1 |
| 111 | 1 |
上部の 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 のどちらの実装も許しますが、他の行の要求はすべて守る必要があります。