Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

SystemVerilog DPI を使用した 5G ワイヤレス アプリケーションの検証

この例では、SystemVerilog DPI コンポーネントを使用して、HDL 環境で 5G ワイヤレス アプリケーションを検証する方法を示します。

この例のシステムは、さまざまな 5G コンポーネントとパラメータ化可能な 5G 波形ジェネレータを使用して、マスター情報ブロック (MIB) 回復プロセスの同期信号ブロック (SSB) デコード セクションの動作を検証します。

検証ワークフローには次のような主な利点があります。

  • 3GPP 5G New Radio (NR) 標準には、専門分野の深い専門知識が必要です。規格に準拠した波形検証モデルを作成するのは困難な場合があります。Wireless HDL Toolbox™波形ジェネレーターから DPI コンポーネントを生成すると、標準に準拠した検証 IP が自動的に作成されるため、テスト ベンチの設計プロセスが簡素化されます。

  • パラメータ化可能な 5G 波形ジェネレータは、さまざまなシナリオで DUT をテストします。パラメーターを再構成して、カバレッジを満たす一連のテスト ケースを作成できます。

  • Simulink®およびMATLAB®から生成されたスタンドアロン 5G DPI コンポーネントは、カスタマイズされたテストベンチに再利用して統合できます。

  • コンポーネントベースのワークフローにより、スタンドアロン テストベンチの設計が迅速化されます。最上位のテストベンチでさまざまなモジュールを接続して、さまざまな 5G 機能コンポーネントをテストできます。

  • トップレベルのテストベンチでの完全な機能制御により、プロセスステータスの変化に応じたコンポーネントの操作が可能になります。この制御により、テスト ベクター ベースの HDL テスト ベンチと比較してパフォーマンスが向上します。

MIB 回復プロセス

MIB の回復には SSB の検出、復調、およびデコードが必要です。この例では、SSB デコード モジュール用に HDL HDL Coder™によって生成された HDL コードを検証する方法を示します。

SSB 検出では、プライマリ同期シーケンス (PSS) サーチ、直交周波数分割多重 (OFDM) 復調、およびセカンダリ同期シーケンス (SSS) サーチが実行されます。SSB 検出には、検索と復調という 2 つの動作モードがあります。検索モードでは、検出により SSB が検索され、そのパラメーターが返されます。復調モードでは、検出により指定された SSB が回復され、そのリソース グリッドが OFDM 復調され、適切なリソース要素内で SSS が検索されます。SSB の検出と復調の詳細は、NR HDL Cell Search (Wireless HDL Toolbox)の例で説明されています。

SSB デコードでは、復調基準信号 (DMRS) の検索、チャネル推定と位相等化、およびブロードキャストチャネル(BCH) のデコード手順が実行されます。SSB デコードの詳細は、NR HDL MIB Recovery (Wireless HDL Toolbox)の例で説明されています。

5G 波形発生器は、 5G Toolbox™機能を使用してテスト波形を生成し、それがサーチ モードでの SSB 検出に適用されます。最も強い SSB が決定された後、テスト波形が復調モードで SSB 検出に適用され、指定された SSB リソース グリッドが回復され、適切なリソース要素内で SSS が検索されます。

SSB が検出されて復調された後、それをデコードして MIB コンテンツを抽出する必要があります。SSB デコードに復調されたグリッドがある場合、SSB デコード モジュールは SSB をデコードして PBCH ペイロードを出力し、その後解析されて MIB データを抽出します。

ファイル構造

この例ではこれらのファイルを使用します。

Simulink モデル

  • nrhdlSSBDetection.slx:このSimulinkモデルは、 nrhdlSSBDetectionFR1Coreモデル参照を使用して、MIB 回復プロセスの SSB 検出部分の動作をシミュレートします。

  • nrhdlSSBDetectionFR1Core.slx:このモデル参照は、SSB 検出アルゴリズムを実装します。

  • nrhdlSSBDecoding.slx:このSimulinkモデルは、 nrhdlSSBDecodingCoreモデル参照を使用して、MIB 回復プロセスの SSB デコード部分の動作をシミュレートします。

  • nrhdlSSBDecodingCore.slx:このモデル参照は、SSB デコード アルゴリズムを実装します。

