GitHubのORANハードウェアプロジェクトは、ZCU102またはZCU111ボードでのさまざまなユースケースを示すように設計されています。 このブログでは、ボードの起動後にデザインを生成し、APIを使用してCC設定を構成する方法を紹介します。
デザインアーキテクチャ
デモデザインのトップレベルには、AXILiteインターフェイスを介してデータパスで使用されるさまざまなIPを構成するプロセスが含まれています。
DIPスイッチは、ボードがPTPマスターモードで動作しているかスレーブモードで動作しているかを切り替えるために使用されます。
Datapathモジュールは、無線データと受信したGTシリアルデータを変換します。 これには、O-RAN無線IFと10G / 25G高速イーサネットサブシステムが含まれています。 このブロックには、Armプロセッサから10G / 25G高速イーサネットサブシステム制御までをサポートするすべてのIPコア、およびPTPサポートと単純な無線エミュレーションブロックが含まれています。
データパス内のサブモジュールの詳細については、 データ経路 (PG4)の第370章
デザインの生成
ORANデモは、GitHubリポジトリから提供されます。 https://github.com/Xilinx/wireless-xorif
- デザインを生成する前に、ORAN用の最新のv2020.2パッチをインストールする必要があります。これはからダウンロードできます。 (ザイリンクスアンサー76049)
- 次に、GitHubリポジトリのクローンを作成する必要があります。
git clone https://github.com/Xilinx/wireless-xorif.git
- リリース付きのタグをチェックアウトしてください。
cdワイヤレス-xorif
gitチェックアウトタグ/2020.2 - Scriptsフォルダー Vistaを生成し、PetaLinuxフローを実行するためのスクリプトが含まれています。 Tclコマンドを実行する前に、scriptsフォルダーにcdする必要があります。
cd / wireless-xorif / scripts
5.このブログでは、111Gリンクを備えたZCU25ボードのデモデザインを生成したいと思います。 次のようにスクリプトを実行できます。
vivado -mode tcl -source ./xil_vivado_build.tcl -tclargs zcu111 -tclargs om5_25 -tclargs implNodateExit
このコマンドは、Vivadoサンプルデザインを生成し、合成と実装を完了してから、PetaLinuxプロジェクトで使用されるXSAを生成します。
Note :3つの異なるサンプルデザインがあります
- サンプルデザインは、VivadoソースビューでORAN IPを右クリックし、[Open IP example]を選択することで生成されます。このサンプルは、ORANIPと関連するテストベンチファイルのみを含むシンプルなサンプルデザインを提供します。
- ブロックオートメーションフローは、10G / 25GイーサネットIP、DMAインフラストラクチャ、およびIEEE 1588PTP実装をサポートするブロックを含む完全なシステムレベルのシミュレーション例を生成します。 詳しくはお問い合わせください IPインテグレータでサンプルシステムを使用する方法 (PG4)の第370章にあります。
- GitHubの例:これは、このブログで使用している例です。 これは、ブロックの自動化によって生成された例と非常によく似ています。 ブロック自動化によって生成されたサンプルシステムに加えて、 xil_vivado_build.tcl 必要なデバッグ信号を挿入します(下のスクリーンショットで強調表示されています)。
6.XSAファイルをからコピーします wireless-xorif/output/zcu111_om5_exs_2020_2_AR76049/vivado/zcu111_om5_exs_2020_2_AR76049.sdk、 ワイヤレス-xorif / xsa / zcu111_om5_exs フォルダをクリックし、名前をsystem.xsaに変更します。
7.に従って Petalinuxのビルド手順、次のmakefileコマンドを実行します。
zcu111_om5_exsを作成します
このコマンドは、PetaLinuxプロジェクトを下に作成します ワイヤレス-xorif / output / zcu111_om5_exs_2020_2。 下にあるsystem.xsaに基づいてPetaLinuxビルドフローを実行します ワイヤレス-xorif / xsa / zcu111_om5_exs
8. makeコマンドが完了すると、ブートイメージがで生成されます。 ワイヤレス-xorif / output / zcu111_om5_exs_2020_2 / petalinux / images / linux。 boot.scr、BOOT.BIN、およびimage.ubをSDカードにコピーします。 これで、ZCU111ボードを起動できます。
PTPテストのセットアップ
デザインが生成されたら、次のいずれかを実行できます board2boardPTPテスト or PTPテストに参加するサードパーティのO-DU。
ボードツーボード PTP
(PG370)で説明したように、1588つのO-RAN無線IFサブシステムを使用し、一方を1588マスターとして、もう一方をXNUMXスレーブとして使用すると、タイミングの同期を示すことができます。
111つのZCUXNUMXボードでこれを実装する方法を見てみましょう。
- まず、DIPスイッチを使用して、一方のボードをマスターとして構成し、もう一方をスレーブとして構成する必要があります。
Virginiaデザインが生成されると、ZCU102 / ZCU111のDIPスイッチ設定が次の場所に表示されます。 oran_radio_if_basic.xdc
以下のスクリーンショットは、ZCU111ボード上でどのように見えるかを示しています。
2.ブートイメージファイルをコピーします(のステップ7から) デザイン生成)両方のZCU111ボードのSDカードに接続し、SW6がSDカードモード(OFF、OFF、OFF、ON = 1110)になっていることを確認します。
3.両方のボードが起動したら、最初に「ifconfig」と入力します。 両方のボードはデフォルトで同じMACを持っています
次に、次のコマンドを使用してそれらのXNUMXつを変更してから、もう一度「ifconfig」と入力して、XNUMXつのボードのHWaddrが異なることを確認します。
ifconfig eth0 hw ether 00:0A:35:00:22:02
4.これで、次のコマンドを使用してPTPテストを開始できます。
// 主人
ptp4l -m -A -i eth0
//スレーブ
ptp4l -m -A -i eth0 -f /usr/bin/xroe-ptp4lsyncE.cfg -s
注意: xroe-ptp4lsyncE.cfgセット clock_servo nullf
clock_servoは、ローカルクロックを同期するために使用されます。 有効な値は次のとおりです
– PIコントローラーの「pi」、
-線形回帰を使用する適応コントローラーの「linreg」、
– NTP SHM参照クロックの「ntpshm」。別のプロセスがローカルクロックを同期できるようにします(SHMセグメント番号はドメイン番号に設定されます)。
–常に周波数オフセットゼロをダイヤルするサーボの場合は「nullf」(SyncEノードで使用)。 デフォルトは「pi」です。
ターミナルでいくつかの同期障害メッセージが表示される場合がありますが、これらは1pps同期には影響しません。
例:
マスターオフセットが+/- 1の場合、2560サイクルの差があります(以下に示すように、390.625MHzでXNUMXps)。
スレーブを繰り返し再起動する場合は、1PPSでこのロック動作を繰り返し観察する必要があります。
シリアルコンソールを使用してリモート/スレーブでptp4lを停止すると、1PPSがフェーズロックされたままになり、同期されたタイマークロックが示されます。
KeysightStudioからZCU102PTPテスト
この例では、Keysight StudioをPTPマスターとして使用し、ZCU102ボードを使用してPTPテストを実行します。
1. Keysightstudioで時間同期モードを設定する必要があります。 下にあります セットアップ>機器構成
2.次に、マスターモードに設定し、ドメイン値を24に設定します。
3。 作成する ksightSyncE_min.cfg 次の内容を含むファイルを、他のブートファイルと一緒にZCU102ボードにコピーします。
[グローバル]
domainNumber 24
clock_servo nullf
Note :「nullf」は、常に周波数オフセットゼロをダイヤルするサーボ用です(SyncEノードで使用)
「domainNumber」は、PTPマスターで定義されているものと一致する必要があります。
4. ZCU102ボードで次のコマンドを実行して、PTPテストを開始します。
ptp4l -m -A -i eth0 -f /media/sd-mmcblk0p1/xdc_keysight/ptp/ksightSyncE_min.cfg -s -2
Keysight構成のZCU102でのショーケース
このパートでは、Keysight StudioをO-DUとして使用し、C-Plane / U-Planeパケットを生成し、102Gイーサネットケーブルを介してZCU10ボードに送信します。 このショーケースでは、ZCU102の起動後に必要なコマンドと、フロントホールインターフェイスのステータスを確認する方法を理解する必要があります。
1.まず、Keysight Signal Studio Pro for 5G NRを使用して、必要なキャリア設定を構成する必要があります。
追加する必要のあるキャリアのタイプ(ダウンリンク、アップリンク、またはPRACH)を決定しましょう。
2.このブログでは、DLCC1を40RB、Numerology 1、シングルスロット、スロットあたり14シンボルで構成します。 開始シンボルIDは0です。
3.設定ファイルを.scpファイルとして保存し、SignalStudioを閉じます。
4.次に、Keysight Open RAN Studioを起動し、前の手順で保存した.scpファイルを開きます。
5. C / U PlaneBuilder構成をセットアップします
6.eAXC IDフィールドのビット幅は4,1,3,8、0000、XNUMX、XNUMXに設定され、eAXCIDはXNUMXに設定されます
注意: 0000つのeAxCチャネルの場合、IDは0001で始まる必要があります。XNUMXはORANIPによって受け入れられません。
7.次に、Signal StudioProで構成されているすべてのキャリアにeAxCIDを割り当てます。 そうしないと、次のステップでエラーが発生します。
8.エキスパート刺激ファイル。 このステップでは、O-DU(Keysight)とO-RU(ZCU102ボード)の間で送信されるイーサネットパケットであるpcapファイルを生成します。
9.刺激をロードし、「再生」をクリックします。
10. Keysightのセットアップが完了しました。次に、ZCU102ボードを起動する必要があります。
ボードが起動した後、参照することができます xorif-アプリの例 方法については ORANIPを構成します。
Note :「xorif-app-help」は、xorif-appのヘルプメニューを表示します
a。 まず、ソケットeth0を接続する必要があります。
xorif-app -v -s -i -e eth0&
b。 xorif-appサーバーは、ほとんどのコマンドを正しく受け入れる前に初期化する必要があります。
xorif-app -v -c init
c。 次に、コマンドを実行してキャリア設定を構成しましょう
## eAxC_idを設定します
xorif-app -c "set eAXC_id 4 1 3 8"
eAXC_idは、手順6のGUI設定と一致する必要があります。
## ru_portsを設定します
xorif-app -c "set ru_ports 8 5 192 0 128 64"
注意: これは、ruポートIDを設定するためのものです。
たとえば、xorif_set_ru_ports(8、5、0xC0、0、0x80、0x40)を使用する場合、値0xC0を他のマスクされたビットとAND演算する必要があります。
PRACHマスクは0x80であるため、IDは0xC0 AND 0x80 = 1000 0000(バイナリ)です。[7:6] 10(バイナリ)= 2(DEC)、これが最終的なRU_Port_IDです。
PRACHマスクを0xC0に設定し、AND値が1100 0000の場合、[7:6]は11(binary)= 3(DEC)であるため、最終的なRU_Port_IDは3になります。
このブログでは、ユーザー値は0です。定義されたビットでマスクされた後、RUポートIDは0000です。これは非PRACHデータの値であり、手順6で設定されたものと一致します。
## CC0の構成
xorif-app -c“ set numerology 0 1 0”
xorif-app -c“ set num_rbs 0 40”
xorif-app -c“ set ul_iq_compression 0 0 0”
xorif-app -c“ set dl_iq_compression 0 0 0”
xorif-app -c“ set time_advance 0 160 125 125”
xorif-app -c“ set dl_sections_per_sym 0 10”
xorif-app -c“ configure 0”
xorif-app -c“ enable 0”
各コマンドの後、status = 0は、CC構成が正常に設定されたことを意味します。
フロントホールインターフェイスのステータスを確認する場合は、次のコマンドを使用できます。
xorif-app -c“ set fhi_stats”
ご覧のとおり、すべてのDL Rxパケットが時間どおりに到着しました。つまり、受信したすべてのcプレーンおよびuプレーンパケットが受信ウィンドウ内に到着します。
Keysight studioからDLチャネルのみを生成したため、ORAN_Tx_ *の値はすべて0です。
このブログでは、ボードの起動後、デザインの生成からAPI構成までの手順を実行してきました。
完全なxorif-appAPIドキュメントは、GitHubリポジトリの下にあるindex.htmlから入手できます。 oran-radio-ifdochtml
それを開いた後、モジュールに移動します。
すべてのモジュールのリストと関連する説明を取得できます。
今度は、さまざまなコマンドで遊ぶ番です。
楽しんでください!
PlatoAi。 Web3の再考。 増幅されたデータインテリジェンス。