|
楼主 |
发表于 2011-1-17 11:39:53
|
显示全部楼层
不是吧? 那这样定义reg [7:0] mem[255:0];岂不是失去使用的意义???
quartus有没有像Synplicity综合工具那样定义reg [7:0] mem[15:0] /* synthesis syn_ramstyle="block_ram" */;
后面加约束就可以直接使综合的时候使用内部RAM资源??
见如下例子:
使用Synplicity综合工具:
例 10 在 Verilog 代码中附加 syn_ramstyle 综合约束属性,指定综合存贮单元的类型
在 Verilog 代码中指定 syn_ramstyle 的语法格式为:
object /* synthesis syn_ramstyle = "string" */ ;
其中“object”为 reg 类型的存储器信号;用黑体表示的“synthesis syn_ramstyle”中注释符
号后面“synthesis”是 Synplicity综合工具的 Verilog约束属性通用关键字;“syn_ramstyle”
是综合 RAM 类型的约束属性关键字;“string”根据所选器件类型,可以选择 registers、
block_ram、no_rw_check、select_ram 中的一种属性值。在 Verilog 代码中一般直接在 mem
型定义时附加该综合约束属性,如下面示例,将存储器“mem”定义为“registers”,即使
用 FF+LUT 实现“men”。代码如下:
reg [7:0] mem[31:0] /* synthesis syn_ramstyle="registers" */;
又如在上面举例代码中,定义 mem使用 Block RAM 资源:
module ram_WR_EN(A,CLK,D,WR,EN,RST,Q);
input [7:0] D;
input WR,EN;
input [3:0] A;
input CLK,RST;
output [7:0] Q;
reg [7:0] mem[15:0] /* synthesis syn_ramstyle="block_ram" */;
reg [7:0] Q; |
|