インテル® Quartus® Primeプロ・エディションのユーザーガイド: デザイン最適化

ID 683641
日付 9/30/2019
Public
ドキュメント目次

4.2.3.8. ガイドライン:メモリーブロックのターゲット変更

メモリーリソースの制限のためにFitterがデザインを解決できない場合、デザインにはデバイスにないタイプのメモリーが必要になることがあります。

パラメーター・エディターで作成したメモリーブロックの場合、新しいメモリーブロックサイズをターゲットにするようにRAMブロックタイプを編集します。

CompilerはHDLコードからROMおよびRAMメモリーブロックを推論することもでき、合成エンジンはShiftレジスター(RAMベース)IPコアを推論することによって大きなシフトレジスターをメモリーブロックに配置することもできます。 合成ツールでこの推論をオフにすると、合成エンジンはメモリーまたはシフトレジスターをメモリーブロックではなくロジックに配置します。 また、この推論をオフにすると、レジスターがRAMに移動されなくなり、タイミング性能が向上します。

合成ツールによっては、推論メモリーブロックのRAMブロックタイプを設定することもできます。 インテル® Quartus® Prime合成では、ramstyle属性を、推論されたRAMブロックの目的のメモリータイプに設定します。 あるいは、メモリーブロックをメモリーブロックではなく標準ロジックでインプリメントするには、オプションをlogicに設定します。

レポートファイルのResource Utilization by Entityレポートを検討し、いずれかのモジュールで異常に高いレジスター数があるかどうかを確認します。 ブロックのアーキテクチャー上の実装のために、 インテル® Quartus® PrimeソフトウェアがソースコードからRAMブロックを推論することを妨げるコーディング・スタイルがあり、ソフトウェアにロジックをフリップフロップで実装することを強います。 たとえば、レジスターバンクで非同期リセットを実行すると、レジスターバンクがデバイス・アーキテクチャーのRAMブロックと互換性がなくなるため、Compilerはレジスターバンクをフリップフロップで実装します。 多くの場合、関連するロジックを少し変更するだけで、大きなレジスターバンクをRAMに移動することができます。