このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
生成された SystemVerilog コードのカスタマイズの開始
この例では、SystemVerilog DPI コンポーネント生成プロセスで生成された SystemVerilog コードをカスタマイズする方法を示します。
要件と前提条件
この例に必要な製品:
MATLAB®
Simulink®
Simulink Coder™
メンターグラフィックス® ModelSim®/QuestaSim®
サポートされている C コンパイラの 1 つ:Microsoft® Visual C++、または GNU GCC
背景
デフォルトで生成された SystemVerilog コードが要件を満たさない場合は、生成されたコードをカスタマイズするオプションがあります。この例では、生成されたコードをカスタマイズする方法を示します。
次の Simulink モデルでは、サブシステム F0、F2、F3、および F4 に対応する生成されたコードが、SystemVerilog モジュールとして個別にエクスポートされます。デフォルトでは、各モジュールにはクロック、クロック イネーブル、リセットの 3 つの制御信号が含まれています。HDL シミュレーションでは、サブシステムの更新関数と出力関数はクロック信号の立ち上がりエッジで呼び出されます。イベント スケジューラは、Simulink モデルと同じシーケンスで、HDL シミュレーターでこれらの更新および出力関数をトリガーします。
例を開く
次のコードを実行してデザインを開きます
open_system('svdpi_SimpleFeedBack');
コード生成のためのモデルの設定
svpid_SimpleFeedBack モデルから Simulink モデル構成パラメータ パネルを開きます。次のパラメータを設定します。
コード生成 - システム ターゲット ファイルを選択します。参照ボタンをクリックし、「systemverilog_dpi_grt.tlc」を選択します。
ツールチェーン設定で、Windows を使用している場合は Visual Studio のバージョンの 1 つを選択し、Linux を使用している場合は GCC ツールチェーンの 1 つを選択します。「コードのみを生成する」オプションのチェックが外れていることを確認してください。
コード生成 - SystemVerilog DPI を選択し、「生成された SystemVerilog コードをカスタマイズする」オプションをオンにします。「ソース ファイル テンプレート」が既定のテンプレート「svdpi_event.vgt」に設定されていることを確認します。
「編集」ボタンをクリックして、デフォルトの SystemVerilog テンプレートを表示することもできます。
これで、構成パラメータ パネルは完了です。「OK」ボタンをクリックして閉じます。
SystemVerilog DPIコンポーネントを生成する
「svdpi_SimpleFeedBack」モデルで、サブシステム F0、F2、F3、および F4 の C コードを生成します。MATLAB で次のコマンドを実行すると、コマンドラインから C コードを生成できます。
slbuild('svdpi_SimpleFeedBack/F0') slbuild('svdpi_SimpleFeedBack/F2') slbuild('svdpi_SimpleFeedBack/F3') slbuild('svdpi_SimpleFeedBack/F4')
これで、これらのサブシステムの C コードは、それぞれサブディレクトリ「F0_build」、「F2_build」、「F3_build」、「F4_build」に生成されます。
テストベンチファイル
テストベンチ「SimpleFeedback_tb.sv」では、制御信号は、Simulink 内の実行順序が高いモジュールから Simulink 内の実行順序が低いモジュールに流れるように接続されています。
生成されたテストベンチを実行する
ModelSim/QuestaSim を GUI モードで起動し、ディレクトリを MATLAB の現在のディレクトリに変更します。ModelSim/QuestaSimで、次のコマンドを入力してデザインをコンパイルします。
do build.do
ModelSim/QuestaSimで、次のコマンドを入力して設計をシミュレートします。
do sim.do
シミュレーションが終了すると、ModelSim の波形ウィンドウで各サブシステムの出力とキャプチャされた信号の違いを調べることができます。