Main Content

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

Simulink HDL コシミュレーションを始めましょう

Simulink®環境で Cosimulation Wizard を使用してHDL Verifier™アプリケーションをセットアップします。

協調シミュレーション ウィザードは、 MATLAB®またはSimulink®とハードウェア記述言語 (HDL) シミュレーター間の協調シミュレーションをセットアップするプロセスをガイドするグラフィカル ユーザー インターフェイス (GUI) です。

この例では、 Simulinkと HDL シミュレーターを使用して、Verilog で記述されたレイズド コサイン フィルターの設計を検証します。レイズド コサイン フィルターは、デジタル通信システムのパルス整形フィルターとして一般的に使用されます。変調パルスの入力に対してシンボル間干渉 (ISI) が発生しません。

このレイズド コサイン フィルターの機能を検証するために、 Simulinkテストベンチが提供されています。このテストベンチは、HDL テスト対象デザイン (DUT) への入力を生成し、入力と出力の両方の波形をプロットします。

コシミュレーション ウィザードは、このレイズド コサイン フィルターの提供された Verilog ファイルを入力として受け取ります。また、各ステップで協調シミュレーションを設定するために必要なユーザー入力も収集します。例の最後に、コシミュレーション ウィザードは、 Simulinkモデル内の HDL デザインを表すSimulinkブロック、HDL デザインをコンパイルするMATLABスクリプト、およびコシミュレーション用の HDL シミュレーターを起動するMATLABスクリプトを生成します。シミュレーション中に、 Simulinkでこの HDL フィルターの入力波形と出力波形を観察できます。

要件と前提条件

この例では、レジスタ転送レベル (RTL) デザインを検証するためにSimulinkとこれらの HDL シミュレーターの 1 つが必要です。

  • Xilinx®のVivado®シミュレータ

  • Mentor Graphics® の ModelSim® または Questa®

  • Cadence® の Xcelium®

コシミュレーションウィザードの起動

モデルからコシミュレーション ウィザードを起動するには、 Simulinkツールストリップで [アプリ] タブを選択し、[HDL Verifier] をクリックします。このアクション、 Simulinkツールストリップに「 HDL Verifier 」タブが追加されます。次に、モード セクションで、HDL コシミュレーション を選択します。「Cosim ブロックの生成」セクションで「HDL ファイルのインポート」をクリックします。

コシミュレーション ウィザードを使用した HDL コシミュレーション ブロックの構成

「コシミュレーション タイプ」ページで、次の手順を実行します。

1.a)。ModelSim または Questa を使用している場合は、HDL Simulator オプションをModelSimのままにしておきます。

b)。Xcelium を使用している場合は、HDL Simulator オプションをXceliumに変更します。

c)。Vivado シミュレータを使用している場合は、HDL Simulator オプションをVivado Simulatorに変更します。

2.HDL シミュレーターの実行可能ファイルがシステム パス上に表示される場合は、デフォルトのオプション「システム パス上の HDL シミュレーターの実行可能ファイルを使用する」オプションをそのままにしておきます。これらの実行可能ファイルがパス上に表示されない場合は、「参照」ボタンをクリックして、これらの実行可能ファイルの場所を指定します。

「次へ」をクリックして、「HDL ファイル」ページに進みます。

「HDL ファイル」ページで、次の手順を実行します。

  1. 「追加」をクリックし、Verilog の場合はrcostflt_rtl.vを、VHDL の場合はrcosflt_rtl.vhdを選択します。

  2. 予想どおりに識別されたファイル タイプを使用して、ファイル リスト内のファイルを確認します。

「次へ」をクリックして、HDL コンパイルページに進みます。

「HDL コンパイル」ページでは、コシミュレーション ウィザードの [コンパイル コマンド] ウィンドウにデフォルトのコマンドがリストされます。このチュートリアルでは、これらのコマンドを変更する必要はありません。

独自のコードでコシミュレーション ウィザードを実行する場合、このウィンドウでコンパイル コマンドを追加または変更できます。

次の図は、ModelSim のコンパイル コマンドを示しています。

