Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

General CRC Generator HDL Optimized

CRC 符号ビットを生成し、それらを入力データに付加

  • General CRC Generator HDL Optimized block

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

説明

General CRC Generator ブロックに類似した General CRC Generator HDL Optimized ブロックは、巡回冗長検査 (CRC) チェックサムを生成して入力メッセージ ビットの最後に付加します。General CRC Generator HDL Optimized ブロックの処理は HDL コード生成用に最適化されます。フレーム全体を一度に処理する代わりに、このブロックはデータのサンプル ストリームを付随する制御信号と共に受け入れて返します。制御信号は、サンプルの妥当性やフレームの境界を示します。より高いスループットを達成するため、このブロックは最大で 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

パラメーター

すべて展開する

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

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

チェックサムを計算するための直接的または間接的な方法を指定します。

  • 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.

拡張機能

バージョン履歴

R2012a で導入