メインコンテンツ

ボードに依存しない HDL IP コアの Simulink モデルからの生成

HDL ワークフロー アドバイザーを開いて Simulink® モデルの IP Core Generation ワークフローを実行する際、汎用の Xilinx® プラットフォーム、汎用の Intel® プラットフォーム、汎用の Microchip プラットフォームなどの汎用プラットフォームを指定できます。この場合、任意のターゲット プラットフォームに統合可能な汎用の IP コアがワークフローで生成されます。IP コアの統合には、hdlcoder.ReferenceDesign クラスを使用して、ターゲット ボード向けのカスタム リファレンス設計を定義し登録します。詳細については、以下を参照してください。

ボードに依存しない IP コアの生成

Intel Qsys、Xilinx EDK、Xilinx IP Integrator などの組み込みシステムの統合環境で使用する目的で、ボードに依存しないカスタム IP コアを生成するには、次の手順に従います。

  1. Simulink モデルの DUT を選択して、HDL ワークフロー アドバイザーを開きます。たとえば、モデル hdlcoder_led_blinking を開きます。

    open_system('hdlcoder_led_blinking')

    IP Core Generation Workflow for the LED Blinking Model.

  2. 関数 hdlsetuptoolpath を使用して、インストールされたターゲット デバイス向けの合成ツールへのパスを設定します。たとえば、Xilinx Vivado® が合成ツールである場合は、次のコマンドを使用します。

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

    合成ツールの最新のサポートされているバージョンについてはHDL の言語サポートおよびサポートされるサードパーティ製ツールとハードウェアを参照してください。

  3. DUT サブシステムの HDL ワークフロー アドバイザーを開きます。LED 点滅モデルの場合、led_counter サブシステムが DUT です。[ターゲットを設定][ターゲット デバイスおよび合成ツールを設定] タスクで、次を行います。

    • [ターゲット ワークフロー] には [IP Core Generation] を選択します。

    • [ターゲット プラットフォーム] には、合成ツールとターゲットとするデバイスによって、[Generic Altera Platform] または [Generic Xilinx Platform] を選択します。[このタスクを実行] をクリックします。

  4. [ターゲットを設定][ターゲット インターフェイスを設定] タスクで、端子ごとに [ターゲット プラットフォーム インターフェイス] を選択してから、[適用] をクリックします。各 DUT 端子を以下のインターフェイスの 1 つにマッピングできます。[AXI4-Lite][AXI4][AXI4-Stream][AXI4-Stream Video][External Port]、または [FPGA Data Capture]。これらのインターフェイスの詳細については、ターゲット プラットフォーム インターフェイスを参照してください。

    複数のターゲット プラットフォーム インターフェイスに端子をマップすることもできます。詳細については、複数の AXI4-Stream および AXI4 Master インターフェイスを使用した HDL IP コアの生成を参照してください。

    DUT 端子をレジスタ インターフェイスにマッピングしない場合は、External Port インターフェイスにマッピングできます。

    Target platform interface table.

  5. [コード生成オプションを設定] タスクを展開します。[最適化オプションを設定] タスクを右クリックし、[選択したタスクまで実行] を選択します。

  6. [HDL コード生成][RTL コードと IP コアの生成] タスクで、以下を指定できます。

    • DUT IP コアを複数の AXI Master インターフェイスに接続するかどうか。既定では、[AXI4 下位 ID の幅] の値は 12 であり、これにより HDL IP コアを 1 つの AXI Master インターフェイスに接続できます。DUT IP コアを複数の AXI Master インターフェイスに接続するために、[AXI4 下位 ID の幅] を増やすことができます。このタスクを実行すると、この設定は HDL ブロック プロパティ [AXI4SubordinateIDWidth] として DUT に保存されます。

      詳細については、DUT AXI4 スレーブ インターフェイスにアクセスするためのリファレンス設計での複数の AXI Master インターフェイスの定義を参照してください。

    • 既定のレジスタ インターフェイスを生成するかどうか。既定では HDL Coder™ は、クロック、リセット、ready、タイムスタンプなどの信号についてレジスタ インターフェイスを生成します。レジスタ インターフェイスを生成しない場合は、[既定のレジスタ インターフェイスの生成] チェック ボックスをオフにします。

      メモ

      いずれかの DUT 端子を [ターゲット インターフェイスを設定] タスクで AXI4 レジスタ インターフェイスにマッピングした場合は、[既定のレジスタ インターフェイスの生成] チェック ボックスがオフかどうかにかかわらず、コード ジェネレーターは端子を AXI4 レジスタ インターフェイスにマッピングします。

    [このタスクを実行] をクリックします。チェック ボックスをオフにしてタスクを実行すると、コード ジェネレーターはこの設定を DUT サブシステムに HDL ブロック プロパティ [GenerateDefaultRegisterInterface] として保存します。

  7. タスクの実行後、HDL Coder は [IP コア フォルダー] フィールドに表示されている出力フォルダーに、HTML ドキュメンテーションを含む IP コア ファイルを生成します。IP コア レポートを表示するには、メッセージ ウィンドウにあるリンクをクリックします。

