Xilinx IP を使用したLabVIEWプログラミング

1.Xilinx IP について

Xilinx IP とは何か

Xilinx 社が提供しているIP コアライブラリです。

Xilinx IP で何ができるのか

Xilinx FPGA 用にあらかじめ最適化されたファンクションを利用できます。

Xilinx IP を使用する利点

GUI に従ってパラメータを設定するだけでIP コアのファンクションを実装できるので、迅速かつ確実な製品開発につながります

2.Xilinx IP のプログラミング例

Xilinx IP のプログラミング例として、Xilinx Viterbi Decoder の設定方法をに記載いたします。

Xilinx IP パレット

LabVIEWのXilinx IP パレットはFPGA のブロックダイアグラムで表示されるFunction のプログラミング内に配置されています。
今回のプログラミング例として使用するViterbi Decoder は下図のパレットにあります。
プログラミング > Xilinx IP > 通信&ネットワーク> エラー修正> Viterbi Decoder

Xilinx IP パレット
LabVIEW Xilinx IP パレット

Viterbi Decoderの構築

1.ブロックダイアグラムにViterbi Decoder を配置します。

2.Viterbi Decoder のアイコンをダブルクリックすると以下のプロパティ画面が表示されます。

Viterbi Decoderの構築

IP 名 : 任意のIP 名を指定できます。同一IP を複数使用するとき以外は特に変更する必要はありません。
サポートファイルのフォルダ:Xilinx IP 構成時に作成されるサポートファイルを保存するフォルダを指定します。
任意の場所を指定できるので、プロジェクトフォルダ内の分かりやすい場所に保存することをお勧めします。

Viterbi Decoder アイコンをダブルクリックした際に下図のメッセージが表示された場合はVIを保存してください。

メッセージ

VIの保存後に改めてViterbi Decoder アイコンをダブルクリックするとプロパティ画面が表示されます。

3.IP 名およびサポートファイルのフォルダを設定したのち[Configure Xilinx IP]をクリックします。
IP 生成進捗率のプログレスバーが進むと以下のIP カスタマイズウィンドウが表示されます。

IP カスタマイズウィンドウ

Viterbi Decoder のカスタマイズが終了したのちに[OK]ボタンをクリックするとIP カスタマイズウィンドウが閉じ、Xilinx IP の構成が進行します。

Xilinx IP の構成後に[次へ]をクリックすると、指定したフォルダにサポートファイルを作成したのちにプロパティ画面が表示されます。

プロパティ画面2
プロパティ画面3
プロパティ画面4

全てのプロパティを設定したのちに[終了]をクリックするとViterbi Decoder の構築が終了となります。

4.Viterbi Decoder の構成が終了すると、アイコンに設定した端子が作成されて下図のようになります。

Viterbiアイコン

これでViterbi Decider の使用準備はすべて完了となります。
構成が完了したViterbi Decoder はLabVIEW で作成するサブVI とほぼ同じように使用することができます。

3.Viterbi Decoder について

Viterbi Decoder とは

離れたところに無線伝送をおこなう場合、伝えるべき本来の信号をそのまま送信するようなことはあまりせず、信号を変換(符号化)して送信することが多いです。
畳み込み符号またはトレリス符号を用いて符号化した信号を再変換(復号化)するためにビタビアルゴリズムを用いた復号器がViterbi Decoder となります。

ビタビアルゴリズムとは

観測された事象系列を結果として生じる隠された状態の最も尤もらしい並び(ビタビ経路と呼ぶ)を探す動的計画法アルゴリズムの一種であり、特に隠れマルコフモデルに基づいている。
観測された事象系列の確率計算のアルゴリズムである 前向きアルゴリズム(forward algorithm)も密接に関連している。
観測結果について1 つの最も尤もらしい説明を与える動的計画法のアルゴリズムに関して使われる。
例えば、動的計画法のアルゴリズムを使った統計的構文解析は、文字列について1 つの最も尤もらしい解析結果を生じる。

Viterbi Decoder について

無線伝送で符号化した信号を受信した場合、その受信信号を単純に復号した信号にビットエラーが発生しているか否か、は受信側では確かめることができません。
そのため、復号した信号にビットエラーが発生したとしても、最も送信信号に近い並びにする必要があります。
復号した信号を、最も送信信号に近い信号にするためにビタビアルゴリズムを使って誤り訂正を行う復号器がViterbi Decoder となります。