「次へ」をクリックして、「HDL モジュール」ペインに進みます。これにより、コンパイルがトリガーされます。MATLABコンソールにコンパイル ログが表示されます。コンパイル中にエラーが発生した場合、そのエラーはステータス領域に表示されます。

「シミュレーション オプション」ペインで、次の手順を実行します。

ModelSim または Xcelium

  1. a) 協調シミュレーション用の HDL モジュール/エンティティの名前を指定します。ドロップダウン リストから、 rcosflt_rtlを選択します。このモジュールは、コシミュレーションに使用する Verilog/VHDL モジュールです。ドロップダウン リストにrcosflt_rtlが表示されない場合は、ファイル名を手動で入力できます。

  2. b) ファイアウォール ポリシーで TCP/IP ソケット通信が許可されていない場合は、接続方法Shared Memoryを選択します。

「Vivado シミュレータ」

  1. デフォルトでは、モジュールの名前はrcosflt_rtlに設定されます。このモジュールは、コシミュレーションに使用する Verilog/VHDL モジュールです。

  2. この例では、デバッグ内部信号offに設定し、HDL 時間精度1psに設定します。

[次へ] をクリックしてSimulinkポート ペインに進みます。コシミュレーション ウィザードは、指定された HDL モジュールとシミュレーション オプションを使用して、バックグラウンド コンソールで HDL シミュレーターを起動します。ウィザードが HDL シミュレータを起動した後、ウィザードは Verilog/VHDL モジュールrcosflt_rtlの入力ポートと出力ポートを設定し、次のステップでそれらを表示します。

「ポート タイプの指定」ステップでは、コシミュレーション ウィザードに rcostflt_rtlの入力ポートと出力ポートをそれぞれ含む 2 つのテーブルが表示されます。

コシミュレーション ウィザードは、各ポートのポート タイプを識別しようとします。ウィザードがポートを誤って識別した場合は、これらのテーブルを使用してポートの種類を変更できます。

  1. 入力ポートとして、 ClockResetInput、またはUnusedから選択できます。HDL Verifier は、コシミュレーション中にInputsとマークされた入力ポートのみをSimulinkに接続します。

  2. HDL Verifier は、コシミュレーション中にOutputとマークされた出力ポートをSimulinkに接続します。ウィザードとSimulink は、コシミュレーション中にUnusedとマークされた出力ポートを無視します。

  3. ClockおよびResetとして識別される信号のパラメーターは、後のステップで変更できます。

デフォルトのポートタイプを受け入れ、「次へ」をクリックして「出力ポートの詳細」ページに進みます。

「出力ポートの詳細」ページで、次の手順を実行します。

  1. バックプロパゲーションで継承するには、filter_outのサンプル時間を-1に設定します。

  2. Verilog コードから、コシミュレーション ウィザードが出力をsfix34_En29形式で表していることがわかります。次のフィールドを変更します。

  • データ型をFixedpointに設定

  • Signedに署名します

  • 29までの小数部の長さ

「次へ」をクリックして「クロック/リセットの詳細」ページに進みます。

「Clock/Reset」ページで、次の手順を実行します。

ModelSim または Xcelium

  1. HDL 時間単位をnsに設定します。

  2. クロック周期を 20 に設定します。

  3. アクティブ エッジをRisingのままにするか、設定します。

  4. リセットの初期値を 1 のままにするか、1 に設定します。

  5. リセット信号の持続時間を 15 に設定します。

「Vivado シミュレータ」

  1. HDL 時間単位をpsに設定します。

  2. クロック周期を 20 に設定します。

  3. アクティブ エッジをRisingのままにするか、設定します。

  4. リセットの初期値を 1 のままにするか、1 に設定します。

  5. リセット信号の持続時間を 15 に設定します。

「次へ」をクリックして、開始時間の調整ページに進みます。

[Start Time Alignment] ページには、クロック信号とリセット信号の波形のプロットが表示されます。コシミュレーション ウィザードには、コシミュレーションを開始する HDL 時間が赤い線で表示されます。開始時間は、 Simulink がHDL シミュレーターから最初の入力サンプルを取得する時間でもあります。

