LabVIEW FPGA でリアルタイム無線信号処理をする(1) -LabVIEW FPGA は何ができるのか-

image

こんにちは。ドルフィンシステムの笹生です。

残暑が厳しいですが、皆様いかがお過ごしでしょうか。

メールニュースでも何度か FPGA の話題は出てきておりますが、今回から数回、LabVIEW FPGA をテーマにしていきたいと思います。

今回は最初ですので、概要として「LabVIEW FPGA は何ができるのか」をお伝えします。


一般的な「FPGA」というもの自体は既にポピュラーになっていますが、皆さんはどのようなイメージをもたれるでしょうか。ちなみに Wikipedia には以下のように書かれています。

"FPGA(: field-programmable gate array)は、製造後に購入者や設計者が構成を設定できる集積回路であり、広義にはPLD(プログラマブルロジックデバイス)の一種である。現場でプログラム可能なゲートアレイであることから、このように呼ばれている。"

貼り付け元 <https://ja.wikipedia.org/wiki/FPGA>

確かに上記の通りなのですが分かりにくいですね。私の FPGA に対するイメージですが、もう少し簡単に言うなら

(ソフトウェアのように) 柔軟

・リアルタイム(時間確定的)に処理が可能

ことを実現できることが FPGA (の真骨頂) だと思っています。

FPGA はソフトウェア無線 (SDR) にとって重要なキーコンポーネントだと思います。

さて、LabVIEW にはこの FPGA をプログラミングできる LabVIEW FPGA モジュールがあり、インストールすることで、LabVIEW から簡単に FPGA の開発ができるようになります。


LabVIEW FPGA では何ができるのか?

image

LabVIEW FPGA では、GUI 以外のことはほとんどできる

と言っても良いかと思います。特に無線信号処理に関して言えば、物理層をリアルタイムに実装することが得意です。

無線信号処理での物理層では、符号・変調・フィルタなどの信号処理が必要になりますが、多くの処理はLabVIEW FPGA で実現可能ですし、要求に合った時間確定的な処理をさせることができます。

また複雑な信号処理も、IP コアとして提供されているものを使用できれば相応のコストが掛かる場合もありますが、開発期間も短縮できます。

例えば弊社では LTE の仕様に準拠した送信機・受信機の物理層を LabVIEW FPGA で実装し、リアルタイムでの送受信を実現しています。


またこれは LabVIEW FPGA の通常の FPGA 開発と比較しての開発上のメリットなのですが、

・ハードウェアのインターフェースが抽象化されているので、あまり考えなくて良い

・LabVIEW のブロックダイアグラムなので、HDL (ハードウェア記述言語)よりも分かりやすい


ただし・・・引き換えとして以下のような制限があります。

・使用できる関数等のライブラリが制限されます。

・完全に並列処理になるので、ソフトウェアとは違う考え方が必要です。

・時間(クロック)の概念が導入されます。

・リソース使用量を気にする必要があります。

・コンパイルに非常に時間が掛かります。エラー時の修正にはコツが必要です。


このあたりの制約はやはり最終的にハードウェアとして動作するので避けられないところです。

まとめ

LabVIEW FPGA での具体的な開発方法については、解説されている書籍が既に出版されていますし、NI のチュートリアルのページも充実してまいりました。

メールニュースでは次回からはあまり解説されていない LabVIEW FPGA での無線信号処理開発のポイントについてお伝えできたらと思います。

ドルフィンシステムでは、長年 FPGA を用いた無線信号処理をしてきており得意としており、お客様のアプリケーション実現に最適な SDR システムのご提案をしております。

0 件のコメント :

コメントを投稿