ザイリンクス Convolution Encoder ブロックは、たたみ込み符号のエンコーダーをインプリメントします。通常は Viterbi デコーダーと併用され、デジタル通信システムで前方エラー訂正 (FEC) を実行します。このブロックは AMBA® AXI4-Stream 規格に準拠しています。
次の図に示すように、値はリニア フィード フォワード シフト レジスタを使用してエンコードされます。リニア フィード フォワード シフト レジスタは、入力データのスライディング ウィンドウ上でモジュロ 2 の和を計算します。シフト レジスタの長さは、制約の長さにより指定されます。データ ウィンドウのどのビットがモジュロ 2 の和に寄与するかは、たたみ込みコードによって指定されます。ブロックをリセットすると、シフト レジスタは 0 になります。エンコーダーのレートは、入力ビット長と出力ビット長の比になります。たとえばレート 1/2 のエンコーダーは、1 ビットが入力されるごとに 2 ビットを出力します。同様にレート 1/3 のエンコーダーは 1 ビットが入力されるたびに 3 ビットを出力します。
ブロック パラメーター
次の図に、Block Parameters ダイアログ ボックスを示します。
- page_0 タブ
-
page_0 タブには、次のパラメーターがあります。
- Data Rates and Puncturing
-
- Punctured
- ブロックがパンクチャされるかどうかを指定します。
- Dual Output
- デュアル チャネルのパンクチャされたブロックを指定します。
- Input Rate
- [Punctured] がオン: 入力レートのみを変更できます。2 ~ 12 の値を指定します。レート n/m のエンコーダーが生成されます (n は入力レートおよび n<m<2n)。
- Output Rate
- [Punctured] がオフ: 出力レートのみを変更できます。2 ~ 7 までの値を指定します。レート 1/2 またはレート 1/7 のエンコーダーが生成されます。
- Puncture Code0 and Code1
- 2 つのパンクチャ パターン コードを使用し、出力前にエンコードされたデータからビットを除去します。コードを有効なものにするため、各パンクチャ コードの長さはパンクチャ入力レートに等しくし、2 つのコードで 1 に設定されたビットの合計数はパンクチャ出力レート (m) に等しくする必要があります。0 の位置は、エンコーダーからの出力ビットが送信されないことを示します。関連の LogiCORE™ データシートの例を参照してください。
- Optional Pins
-
- Tready
- ブロックに
tready
ピンを追加します。現在のサイクルでスレーブが転送を受信可能であることを示します。 - Aclken
- ブロックに aclken を追加します。この信号はクロック イネーブルとなるので、ブール型である必要があります。
- Aresetn
- ブロックに
aresetn
ピンを追加します。この信号はブロックをリセットし、Bool
型である必要があります。この信号は 2 クロック サイクル以上アサートする必要がありますが、デコーダーがデコードを開始する前にアサートする必要はありません。このピンが選択されていない場合、このピンは Model Composer によりコアの非アクティブ (High) に接続されます。
- page_1 タブ
-
page_1 タブには、次のパラメーターがあります。
- Radix
-
- Convolution code radix
- [Binary]、[Octal]、[Decimal] のいずれかを選択します。
- Convolution
-
- Constraint length
- n+1 に等しい値になります (n はエンコーダー内の制約レジスタの長さ)。
- Convolution code
- 2 進数のたたみ込みコードの配列です。出力レートは配列の長さから派生します。2 から 7 まで (2 と 7 も含む) のコードを入力できます。
このブロックで使用されるその他のパラメーターについては、[Block Parameters] ダイアログ ボックスの共通オプション を参照してください。
LogiCORE 資料
『Convolutional Encoder LogiCORE IP 製品ガイド』 (PG026)