Simulink データ ディクショナリ

  • nrhdlReceiverData.sldd:このSimulinkデータ ディクショナリには、モデル例に含まれるバスを定義するバス オブジェクトが含まれています。

MATLAB コード

  • generate5GWaveform.m:この関数は、C コード生成と互換性のあるWireless HDL Toolbox™ 5G 波形ジェネレータの修正バージョンです。

  • runSSBDetectionModelSearch.m:このスクリプトは、検索モードでnrhdlSSBDetectionモデルを実行して検証します。

  • runSSBDecodingModel.m:このスクリプトは、 MATLABリファレンスを使用してセル検索アルゴリズムを実装し、 nrhdlSSBDecoding Simulinkモデルを実行します。このスクリプトは、 5G ToolboxとMATLABリファレンス コードを使用してモデルの動作を検証します。

  • nrsvdpiexamples:このパッケージには、実装モデルを検証するためのMATLABリファレンス コードとユーティリティ関数が含まれています。

事前生成された HDL テストベンチ コンポーネント (Windows® のみで利用可能)

  • 5GNRCellDecodeDPITB:このフォルダーには、生成された DPI コンポーネント、デコード モジュールの HDL コード、および関連するビルド スクリプトとシミュレーション スクリプトを含むトップレベルのテストベンチが含まれています。

HDL シミュレーションのセットアップ

このセクションでは、各 5G 機能コンポーネントの DPI コンポーネントと SSB デコード コンポーネントの HDL コードを生成するワークフローについて説明します。提供されたトップレベルのテストベンチは、生成されたすべてのコンポーネントをインスタンス化し、SSB デコード ブロックから生成された HDL コードの動作を検証します。個々の SystemVerilog DPI コンポーネントの再利用を可能にし、テストベンチでコンポーネントのサブセットを使用するには、各 5G コンポーネントの SystemVerilog DPI を個別に生成します。

5GNRCellDecodeDPITBフォルダーには、生成された必要なコンポーネントがすべて含まれています。これらのコンポーネントを再生成したくない場合は、このセクションをスキップしてください。

《5G波形発生器》

この機能は、 5G Toolbox の機能を使用してテスト波形を生成します。5G 波形ジェネレータには 3 つの入力引数があります: ncellidSNR、およびfrequencyOffset。この波形ジェネレーターを SystemVerilog テストベンチで使用する場合、 SNRfrequencyOffset、およびncellidに異なる値を指定することで、さまざまなシナリオをテストできます。コンポーネントコードを変更せずに$$ を実行します。この例では、このコマンドを使用してMATLAB関数generate5GWaveformから DPI コンポーネントを生成します。

dpigen generate5GWaveform -args {0,0,0} -PortsDataType LogicVector

-args {0,0,0}パラメーターは、 double型の 3 つのスカラー入力を示します。-PortsDataType LogicVectorパラメーターは、ポートの論理ベクトル タイプ インターフェイスを生成することを示します。

《SSB検出》

このコンポーネントはnrhdlSSBDetection Simulinkモデルに導入されており、トップレベルのテストベンチは SSB 検索と SSB 復調にこのコンポーネントを使用します。これらのコマンドを使用して検索モード シミュレーションを実行し、結果をMATLABで確認します。

clear all;
runSSBDetectionModelSearch;

次に、このコマンドを使用して、 SimulinkサブシステムnrhdlSSBDetection/SSB Detectionの DPI コンポーネントを生成します。

rtwbuild('nrhdlSSBDetection/SSB Detection');

最強のPSSを選択

このコンポーネントはnrhdlSSBDetection Simulinkモデルに導入されており、トップレベルのテストベンチはこのコンポーネントを使用して、SSB 検索によって検出された PSS から最も強い PSS を決定します。このコマンドを使用して、 SimulinkサブシステムnrhdlSSBDetection/chooseStrongestPSSの DPI コンポーネントを生成します。

rtwbuild('nrhdlSSBDetection/chooseStrongestPSS');

「SSBデコード」

このコンポーネントはnrhdlSSBDecoding Simulinkモデルに導入されており、この例では DUT です。これらのコマンドを使用して、 MATLABで SSB デコード シミュレーションを実行します。

