Main Content

ボードに依存しない 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')

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

    hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath',...
                 'C:\Xilinx\Vivado\2020.2\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 端子を AXI4 スレーブ インターフェイスにマッピングしない場合は、External Port インターフェイスにマッピングできます。

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

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

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

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

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

      メモ

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

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

  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 スレーブ インターフェイスをもたない IP コア

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

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

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

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

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

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

メモ

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

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

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

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

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

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

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

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

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

AXi4-Lite インターフェイスの制限

  • 入力端子と出力端子のビット幅は 32 ビット以下でなければなりません。

  • 入力端子と出力端子はスカラーでなければなりません。

AXI4-Stream Video インターフェイスの制限

  • 端子の幅は 32 ビットでなければなりません。

  • 端子はスカラーでなければなりません。

  • 最大で 1 つの入力ビデオ端子と出力ビデオ端子を使用できます。

  • AXI4-Stream Video インターフェイスは Coprocessing – blocking モードではサポートされていません。[プロセッサ/FPGA 同期]Free running モードに設定されていなければなりません。

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

  • 端子は外部 IO インターフェイスまたは内部 IO インターフェイス、または TLAST マッピングをもつ AXI4-Stream インターフェイスにのみマッピングできます。AXI4 Master、AXI4-Stream、AXI4-Stream Video など、AXI4 スレーブ インターフェイスを必要とする他のインターフェイスはサポートされていません。

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

参考

クラス

関連するトピック