Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

General CRC Syndrome Detector HDL Optimized

CRC を使用した入力データの誤り検出

  • ライブラリ:
  • Communications Toolbox HDL Support / Error Detection and Correction / CRC

    Communications Toolbox / Error Detection and Correction / CRC

説明

General CRC Syndrome Detector HDL Optimized ブロックはデータに対して巡回冗長検査 (CRC) を実行し、結果のチェックサムを、追加されたチェックサムと比較します。General CRC Syndrome Detector HDL Optimized ブロックの処理は HDL コード生成用に最適化されます。2 つのチェックサムが一致しない場合、ブロックはエラーをレポートします。フレーム全体を一度に処理する代わりに、このブロックはデータのサンプル ストリームを付随する制御信号と共に受け入れて返します。制御信号は、サンプルの妥当性やフレームの境界を示します。より高いスループットを達成するため、このブロックは最大で CRC 長までのベクトル データを受け入れ、並列なアーキテクチャを実装します。

端子

入力

すべて展開する

入力データ。次のいずれかのオプションとして指定します。

  • スカラー – 複数のビットを表す整数を指定します。この場合、ブロックは符号なし整数 (uint8uint16、または uint32) または fixdt(0,N,0) データ型をサポートします。

  • ベクトル – バイナリ値のベクトルを指定します。この場合、ブロックは double または Boolean データ型をサポートします。

データ幅は CRC の長さ以下でなければならず、CRC の長さはデータ幅で割り切れなければなりません。CRC-CCITT/CRC-16 に対して有効なデータ幅は 16、8、4、2 および 1 です。

例: uint8 ベクトル入力 [0 0 0 1 0 0 1 1]19 と等価です。

データ型: double | uint8 | uint16 | uint32 | fixed point | Boolean

入力フレーム インジケーターの開始。boolean スカラーとして指定します。

データ型: Boolean

入力フレーム インジケーターの終了。boolean スカラーとして指定します。

データ型: Boolean

有効な入力データ インジケーター。boolean スカラーとして指定します。

これは、dataIn 端子のデータが有効であるかどうかを示す制御信号です。

データ型: Boolean

出力

すべて展開する

出力データ。スカラーまたはベクトルとして返されます。出力データ型とサイズは入力データと同じです。

データ型: double | uint8 | uint16 | uint32 | Boolean | fixed point

出力フレーム インジケーターの開始。boolean スカラーとして返されます。

データ型: Boolean

出力フレーム インジケーターの終了。Boolean スカラーとして返されます。

データ型: Boolean

有効な出力データ インジケーター。boolean スカラーとして返されます。

これは、dataOut 端子のデータが有効であるかどうかを示す制御信号です。

データ型: Boolean

受信データの破損を示すエラー インジケーター。boolean スカラーとして返されます。

この値が 1 である場合、メッセージには少なくとも 1 つのエラーが含まれています。この値が 0 である場合、メッセージにはエラーがありません。

データ型: Boolean

パラメーター

すべて展開する

係数を降べきの順にしたバイナリ ベクトルとして生成多項式を指定します。ベクトルの長さは多項式の次数に 1 を加算したものに等しくなります。

内部シフト レジスタの初期条件を、倍精度または単精度のバイナリ スカラーまたはベクトルで指定します。ベクトル入力の場合、初期状態の長さは生成多項式の次数と等しくなければなりません。

チェックサムを計算する方法を boolean スカラーとして指定します。

  • このパラメーターを選択すると、CRC チェックサムの計算に直接アルゴリズムが使用されます。

  • このパラメーターをクリアすると、CRC チェックサムの計算に非直接アルゴリズムが使用されます。

直接アルゴリズムと非直接アルゴリズムの詳細は、巡回冗長検査符号を参照してください。

入力のバイト順を指定します。

  • シフト レジスタを入力する前に各入力バイトを反転させるには、ブロックのこのパラメーターを選択します。

  • メッセージ データをそのままシフト レジスタに渡すには、ブロックのこのパラメーターをクリアします。

入力データの幅は 8 の倍数でなければなりません。

チェックサムのバイト順を指定します。

  • ブロックのこのパラメーターを選択すると、最終の XOR 段階に渡す前にチェックサムの各バイトが反転します。

  • ブロックのこのパラメーターをクリアすると、チェックサムのバイトは変更されることなく最終の XOR 段階に渡されます。

入力データの幅は 8 の倍数でなければなりません。

チェックサムを、倍精度または単精度データ型のバイナリ スカラーまたはベクトルで指定します。ブロックは、入力データに付加する前に、この値を使用して XOR 演算を CRC チェックサムに対して実行します。

ベクトル入力を指定した場合、ベクトルの長さは生成多項式の次数と等しくなければなりません。

アルゴリズム

すべて展開する

ベクトルまたは整数入力を使用する場合、ブロックは並列 CRC アルゴリズムを実装します [1]

最新の通信システムに高いスループットを提供するため、ブロックは並列アーキテクチャを使用して CRC アルゴリズムを実装します。このアーキテクチャは、各 W 入力ビットに対して、CRC チェックサムの M ビットを再帰的に計算します。フレームの終わりに、メッセージに対して最終的なチェックサムの結果が付加されます。多項式の長さ M の場合、W ビットに対する並列での再帰的なチェックサムの計算は、次のようになります。

X'=FW(×)X(+)D.

FW は、M 行 M 列の行列であり、新しい入力ビットを使用した多項式の計算に対して現在の状態の要素を選択します。D は、M 要素のベクトルであり、生成多項式に関連して順序付けられ、0 が付加された新しい入力ビットを提供します。ブロックは、論理 AND を使用して (×) を実装し、論理 XOR を使用して (+) を実装します。

参照

[1] Campobello, G., G. Patane, and M. Russo. “Parallel Crc Realization.” IEEE Transactions on Computers 52, no. 10 (October 2003): 1312–19. https://doi.org/10.1109/TC.2003.1234528.

拡張機能

R2012b で導入