Embedded Memory Generator のメイン タブは、コアのインターフェイス オプションとブロック RAM ポート オプションを定義するために使用されます。
図 1. Embedded Memory Generator の [Basic Options] タブ
- Operating Mode
- IP インテグレーターで使用する Embedded Memory Generator コアのモード。IP インテグレーターを使用するときに利用可能なモードは 2 つあり、デフォルトはメモリ コントローラーです。
- Memory Controller Mode
- このモードは、AXI ブロック RAM コントローラー (
axi_bram_ctrl
) またはローカル メモリ バス インターフェイス コントローラー (lmb_bram_if_ctrl
) を使用するときに選択します。すべてのポート パラメーターは、マスターから生成されるため、グレーアウトされています。
- Stand Alone Mode
- このモードは、カスタムのインターフェイス コントローラーを使用する場合に選択します。使用可能なすべてのパラメーターは選択および更新可能です。
- Generate Byte-Wide Address
- 内部生成されたアドレスがバイト単位かワード単位かを示します。デフォルト値はオンです。
- Memory Type
- [Memory Controller] モードを選択した場合、選択できるメモリ タイプはシングル ポートか完全なデュアル ポート RAM のいずれかになります。[Stand Alone] モードを選択した場合、次のメモリ タイプを選択できます。
- シングル ポート RAM
- シンプル デュアル ポート RAM
- 完全なデュアル ポート RAM
- シングル ポート ROM
- デュアル ポート ROM
注記: [Memory Controller] モードの場合、幅および深さのパラメーターは、マスター IP で選択されている幅および [Address Editor] ウィンドウで設定されたアドレス範囲に基づいて、マスター (EMG IP が接続されている AXI BRAM コントローラーまたは LMB コントローラーのいずれか) によって計算され、生成されます。注記: [Memory Controller] モードでは、Embedded Memory Generator は、非対称なポート幅またはデータ幅をサポートしません。 - Clocking Mode
- クロック (
clka
およびclkb
) inputs が同一のクロック バッファーで駆動される場合、[Common Clock] を選択します。それ以外の場合は、[Independent Clock] を選択します。 - Memory Primitive
-
Embedded Memory Generator IP は、次のメモリ構造の生成をサポートしています。
- AUTO
- Vivado 合成による自動選択
- LUTRAM
- 分散メモリ
- BRAM
- ブロック メモリ
- URAM
- UltraRAM メモリ
- ECC Mode
-
Embedded Memory Generator IP は、次の ECC オプションをサポートしています。
- No ECC
- ECC エンコードおよびデコードの両方を、使用されるすべての書き込みポートと読み出しポートで無効にします。
- Encode Only
- ECC エンコードを、使用されるすべての書き込みポートで有効にします。
- Decode Only
- ECC デコードを、使用されるすべての読み出しポートで有効にします。
- Both Encode and Decode
- ECC エンコードおよびデコードの両方を、使用されるすべての書き込みポートと読み出しポートでそれぞれ有効にします。
- Memory Depth
- メモリの深さです。
- Cascade Height
- メモリのカスケード高さです。デフォルト値は 0 で、最大値はブロック RAM では 16、UltraRAM では 64 です。
- Optimize Unused Memory
- デフォルト値は [Optimize] で、メモリ構造内の未使用のメモリまたはビットの最適化を有効にします。メモリ構造内の未使用のメモリまたはビットの最適化を無効にするには、[Do Not Optimize] を選択します。
- Use Embedded Constraint:
- 分散 RAMの
clka
とclkb
のdoutb_reg
間でset_false_path
制約追加を有効にするには、このオプションをオンにします。
- Port A/B Options
- [Port A/B Options] は次のとおりです。
- Write Width
- ポート A/B の書き込み幅を指定します。
- Read Width
- ポート A/B の読み出し幅を有効な値を含むドロップダウン リストから選択します。読み出し幅は自動的に計算されます。
- Write Mode Port A/B
- ポート A/B の書き込みモードを指定します。
- READ_FIRST
- WRITE_FIRST
- NO_CHANGE
- Read Latency Port A/B
- ポート A/B 読み出しデータ パイプライン内のレジスタ段の数を指定します。ポート
douta/doutb
に出力される読み出しデータには、ここで指定した数のclka/clkb
サイクルがそれぞれ使用されます。
- Read Reset Value Port A/B
-
rsta/rstb
入力ポートのアサーションに対応して、ポート A/B 最終出力レジスタ段のリセット値を指定します。
- Port A/B Byte Wide Write
- バイト ライト イネーブル機能を使用するかどうかを指定します。
- Byte Size (Bits)
- バイト サイズは 8 ビット (パリティなし) か 9 ビット (バリティ含む) のいずれかです。メモリのデータ幅は、選択したバイト サイズの倍数になります。