クリティカルな問題
インテル® Quartus® Prime Pro ソフトウェア・バージョン 18.0 以前の問題により、top_level_1.sv および top_level_2.sv を使用して 2 つの異なるプロジェクトで 2 つのパーティションがコンパイルされ、top_level_3.sv を持つ 3 番目のプロジェクトに QDB_FILE_PARTITION割り当てを使用して再利用される場合、行クロック領域が重複しているため、次のような内部エラーが表示されます。
内部エラー: サブシステム: VPR20KMAIN, File: /quartus/fitter/vpr20k/altera_arch_common/altera_arch_re_network_routing_constraints.cpp
top_level_1.sv、top_level_2.sv、top_level_3.sv の 3 つのトップレベル・ファイルは 3 つの異なるデザインのファイルで、各デザインは周辺インターフェイス、使用されるデザインブロックなどで異なります。そのため、最初にパーティションをコンパイルしてエクスポートするデベロッパー・プロジェクト (top_level_1.sv と top_level_2.sv を持つプロジェクト) には、エクスポートされた 2 つのパーティションが再利用されるコンシューマー・プロジェクト (top_level_3.sv を持つプロジェクト) に関する包括的な情報がありません。
- クロックセクターは、図の緑のボックスで定義されています。1
- 行クロック領域は、セクター幅が半分のクロックで、図の赤い点線の 1 つの LAB 行の縦です。1
- コンシューマー プロジェクトでは、再利用された 2 つのパーティションがこのリージョンでオーバーラップすると、上記の内部エラーが表示されます。
この問題を回避するには、コンシューマー プロジェクトで同じ行クロック領域に 2 つの再利用されたパーティションが占有しないように、開発者プロジェクトのロジック ロック リージョンを使用します。
例えば:
- 2 つのパーティションが再利用されるコンシューマー・プロジェクトから、黄色と紫色のパーティションのおおよその配置を決定します。行クロック領域の重複がないように、2 つのパーティションのロジックロック制約を選択します。
- 開発者プロジェクトでは、top_level_1.sv を使用して、コンシューマー・プロジェクトから特定されたロジックロック・リージョンの制約をパープルのパーティションに使用し、最後のステージでパーティションのコンパイルとエクスポートを行います。
- 開発者プロジェクトでは、top_level_2.sv を使用して、コンシューマー・プロジェクトから識別されるロジック・ロック・リージョンの制約を黄色のパーティションに使用し、最後のステージでパーティションのコンパイルとエクスポートを行います。
- エクスポートされたパーティションは、コンシューマー・プロジェクトで再利用される際に、top_level_3.sv を使用して、非重複ロジックロック制約を使用して、開発者プロジェクトで定義された配置を維持します。
この問題は、インテル® Quartus® Prime 開発ソフトウェア・プロ・エディションの将来のバージョンで修正される予定です。