メインコンテンツ

Simulink モデルの SystemVerilog コードの生成

この例では、Simulink® モデルから SystemVerilog HDL コードを生成する方法を示します。SystemVerilog コードには、配列端子、パッケージ宣言、構造端子の使用など、Verilog® コードよりもさらに高度な機能があります。

モデルを開く

SystemVerilogFromSimulink モデルを開きます。このモデルは uint8 型の 2 つのベクトル入力を加算して結果を出力します。

mdl = 'SystemVerilogFromSimulink';
dut = [mdl '/HDL_DUT'];
open_system(mdl);

Simulink での SystemVerilog コードの生成

SystemVerilog コードを生成するには、次のようにします。

  1. Simulink® ツールストリップの [モデル化] タブで [モデル設定] をクリックし、[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。

  2. [HDL コード生成] ペインで [言語]SystemVerilog に設定します。[OK] をクリックします。

  3. Simulink® の [アプリ] タブで [HDL Coder] をクリックします。

  4. SystemVerilog コードを生成するサブシステムを選択します。SystemVerilogFromSimulink モデルの [HDL コード] タブで [次のコード] パラメーターを HDL_DUT に設定します。

  5. [HDL コードを生成] をクリックして HDL_DUT サブシステムの SystemVerilog コードを生成します。

MATLAB コマンド ウィンドウからの SystemVerilog コードの生成

makehdl 関数を使用してテスト対象設計 (DUT) の SystemVerilog コードを生成することもできます。HDL_DUT サブシステムのコードを生成するには、MATLAB® コマンド ウィンドウで次のコマンドを実行します。

load_system(mdl);
hdlset_param(mdl, 'TargetLanguage', 'SystemVerilog');
makehdl(dut)
### Working on the model <a href="matlab:open_system('SystemVerilogFromSimulink')">SystemVerilogFromSimulink</a>
### Generating HDL for <a href="matlab:open_system('SystemVerilogFromSimulink/HDL_DUT')">SystemVerilogFromSimulink/HDL_DUT</a>
### Using the config set for model <a href="matlab:configset.showParameterGroup('SystemVerilogFromSimulink', { 'HDL Code Generation' } )">SystemVerilogFromSimulink</a> for HDL code generation parameters.
### Running HDL checks on the model 'SystemVerilogFromSimulink'.
### Begin compilation of the model 'SystemVerilogFromSimulink'...
### Working on the model 'SystemVerilogFromSimulink'...
### Working on... <a href="matlab:configset.internal.open('SystemVerilogFromSimulink', 'GenerateModel')">GenerateModel</a>
### Begin model generation 'gm_SystemVerilogFromSimulink'...
### Copying DUT to the generated model....
### Model generation complete.
### Generated model saved at <a href="matlab:open_system('hdlsrc/SystemVerilogFromSimulink/gm_SystemVerilogFromSimulink.slx')">hdlsrc/SystemVerilogFromSimulink/gm_SystemVerilogFromSimulink.slx</a>
### Begin SystemVerilog Code Generation for 'SystemVerilogFromSimulink'.
### Working on SystemVerilogFromSimulink/HDL_DUT as hdlsrc/SystemVerilogFromSimulink/HDL_DUT.sv.
### Generating package file hdlsrc/SystemVerilogFromSimulink/HDL_DUT_pkg.sv.
### Code Generation for 'SystemVerilogFromSimulink' completed.
### Generating HTML files for code generation report at <a href="matlab:hdlcoder.report.openReportV2Dialog('/tmp/Bdoc25b_2988451_710120/tp11ca1a46/hdlcoder-ex97853341/hdlsrc/SystemVerilogFromSimulink', '/tmp/Bdoc25b_2988451_710120/tp11ca1a46/hdlcoder-ex97853341/hdlsrc/SystemVerilogFromSimulink/html/index.html')">index.html</a>
### Creating HDL Code Generation Check Report file:///tmp/Bdoc25b_2988451_710120/tp11ca1a46/hdlcoder-ex97853341/hdlsrc/SystemVerilogFromSimulink/HDL_DUT_report.html
### HDL check for 'SystemVerilogFromSimulink' complete with 0 errors, 0 warnings, and 0 messages.
### HDL code generation complete.

HDL コードの生成が完了したら、生成された SystemVerilog ファイルを開いて DUT の生成コードを調べます。生成された SystemVerilog コードには、DUT インターフェイスのベクトル端子の宣言が含まれています。HDL Coder により、DUT 端子の typedef 宣言のパッケージ ファイルも生成されます。

参考

トピック