例 カルノー図は、ブール代数 関数の簡略化を容易にするために使用されます。たとえば、次の真理値表 で表されるブール関数を考えてみましょう。
以下は、簡略化されていないブール代数において、ブール変数A 、B 、C 、D およびそれらの逆数を用いて同じ関数を記述する 2 つの異なる表記法です。
f ( A 、 B 、 C 、 D ) = ∑ m 私 、 私 ∈ { 6 、 8 、 9 、 10 、 11 、 12 、 13 、 14 } {\displaystyle f(A,B,C,D)=\sum _{}m_{i},i\in \{6,8,9,10,11,12,13,14\}} どこm 私 {\displaystyle m_{i}} は、マッピングする最小項 (つまり、真理値表で出力が 1 となる行)です。f ( A 、 B 、 C 、 D ) = ∏ M 私 、 私 ∈ { 0 、 1 、 2 、 3 、 4 、 5 、 7 、 15 } {\displaystyle f(A,B,C,D)=\prod _{}M_{i},i\in \{0,1,2,3,4,5,7,15\}} どこM 私 {\displaystyle M_{i}} は、マッピングする最大項 (つまり、真理値表で出力が0となる行)です。トーラス上および平面上に描かれたカルノー図。点線で示されたセルは隣接している。 Kマップの作成。この図は、出力値(真理値表の右端の値)の代わりに、入力ABCD(真理値表の左端の値)の10進数表現を示しているため、カルノー図ではありません。 三次元空間では、長方形をトーラス状に曲げることができる。
工事上記の例では、4つの入力変数は16通りの組み合わせが可能であるため、真理値表は16行、カルノー図は16の位置を持ちます。したがって、カルノー図は4 × 4のグリッド状に配置されます。
カルノー図の上部と左側に表示されている行と列のインデックスは、二進数ではなくグレイコード で並んでいます。グレイコードを用いることで、隣接するセル間で変化する変数は必ず1つだけになります。完成したカルノー図の各セルには、入力の組み合わせに対する関数の出力を表す二進数が格納されています。
グループ分け カルノー図が作成された後、真理値表の情報に対して、可能な限り最も単純な形式(標準形 )を見つけるために使用されます。カルノー図の隣接する 1 は、式を単純化する機会を表します。最終的な式の最小項(minterms)は、カルノー図の 1 のグループを囲むことによって見つけられます。最小項グループは長方形でなければならず、面積は 2 のべき乗(つまり、 1、2、4、8 ...)でなければなりません。最小項の長方形は 、 0 を含まない範囲でできるだけ大きくする必要があります。各グループを大きくするために、グループは重なり合うことができます。以下の例では、最適なグループ分けが緑、赤、青の線で示されており、赤と緑のグループは重なっています。赤のグループは 2 × 2 の正方形、緑のグループは 4 × 1 の長方形で、重なり合う領域は茶色で示されています。
セルは、そのセルがカバーする入力の論理値を表す略記法で示されることが多い。例えば、AD は、 A とD が 真となる2x2 の領域をカバーするセル、つまり上の図の 13、9、15、11 番のセルを意味する。一方、A D は 、 A が真でD が偽となるセル(つまり、D が真となるセル)を意味する。
グリッドはトーラス状に 接続されているため、長方形のグループが端をまたいで折り返されます(図を参照)。右端のセルは、対応する入力値が1ビットだけ異なるという意味で、実際には左端のセルと「隣接」しています。同様に、最上部のセルと最下部のセルも隣接しています。したがって、A D は 有効な用語となり得ます。これは上部のセル12と8を含み、下部に折り返してセル10と14を含みます。同様に、B D も有効な用語であり、これは4つの角を含みます。
解決 2つのカルノー図を示す図。関数 f(A, B, C, D) のカルノー図は、最小項に対応する色付きの長方形で示されている。茶色の領域は、赤色の 2×2 の正方形と緑色の 4×1 の長方形が重なった部分である。f の逆関数のカルノー図は、最大項に対応する灰色の長方形で示されている。 カルノー図が作成され、隣接する1が長方形と正方形のボックスでリンクされたら、各ボックス内でどの変数が変化しないかを調べることで、代数的な最小項を見つけることができます。
赤色のグループについて:
A はボックス全体で同じであり、1に等しいので、赤い最小項の代数表現に含める必要があります。Bは 同じ状態を維持しないため(1から0に変化する)、除外されるべきである。Cは 変化しません。常に0なので、その補数であるNOT-Cを含める必要があります。したがって、C を含めるべきです。D は変化するため、除外される。したがって、ブール積和式の最初の最小項はA C です。
緑色のグループでは、A とBは 同じ状態を維持し、C とDが 変化します。Bは 0なので、含める前に負にする必要があります。したがって、2番目の項はAB と なります。緑色のグループが赤色のグループと重なっても問題ないことに注意してください。
同様に、青色のグループはBC D という用語を与えます。
各グループの解を組み合わせると、回路の標準形は次のようになります。A C ¯ + A B ¯ + B C D ¯ {\displaystyle A{\overline {C}}+A{\overline {B}}+BC{\overline {D}}} 。
このようにカルノー図は、
f ( A 、 B 、 C 、 D ) = A ¯ B C D ¯ + A B ¯ C ¯ D ¯ + A B ¯ C ¯ D + A B ¯ C D ¯ + A B ¯ C D + A B C ¯ D ¯ + A B C ¯ D + A B C D ¯ = A C ¯ + A B ¯ + B C D ¯ {\displaystyle {\begin{aligned}f(A,B,C,D)={}&{\overline {A}}BC{\overline {D}}+A{\overline {B}}\,{\overline {C}}\,{\overline {D}}+A{\overline {B}}\,{\overline {C}}D+A{\overline {B}}C{\overline {D}}+{}\\&A{\overline {B}}CD+AB{\overline {C}}\,{\overline {D}}+AB{\overline {C}}D+ABC{\overline {D}}\\={}&A{\overline {C}}+A{\overline {B}}+BC{\overline {D}}\end{aligned}}} ブール代数の公理を 注意深く適用することによってもこの簡略化を導き出すことは可能であったが、そのためには項の数に応じて指数関数的に時間がかかる。
逆 関数の逆関数は、0をグループ化することで同様の方法で解くことができます。[ 注1 ]
逆数を表す3つの項はすべて、異なる色の枠線が付いた灰色のボックスで示されています。
これは逆の結果をもたらす。
f ( A 、 B 、 C 、 D ) ¯ = A ¯ B ¯ + A ¯ C ¯ + B C D {\displaystyle {\overline {f(A,B,C,D)}}={\overline {A}}\,{\overline {B}}+{\overline {A}}\,{\overline {C}}+BCD} ド・モルガンの法則 を用いることで、和の積を 求めることができる。
f ( A 、 B 、 C 、 D ) = f ( A 、 B 、 C 、 D ) ¯ ¯ = A ¯ B ¯ + A ¯ C ¯ + B C D ¯ = ( A ¯ B ¯ ¯ ) ( A ¯ C ¯ ¯ ) ( B C D ¯ ) = ( A + B ) ( A + C ) ( B ¯ + C ¯ + D ¯ ) {\displaystyle {\begin{aligned}f(A,B,C,D)&={\overline {\overline {f(A,B,C,D)}}}\\&={\overline {{\overline {A}}\,{\overline {B}}+{\overline {A}}\,{\overline {C}}+BCD}}\\&=\left({\overline {{\overline {A}}\,{\overline {B}}}}\right)\left({\overline {{\overline {A}}\,{\overline {C}}}}\right)\left({\overline {BCD}}\right)\\&=\left(A+B\right)\left(A+C\right)\left({\overline {B}}+{\overline {C}}+{\overline {D}}\right)\end{aligned}}}
気にしないの 価値f ( A 、 B 、 C 、 D ) {\displaystyle f(A,B,C,D)} ABCD = 1111の場合、 「気にしない」に置き換えられます。これにより、緑色の項が完全に削除され、赤色の項が大きくなります。また、青色の逆項がシフトして大きくなることも可能になります。カルノー図は、真理値表に「無関心 条件」が含まれる関数の最小化を容易にします。「無関心条件」とは、設計者が出力結果を気にしない入力の組み合わせのことです。したがって、「無関心条件」は、任意の矩形グループに含めることも除外することもできます。どちらにしても、グループが大きくなる方を選びます。通常、カルノー図上ではダッシュまたはXで示されます。
右側の例は、上の例と同じですが、f (1,1,1,1)の値が「不定値」に置き換えられています。これにより、赤い項が下まで展開され、結果として緑の項が完全に削除されます。
これにより、新しい最小値方程式が得られます。
f ( A 、 B 、 C 、 D ) = A + B C D ¯ {\displaystyle f(A,B,C,D)=A+BC{\overline {D}}} 最初の項は単にA であり、A C ではないことに注意してください。この場合、ドントケアは項 (緑色の四角形) を削除し、別の項 (赤色の四角形) を単純化し、レースハザード (次のレースハザードのセクションで説明するように黄色の項を削除) を除去しています。
逆の場合については、以下のように簡略化できます。
f ( A 、 B 、 C 、 D ) ¯ = A ¯ B ¯ + A ¯ C ¯ + A ¯ D {\displaystyle {\overline {f(A,B,C,D)}}={\overline {A}}\,{\overline {B}}+{\overline {A}}\,{\overline {C}}+{\overline {A}}D} ド・モルガンの法則 を用いることで、和の積を 求めることができる。
f ( A 、 B 、 C 、 D ) = f ( A 、 B 、 C 、 D ) ¯ ¯ = A ¯ B ¯ + A ¯ C ¯ + A ¯ D ¯ = ( A ¯ B ¯ ¯ ) ( A ¯ C ¯ ¯ ) ( A ¯ D ¯ ) = ( A + B ) ( A + C ) ( A + D ¯ ) {\displaystyle {\begin{aligned}f(A,B,C,D)&={\overline {\overline {f(A,B,C,D)}}}\\&={\overline {{\overline {A}}\,{\overline {B}}+{\overline {A}}\,{\overline {C}}+{\overline {A}}\,D}}\\&=\left({\overline {{\overline {A}}\,{\overline {B}}}}\right)\left({\overline {{\overline {A}}\,{\overline {C}}}}\right)\left({\overline {{\overline {A}}\,D}}\right)\\&=\left(A+B\right)\left(A+C\right)\left(A+{\overline {D}}\right)\end{aligned}}}
レースの危険性
排除 カルノー図は、競合状態 を検出して排除するのに役立ちます。カルノー図を使用すると、競合状態は非常に簡単に見つけることができます。なぜなら、マップ上で囲まれた隣接しているが互いに分離している領域間で移動する際に、競合状態が発生する可能性があるからです。ただし、グレイ符号化の性質上、隣接には 上記で説明した特別な定義があります。実際には、長方形ではなく、上部、下部、側面を囲むトーラス上を移動していることになります。
上記の 例では、C とDが 両方とも0、A が1、B が1から0に変化する(青色の状態から緑色の状態へ移行する)場合に、潜在的な競合状態が発生します。この場合、出力は1のまま変化しないように定義されていますが、この遷移は方程式内の特定の項でカバーされていないため、グリッチ( 出力が一時的に0に遷移する)が発生する可能性があります。同じ例には、見つけにくいもう一つの潜在的な不具合があります。それは、 D が0で、A とBが 両方とも1であり、Cが1から0に変化する(青色の状態から赤色の状態に移行する)場合です。この場合、不具合はマップの上部から下部へと一周します。 この図には、レースハザードが存在します。 レースハザードを回避するために合意事項を追加した上記の図。 実際に不具合が発生するかどうかは実装の物理的な性質に依存し、それを気にする必要があるかどうかはアプリケーションに依存します。クロック制御ロジックでは、ロジックがタイミング期限内に目的の値に落ち着けば十分です。今回の例では、クロック制御ロジックは考慮していません。
私たちの場合、追加の項はA D ¯ {\displaystyle A{\overline {D}}} 緑と青の出力状態、または青と赤の出力状態の間の橋渡しをすることで、潜在的な競合の危険性を排除します。これは、隣の図の黄色の領域(右半分の下から上までを囲む部分)として示されています。
この用語はシステムの静的な論理の観点からは冗長だが、このような冗長な、あるいは 合意に基づく用語は 、競合のない動的なパフォーマンスを保証するためにしばしば必要となる。
同様に、A ¯ D {\displaystyle {\overline {A}}D} 別の潜在的なレースハザードを排除するために、逆数に加算する必要があります。ド・モルガンの法則を適用すると、f の別の積和表現が生成されますが、新しい因子が加わります。( A + D ¯ ) {\displaystyle \left(A+{\overline {D}}\right)} 。
2変数マップの例 以下は、可能なすべての 2 変数、2 × 2 カルノー図です。各カルノー図には、 の関数としての最小項がリストされています。∑ m ( ) {\textstyle \sum m()} そして、レースハザードフリー(前のセクション を参照 )の最小方程式。 ミニタームは、マッピングされた変数の最も最小の形式の式として定義されます。 可能なすべての水平方向および垂直方向の相互接続ブロックを形成できます。 これらのブロックは、2 のべき乗 (1、2、4、8、16、32、...) のサイズでなければなりません。 これらの式は、マッピングされるバイナリ式の最小論理変数式の最小論理マッピングを作成します。 以下は、1 つのフィールドを持つすべてのブロックです。
ブロックは、チャートの下、上、左、右にまたがって継続できます。変数最小化のために、チャートの端を超えて折り返すこともできます。これは、各論理変数が各垂直列と水平行に対応しているためです。kマップの視覚化は円筒形と考えることができます。左端と右端のフィールドは隣接しており、上端と下端も隣接しています。4変数のKマップは、ドーナツまたはトーラスの形状で表現する必要があります。kマップによって描画される正方形の4つの角は隣接しています。5変数以上の場合は、さらに複雑なマップが必要です。
Σ m (0); K = 0
Σ m (1); K = A ′ B ′
Σ m (2); K = AB ′
Σ m (3); K = A ′ B
Σ m (4); K = AB
Σ m (1,2); K = B ′
Σ m (1,3); K = A ′
Σ m (1,4); K = A ′ B ′ + AB
Σ m (2,3); K = AB ′ + A ′ B
Σ m (2,4); K = A
Σ m (3,4); K = B
Σ m (1,2,3); K = A' + B ′
Σ m (1,2,4); K = A + B ′
Σ m (1,3,4); K = A ′ + B
Σ m (2,3,4); K = A + B
Σ m (1,2,3,4); K = 1
注記 ↑ これは、先に見つけた関数の結果の否定と混同してはいけません。
参考文献 1 2 カルノー、モーリス (1953 年 11 月) [1953 年 4 月 23 日、1953 年 3 月 17 日]。「組み合わせ論理回路の合成のためのマップ法」(PDF) 。米国電気学会論文集、パート I: 通信および電子工学 。72 (5): 593–599。doi : 10.1109 /TCE.1953.6371932。論文 53-217。2017 年 4 月 16 日にオリジナル (PDF) からアーカイブ。2017 年4月 16 日 に取得 。(注:サミュエル・H・コールドウェル による短い書評も収録されています。)↑ カーティス、ハーバート・アレン (1962)。 スイッチング回路設計への新しいアプローチ 。ベル研究所シリーズ (第 1 版)。米国ニュージャージー州プリンストン: D. van Nostrand Company, Inc. ISBN 0-44201794-4 OCLC 1036797958 S2CID 57068910 ISBN 978-0-44201794-1 . ark:/13960/t56d6st0q。 (viii+635ページ)(注:本書は1969年にチン・ジによって再版されました。)1 2 Veitch, Edward Westbrook (1952-05-03) [1952-05-02]. "真理関数を簡略化するためのチャート法". Proceedings of the 1952 ACM national meeting (Pittsburgh) on - ACM '52 . New York, USA: Association for Computing Machinery . pp. 127– 133. doi : 10.1145/609784.609801 . S2CID 17284651 . 1 2 3 4 5 6 7 Brown, Frank Markham (2012) [2003, 1990]. Boolean Reasoning - The Logic of Boolean Equations (第2版の再版 ). Mineola, New York: Dover Publications, Inc. ISBN 978-0-486-42785-0 。1 2 マルカンド、アラン (1881)。 「XXXIII: n 項の論理図について 」 。 ロンドン、エジンバラ、ダブリン哲学雑誌および科学ジャーナル 。5. 12 (75): 266– 270。doi : 10.1080 / 14786448108627104。2017-05-15 に 取得 。 (注:多くの二次資料では、この著作を「 n 項の論理図」または「 n 項の論理図について」と誤って引用している。)1 2 ガードナー、マーティン (1958)。「6. マルカンドの機械とその他」。 『 論理機械と図』 (第1 版)。ニューヨーク、アメリカ合衆国:マグロウヒル・ブック ・ カンパニー、 pp. 104–116。ISBN 1-11784984-8 . LCCN 58-6683 . ark:/13960/t5cc1sj6b. x+157ページ)1 2 クリル、ジョージ・ジリ (1972年5月)。「第2章の参照表記」。スイッチング回路 の 方法論入門 (第1 版)。米国ニューヨーク州ビンガムトン:リットン教育出版株式会社/ D.ヴァン・ ノ ストランド社 。p.84。ISBN 0-442-24463-0 LCCN 72-181095 . C4463-000-3。 (xvi+573+1ページ)↑ クレンショー、ジャック (2003-11-17)。 「カルノー図入門」 。 埋め込み 。2026-04-25 に 取得 。 ↑ ウェイクリー、ジョン F. (1994). デジタルデザイン:原理と実践 . ニュージャージー州、アメリカ合衆国: プレンティスホール . pp. 48–49、222 . ISBN 0-13-211459-3 。 (注:この2つのページを合わせて読むと、Kマップはグレイコード でラベル付けされていることがわかります。最初のセクションでは、エントリ間で1ビットだけ変化するコードでラベル付けされていると述べており、2番目のセクションでは、そのようなコードがグレイコードと呼ばれると述べています。)↑ Belton, David (1998年4月)。 「カルノー図 – 簡略化のルール」 。 2017年4月18日にオリジナルから アーカイブ済み 。 2009年5月30日 に取得。 ↑ Dodge, Nathan B. (2015 年 9 月). 「カルノー図による論理回路の簡略化」 (PDF) . テキサス大学ダラス校 、 エリック・ジョンソン工学・コンピュータ科学部 。2017 年 4 月 18 日のオリジナルから アーカイブ (PDF) 。2017 年 4 月 18 日 取得 。 ↑ Cook, Aaron. "コードを簡素化するためのカルノー図の使用" . Quantum Rarity. 2017年4月18日のオリジナルから アーカイブ済み 。 2012年10月7日 取得。
さらに読む カッツ、ランディ・ハワード (1998)[1994]。現代論理設計 。第 26巻。 ベンジャミン/カミングス出版。70 ~85ページ。ISBN 0-8053-2703-7 。ヴィングロン、シモン・ピーター(2004)[2003年11月5日]。「カルノー図」。『スイッチング理論:述語論理による洞察』 。ベルリン、ハイデルベルク、ニューヨーク:シュプリンガー・フェルラーク。57 ~ 76頁。ISBN 3-540-40343-4 。 ウィックス、ウィリアム E. (1968). "3.5. ヴェイチ図".集積回路による論理設計 . ニューヨーク、米国:ジョン・ワイリー・アンド・サンズ . pp. 36–49 . LCCN 68-21185 . p. 36: […] 円を四角形に置き換え、行列の形で配置したベン図 の改良版です。ヴェイチ図は、四角形に 最小項 のラベルを付けます。 カルノー は 、四角形とそのラベルに 1 と 0 を割り当て、一般的に使用されている番号付け方式を導き出しました。 マックスフィールド、クライヴ「マックス」(2006年11月29日)。「リード・ミュラー論理」。論理学入門 。EE Times 。パート3。2017年4月19日のオリジナルからアーカイブ。2017年4月19日 に取得。 リンド、ラリー・フレデリック;ネルソン、ジョン・クリストファー・カンリフ(1977)。「セクション2.3」。順序デジタルシステムの解析と設計 。マクミラン 出版 。ISBN 0-33319266-4 。 (146ページ)Holder, Michel Elizabeth (2005 年 3 月) [2005-02-14]. "修正カルノー図法" . IEEE Transactions on Education . 48 (1). IEEE : 206– 207. Bibcode : 2005ITEdu..48..206H . doi : 10.1109/TE.2004.832879 . eISSN 1557-9638 . ISSN 0018-9359 . S2CID 25576523 . Cavanagh, Joseph (2008). Computer Arithmetic and Verilog HDL Fundamentals (1 ed.). CRC Press . コハヴィ、ツヴィ。ジャー、ニラジ K. (2009)。スイッチングと有限オートマトン理論 (第 3 版)。ケンブリッジ大学出版局 。ISBN 978-0-521-85748-2 。 グルント、ユルゲン (2011)。シャルタル数の KV ダイアグラム - Verknüpfungen、Beweise、Normalformen、schhaltalgebraische Umformungen、Anschauungsmodelle、Paradebeispiele [ ブール代数の KV 図 - 関係、証明、正規形、代数変換、例示的なモデル、典型的な例 ] (Windows/Mac 実行可能ファイルまたはAdobe Flash 対応ブラウザCD-ROM) (電子ブック) (ドイツ語) (第 1 版)。ベルリン、ドイツ: viademica Verlag。ISBN 978-3-939290-08-7 . 2022年11月12日にオリジナルからアーカイブ(PDF) 。2022年11月26日 に取得。 (全282ページ、アニメーション14点収録)
外部リンク 重なり合う長方形の検出(2013年11月6日にWayback Machine に アーカイブ)、Herbert Glarner著。 カルノー図を実用的な用途に活用する、信号機を制御するための回路設計プロジェクト。 2、3、4、5変数のKマップチュートリアル(Wayback Machine に2024年4月12日に アーカイブ済み) POCKET–PC ブール関数の簡略化、Ledion Bitincka — George E. Antoniou 2020年11月17日にWayback Machine に アーカイブ済み Kマップのトラブルシューティング 「Kマップ(カルノー図)ガイド」(PDF) 。カリフォルニア州立大学サンマルコス校。2023年12月18日 取得。