インテル® Quartus® Prime プロ・エディションのユーザーガイド: デザインの推奨事項

ID 683082
日付 8/03/2023
Public
ドキュメント目次

2.4. エンベデッドRAMの実装

インテルの専用メモリー・アーキテクチャーでは多くの高度な機能を提供しており、インテルが提供するIPコアで有効にすることができます。同期メモリーブロックをデザインに使用することで、ブロックをデバイスの専用メモリーブロックに直接マッピングできるようにします。

シングルポート、デュアルポート、または3ポートのRAMをシングルまたはデュアルクロック方式で使用することができます。非同期メモリーロジックをメモリーブロックとして推論したり、非同期メモリーロジックを専用のメモリーブロックに配置したりすることがないようにします。非同期メモリーロジックは通常のロジックセルに実装します。

インテルのメモリーブロックのRead-During-Write動作は、ターゲットのデバイスファミリー、メモリーモード、ブロックタイプによって異なります。Read-during-write動作とは、同じメモリーアドレスに対して同じクロックサイクルで読み出しと書き込みを行うことです。例えば、書き込みを行うアドレスに対して同じクロックサイクルで読み出しを行います。

Read-during-write動作を使用する場合は、HDLコードでメモリーをどのように指定しているかを確認する必要があります。読み出しを記述しているHDLコードでは、メモリー位置に格納されている古いデータ、またはメモリー位置に書き込まれている新しいデータのいずれかが返されます。

HDLコードで記述しているメモリー動作をデバイス・アーキテクチャーで実装できない場合、メモリーブロックが専用のRAMブロックにマッピングされなかったり、メモリーブロックが専用のRAMブロック以外に追加ロジックを使用して実装されることがあります。Arria GXデバイス、CycloneおよびStratixシリーズのデバイスでRead-During-Write動作を実装する際は、シングルポートRAMを使用して、この余分なロジックの実装を回避します。

多くの合成ツールでは、Read-During-Write動作がデザインにおいて重要でないことを指定することができます。例えば、同じアドレスに対して同じクロックサイクルで読み書きを行わない場合などに使用します。