Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simulink HDL ワークフロー アドバイザーを使用した HDL コード生成および FPGA 合成

この例は、HDL ワークフロー アドバイザーを使用して HDL コードを生成し、ターゲット Xilinx® FPGA の設計を合成する方法を示します。このチュートリアルでは、作成した簡単な加算カウンター モデルを HDL コード生成のソースとして使用できます。モデルは、ゼロからしきい値までカウントし、ゼロに戻る加算カウンターのシミュレーションを実行します。このモデルを作成する方法については、HDL コード生成用の Simulink モデルの作成を参照してください。

簡単な加算カウンター モデル

このモデルを開いて、簡単な加算カウンターを表示します。モデルはゼロからしきい値までカウントし、ゼロに戻ります。このモデルでは、しきい値は 15 に設定されています。count_threshold ポートへの入力である Constant ブロックの値を変更することで、しきい値を変更できます。イネーブル信号は、カウンターがカウントすべきか、あるいは前の値を保持すべきかを指定します。イネーブル信号が 1 に設定されています。これは、カウンターが継続的にカウントすることを意味しています。

open_system('hdlcoder_simple_up_counter.slx')
set_param('hdlcoder_simple_up_counter', 'SimulationCommand', 'Update')

HDL ワークフロー アドバイザーについて

HDL ワークフロー アドバイザーは、次のような Simulink® サブシステムの HDL コードを生成する各段階と、FPGA 設計プロセスをサポートします。

  • モデルに HDL コード生成との互換性があるか確認し、非互換設定を自動的に修正。

  • HDL コード、テスト ベンチ、コードとテスト ベンチをビルドして実行するスクリプトの生成。

  • コシミュレーションまたは SystemVerilog DPI テスト ベンチ、コード カバレッジの生成 (HDL Verifier™ が必要)。

  • サードパーティ製の合成ツールとの統合による合成とタイミング解析。

  • 合成時に取得したクリティカル パスなどの情報によるモデルのバックアノテーション。

  • 選択した FPGA 開発ターゲット デバイスと Simulink Real-Time™ FPGA I/O ワークフローに対する、FPGA インザループ シミュレーションを含む完全な自動ワークフロー。

ツール パスの設定

設計を合成せずに HDL コードを生成する場合、ツール パスを設定する必要はありません。HDL ワークフロー アドバイザーの [ターゲットを設定][ターゲット デバイスおよび合成ツールを設定] の手順で、[合成ツール] 設定を既定の [No Synthesis Tool Specified] のままにして、ワークフローを実行します。

ターゲット プラットフォームで設計を合成する場合、HDL ワークフロー アドバイザーを開いてワークフローを実行する前に、合成ツールへのパスを設定します。この例では Xilinx Vivado を使用するため、Xilinx Vivado が既にインストールされていなければなりません。ツール パスを設定するには、インストールされている Xilinx Vivado 2019.1 の実行可能ファイルを指し示すように関数 hdlsetuptoolpath を使用します。サポートされている最新のツールについては、HDL の言語サポートおよびサポートされるサードパーティ製ツールとハードウェアを参照してください。

hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath',...
 'C:\Xilinx\Vivado\2019.1\bin\vivado.bat');

メモ

必要に応じて、任意の別の合成ツールを使用して、この例を実行することができます。合成ツールへのパスを設定するには、hdlsetuptoolpath を使用します。

HDL ワークフロー アドバイザーを開く

Simulink モデルから HDL ワークフロー アドバイザーを開くには、次の手順に従います。

  1. [アプリ] タブで、[HDL Coder] を選択します。[HDL コード] タブが表示されます。

  2. モデルの DUT サブシステムを選択し、その Subsystem 名が [次のコード] オプションに表示されることを確認します。選択内容を記憶しておくために、このオプションは固定できます。[ワークフロー アドバイザー] をクリックします。

HDL ワークフロー アドバイザーを開くときに、プロジェクト フォルダーに互換性がないという警告がコード ジェネレーターで発生することがあります。アドバイザーを開くには、[slprj を削除して続ける] を選択します。