「開始時間の調整」ページで、調整を設定します。クロックのアクティブ エッジは立ち上がりエッジです。したがって、ModelSim または Xcelium では 20 ns (Vivado シミュレーターでは 20 ps) の時点で、レイズド コサイン フィルターの登録された出力は安定しています。競合状態は存在せず、協調シミュレーションを開始するデフォルトの HDL 時間がこのシミュレーションに必要なものです。開始時刻を変更する必要はありません。

「次へ」をクリックしてブロック生成に進みます。

HDL Cosimulation ブロックを生成する前に、Cosimulation Wizard を終了する前にタイムスケールを決定するオプションがあります。あるいは、後でタイムスケールを計算するようにHDL Verifierに指示することもできます。検証ソフトウェアによるタイムスケール計算は、生成された HDL Cosimulation ブロックのすべての入出力ポートを接続し、シミュレーションを開始した後に行われます。

「ブロックの生成」ページで、次の手順を実行します。

ModelSim または Xcelium

「シミュレーションの開始時にタイムスケールを自動的に決定する」を選択したままにしておきます (デフォルト)。後で、計算されたタイムスケールを表示し、シミュレーションを開始する前にその値を変更することができます。

「Vivado シミュレータ」

「シミュレーション開始時にタイムスケールを自動的に決定する」のチェックを外し、HDL シミュレーターで2e-11 sに「 Simulinkの 1 秒に相当」を設定してタイムスケールを設定します。

「完了」をクリックしてコシミュレーション・ウィザードのセッションを完了します。

HDL 設計を検証するためのテストベンチを作成する

この例では、 Simulinkテストベンチ モデルrcosflt_tbが提供されています。コシミュレーション ウィザードで [完了] をクリックすると、 Simulink はモデル キャンバスの中央に次の項目を挿入します。

  • HDL コシミュレーション ブロック

  • HDL デザインを再コンパイルするブロック (ブロックをダブルクリックすると起動されるスクリプトへのリンクが含まれます)

  • HDL シミュレーターを起動するブロック (ブロックをダブルクリックすると起動されるスクリプトへのリンクが含まれます) (Modelsim および Xcelium のみ)

定数ブロックと変換ブロックが HDL Cosimulation ブロックへの入力として整列し、バスが出力として整列するように、HDL Cosimulation ブロックを配置します。ブロックを接続します。モデルは次の図のようになります。

コシミュレーションの実行と HDL デザインの検証

ModelSim または Xcelium

  1. 「Launch HDL Simulator」というラベルの付いたブロックをダブルクリックして、HDL シミュレーターを起動します。

  2. HDL シミュレーターの準備ができたら、 Simulinkに戻ってシミュレーションを開始します。

  3. タイムスケールを決定します。コシミュレーション ウィザードの最後のページで、シミュレーション開始時にタイムスケールを自動的に決定する オプションを選択したことを思い出してください。その際、 HDL Verifier はシミュレーションを開始する代わりに、タイムスケールの詳細グラフィカル インターフェイスを起動します。HDL シミュレーターとSimulink は両方とも、filter_infilter_outポートを 1 秒でサンプリングします。ただし、HDL シミュレータでのサンプル時間はクロック周期 (20 ns) と同じである必要があります。/rcosflt_rtl/clkのSimulinkサンプル時間を 1 (秒) に変更し、Enter を押します。次に、ウィザードはテーブルを更新します。次の図は、新しいタイムスケールを示しています。Simulinkの 1 秒は、HDL シミュレーターの 2e-008 に対応します。

「OK」をクリックして「タイムスケールの詳細」ダイアログを閉じます。Simulinkシミュレーションを再起動し、テストベンチ モデルのスコープからの結果を確認します。

「Vivado シミュレーター」

Simulinkツールストリップの [シミュレーション] タブで、[実行] をクリックしてシミュレーションを開始します。Simulinkブロックは共有 DLL を使用して単一のプロセスを実行するため、HDL シミュレーションに個別のプロセスはありません。

このスコープには、レイズド コサイン フィルターへの入力の遅延バージョンとそのフィルターの出力の両方が表示されます。このフィルター出力の出力を直接サンプリングすると、シンボル間干渉は発生しません。

参考