cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

解析パート 1: RF アナライザーのアンボックス

Xilinx Employee
Xilinx Employee
3 0 499

本ブログは英語版のAnalyze This: Unboxing the RF Analyzer Tool Part Oneを翻訳したものです。

 

RF データ コンバーターに関する前回のブログ記事では、ソフトウェア ドライバーについてと、それを使用してどのように RF Data Converter IP のステータスおよび制御を管理できるかを確認しました。

単純なスタンドアロンのアプリケーションを記述すると、システムの RF-ADC および RF-DAC の動作をデバッグできることについても説明しました。

この前回のブログ記事の中で、ザイリンクスが RF アナライザーを使用して、あらゆるボードのあらゆるデバイスで RF データ コンバーター デバッグをイネーブルにしていることを紹介しました。今回と次回の 2 つのブログ記事では、RF アナライザーをアンボックスし、その主な機能と、RF アナライザーを使用して RF-ADC および RF-DAC タイルを管理する方法を説明します。また、RF アナライザーを使用して RF-DAC スティミュラスを生成したり、RF-ADC で受信したデータを表示および解析したりする方法も紹介します。

RF アナライザー GUI をダウンロードするには、RFSoC リソース ページを参照してください。

アナライザー GUI の使用方法は、『RF データ コンバーター インターフェイス ユーザー ガイド』 (UG1309) を確認してください。

また、バージョン 2018.3.1における制限のいくつかを理解するために、、(Xilinx Answer 71746) を参照してください。バージョン 2019.1 に改善点がいくつか含まれる予定のため、乞うご期待ください。


RF アナライザーに特化したブログ記事は 2 部構成になっており、パート 1 の今回は、RF アナライザーの構築ブロックをいくつか見てみることにします。RF アナライザーを構成する主要素は 3 つあると、私は考えています。

まず、プログラマブル ロジック (PL) デザインがあります。これは、Zynq® UltraScale+® RF Data Converter IP のサンプル デザイン、RF サブシステムのステータスと制御をイネーブルにするための MicroBlaze™、および GUI へのデータパスと GUI からのデータパス用の JTAG to AXI Master IP で構成されます。このデザインには、クロック生成もいくつか含まれます。

 

これの最も大きな利点は、自分のデザインに一致する IP 設定を持つことができる点です。これで自分のデザインとRF データ コンバーターを切り離せるという意味です。これにより、自分のデザインから切り離し、システムのデータ コンバーター パフォーマンスを検証し、RX データをキャプチャして、RF アナライザー GUI でデータを解析できます。

この自己完結型で柔軟性の優れたデザインには代償があり、オンチップ ブロック RAM を使用して再生/キャプチャ用のストレージが構築されるようにするために DDR メモリを管理する方法がないことを理解する必要があります (任意のデバイス/任意のボードでブート可能にするため)。使いやすさのため、RF アナライザー パッケージで使用可能な各デバイスにビルド済みビットストリームも提供されます。

PL ビットストリームに続いて、MicroBlaze アプリケーションがあります。このアプリケーションにより、PL デザインの制御パスが管理されます。大まかに説明すると、MicroBlaze アプリケーションでは、RF アナライザー GUI からコマンドを受信して解析し、ドライバー API を使用してタイルから要求されたものをリードバックしたり、タイル設定を変更したりします。これは、RF アナライザー デザインを含む ELF ファイルとして提供されます。

最上位には、データ キャプチャとスティミュラス生成/再生用に RF-ADC および RF-DAC タイルと通信できるようにする LabVIEW GUI があります。この GUI は、ZCU111 RFSoC 評価 GUI と同じスタイルになっています。

 

次の図に、 RF アナライザーの概要を示します。
RF1.jpg

これで RF アナライザーの概要は理解できたかと思いますので、もう少し詳しく掘り下げていきましょう。まずは、カスタム IP の設定から開始し、RF アナライザー環境でそれを使用するために必要なステップをすべて実行してみましょう。

ここでは、ZCU1275 特性評価ボードを使用することにします。これには 16x16 ZU29DR デバイスが含まれています。このボードについては、それほど理解する必要はありません。次のことだけを確実にしてください。

  • コンバーターのクロッキングが設定されている
  • 特定の IP 設定に一致するように Bulls Eye コネクタがセットアップで正しく接続されている

残りは RF アナライザーによって管理されます。これについては、プロセスの後半で説明します。

最初のステップは、IP の設定です。これは、RF アナライザー PL デザインを構築する開始点です。IP は、IP カタログから選択可能か、IP インテグレーターのブロック デザインに含まれています。

一部の CW (Continuous Wave = 連続波) トーンを確認する RF-ADC および RF-DAC 設定をお見せするとわかりやすいのではないかと思います。

次に、RF-DAC からアップ コンバージョンした QAM16 ベクターを送信して RF-ADC でそれを受信できるループバックを有効にするために、2 つのタイルを設定します。

ここでは、RF-ADC はサンプル レートの 1966.08 MHz で、RF-DAC はサンプル レートの 3932.16 MHz でそれぞれ設定します。
RF2.jpg

すると、ここに示すような IP になります。2 つの DAC タイルがアクティブで、2 つの ADC タイルが使用されています。
RF3.jpg

[OK] をクリックし、IP のアウト オブ コンテキスト合成をスキップできます。

サンプル デザインの作成時に RF アナライザーをイネーブルにすることをツールに指示する必要があります。これを実行するには、Vivado Tcl コンソールで次のコマンドを入力する必要があります。

set_property -dict [list CONFIG.RF_Analyzer {1}] [get_ips]

次に、IP を右クリックし、[Open IP Example Design] をクリックします。これで、サンプル デザインとアナライザーの基盤を含む新しいプロジェクトが生成されます。

