Digital-circuits-digital-combinational-circuits

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

デジタル組み合わせ回路

  • 組み合わせ回路*は論理ゲートで構成されています。 これらの回路はバイナリ値で動作します。 組み合わせ回路の出力は、現在の入力の組み合わせに依存します。 次の図は、組み合わせ回路の*ブロック図*を示しています。

組み合わせ回路

この組み合わせ回路には、「n」個の入力変数と「m」個の出力があります。 入力変数の各組み合わせは、出力に影響します。

組み合わせ回路の設計手順

  • 指定された仕様から必要な数の入力変数と出力を見つけます。
  • *真理値表*を作成します。 「n」個の入力変数がある場合、2n個の可能な組み合わせがあります。 入力の組み合わせごとに、出力値を見つけます。
  • 各出力の*ブール式*を見つけます。 必要に応じて、これらの式を簡素化します。
  • *論理ゲート*を使用して、各出力に対応する上記のブール式を実装します。

コードコンバーター

コードという章でさまざまなコードについて説明しました。 1つのコードを他のコードに変換するコンバーターは、 code converters と呼ばれます。 これらのコードコンバーターは、基本的に論理ゲートで構成されています。

バイナリコードからグレーコードへのコンバーター

4ビットのバイナリコードWXYZを同等のグレイコードABCDに変換するコンバーターを実装しましょう。

次の表に、4ビットバイナリコードからグレイコードへのコンバーターの*真理値表*を示します。

Binary code WXYZ WXYZ Gray code ABCD
0000 0000
0001 0001
0010 0011
0011 0010
0100 0110
0101 0111
0110 0101
0111 0100
1000 1100
1001 1101
1010 1111
1011 1110
1100 1010
1101 1011
1110 1001
1111 1000

真理値表から、以下のようにグレイコードの各出力ビットに対して*ブール関数*を書くことができます。

A = \ sum m \ left(8,9,10,11,12,13,14,15 \ right)

B = \ sum m \ left(4,5,6,7,8,9,10,11 \ right)

C = \ sum m \ left(2,3,4,5,10,11,12,13 \ right)

D = \ sum m \ left(1,2,5,6,9,10,13,14 \ right)

4つの変数K-Mapを使用して上記の関数を単純化します。

次の図は、ブール関数A *を簡略化するための *4変数K-Map を示しています。

ブール関数

8つの隣接するものをグループ化することにより、$ A = W $を得ました。

次の図は、ブール関数B *を簡略化するための *4変数K-Map を示しています。

ブール関数B

4つの隣接するグループが2つあります。 グループ化後、Bを取得します

B = \ {W} 'X + W \ {X}' = W \ oplus X

同様に、単純化した後、CおよびDに対して次のブール関数を取得します。

C = \ {X} 'Y + X \ {Y}' = X \ oplus Y

D = \ {Y} 'Z + Y \ {Z}' = Y \ oplus Z

次の図は、4ビットバイナリコードからグレイコードへのコンバータの*回路図*を示しています。

コードコンバーター

出力は現在の入力のみに依存するため、この4ビットバイナリコードからグレイコードへのコンバーターは組み合わせ回路です。 同様に、他のコードコンバーターを実装できます。

パリティビットジェネレーター

生成されるパリティビットのタイプに基づいて、2種類のパリティビットジェネレータがあります。 偶数パリティジェネレータ*は、偶数パリティビットを生成します。 同様に、 oddパリティジェネレーター*は奇数パリティビットを生成します。

偶数パリティジェネレーター

次に、3ビットバイナリ入力WXYに偶数パリティジェネレーターを実装しましょう。 偶数パリティビットPを生成します。 入力に奇数の1が存在する場合、偶数パリティビットPは「1」であるため、結果のワードには偶数の1が含まれます。 入力の他の組み合わせ、偶数パリティビットの場合、Pは「0」でなければなりません。 次の表に、偶数パリティジェネレーターの*真理値表*を示します。

Binary Input WXY Even Parity bit P
000 0
001 1
010 1
011 0
100 1
101 0
110 0
111 1

上記の真理値表から、偶数パリティビットの*ブール関数*を次のように書くことができます。

P = \ {W} '\ {X}' Y + \ {W} 'X \ {Y}' + W \ {X} '\ {Y}' + WXY

$ \ Rightarrow P = \ {W} '\ left(\ {X}' Y + X \ {Y} '\ right)+ W \ left(\ {X}' \ {Y} '+ XY \ right)$

$ \ Rightarrow P = \ {W} '\ left(X \ oplus Y \ right)+ W \ {\ left(X \ oplus Y \ right)}' = W \ oplus X \ oplus Y $

