Main Content

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

MATLAB システム オブジェクトのコシミュレーション ウィザード

コシミュレーション ウィザードを使用して HDL Verifier™ アプリケーションをセットアップします。

この例では、MATLAB® System object™ と次の HDL シミュレータを使用して、レジスタ転送レベル (RTL) 設計を検証します。

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

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

  • Cadence® の Xcelium®

このサンプル設計は、Verilog で記述されたサイズ 8 の高速フーリエ変換 (FFT) です。FFT は、信号の周波数分布を生成するためにデジタル信号処理アプリケーションでよく使用されます。

この FFT の正確さを検証するために、MATLAB System object テストベンチが提供されています。このテストベンチは、テスト対象の HDL 設計 (DUT) に周期的な正弦波入力を生成し、複素平面にフーリエ係数をプロットします。

コシミュレーション ウィザードは、この FFT の提供された Verilog ファイルを入力として受け取ります。また、各ステップでコシミュレーションを設定するために必要なユーザー入力も収集します。例の最後に、Cosimulation Wizard は、構成された HdlCosimulation System object をインスタンス化する MATLAB スクリプト、HDL 設計をコンパイルする MATLAB スクリプト、および Cosimulation 用に HDL シミュレーターを起動する MATLAB スクリプトを生成します。

1. 協調シミュレーションウィザードを起動

MATLAB でこのコマンドを実行して、Cosimulation Wizard ツールを起動します。

cosimWizard

2. 協調シミュレーションタイプを指定する

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

a.ModelSim を使用している場合は、HDL SimulatorModelSim に設定します。

Xcelium を使用している場合は、HDL SimulatorXcelium に設定します。

Vivado シミュレータを使用している場合は、HDL シミュレータVivado Simulator に設定します。

b.HDL コシミュレーションMATLAB System Object に設定します。

c. HDL シミュレータ実行ファイルがシステム パス上に表示される場合は、デフォルトの システム パス上の HDL シミュレータ実行ファイルを使用する オプションを変更しないでください。これらの実行ファイルがパス上に表示されない場合は、HDL シミュレータのパスを指定します。

d. [Next] をクリックします。

3. HDLファイルを選択

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

a.ファイル リストに HDL ファイルを追加します。

  • 追加 をクリックし、サンプル フォルダー内の Verilog ファイル fft_hdl.vfft_hdl_tc.v を選択します。

  • ファイル リスト内のファイルを確認して、ファイルの種類が正しく識別されていることを確認します。

b.[Next] をクリックします。

4. HDLコンパイルコマンドを指定する

コシミュレーション ウィザードは、コンパイル コマンド ウィンドウにデフォルトのコマンドを一覧表示します。この例では、これらのコマンドを変更する必要はありません。

ModelSim のコンパイル コマンドは次のとおりです。

[Next] をクリックします。MATLAB コンソールにコンパイル ログが表示されます。コンパイル中にエラーが発生した場合、そのエラーはステータス領域に表示されます。次の手順に進む前にエラーを修正してください。

5. 協調シミュレーション用のHDLモジュールを選択する

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

a.協調シミュレーションの HDL モジュールまたはエンティティの名前を指定します。

ModelSim または Xcelium の場合

リストからfft_hdlを選択します。このモジュールは、コシミュレーションに使用する Verilog モジュールです。リストに fft_hdl が表示されない場合は、ファイル名を手動で入力してください。

ModelSim のシミュレーション オプションは次のとおりです。

Vivado シミュレータの場合

Vivado シミュレータの場合、Verilog モジュールの名前がデフォルトで選択されます。Vivado シミュレータのシミュレーション オプションは次のとおりです。

b.[Next] をクリックします。コシミュレーション ウィザードは、指定された HDL モジュールとシミュレーション オプションを使用して、バックグラウンド コンソールで HDL シミュレーターを起動します。ウィザードが HDL シミュレーターを正常に起動すると、ウィザードは Verilog モデル fft_hdl の入力ポートと出力ポートを設定し、次のステップで表示します。

6. 入力/出力ポートの種類を指定する

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

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

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

  • HDL Verifier は、コシミュレーション中に Output とマークされた出力ポートを MATLAB に接続します。リンク ソフトウェアと MATLAB は、コシミュレーション中に Unused とマークされた出力ポートを無視します。

  • Clock および Reset として識別される信号のパラメータは、後の手順で変更できます。