ツールに依存しない IP コアの生成

[Generic Platform] を使用すると、サードパーティ製の合成ツールを設定せずに IP コアと RTL コードを生成できます。[Generic Platform] を使用して IP コアを生成するには、次の手順に従います。

  1. 手順 [1.1. ターゲット デバイスおよび合成ツールを設定] で、[ターゲット ワークフロー][IP コアの生成] に設定します。さらに、[ターゲット プラットフォーム][Generic Platform] に設定します。このターゲット プラットフォームを設定する場合、合成ツールとターゲット デバイスの情報は必要ありません。

  2. 手順 [1.2. ターゲット インターフェイスを設定] で、入力端子と出力端子の [ターゲット プラットフォーム インターフェイス] を設定します。端子のターゲット インターフェイスとして、[AXI4] のほか、[外部端子] も選択できます。

  3. HDL ワークフロー アドバイザーの各タスクを手順 [3.1. HDL オプションの設定] まですべて実行します。

  4. 手順 [3.2. RTL コードと IP コアの生成] で、このタスクを実行してモデルの RTL コードと IP コアを生成します。生成されたコードはハードウェアで統合できます。

AXI4 または AXI4-Lite レジスタ インターフェイスをもたない IP コア

IP コアの生成ワークフローを実行する際、レジスタ インターフェイスをもたない HDL IP コアをリファレンス設計に生成することもできます。

このワークフローを実行するには、HDL ワークフロー アドバイザーを開き、Generic Xilinx Platform または Generic Altera Platform をターゲット プラットフォームとして指定し、DUT 端子を External Port のみ、または TLAST マッピングをもつ AXI4-Stream インターフェイスにマッピングします。さらに、HDL IP コアを生成する際、[RTL コードと IP コアの生成] タスクで [既定のレジスタ インターフェイスの生成] チェック ボックスをオフにし、[このタスクを実行] を選択します。

この機能は以下の場合に使用します。

  • レジスタ インターフェイスを使用した IP コアのパラメーター調整を行わない場合。

  • レジスタ インターフェイスをもたないカスタム リファレンス設計 (スタンドアロン FPGA ボードなど) を作成する場合。

また、こうした場合のレジスタ インターフェイスの生成を回避することにより、ハードウェア リソースの使用率と設計の複雑度が低減されます。

メモ

外部 IO インターフェイスおよび内部 IO インターフェイスが HDL IP コアをカスタム リファレンス設計の他の既存の IP に接続します。これらのインターフェイスを定義するには、hdlcoder.ReferenceDesign クラスの addInternalIOInterface メソッドおよび addExternalIOInterface メソッドを使用します。

HDL IP コアを統合するには、レジスタ インターフェイスをもたないカスタム リファレンス設計を作成できます。カスタム リファレンス設計では、外部 IO、内部 IO、TLAST マッピングをもつ AXI4-Stream インターフェイスのみを使用できます。以下の例を参照してください。

AXI4 レジスタ インターフェイスなどのレジスタ インターフェイスをもたない HDL IP コアを生成する際には、特定の制限事項が適用されます。レジスタ インターフェイスをもたない IP コアの制限を参照してください。

カスタム IP コアの生成の要件と制限

カスタム IP コアの生成の制限

  • DUT は Atomic システムでなければなりません。

  • 同一の IP コアで AXI4 インターフェイスと AXI4-Lite インターフェイスの両方を使用することはできません。

  • DUT に Xilinx System Generator ブロック、Vitis® Model Composer ブロック、Intel DSP Builder Advanced ブロックを含めることはできません。

  • ターゲット言語が VHDL® で、合成ツールが Xilinx ISE または Intel Quartus® Prime の場合、DUT にモデル参照を含めることはできません。

レジスタ インターフェイスをもたない IP コアの制限

  • [プロセッサ/FPGA 同期] には Free running モードを使用しなければなりません。Coprocessing – blocking モードはサポートされていません。

参考

クラス

トピック