Main Content

HDL ワークフロー アドバイザーを使用したコードの生成と FPGA での合成

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

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

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

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

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

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

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

FIR フィルター モデル

この例は、FIR フィルター モデルの HDL コードを生成し、FPGA デバイスで設計を合成する方法を示します。HDL コードを生成する前に、モデルは HDL コード生成と互換性がなければなりません。HDL 互換性についてモデルのチェックと更新を行うには、HDL コード アドバイザーを使用した Simulink モデルの HDL 互換性のチェックを参照してください。HDL ワークフロー アドバイザーは Simulink Online™ では使用できません。

この例では、HDL コード生成と互換性のある対称 FIR フィルター モデルを使用します。このモデルをコマンド ラインで開くには、次を入力します。

sfir_fixed

モデルは、HDL 設計に適した作業分担を使用します。

  • フィルターのアルゴリズムを実装する symmetric_fir サブシステムがテスト対象デバイス (DUT) です。HDL エンティティはこのサブシステムから生成されます。

  • サブシステムを駆動する最上位のモデル コンポーネントはテスト ベンチとして機能します。

最上位モデルは symmetric_fir サブシステムに対して 16 ビットの固定小数点入力信号を生成します。Signal From Workspace ブロックはフィルターに対するテスト入力 (スティミュラス) 信号を生成します。4 つの Constant ブロックがフィルター係数を示しています。Scope ブロックはシミュレーションに使用され、HDL コード生成には使用されません。

symmetric_fir サブシステムに移動するには、次を入力します。

open_system('sfir_fixed/symmetric_fir')

Symmetric FIR filter algorithm.

フォルダーの作成と関連ファイルのコピー

MATLAB® で、以下を実行します。

  1. sl_hdlcoder_work という名前のフォルダーを作成します。たとえば、次のようにします。

    mkdir C:\work\sl_hdlcoder_work
    

    sl_hdlcoder_work は、モデル例とフォルダーのローカル コピーおよび生成された HDL コードを保存します。MATLAB フォルダー ツリー内ではないフォルダーの場所を使用します。

  2. sl_hdlcoder_work を作業フォルダーにします。たとえば、次のようにします。

    cd C:\work\sl_hdlcoder_work
  3. sfir_fixed モデルのローカル コピーを現在の作業フォルダーに保存します。モデルを開いたままにしておきます。

ツール パスの設定

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

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

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

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

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

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

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

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

HDL ワークフロー アドバイザーの左側のペインに階層内のフォルダーのリストが表示されます。各フォルダーは、関連するタスクのグループまたはカテゴリを表しています。左側のペインから、フォルダーまたは個々のタスクを選択できます。HDL ワークフロー アドバイザーは選択されたフォルダーまたはタスクに関する情報を右側のペインに表示します。

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

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

HDL コードの生成と FPGA での合成

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

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

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

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

    Highlighted critical path in symmetric FIR filter model.

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

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

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

参考

|

関連するトピック