1. 論理演算とは
論理演算は、真または偽の2つの値(通常、1と0で表される)を持つデータ(論理値)に対して行われる演算のことを指します。これらの演算は、プログラミングやデジタル回路設計などの分野で広く利用されています。
2. 論理積:AND
両方の入力が真の場合にのみ真を返します。これを表にして表したものを真理値表といいます。
A | B | \(A \cdot B\) |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
3. 論理和:OR
どちらかの入力が真の場合に真を返します。
A | B | \(A + B\) |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
4. 論理否定:NOT
入力の真偽を反転させます。
A | \(\bar{A}\) |
0 | 1 |
1 | 0 |
5. 排他的論理和:XOR
2つの入力が異なる場合に真を返します。
A | B | \(A \oplus B\) |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
6. 否定的論理積:NAND
AND演算の結果を否定したものです。つまり、両方の入力が真の場合にのみ偽を返し、それ以外の場合は真を返します。
A | B | \(\overline{A \cdot B}\) |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
7. 否定的論理和:NOR
OR演算の結果を否定したものです。つまり、どちらかの入力が真の場合に偽を返し、両方の入力が偽の場合にのみ真を返します。
A | B | \(\overline{A + B}\) |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
8. 等価演算:XNOR
XOR演算の結果を否定したものです。つまり、2つの入力が同じ場合に真を返します。
A | B | \(A \odot B\) |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
9. NANDとNORの特徴
9.1. 普遍性
NANDゲートやNORゲートだけを使用して、他のすべての論理ゲート(AND、OR、NOT、XORなど)を構築することができます。この性質から、これらは「普遍ゲート」とも呼ばれます。
9.2. デジタル回路
NANDやNORは、デジタル回路の設計において基本的な構成要素として使用されることが多いです。特に、集積回路の設計において、NANDやNORのみを使用して複雑な論理関数を実現することが一般的です。(次項、ドモルガンの法則参照)
10. ドモルガンの法則
10.1. ドモルガンの法則とは?
ドモルガンの法則は、論理演算に関する2つの基本的な等式を示す法則です。この法則は、論理回路の設計や論理式の簡単化において非常に有用です。具体的には、次の2つの等式が成り立ちます。
\(\overline{A \cdot B} = \bar{A} + \bar{B}\)
\(\overline{A + B} = \bar{A} \cdot \bar{B}\)
- 第一の法則は、AND演算の結果を否定することは、各入力を個別に否定してからOR演算を行うことと等価であることを示しています。
- 第二の法則は、OR演算の結果を否定することは、各入力を個別に否定してからAND演算を行うことと等価であることを示しています。
10.2. ドモルガンの法則の応用
- 論理式の簡単化:ドモルガンの法則を使用すると、論理式をより簡単な形に変換することができます。これは、デジタル回路の設計やプログラムの最適化に役立ちます。
- 論理ゲートの変換:ドモルガンの法則を利用して、特定の論理ゲート(例:NAND、NOR)のみを使用して、他の論理ゲートの動作を模倣する回路を設計することができます。
11. カルノー図
11.1. 組み合わせ回路の加法標準形
組み合わせ回路の加法標準形(Canonical Sum-of-Products Form、SOP形式)は、論理関数を表現するための一般的な方法の一つです。この形式では、論理関数は複数の積項(AND演算の組み合わせ)の論理和(OR演算)として表現されます。
11.2. 加法標準形の特徴
- 各積項は、入力変数またはその否定からなります。
- 論理関数の出力が1となるすべての入力組み合わせに対応する積項が存在します。
- 各積項は、その積項が1となる特定の入力組み合わせのみを表現します。
11.3. 加法標準形の例
考える論理関数が以下の真理値表を持つとします。
A | B | 出力 |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
この論理関数の加法標準形は以下のようになります。
\(F(A,B) = \bar{A} \cdot B + A \cdot \bar{B} \)
ここで、
- \(\bar{A} \cdot B\)は、Aが0かつBが1のときに1となる積項を表しています。
- \(A \cdot \bar{B} \)は、Aが1かつBが0のときに1となる積項を表しています。
これらの積項をOR演算で組み合わせることで、元の論理関数が得られます。
11.4. カルノー図
上記の論理演算をカルノー図で表現すると以下のようになります。
カルノー図は、変数の数が少ない場合は有効です。変数が5つ以上になると図が複雑になるため扱いが難しくなります。また、人間が手動で作業をおこなうためミスが入り込む余地があります。そのため、カルノー図は、小規模な論理関数の最小化に非常に有効なツールですが、変数の数が多い場合や複雑な関数の場合には、他の最小化手法やツールを検討することが推奨されます。
11.5. カルノー図の例
上図で①の領域は
\( \bar{A} \cdot \bar{B} \cdot \bar{C} \cdot \bar{D} + \bar{A} \cdot \bar{B} \cdot C \cdot \bar{D} \)
=\( \bar{A} \cdot \bar{B} \cdot \bar{D} \cdot ( \bar{C} + C) \)
= \( \bar{A} \cdot \bar{B} \cdot \bar{D} \)
となります。
②の領域は、①と同様に計算していくと
\( \bar{A} \cdot B \cdot (\bar{C} \cdot D + C \cdot D) + A \cdot B \cdot ( \bar{C} \cdot D + C \cdot D ) \)
= \( \bar{A} \cdot B \cdot D + A \cdot B \cdot D \)
= \( B \cdot D \)
となります。
よって、このカルノー図と等価な論理式は上記2つの論理積の論理和をとって、\( \bar{A} \cdot \bar{B} \cdot \bar{D} + B \cdot D \)となります。