図 31: IP カタログ
重要: リポジトリが IP カタログに追加されているのに Vivado HLS でパッケージした IP が表示されない場合 は、現在のプロジェクトのターゲット パーツと Model Composer の出力ファイルを生成したときに使用したデ バイスとの互換性がない可能性があります。これは、現在のプロジェクトのパーツを Model Composer モデル で指定したデバイスに変更すると回避できます。
図 32: 合成レポート
Model Composer で RTL の合成が終了すると、ログ ウィンドウに 「Exporting RTL as an IP for System Generator for DSP」 (RTL を System Generator for DSP 用に IP としてエクスポート中) というメッセージが表示 されます。このプロセスは Tcl スクリプト run_hls.tcl で処理され、Model Composer で System Generator IP がエ クスポートされます。
Model Composer では、このアルゴリズムにより、次の出力ファイルが生成されます。
• SystemC (IEEE 1666-2006、バージョン 2.2)
• VHDL (IEEE 1076-2000)
• Verilog (IEEE 1364-2001)
• 合成、C/RTL 協調シミュレーションおよび IP パッケージの後に生成されるレポート ファイル。
Model Composer で System Generator IP が生成されると、プロジェクト ディレクトリ構造が次の図のようになりま す。Edge_Detection_Sysgen フォルダーは、Model Composer Hub ブロックの [Target Directory] で指定したディ レクトリです。Edge_Detection_prj フォルダーは、run_hls.tcl スクリプトで作成されたプロジェクトです。
solution1 フォルダーは、Vivado HLS ソリューションです。詳細は、『Vivado Design Suite ユーザー ガイド: 高位合 成』 (UG902) を参照してください。syn、sim、および impl フォルダーには、それぞれ合成、シミュレーション、
およびインプリメンテーションの結果が保存されます。sysgen フォルダーには、サブシステム IP を使用するのに必 要な System Generator ファイルが含まれます。
図 33: System Generator の出力
Model Composer で生成した System Generator IP は、次の手順で System Generator にインポートできます。
1. System Generator モデルを開いた状態で Simulink Editor のキャンバスを右クリックし、[Xilinx BlockAdd] をクリ ックします。モデルに追加可能な Xilinx System Generator ブロックがリストされます。
2. ダイアログ ボックスでリストをスクロール ダウンするか、[Add Block] 検索フィールドに「HLS」と入力し、
Vivado HLS ブロックをモデルに追加します。
3. 新しく追加したブロックをダブルクリックして、[Vivado HLS Block Parameter] ダイアログ ボックスを開きます。
第 4 章: 出力の生成
図 34: Vivado HLS ブロック
4. [Browse] をクリックして Model Composer 出力を生成した Vivado HLS プロジェクトの solution ディレクトリを 指定します。たとえば、上記の Edge Detection の例の場合は、../Edge_Detection_prj/solution1 フォル ダーを指定して [OK] をクリックします。
Vivado HLS テンプレート ブロックは System Generator モデルで Edge Detection IP に変換されます。必要に応じて、
モデルに合わせてこの IP ブロックの角をドラッグして大きくします。ブロックは、最初は Vivado HLS テンプレート に合わせたサイズになっています。次の図は、Model Composer モデルから生成した System Generator IP を示してい ます。
図 35: Vivado HLS ブロック
Model Composer サブシステム モジュールの関数引数が Vivado HLS で変換されて 1 つの複合ポートにまとめられる 場合は、そのポートの signal type 情報が不明になるので、System Generator IP ブロックに含まれなくなります。
このため、ポートで再形成、マップ、データ パック最適化などを使用した場合は、これらの複合ポートに対するポー ト タイプ情報を System Generator で手動で指定する必要があります。これには、複合ポートがどのように作成され たかを理解してから、System Generator 内で slice および reinterpretation ブロックを使用して、Vivado HLS ブロックをシステムのほかのブロックに接続する必要があります。
たとえば、R、G、B の 3 つの 8 ビット入出力ポートが 24 ビット入力ポート (RGB_in) と 24 ビット出力ポート (RGB_out) にパックされているとします。IP ブロックを System Generator に含めた後、次のようになる必要があり ます。
• 24 ビット入力ポート (RGB_in) は、3 つの 8 ビット入力信号 (R_in、G_in、B_in) を正しくまとめた System Generator ブロックで駆動される必要があります。
• 24 ビット出力ポート (RGB_out) は、3 つの 8 ビット入力信号 (R_out、G_out、B_out) に正しく分割される必要
があります。
ヒント: 複合タイプのポートに接続するための slice および reinterpretation ブロックの使用方法の詳細は、
System Generator の資料を参照してください。