NI-USRP19.5の10GbEプロジェクトをNI USRP-2954用にビルドする

こんにちはドルフィンシステム福島です。
もう12月で師走です。

前回の「祝! USRP-RIO LabVIEW FPGAでの10GbEサポート。。。の顛末 (1)」では、
NI-USRP 19.5で対応した10GBe(SPF+)サポートのサンプルプロジェクトを開いてみました。

  • LabVIEWの「プロジェクトの新規作成」からプロジェクトを作ることは出来ませんでした
  • ソースコードをコピーすればプロジェクトを開くことが出来ました
  • またこのプロジェクトがサポートしているデバイスは"NI-USRP 2945, 2955"だ

ということが分かりました。
今回は、"NI-USRP 2954"で10GbEが動作するようにFPGAをビルドしてみます。

FPGAターゲットを追加する

まずサンプルプロジェクトを開きます。
「マイコンピュータ」を右クリックして、新規→「ターゲットとデバイス」を選択します。


新規で"294x, 295xR 200Msps"を選択します。


はい。これでプロジェクトに"USRP 294xR; 295xR 200Msps"ターゲット(以下、294x, 5x用ターゲット)が追加されました。

リソースをコピーする

"2955用FPGAターゲット"から、FIFO FolderとCLIPフォルダをドラッグ&ドロップして"294x, 5x用ターゲット"にコピーします。
これでFPGAリソースの追加完了。

ソースコードをコピーする

"294x, 5x用ターゲット"を右クリックして追加を選択。
ソースツリーの"My Network FPGA v1.lvlib"を選択します。


これでFPGAソースコードの追加完了。

MGT Socketを追加する

最後にMGT Socketを追加します。MGTは"Multi Gigabit Transceiver"の略です。
これは"2955用ターゲット"用にCLIPで定義されているので、こちらをインポートします。
"2955用ターゲット"を右クリックして"プロパティ"を開き、"コンポーネントレベルIP"を選択すると、"TenGbE CLIP"という宣言が定義されているのを確認します。


次に、先ほど追加した"294x, 5x用ターゲット"のプロパティを開いて「+」アイコンをクリックします。


"2955用ターゲット"で作成されているXMLファイルを読み込みます。


これでインポート完了です。


"294x, 5x用ターゲット"の"MGT Socket"の"プロパティ"を開きます。


"General"を選択して、"Socketed Component Level IP Declaration"から"TenGbE CLIP"を選択します。


クロック選択で、下図のように設定されていることを確認します。


これでソースコードとリソースのコピーは完了です。

ビルド仕様を作成する

次はFPGAをビルドするにあたり、"294x, 5x用ターゲット"にビルド仕様も新たに作成します。
"2955用ターゲット"のビルド仕様は、3つあります。
今回は、USRP1台で10GbEをループバックして送受信させるためビルド仕様 "TenGbE_Project"をコピーします。


まず"2955用ターゲット"のビルド仕様を開いて設定値を確認します。




"294x, 5x用ターゲット"の"ビルド仕様"を作成し、上図と同じ設定をします。
ビットファイル名が同じだと既存のファイルを上書きしてしまうので、下記のように変更しておきます。
ビットファイル名 :  OpenCore TenGbE-294x, 295x 200Msps.lvbitx

では、いざビルド!

はい。無事ビルド完了。
ドルフィンシステムのFPGAコンパイルサーバ(Core i7 - 8700KのPC)で、18分でビルドできました。

まとめ

  • "294x, 5x用ターゲット"のFPGAソースコードやリソースをコピーすることで、"294x, 295x用"のビットファイルをビルドできる


というわけで、一番普及している(と思われる) NI-USRP 2954R用もビルドすることが出来ました。
次回は、ビルドしたFPGAを動作させてみたいと思います。

コメント