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

General CRC Syndrome Detector HDL Optimized

CRC を使用した入力データ内の誤りの検出 (HDL コード生成のための最適化)

ライブラリ

Communications Toolbox > Error Correction and Detection > CRC (commcrc2)

Communications Toolbox HDL Support > Error Correction and Detection > CRC (commhdlcrc)

説明

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

信号属性

端子方向説明データ型
dataIn入力メッセージ データおよびチェックサム。データは、バイナリ値のベクトルか、複数のビットを表すスカラー整数にすることができます。たとえば、ベクトル入力 [0 0 0 1 0 0 1 1] は uint8 入力 19 と等しくなります。データ幅は CRC の長さ以下でなければならず、CRC の長さはデータ幅の倍数でなければなりません。たとえば、CRC-CCITT/CRC-16 に対し有効なデータ幅は 16、8、4、2 および 1 です。

ベクトル: double または boolean

スカラー: 符号なし整数 (uint8、uint16 または uint32) あるいは fixdt(0,N,0)

startIn入力チェックサムを含む、データ フレームの先頭を示します。boolean
endIn入力データ フレームの終端を示します。boolean
validIn入力入力データが有効であることを示します。boolean
dataOutOutputメッセージ データ。出力データは、入力データと同じ幅をもちます。dataIn と同じ
startOut出力データ フレームの先頭を示します。boolean
endOut出力データ フレームの終端を示します。boolean
validOut出力出力データが有効であることを示します。boolean
err出力err が大きい場合は、受信したデータが破損していることを示します (1)。boolean

パラメーター

Polynomial

降べきの順で多項式を指定する double または boolean のベクトル。CRC の長さは、length(polynomial) – 1 です。既定値は、[1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1] です。

Initial state

内部シフト レジスタの初期状態を指定する、CRC と長さの等しい double または boolean のスカラーかベクトル。既定値は 0 です。

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

  • このパラメーターを選択しない場合は、ブロックでは、CRC チェックサムの計算に非直接アルゴリズムが使用されます。

既定では、このパラメーターはオフです。

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

Reflect input

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

  • このパラメーターを選択した場合、各入力バイトはシフト レジスタに入る前に反転します。

  • このパラメーターを選択しない場合は、メッセージ データはそのままシフト レジスタに渡されます。

既定では、このパラメーターはオフです。

Reflect CRC checksum

CRC の長さは 8 の倍数でなければなりません。

  • このパラメーターを選択した場合、チェックサムの各バイトは最終の XOR 段階に渡される前に反転します。

  • このパラメーターを選択しない場合、チェックサムの各バイトは変更されることなく最終の XOR 段階に渡されます。

既定では、このパラメーターはオフです。

Final XOR value

入力データに追加する前に、CRC チェックサムの XOR を行う際に使用する値。このパラメーターは、CRC と長さの等しい double または boolean のスカラーかベクトルにすることができます。既定値は 0 です。

アルゴリズム

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

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

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

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

タイミング ダイアグラム

この波形は、ストリーミング データと、付随する 8 ビット バイナリ ベクトル入力を使用した CRC16 の制御信号を示しています。入力フレームは連続的であり、出力フレームでは検出器のブロックがチェックサム ワードを削除するため、フレーム間の空白が表示されます。

この波形図は連続入力データを示しています。非連続データもサポートされます。

初期遅延

General CRC Syndrome Detector HDL Optimized ブロックでは出力にレイテンシが発生します。入力データが連続すると仮定して、このレイテンシは次の式で計算できます。

initialdelay = 3 * (CRC length/input data width) + 2

参照

[1] Campobello, Giuseppe, Giuseppe Patane, and Marco Russo. "Parallel CRC Realization." IEEE Transactions on Computers. Vol. 52, No. 10, October 2003, pp. 1312–1319.

拡張機能

R2012b で導入