次の図は、偶数パリティジェネレーターの*回路図*を示しています。

偶数パリティ生成器

この回路は、それぞれ2つの入力を持つ2つの*排他的ORゲート*で構成されています。 2つの入力W&Xを持ち、出力W⊕Xを生成する最初のExclusiveORゲート。 この出力は、2番目の排他的ORゲートの1つの入力として与えられます。 この2番目の排他的ORゲートのもう一方の入力はYで、W⊕X⊕Yの出力を生成します。

奇数パリティジェネレーター

入力に偶数の1が存在する場合、奇数のパリティビットPは「1」にして、結果のワードに奇数の1が含まれるようにします。 入力、奇数パリティビットの他の組み合わせの場合、Pは「0」でなければなりません。

奇数パリティジェネレーターを実装するには、偶数パリティジェネレーターと同じ手順に従います。 奇数パリティジェネレーターの*回路図*を次の図に示します。

奇数パリティ生成器

上記の回路図は、第1レベルのEx-ORゲートと第2レベルのEx-NORゲートで構成されています。 奇数パリティは偶数パリティのちょうど反対であるため、偶数パリティジェネレータの出力にインバータを配置できます。 その場合、第1レベルと第2レベルの各レベルにはExORゲートが含まれ、第3レベルにはインバーターが含まれます。

パリティチェッカー

チェックする必要があるパリティのタイプに基づいて、2種類のパリティチェッカーがあります。 偶数パリティチェッカー*は、偶数パリティとともにメッセージビットを含む送信データのエラーをチェックします。 同様に、 oddパリティチェッカー*は、送信データのエラーをチェックします。これには、奇数パリティとともにメッセージビットが含まれています。

偶数パリティチェッカー

次に、偶数パリティチェッカー回路を実装しましょう。 3ビットのバイナリ入力、WXYが偶数パリティビットPとともに送信されると仮定します。 したがって、結果のワード(データ)には4ビットが含まれ、偶数パリティチェッカーの入力として受信されます。

  • 偶数パリティチェックビットE *を生成します。 受信したデータに偶数の1が含まれている場合、このビットはゼロになります。 つまり、受信したデータにエラーはありません。 受信したデータに奇数の1が含まれている場合、この偶数パリティチェックビットは1になります。 つまり、受信したデータにエラーがあります。

次の表は、偶数パリティチェッカーの*真理値表*を示しています。

4-bit Received Data WXYP Even Parity Check bit E
0000 0
0001 1
0010 1
0011 0
0100 1
0101 0
0110 0
0111 1
1000 1
1001 0
1010 0
1011 1
1100 0
1101 1
1110 1
1111 0

上記の真理値表から、受信データに奇数の1が存在する場合、偶数パリティチェックビット値は「1」であることがわかります。 つまり、偶数パリティチェックビットのブール関数は* odd関数*です。 排他的OR関数はこの条件を満たす。 したがって、偶数パリティチェックビットの*ブール関数*を直接書くことができます。

E = W \ oplus X \ oplus Y \ oplus P

次の図は、偶数パリティチェッカーの*回路図*を示しています。

パリティチェッカー

この回路は、それぞれ2つの入力を持つ3つの*排他的ORゲート*で構成されています。 最初のレベルのゲートは、$ W \ oplus X $および$ Y \ oplus P $の出力を生成します。 2番目のレベルにある排他的ORゲートは、$ W \ oplus X \ oplus Y \ oplus P $の出力を生成します

奇数パリティチェッカー

3ビットのバイナリ入力、WXYが奇数パリティビットPとともに送信されると仮定します。 したがって、結果のワード(データ)には4ビットが含まれ、奇数パリティチェッカーの入力として受信されます。

*oddパリティチェックビットE* を生成します。 受信したデータに奇数の1が含まれている場合、このビットはゼロになります。 つまり、受信したデータにエラーはありません。 受信したデータに1の偶数が含まれている場合、この奇数パリティチェックビットは1になります。 つまり、受信したデータにエラーがあります。

奇数パリティチェッカーを実装するには、偶数パリティチェッカーの同じ手順に従います。 奇数パリティチェッカーの*回路図*を次の図に示します。

奇数パリティチェッカー

上記の回路図は、第1レベルのEx-ORゲートと第2レベルのEx-NORゲートで構成されています。 奇数パリティは偶数パリティと正反対であるため、偶数パリティチェッカーの出力にインバータを配置できます。 その場合、第1、第2、および第3レベルには、それぞれ2つのEx-ORゲート、1つのEx-ORゲート、および1つのインバータが含まれます。