パリティジェネレータ(VHDL)

Logic Home

ソースコードのダウンロード

parity_generator.vhd(2.0 KB)

特長

  • パリティジェネレータコンポーネントのVHDLソースコード
  • 入力ビット数が設定可能
  • 偶数または奇数パリティが設定可能

はじめに

パリティは、バイナリコード中の「1」のビット数が奇数か偶数かを判定します。これは、エラーチェックのシンプルな手段を提供します。パリティには2種類あり、結果は正反対になります。

偶数パリティでは、元のコードに奇数個の「1」ビットがあれば「1」が生成され、偶数個あれば「0」が生成されます。偶数パリティビットは、「1」ビットの数を偶数にするためにコードに付加されます。

奇数パリティでは、元のコードに奇数個の「1」ビットがあれば「0」が生成され、偶数個あれば「1」が生成されます。奇数パリティビットは、「1」ビットの数を奇数にするためにコードに付加されます。

このページでは、FPGAおよびCPLDで使用するためにVHDLで記述されたパリティジェネレータ回路について詳しく説明します。このコンポーネントは、パラレルインターフェースを介してバイナリコードを読み取り、パリティビットを出力します。入力ビット幅は設定可能で、出力パリティが偶数パリティか、奇数パリティかも、設定可能です。Quartus Prime, version 17.0.0を使用して設計されています。

動作理論

このパリティジェネレータは、単純なXORロジックを使用します。図1の真理値表が示すように、「1」の入力の数が偶数の場合はXORゲートは「0」を出力し、「1」の入力の数が奇数の場合はXORゲートは「1」を出力します。

表 1. .XOR真理値表
truth_table

図1に、パリティジェネレータを示します。parity_eo入力は偶数または奇数パリティの選択を行います(「0」であれば偶数パリティ、「1」であれば奇数パリティ)。カスケード接続されたXORゲートは、LSBからMSBに向かって順次、奇数か偶数かを調べ、その結果を次のステージに伝えます。そのステージでは次の入力ビットと前段までの結果を踏まえて、奇数であるのか、偶数であるのかを決定します。全ての入力ビットが評価されると、parity出力に最終結果が現れます。

図 1. パリティジェネレータ回路

パリティジェネレータの設定

パリティジェネレータは、VHDLのENTITY内に、GENERICパラメータを設定することで構成されます。表2にパラメータを示します。

表 2. ジェネリックパラメータの説明
generic_parameter_descriptions

ポートの説明

表3に、パリティジェネレータのポートを示します。

表 3. ポートの説明

まとめ

このシンプルなパリティジェネレータは、設定可能なサイズのバイナリコードのパリティビットを生成します。偶数パリティと奇数パリティの両方をサポートします。



オリジナル・ソース(English)