Intel® Quartus® Prime Pro Edition用户指南: 设计建议

ID 683082
日期 9/28/2020
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

1.4.1.4. 控制RAM推断和实现

Intel® Quartus® Prime综合对包含同步存储器模块的Intel FPGA器件提供控制RAM推断和实现的选项。 综合工具通常不推断较小的RAM模块,因为如果在普通逻辑中使用寄存器,那么实现较小的RAM模块会更有效。

要指导 Intel® Quartus® Prime软件全局推断RAM模块(所有尺寸),需要在Advanced Analysis & Synthesis Settings对话框中使能Allow Any RAM Size for Recognition选项(Assignments > Settings > Compiler Settings > Synthesis Settings (Advanced))

或者,使用ramstyle RTL属性来指定如何实现一个推断的RAM,包括存储器模块的类型或使用普通逻辑而不是专用存储器模块。除非HDL代码指定了相应的ramstyle属性,否则 Intel® Quartus® Prime综合不会将推断的存储器映射到MLAB,尽管Fitter可能会将某些存储器映射到MLAB。

在RTL或者.qsf文件中设置 ramstyle属性。
(* ramstyle = "mlab" *) my_shift_reg
set_instance_assignment -name RAMSTYLE_ATTRIBUTE LOGIC -to ram

您还可以对RTL中的RAM或ROM推断指定存储器模块的最大深度。将max_depth综合属性指定为一个变量的声明,此变量的声明表示设计文件中的RAM或ROM。例如:

// 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];