ボードに依存しない HDL IP コアの Simulink モデルからの生成
HDL ワークフロー アドバイザーを開いて Simulink® モデルの IP Core Generation
ワークフローを実行する際、汎用の Xilinx® プラットフォーム、汎用の Intel® プラットフォーム、汎用の Microchip プラットフォームなどの汎用プラットフォームを指定できます。この場合、任意のターゲット プラットフォームに統合可能な汎用の IP コアがワークフローで生成されます。IP コアの統合には、hdlcoder.ReferenceDesign
クラスを使用して、ターゲット ボード向けのカスタム リファレンス設計を定義し登録します。詳細については、以下を参照してください。
ボードに依存しない IP コアの生成
Intel Qsys、Xilinx EDK、Xilinx IP Integrator などの組み込みシステムの統合環境で使用する目的で、ボードに依存しないカスタム IP コアを生成するには、次の手順に従います。
Simulink モデルの DUT を選択して、HDL ワークフロー アドバイザーを開きます。たとえば、モデル
hdlcoder_led_blinking
を開きます。open_system('hdlcoder_led_blinking')
関数
hdlsetuptoolpath
を使用して、インストールされたターゲット デバイス向けの合成ツールへのパスを設定します。たとえば、Xilinx Vivado® が合成ツールである場合は、次のコマンドを使用します。hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath',... 'C:\Xilinx\Vivado\2020.2\bin\vivado.bat');
合成ツールの最新のサポートされているバージョンについてはHDL の言語サポートおよびサポートされるサードパーティ製ツールとハードウェアを参照してください。
DUT サブシステムの HDL ワークフロー アドバイザーを開きます。LED 点滅モデルの場合、
led_counter
サブシステムが DUT です。[ターゲットを設定]、[ターゲット デバイスおよび合成ツールを設定] タスクで、次を行います。[ターゲット ワークフロー] には
[IP Core Generation]
を選択します。[ターゲット プラットフォーム] には、合成ツールとターゲットとするデバイスによって、
[Generic Altera Platform]
または[Generic Xilinx Platform]
を選択します。[このタスクを実行] をクリックします。
[ターゲットを設定]、[ターゲット インターフェイスを設定] タスクで、端子ごとに [ターゲット プラットフォーム インターフェイス] を選択してから、[適用] をクリックします。各 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
インターフェイスにマッピングできます。[コード生成オプションを設定] タスクを展開します。[最適化オプションを設定] タスクを右クリックし、[選択したタスクまで実行] を選択します。
[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] として保存します。
タスクの実行後、HDL Coder は [IP コア フォルダー] フィールドに表示されている出力フォルダーに、HTML ドキュメンテーションを含む IP コア ファイルを生成します。IP コア レポートを表示するには、メッセージ ウィンドウにあるリンクをクリックします。
ツールに依存しない IP コアの生成
[Generic Platform]
を使用すると、サードパーティ製の合成ツールを設定せずに IP コアと RTL コードを生成できます。[Generic Platform]
を使用して IP コアを生成するには、次の手順に従います。
手順 [1.1 ターゲット デバイスおよび合成ツールを設定] で、[ターゲット ワークフロー] を
[IP コアの生成]
に設定します。さらに、[ターゲット プラットフォーム] を[Generic Platform]
に設定します。このターゲット プラットフォームを設定する場合、合成ツールとターゲット デバイスの情報は必要ありません。手順 [1.2. ターゲット インターフェイスを設定] で、入力端子と出力端子の [ターゲット プラットフォーム インターフェイス] を設定します。端子のターゲット インターフェイスとして、
[AXI4]
のほか、[外部端子]
も選択できます。HDL ワークフロー アドバイザーのタスクを手順 [3.1. HDL オプションの設定] まですべて実行します。
手順 [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
モードはサポートされていません。