このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
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 Simulator を ModelSim
に設定します。
Xcelium を使用している場合は、HDL Simulator を Xcelium
に設定します。
Vivado シミュレータを使用している場合は、HDL シミュレータ を Vivado Simulator
に設定します。
b.HDL コシミュレーションを MATLAB System Object
に設定します。
c. HDL シミュレータ実行ファイルがシステム パス上に表示される場合は、デフォルトの システム パス上の HDL シミュレータ実行ファイルを使用する オプションを変更しないでください。これらの実行ファイルがパス上に表示されない場合は、HDL シミュレータのパスを指定します。
d. [Next] をクリックします。
3. HDLファイルを選択
HDL ファイル ページで、次の手順を実行します。
a.ファイル リストに HDL ファイルを追加します。
追加 をクリックし、サンプル フォルダー内の Verilog ファイル fft_hdl.v と fft_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 つのテーブルが表示されます。
コシミュレーション ウィザードは、各ポートのポート タイプを正しく識別しようとします。ウィザードがポートを誤って識別した場合は、これらのテーブルを使用してポート タイプを変更できます。
入力ポートには、
Clock
、Reset
、Input
、または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. 両方の入力の Sign を Signed
に設定します。
d. 両方の出力の Fraction Length を 9 に設定します。
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.m と hdlcosim_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
テストベンチのプロットから結果を確認します。プロットは複素平面上のフーリエ係数を表示します。