HDL ワークフロー アドバイザーの左側のペインに階層内のフォルダーのリストが表示されます。各フォルダーは、関連するタスクのグループまたはカテゴリを表しています。フォルダーを展開すると各フォルダーで使用可能なタスクが表示されます。左側のペインから、フォルダーまたは個々のタスクを選択できます。HDL ワークフロー アドバイザーは選択されたフォルダーまたはタスクに関する情報を右側のペインに表示します。右側のペインの内容は選択したフォルダーまたはタスクによって異なります。一部のタスクでは、右側のペインにタスクを実行するための単純なコントロールと、状態メッセージや他のタスクの結果を示す表示領域が含まれます。コードまたはテスト ベンチ生成パラメーターの設定に関連するその他のタスクでは、右側のペインにいくつかのパラメーターとオプションの設定が表示されます。

個々のタスクの詳細については、そのタスクを右クリックし、[これはなに?] を選択します。

[HDL ワークフロー アドバイザー] ウィンドウの詳細については、HDL ワークフロー アドバイザーのご利用の前にを参照してください。

HDL コードの生成

  1. [ターゲットを設定][ターゲット デバイスおよび合成ツールを設定] 手順で、[合成ツール][Xilinx Vivado] を選択して [このタスクを実行] を選択します。

  2. [ターゲット周波数を設定] タスクで、設計で実現するターゲット周波数を指定します。この例では、[ターゲット周波数 (MHz)]200 に設定できます。

  3. すべての設定を既定のままにして、[サンプル時間をチェック] タスクをクリックし、[選択したタスクまで実行] を選択します。

    [HDL コード生成に対するモデルを準備] フォルダーのタスクを実行することで、HDL ワークフロー アドバイザーは、コード生成と互換性があるかどうかモデルをチェックします。

    メモ

    実行しているタスクによって警告が発生する場合は、[すべて変更] を選択してタスクを再実行します。

  4. コード生成オプションを変更するには、[コード生成オプションを設定] のタスクを使用します。たとえば、ターゲット HDL 言語およびターゲット コード生成フォルダーをカスタマイズするには、[基本オプションを設定] タスクを使用します。変更を行った後、[適用] をクリックします。

  5. コードを生成するには、[RTL コードとテスト ベンチを生成] タスクを右クリックし、[選択したタスクまで実行する] を選択します。

    メモ

    HDL テスト ベンチまたは検証モデルを生成する場合は、対応する設定を [RTL コードとテスト ベンチを生成] タスクに指定できます。追加のテスト ベンチ オプションを指定するには、[テスト ベンチ オプションを設定] タスクを使用します。

FPGA 合成および分析の実行

  1. [FPGA 合成および分析][合成および P/R を実行][配置および配線を実行] のタスクで、[このタスクをスキップ] の選択を解除し、[適用] をクリックします。

  2. [合成結果をもつモデルに注釈を付ける] を右クリックし、[選択したタスクまで実行] を選択します。

  3. モデル内の注釈付きクリティカル パスを表示します。

    メモ

    [合成ツール] として [Intel Quartus Pro] または [Microsemi Libero SoC] を選択した場合、[合成結果をもつモデルに注釈を付ける] タスクは実行できません。この場合、合成するワークフローを実行してから、タイミング レポートを表示し、クリティカル パスを確認できます。

スクリプトを使用したコマンド ラインでのワークフローの実行

コマンド ラインで HDL ワークフローを実行するには、ワークフロー アドバイザー設定をスクリプトにエクスポートします。スクリプトにエクスポートするには、[HDL ワークフロー アドバイザー] ウィンドウで、[ファイル][スクリプトへのエクスポート] を選択します。[Export Workflow Configuration] ダイアログ ボックスで、ファイル名を入力してスクリプトを保存します。

スクリプトは、コマンド ラインから実行できる MATLAB® ファイルです。スクリプトを直接変更するか、スクリプトを HDL ワークフロー アドバイザーにインポートし、タスクを変更して、更新したスクリプトをエクスポートします。詳細については、スクリプトを使用した HDL ワークフローの実行を参照してください。

参考

| |

関連するトピック