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

ID 683641
日付 7/08/2024
Public
ドキュメント目次

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

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

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

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

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

レポートファイルの Resource Utilization by Entity レポートを開き、想定外に低い RAMブ ロック数に対応するモジュールの中に通常よりも高いレジスター数があるかどうかを判断します。一部のコーディング・スタイルでは、ブロックのアーキテクチャ実装のために、 Quartus® Prime 開発ソフトウェアがソースコードから RAM ブロックを推論することができず、開発ソフトウェアがロジックをフリップフロップで実装することを余儀なくされます。

例えば、レジスターバンクで非同期リセットを実行すると、レジスターバンクがデバイス・アーキテクチャーの RAM ブロックと互換性がなくなるため、コンパイラーはレジスターバンクをフリップフロップで実装します。多くの場合、関連するロジックを少し変更するだけで、大きなレジスターバンクを RAM に移動することができます。

メモリーを適切に使用することでもリソース使用量を削減することができます。例えば、浅いが広いメモリーは、M20K メモリーブロックよりも MLAB に適している場合があります。