Digital-circuits-encoders

提供:Dev Guides
移動先:案内検索

デジタル回路-エンコーダー

  • エンコーダ*は、デコーダの逆の操作を実行する組み合わせ回路です。 最大2 ^ n ^個の入力行と「n」個の出力行があります。 入力と同等のバイナリコードを生成します。これはアクティブHighです。 したがって、エンコーダーは2 ^ n ^入力行を「n」ビットでエンコードします。 エンコーダーでイネーブル信号を表すことはオプションです。

4対2エンコーダー

4 to 2エンコーダーには、4つの入力Y〜3〜、Y〜2〜、Y〜1〜&Y〜0〜と2つの出力A〜1〜&A〜0〜があります。 次の図に、4対2エンコーダーの*ブロック図*を示します。

4 to 2 Encoder

いつでも、出力でそれぞれのバイナリコードを取得するために、これら4つの入力のうち1つだけが「1」になります。 4対2エンコーダーの*真理値表*を以下に示します。

入力

アウトプット

  • Y〜3〜*
  • Y〜2〜*
  • Y〜1〜*
  • Y〜0〜*
  • A〜1〜*
  • A〜0〜*

0

0

0

1

0

0

0

0

1

0

0

1

0

1

0

0

1

0

1

0

0

0

1

1

真理値表から、各出力の*ブール関数*を次のように書くことができます。

A _ \ {1} = Y _ \ {3} + Y _ \ {2}

A _ \ {0} = Y _ \ {3} + Y _ \ {1}

2つの入力ORゲートを使用して、上記の2つのブール関数を実装できます。 4対2エンコーダーの*回路図*を次の図に示します。

4対2エンコーダー回路図

上記の回路図には2つのORゲートが含まれています。 これらのORゲートは、2つのビットで4つの入力をエンコードします

オクタルからバイナリへのエンコーダ

オクタルからバイナリへのエンコーダには、Y〜7〜からY〜0〜までの8つの入力と、A〜2〜、A〜1〜、A〜0〜の3つの出力があります。 8進数から2進数のエンコーダーは、8から3のエンコーダーです。 次の図に、8進数からバイナリへのエンコーダの*ブロック図*を示します。

Octal to Binary Encoder

いつでも、それぞれのバイナリコードを取得するために、これら8つの入力のうち1つだけが「1」になります。 8進数からバイナリへのエンコーダの*真理値表*を以下に示します。

入力

アウトプット

  • Y〜7〜*
  • Y〜6〜*
  • Y〜5〜*
  • Y〜4〜*
  • Y〜3〜*
  • Y〜2〜*
  • Y〜1〜*
  • Y〜0〜*
  • A〜2〜*
  • A〜1〜*
  • A〜0〜*

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

0

1

0

0

0

1

0

0

0

0

0

1

0

0

0

0

1

1

0

0

0

1

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

1

0

1

0

1

0

0

0

0

0

0

1

1

0

1

0

0

0

0

0

0

0

1

1

1

真理値表から、各出力の*ブール関数*を次のように書くことができます。

A _ \ {2} = Y _ \ {7} + Y _ \ {6} + Y _ \ {5} + Y _ \ {4}

A _ \ {1} = Y _ \ {7} + Y _ \ {6} + Y _ \ {3} + Y _ \ {2}

A _ \ {0} = Y _ \ {7} + Y _ \ {5} + Y _ \ {3} + Y _ \ {1}

4つの入力ORゲートを使用して、上記のブール関数を実装できます。 8進数からバイナリへのエンコーダの*回路図*を次の図に示します。

Octal to Binary Encoder Circuit Diagram

上記の回路図には、3つの4入力ORゲートが含まれています。 これらのORゲートは、3つのビットで8つの入力をエンコードします。

エンコーダーの欠点

以下は、通常のエンコーダの欠点です。

  • エンコーダのすべての出力がゼロに等しい場合、あいまいさがあります。 なぜなら、最下位の入力のみが1の場合、またはすべての入力がゼロの場合、入力に対応するコードである可能性があるからです。 複数の入力がアクティブHighの場合、エンコーダーは出力を生成しますが、これは正しいコードではない可能性があります。 例*では、Y〜3〜とY〜6〜の両方が「1」の場合、エンコーダーは出力で111を生成します。 これは、「1」の場合はY〜3〜に対応する同等のコードでも、「1」の場合はY〜6〜に対応する同等のコードでもありません。

したがって、これらの困難を克服するには、エンコーダの各入力に優先順位を割り当てる必要があります。 次に、エンコーダの出力は、より高い優先度を持つアクティブなHigh入力に対応する(バイナリ)コードになります。 このエンコーダーは*優先順位エンコーダー*と呼ばれます。

優先エンコーダー

4対2の優先順位のエンコーダには、4つの入力Y〜3〜、Y〜2〜、Y〜1〜&Y〜0〜、および2つの出力A〜1〜&A〜0〜があります。 ここでは、入力Y〜3〜が最も高い優先度を持ち、入力Y〜0〜は最も低い優先度を持ちます。 この場合、複数の入力が同時に「1」であっても、出力は入力に対応する(バイナリ)コードになります。

出力で利用可能なコードが有効かどうかを知るために、もう1つの*出力V *を考慮しました。

  • エンコーダーの少なくとも1つの入力が「1」である場合、出力で使用可能なコードは有効です。 この場合、出力Vは1に等しくなります。
  • エンコーダーのすべての入力が「0」の場合、出力で使用可能なコードは有効ではありません。 この場合、出力Vは0に等しくなります。

4〜2優先順位エンコーダーの*真理値表*を以下に示します。

入力

アウトプット

  • Y〜3〜*
  • Y〜2〜*
  • Y〜1〜*
  • Y〜0〜*
  • A〜1〜*
  • A〜0〜*

V

0

0

0

0

0

0

0

0

0

0

1

0

0

1

0

0

1

x

0

1

1

0

1

x

x

1

0

1

1

x

x

x

1

1

1

各出力の簡略化された式を取得するには、* 4変数Kマップ*を使用します。

K Map

簡略化された*ブール関数*は

A _ \ {1} = Y _ \ {3} + Y _ \ {2}

$ A _ \ {0} = Y _ \ {3} + \ {Y _ \ {2}} 'Y _ \ {1} $

同様に、出力のブール関数Vを取得します

V = Y _ \ {3} + Y _ \ {2} + Y _ \ {1} + Y _ \ {0}

論理ゲートを使用して上記のブール関数を実装できます。 次の図に、4対2優先順位エンコーダーの*回路図*を示します。

Priority Encoder

上記の回路図には、2つの2入力ORゲート、1つの4入力ORゲート、1つの2入力ANDゲート、およびインバーターが含まれています。 ここで、ANDゲートとインバーターの組み合わせは、複数の入力が同時に「1」に等しい場合でも、出力で有効なコードを生成するために使用されます。 したがって、この回路は、各入力に割り当てられた*優先度*に基づいて2ビットで4つの入力をエンコードします。