この例では、デフォルトのポート タイプを受け入れて、次へ をクリックします。

7. 出力ポートの詳細を指定する

この例では、HDL FFT 出力は符号付きで、長さは 13 ビット、小数部の長さは 9 ビットです。出力ポートの詳細ページで、次の手順を実行します。

a.HdlCosimulation System object を使用する場合、サンプル時間 は変更できず、常に 1 に固定されることに注意してください。

b.両方の出力の データ型Fixedpoint に設定します。

c. 両方の入力の SignSigned に設定します。

d. 両方の出力の Fraction Length9 に設定します。

e.[Next] をクリックします。

8.時計の設定と詳細のリセット

クロック周期(ns)を20に設定します。Verilog コードは、リセットが同期しており、アクティブな値が 1 であることを示します。クロックの立ち上がりエッジによってトリガーされ、1 ns の時点で HDL 設計全体をリセットできます。リセット信号には 15 ns の持続時間を使用します。「クロック/リセットの詳細」ページで、次の手順を実行します。

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

b.アクティブエッジをRisingに設定します。

c. リセット初期値を1に設定します。

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

[Next] をクリックします。

9. 開始時間の調整を確認する

開始時間アライメント ページには、クロック信号とリセット信号の波形のプロットが表示されます。コシミュレーション ウィザードは、コシミュレーションを開始する HDL 時間を赤い線で示します。開始時間は、System object が HDL シミュレータから最初の入力サンプルを取得する時間でもあります。クロックのアクティブ エッジは立ち上がりエッジです。したがって、HDL シミュレータの 20 ns の時点で、FFT の登録された出力は安定します。競合状態は存在せず、コシミュレーションを開始するデフォルトの HDL 時間 (20 ns) は正しいです。

[Next] をクリックします。

10. システムオブジェクトの生成

コシミュレーション ウィザードがスクリプトを生成する前に、HDL シミュレータのサンプリング期間を変更するオプションがあります。サンプリング期間は、HDL シミュレーターで MATLAB の各呼び出し間で経過する時間を決定します。サンプリング周期は通常、クロック周期と同じです。入力と出力がサンプルベースではなくフレームベースであるかどうかも指定できます。

コシミュレーション ウィザード セッションを完了するには、[完了] をクリックします。

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

この例では、実際にテストベンチを作成するわけではありません。代わりに、完成したスクリプト fft_tb.m は、Verilog ファイルが存在するディレクトリにあります。

コシミュレーション ウィザードで [完了] をクリックすると、アプリケーションは現在のディレクトリに 3 つの MATLAB スクリプトを生成します。

ModelSimおよびXceliumの場合

  • compile_hdl_design_fft_hdl.m:HDL 設計を再コンパイルします。

  • launch_hdl_simulator_fft_hdl.m:MATLAB System object サーバーを再起動し、HDL シミュレーターを起動します。

  • hdlcosim_fft_hdl.m:HdlCosimulation System object を作成します。

Vivadoシミュレータ用

  • hdlverifier_compile.m:HDL 設計を再コンパイルします。

  • hdlverifier_gendll_fft_hdl.m:System object の動作に統合された HDL 設計およびシミュレーション カーネルを含むコンパイル済み共有ライブラリを作成します。

  • hdlcosim_fft_hdl.m:HdlCosimulation System object を作成します。

Verilog ファイルと同じディレクトリにあるファイル fft_tb.mhdlcosim_fft_hdl.m を開き、HdlCosimulation System object 呼び出しを確認します。hdlcosim_fft_hdl.m には HdlCosimulation インスタンス化が含まれ、fft_tb.m には MATLAB System object テスト ベンチが含まれます。このテスト ベンチを使用して、対応する HdlCosimulation System object の HDL 設計を検証します。

12.コシミュレーションを実行してHDL設計を検証する

ModelSim および Xcelium の場合

スクリプト launch_hdl_simulator_fft_hdl.m を実行して HDL シミュレーターを起動します。

launch_hdl_simulator_fft_hdl

HDL シミュレータの準備ができたら、MATLAB に戻り、スクリプト fft_tb.m を実行してシミュレーションを開始します。

fft_tb

Vivado シミュレータの場合

スクリプト fft_tb.m を実行してシミュレーションを開始します。

fft_tb

テストベンチのプロットから結果を確認します。プロットは複素平面上のフーリエ係数を表示します。

参考