このデザインの最上位で STARTUPE3 ブロックを活用し、AXI4-Lite クロックおよび外部リセットをデザインに提供します。デザインの最上位 HDL ラッパー内にこれがインスタンシエートされているのがわかるでしょう。

ビットストリームが読み込まれると、EOS (End of Startup = スタートアップの終了) 信号が PL ファブリックにアサートされます。これにより、リセットが管理され、デザインおよび実行中のアプリケーションが開始されます。

RF4.jpg

先ほど述べたように、デザインには MicroBlaze が含まれています。

これにより、RF データ コンバーターのステータスと制御およびクロッキングが管理されます。ここで右クリックすると、関連付けられている ELF ファイルがあることを確認できます。

RF5.jpg

これにより、デザインとアナライザー GUI 間の通信を管理するアプリケーションがビットストリームに埋め込まれます。


このブロック デザインには JTAG To AXI Master があるのもわかります。これにより、ソースおよびシンク IP へのデータパスがそれぞれ管理されます。


AXI SmartConnect を活用して、MicroBlaze/JTAG2AXI Master とデザインの残りの部分との間のインターフェイスを管理します。


IP サンプル デザイン AXI4-Lite インターフェイスへの接続があるのがわかります。

RF6.jpg

クロッキング ブロックもあります。このモジュールで、タイル出力クロックを取り込み、MMCM を使用して AXI4-Stream クロックをタイルへ駆動します。各 MMCM では、AXI DRP ポートがイネーブルになっています。これにより、データ コンバーター クロッキングでの変更と、その延長線上として AXI4-Stream クロックをランタイムに管理するための柔軟性が提供されます。

RF7.jpg

それでは、IP サンプル デザインを含む階層レベルまで掘り下げていきましょう。

メイン プロジェクトで設定したとおりの RF Data Converter IP と、DAC ソースおよび ADC シンクがここに含まれているのがわかるはずです。これらのブロックはレジスタ トランスファー レベル (RTL) で、右クリックして [Go to Source] をクリックすると詳細を確認できます。

RF8.jpg

RF-DAC データ スティミュラス ブロックは、RF Data Converter コアで有効にされた RF-DAC チャネルに送信されるサンプルを読み込むことができる 128 KB ブロック RAM で構成されています。

実際のところ、DAC ソースは、新しいスティミュラスで書き込まれるブロック RAM または DAC にコンテンツをストリームするブロック RAM を構築するザイリンクス パラメーター指定マクロ (XPM) にすぎません。

スティミュラス ブロックの各チャネルでは、Zynq® UltraScale+® RF Data Converter IP コアの AXI4-Stream を駆動します。各コンバーターでは最大 4 つの AXI4-Stream インターフェイスを持つことができるため、DAC ソース ブロックには最大で 16 個のチャネルがあります。イネーブルになっている各 AXI4-Stream インターフェイスは、DAC0 で開始する連続したチャネルにマップされます。

DAC スティミュラス ブロックのレジスタ マップは、『Zynq UltraScale+ RFSoC RF Data Converter IP 製品ガイド』 (PG269) の表58に記載されています。同様に、ADC ストリーム データはシンク ブロックでキャプチャしてリードバックできます。  

Zynq® UltraScale+® RF Data Converter でイネーブルになっている各 AXI4-Stream 出力のデータは、データ キャプチャ ブロックの個別のチャネルに格納されます。各コンバーターでは最大 4 つの AXI4-Stream インターフェイスを持つことができるため、データ キャプチャ ブロックには最大で 16 個のチャネルがあります。

有効にされた各 AXI4-Stream インターフェイスは、ADC0 で開始する連続したチャネルにマップされます。

各チャネルのストレージは、128 KB のブロック RAM で構成されます。キャプチャ ブロックのアドレス マップは、『Zynq UltraScale+ RFSoC RF Data Converter IP 製品ガイド』 (PG269) の表 58 に記載されています。

これをインプリメントしてビットストリームを生成する前に、デザインの制約を次のファイルで確認できます。

usp_rf_data_converter_0_example_design.xdc

これらの制約により、プライマリ クロックが作成され、デザインをフロアプランするために物理ブロック (Pblock) がいくつか追加され、スティミュラスおよびキャプチャ メモリがデータ コンバーター タイルに隣接するようになります。

ドメインと AXI4-Stream クロック ドメイン間のクロック ドメインをまたぐ静的制御信号を管理するために追加されるタイミング例外がいくつかあります。

たとえば、num_samples_reg では、RF-ADC から取得または RF-DAC タイルに送信するサンプルの数をサンプル デザインのデータ スティミュラスおよびキャプチャ ブロックに指示します。これは制御パス上にあるため、axi_aclk に同期します。この設定は、AXI4-Stream クロックで実行されるスティミュラスおよびキャプチャ ブロックのアドレス カウンター ロジックによって使用されます。信号は頻繁に遷移するべきではありませんが、たとえそうだとしても、インプリメンテーション中のタイミング パスとしてこれを無視しても問題ありません。 

この時点で、write_bitstream までデザインを実行できます。

これで、タイミングが満たされるのがわかるでしょう。Pblock は、関連タイルに隣接するキャプチャおよびスティミュラス メモリをロックするために使用されます。

RF9.jpg

ビットストリームは、次のようなパスに生成されます。

<example_design_path>\ip_name\ip_name.runs\impl_1

これで、このビットストリームをダウンロードする準備が整い、アナライザーを使用するために必要なものがすべて揃ったので、ボードのデータ コンバーターを動作確認できます。

次回は、ZCU1275 特性評価ボードを使用してこのビットストリームをブートし、RF アナライザー GUI の機能を見てみることにします。 

それでは、またお会いしましょう。