今回はいくつかあるUSRP E310 に対応したサンプルから弊社が良く開発する FPGA で送受信のリアルタイム信号処理をするタイプのサンプルを探し、開発の流れを確認してみたいと思います。
FPGA も開発できるサンプルを探してみる
まずはサンプルの探し方から行きたいと思います。
開発ツールのサンプルの探し方・見つけ方がわかると、意外とやりたいことがすでに用意されていたりするので便利なことも多いのですが、探し方を知らないと無駄に労力を使ってしまいますよね。
まずは起動した MATLAB のコンソールから
>>doc
というコマンドを実行して MATLAB ドキュメンテーション (ヘルプウィンドウ)を表示させます。
今回のターゲットの USRP E310 は、USRP Embedded シリーズですので、画面の下にある「ハードウェアサポート」から
・Communications Toolbox Support Package for USRP Embedded Series Radio
をクリックします。
(このアドオンのインストールは前々回の「(1) 環境構築インストール編」を参照してください)
上部の「Example」をクリック
いくつかサンプルがタイル状に表示されます。これらのサンプルは E310 で実行できるサンプルです。
その中から今回は FPGA も開発するサンプルを探したいのですが、少し下のほうに「Hardware-Software Co-Design」という項目があります。その中にある
・Target a QPSK Transmitter and Receiver to a USRP E310 using HW/SW Co-…
をクリックして開いてみることにします。
このサンプルの説明と同じものが以下の URL にもありますので詳細は以下をご覧ください。
ブロック図としては以下のようなものを開発するサンプルです。
左から、
●Simulink Model : Simulink のモデルです。これが実行の起点になります。E310 の制御や表示等を行います。
●Zynq device : USRP E310 の SoC のことです。E310 には Xilinx Zynq デバイスが搭載されており、これを Simulink から開発することになります。
●AD9361 RF Chip : E310 に搭載されている RF チップです。
この Zynq デバイスが実際に開発したい対称なのですが、図にもあるように ARM(PS) と Fabric(PL) に分かれています。
ARM(PS) は ARMのプロセッシングシステムのことで、ソフトウェアの開発になります。
このサンプルでの役割は、Simulink Model とのやり取りに TCP/IP を使い、パラメータや、モニター情報を Fabric(PL) とやり取りするインターフェースを提供します。
Fabric (PL) はプログラマブルロジックのことで、いわゆる FPGA のことです。
ここでは QPSK の変復調をリアルタイムで行い、RF チップの AD9361 とのやり取りも行います。
これらをすべて Simulink の環境で開発できるんですね!
これは素晴らしい!
MATLAB/Simulink 以外での E310 の開発環境として、GNU Radio Companion や RF NoC で開発するのが一般的で弊社でも以前トライしてみたのですが、、、まず環境づくりでかなり難航してしまいました。。。
Simulink での開発の流れ
トップレベルの Simulink モデルを開いてみます。
これを起点に開発をしていくことになります。
このサンプルの解説で紹介されている開発の流れは大体以下のような流れになります。
【FPGA開発編】
① FPGA の開発は IP の開発として、そのシミュレーションモデル(いわゆるテストベンチ)で十分に FPGA IP 部分のシミュレーションを行っておく、インターフェースを確定しておく。
② HDL Workflow Advisor を使うことで ARM の部分の開発のためのソフトウェアインターフェースライブラリ・モデルを自動で生成させることができる
③ 続けてHDL Workflow Advisor で FPGA 部分のビットストリームを作成する。
【ARM 開発編】
生成したソフトウェアインターフェースライブラリ・モデルが提供されるのでそれをモディファイして開発する。
【ホストの Simulink モデルの開発】
あとは E310 上の PS プログラムに対してホストからの制御をする部分を作成します。
ホストの PC と E310 はイーサネットで接続されており、このサンプルでは UDP を用いてホストから制御するようにしています。
まとめ
実際に USRP E310 で実行可能で、FPGA の開発もするサンプルを探し、開発の流れを見てみました。
このサンプルで示される開発の流れのように、FPGA の開発に主眼が置かれており、まずはFPGA の IP としてテストベンチ的なモデルで十分に検証をしておくとその後がスムーズになるようですね!
0 件のコメント :
コメントを投稿