インテルのみ表示可能 — GUID: mwh1409959584007
Ixiasoft
インテルのみ表示可能 — GUID: mwh1409959584007
Ixiasoft
1.4.1.4. RAMの推論と実装の制御
インテル® Quartus® Prime開発ソフトウェアですべてのサイズのRAMブロックをグローバルに推論するには、Advanced Analysis & Synthesis Settings ダイアログボックス (Assignments > Settings > Compiler Settings > Synthesis Settings (Advanced)) の Allow Any RAM Size for Recognition オプションを有効にします。
もしくは、ramstyle RTL属性を使用して、推論RAMの実装方法 (メモリーブロックのタイプや専用メモリーブロックの代わりに通常のロジックを使用するなど) を指定します。 インテル® Quartus® Primeの合成では、HDLコードで適切な ramstyle 属性を指定していない限り、推論メモリーをMLABにマッピングしません。ただし、フィッターで一部のメモリーがMLABにマッピングされる場合があります。
(* ramstyle = "mlab" *) my_shift_reg
set_instance_assignment -name RAMSTYLE_ATTRIBUTE LOGIC -to ramこの属性は、推論メモリーの実装を制御します。属性は、RAM、ROM、またはシフトレジスターを推論する変数宣言に適用します。有効な値は、「M9K」、「M10K」、「M20K」、「M144K」、「MLAB」、「no_rw_check」、「logic」です。
RTLでRAMまたはROM推論にメモリーブロックの最大深度を指定することもできます。デザインファイルでRAMまたはROMを表す変数の宣言に max_depth 合成属性を指定します。次に例を示します。
// Limit the depth of the memory blocks implement "ram" to 512 // This forces the Intel® Quartus® Prime software to use two M512 blocks instead of one M4K block to implement this RAM (* max_depth = 512 *) reg [7:0] ram[0:1023];
さらに、no_ram 合成属性を指定して、特定のアレイでのRAMの推論を防ぐことができます。次の例のようになります。
(* no_ram *) logic [11:0] my_array [0:12];