clear all;
runSSBDecodingModel;

次に、このコマンドを使用して、このコンポーネントから HDL コードを生成します。

makehdl('nrhdlSSBDecoding/SSB Decoding','TargetLanguage','Verilog');

PBCH ペイロードを解析する

このコンポーネントはnrhdlSSBDecoding Simulinkモデルに導入されており、トップレベルのテストベンチはこのコンポーネントを使用して PBCH ペイロードを解析し、MIB 情報を取得します。このコマンドを使用して、 SimulinkサブシステムnrhdlSSBDecoding/parsePBCHPayloadの DPI コンポーネントを生成します。

rtwbuild('nrhdlSSBDecoding/parsePBCHPayload');

5GNRCellDecodeDPITBフォルダーには、「MIB 回復プロセス」セクションで説明されているプロセス全体をシミュレートする最上位のテスト ベンチCellDecode_tb.svが含まれています。この例では、 ncellidパラメーターは249に設定され、 SNRパラメーターは50に設定されます。 $、 frequencyOffsetパラメーターは5000に設定されます。これらのパラメーターの値を変更して、さまざまなシナリオでデザインをテストできます。

テストベンチを実行する

QuestaSim シミュレーターをMATLABシステム パスに追加し、 5GNRCellDecodeDPITBフォルダーに移動します。QuestaSim で DUT をコンパイルしてシミュレーションするには、 MATLABプロンプトで次のコマンドを入力します。

!vsim < compile_dut.do
!vsim < sim_5G_waveform.do

次のシミュレーション結果を観察してください。

  • この波形図では、「mib」で始まる信号名には波形ジェネレーターからの MIB 情報が含まれており、「decode」で始まる信号名にはデコード プロセスからの MIB 情報が含まれています。波形は、デコードされた MIB 情報が波形発生器からの MIB 情報と一致することを示しています。

このアプローチを使用すると、各 5G 機能コンポーネントのステータスに動的に反応して、ベクトルベースのテストベンチと比較してシミュレーション時間を節約できます。

  • この波形図では、検出ステータスの値が 6 から 8 に変化し、復調動作が完了したことを示します。SSS が見つかり、復調されたリソース グリッドが返されます。この場合、ベクトルベースの HDL テストベンチを使用している場合、SSB 復調による入力ベクトルの処理が完了するのを待つ代わりに、SSB デコード プロセスを開始できます。

  • この波形図では、デコードステータスの値が 2 から 4 に変化し、MIB が検出されたことを示します。この場合、グリッド リソース データの処理を終了するのではなく、シミュレーションを停止することができます。対照的に、ベクトルベースのテストベンチアプローチでは、結果を分析する前に一定時間のシミュレーションが必要です。

DPI コンポーネントを再利用する

生成された 5G 機能 DPI コンポーネントは、カスタマイズされたテストベンチで再利用できます。

  • これらのコンポーネントを使用して、MIB リカバリ プロセスのサブセットをテストします。たとえば、5G 波形発生器を再利用して、SSB 検索モジュールの動作を検証します。

  • これらのコンポーネントを使用して、MIB 回復プロセスでさまざまな 5G 機能コンポーネントをテストします。たとえば、MIB 回復プロセスで SSB 復調の動作を検証する場合、5G 波形ジェネレータ、SSB 検索および PBCH ペイロード DPI コンポーネントの解析を再利用し、SSB デコードから DPI コンポーネントを生成できます。これらのコンポーネントをトップレベルのテストベンチでインスタンス化し、SSB 復調モジュールの動作を検証します。

結論

この例では、DPI コンポーネントを備えたスタンドアロン テストベンチを使用して、MIB 回復プロセスの SSB デコード モジュールを検証する方法を示します。HDL Verifier™で生成された DPI コンポーネントは調整可能なパラメーターをサポートしており、これによりトップレベルのテストベンチから 5G テスト波形をカスタマイズできます。生成された各 DPI コンポーネントは、他のカスタム HDL テストベンチで再利用できます。このワークフローを使用して、ワイヤレス アプリケーションの HDL IP を確認できます。

関連するトピック