Digital-circuits-digital-combinational-circuits
デジタル組み合わせ回路
- 組み合わせ回路*は論理ゲートで構成されています。 これらの回路はバイナリ値で動作します。 組み合わせ回路の出力は、現在の入力の組み合わせに依存します。 次の図は、組み合わせ回路の*ブロック図*を示しています。
この組み合わせ回路には、「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 を示しています。
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つのインバータが含まれます。