マップ エラーがツールの制限により発生することがあります。その場合、ツールにガイダンスを供給すると有益である可能性があります。
- 次のコマンド ライン オプションを使用して、自動 AI エンジン コンパイラのフロアプランをオフにします。
-–Xmapper=disableFloorplanning
- グラフで境界ボックス制約を使用するか制約ファイルで
areaGroup
制約を使用して、独自のフロアプランを作成します。これは、デザインに複数の個別のグラフがある場合に特に有益です。これらの個別のグラフを、アレイの特定の領域に制約できます。この手法は、デザインを収束させるのに役立つだけでなく、異なるグラフのバッファー間の干渉を最小限に抑えてパフォーマンスを向上させるのためにも効果的です。次の図に、16 個のアンテナ転送チェーン デザインを使用した例を示します。青で示されているカーネルは、アンテナ 4 に属します。図 1. アンテナ 4 のカーネル
これを達成する制約ファイルの構文は、次のとおりです。
{ "GlobalConstraints": { "areaGroup": { "name": "ant4_cores", "nodeGroup": ["tx_chain4.*"], "tileGroup": ["(16,0):(19,3)"] } } }
これを達成する境界ボックスの構文は、次のとおりです。
location<graph>(tx_chain4) = bounding_box(16,0,19,3);
- 必要に応じてコロケーション制約または絶対ロケーション制約を追加します。このガイダンスを指定してもデザインが収束しない場合は、コロケーション制約または絶対ロケーション制約を追加してみます。コロケーション制約は、次の例に示すように、同じファイルにマップするカーネルとバッファーまたはシステム メモリの間に追加します。
絶対ロケーション制約も追加でき、次の例に示すように、主要なカーネルまたはバッファーを固定して、マップでのほかのコンポーネントの配置をガイドできます。location<buffer>(kernel_1.out[0]) = location<kernel>(kernel_1); location<stack>(kernel_1) = location<kernel>(kernel_1);
location<kernel>(kernel_1) = tile(20, 0); location<buffer>(kernel_1.in[0]) = { address(19, 0, 0x0), address(19, 0, 0x2000) }; // double buffer needs two locations