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 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 波形ジェネレータには、ncellidSNRfrequencyOffset の 3 つの入力引数があります。この波形ジェネレータを SystemVerilog テストベンチで使用すると、コンポーネント コードを変更せずに、SNRfrequencyOffsetncellid に異なる値を指定して、さまざまなシナリオをテストできます。この例では、このコマンドを使用して、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 を検証できます。

関連するトピック