ベイチ図の例 (3変数)


3変数の論理式からベイチ図を作成し、論理式の簡略化(論理圧縮)を行います。

$$ Z = \overline{A} \ \overline{B} \ \overline{C} + \overline{A} \ \overline{B} C + AB\overline{C} + A \overline{B} \ \overline{C} + A\overline{B}C $$

2行4列の表を作成する

3変数のうち、2変数を行方向に、1変数を列方向に割り当てることにします。これに対応して、まず2行4列の表を作成します。

まず線を引く

2行4列の表

変数の割り当て

変数A,B,Cを行、列に割り当てます。ここでは行方向にAとBを、列方向にCを割り当てます。割り当てに決まりはありません。行方向にAとCを、列方向にBを割り当てても最終的な結果は同じです。(図中のA,B,Cは実際には書きません。)

A,B,Cを行、列に割り当てる

A,B,Cを行、列に割り当てる

変数の見出しを書く

変数A,B,Cが取り得る値を行、列に割り当てます。行方向はAとBの2変数の組み合わせになります。ここで注意するのは、隣同士のセルではAとBの変化が1箇所だけにすることです(Grayコード)。例えば、00→01→11→10と変化するように見出しを書く必要があります。00→01→10→11と変化させると、01→10の部分で2箇所値が変化しているので、ベイチ図が機能しなくなります。
列方向のCは1変数なので0と1を割り当てます。次に、表の上下左右に中かっこと変数名を書きます。変数名を書く場所は、その変数の1を割り当てた箇所になります。

0と1を割り当てる

0と1を割り当てる

セルに値を書き込む

ベイチ図を作成する論理式は主加法標準形で書かれているので、論理式の各項の組み合わせに対応するセルに1を書きます。これでベイチ図は完成です。
$$ Z = \overline{A} \ \overline{B} \ \overline{C} + \overline{A} \ \overline{B} C + AB\overline{C} + A \overline{B} \ \overline{C} + A\overline{B}C $$

論理式から1の部分を埋める

論理式から1の部分を埋める

論理式の簡略化

ここから、回路の簡略化を行います。ベイチ図で1が連続している部分に注目し、○で囲みます。○で囲む時のルールは次の通りです。

  • 1の部分を○で囲む
  • 囲んだ中はすべて1になっていること
  • 囲んだ表のセルは縦と横が2のべき乗になっていること
  • 囲みはできるだけ大きくする
  • 表の上下、左右の両端はつながっている
  • セルは何度囲んでもよい(囲みが重なってもよい)

“表の上下、左右の両端はつながっている”というのは、メルカトル図法の世界地図のようになっているという意味です。具体的には、AB=10の右隣はAB=00ということを意味します。また、C=1の下方向はC=0ということを意味します。

1の部分をできるだけ大きく囲む

1の部分をできるだけ大きく囲む

2つの囲み(赤と青)ができます。
まず、赤い囲みに着目します。この部分だけの論理式を作成すると
$$ z1 = AB \ \overline{C} + A \overline{B} \ \overline{C} = A \ \overline{C} ( B + \overline{B} )$$
つまり、Bの値は0でも1でもどちらでもよい、Bは冗長ということがわかります。このことから、結局赤い囲みは
$$ z1 = A \ \overline{C} $$
となります。
次に青い囲みに着目します。この部分だけの論理式を作成すると
$$ z2 = \overline{A} \ \overline{B} \ \overline{C} + \overline{A} \ \overline{B} \ C + A \overline{B} \ \overline{C} + A \overline{B} \ C $$
$$ = \overline{B} ( \overline{A} \ \overline{C} + \overline{A} C + A \overline{C} + AC) $$
$$ = \overline{B} ( \overline{A} ( \overline{C} + C ) + A( \overline{C} + C )) $$
$$ = \overline{B} ( \overline{A} + A) $$
$$ = \overline{B} $$
となります。実際には、このような論理式の展開を行わなくても、青い囲みで0と1の両方が入ってる変数を冗長と考えれば \( z2 = \overline{B} \)ということがわかります。
これらの結果から、最終的な論理式は次のようになります。
$$ Z = z1 + z2 = A \ \overline{C} + \overline{B} $$

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク