denike 发表于 2011-1-13 17:38:21

在QII软件中如何设置才能调用RAM模块资源而不是LE资源??

例如:reg mem;
这样定义一个RAM时,怎样设置QII软件使编译器调用blockRAM模块而不使用registers资源构建RAM呢?

cfqxdgr 发表于 2011-1-13 18:06:17

用megawizard 创建。一个blockRAM并不是可以无限拆分的,不管你怎么搭配,至少在Cyclone系列里好像只能拆成两个,其他就浪费了

denike 发表于 2011-1-14 09:42:29

这个我会。我说的是在程序里面直接这样reg mem;定义,综合时候怎样才能使用blockRAM模块而不使用registers资源构建RAM。

p.nicholas 发表于 2011-1-14 12:48:17

打开auto ram replacement 的on选项;

Assignments -> Settings -> Analysis & Synthesis Setting -> More Settings(不同软件版本可能位置略有不同,自己找找吧)

denike 发表于 2011-1-17 10:45:48

回复【3楼】p.nicholas
打开auto ram replacement 的on选项;
assignments -> settings -> analysis & synthesis setting -> more settings(不同软件版本可能位置略有不同,自己找找吧)
-----------------------------------------------------------------------

LS这个设置默认已经打开了,但是编译是还是占用了registers资源而不是RAM资源。
继续求解!谢谢

qwernet 发表于 2011-1-17 11:28:45

这样定义是不行的,综合出来一定是用触发器。

必须要用RAM的IP,并且自行管理地址、RD、WR等信号。

denike 发表于 2011-1-17 11:39:53

不是吧? 那这样定义reg mem;岂不是失去使用的意义???
quartus有没有像Synplicity综合工具那样定义reg mem /* 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 mem /* synthesis syn_ramstyle="registers" */;
又如在上面举例代码中,定义 mem使用 Block RAM 资源:
module ram_WR_EN(A,CLK,D,WR,EN,RST,Q);
input D;
input WR,EN;
input A;
input CLK,RST;
output Q;
reg mem /* synthesis syn_ramstyle="block_ram" */;
reg Q;

denike 发表于 2011-1-18 09:33:06

顶一顶

dr2001 发表于 2011-1-18 09:41:00

我没用过A家的,只用过X家的器件,类比的话,应有以下可能:

1、使用IPCore生成工具,直接生成BlockRAM的IP Core。
2、查手册,直接实例化一个底层元件。
3、查手册,综合器的,一般会有综合器支持的代码模板。找到BlockRAM的模板,照搬即可。
4、代码加入综合器特殊注释。

12不依赖于综合器,有器件依赖,确保你用的是想用的。
3 依赖于Block RAM的行为以及综合器,一般不会有问题。
4 依赖于综合器本身。

如果你想要综合器直接推断出来一个BlockRAM,那么你描述的RAM行为,必须符合手册中BlockRAM的行为。

denike 发表于 2011-1-18 15:06:14

谢谢dr2001的回答

xiaohe669 发表于 2016-11-28 11:23:34

denike 发表于 2011-1-18 15:06
谢谢dr2001的回答

有没有找到解决方法?给个示例呗,同求!!
页: [1]
查看完整版本: 在QII软件中如何设置才能调用RAM模块资源而不是LE资源??