首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用ISE的Core generator 生成的SRAM比自己生成的SRAM优化吗?

用ISE的Core generator 生成的SRAM比自己生成的SRAM优化吗?

问题1)用ISE的Core generator 生成的SRAM一般情况下比自己用VHDL或者原理图生成的SRAM优化吗?

优化指:

1。所用到的SelectBlockRAM 的数目 少;

2。访问速度快。

问题2)用多个SelectBlockRAM组成(或者说cascade成)的大的RAM的访问速度 由哪些方面决定?用的SelectBlockRAM越多越慢吗?

谢谢~

[此贴子已经被作者于2007-4-3 20:43:46编辑过]

谢谢斑竹,

1。如果对“速度快”的要求高,应该首选coregen还是自己做呢?依照斑竹的经验看呢?

2。在使用Corgen的时候吧,有个primitive selection 选项,可以选择是optimize for area 或者是自己定制深度、宽度的 blockRAM。这两者有什么区别吗?对于满足快速的要求,哪个更好点?

[此贴子已经被作者于2007-4-4 12:34:44编辑过]

谢谢斑竹。

1。明白了,谢谢。

2,不知道 如果我选择使用 1 X 16K 和 2 X 8K两个不同的选项,结果会有什么区别呢?能举个例子说明“怎么方便怎么来”吗?存储器的速度主要是有什么决定的呢?

3。举个例子再问一下,如果我有两组数据要保存到RAM里面,假设这两组数据的宽度,深度都一样,就是内容不一样。 并且,访问也“同步”,也就是每次都是同时访问这两组数据,并且索引也一致。   那么, 这个时候,

是不是有两种存储方式可以选择:

1)两组数据存在一个RAM里面,然后用宽度的[0:N-1]位来表示数据1,[N:2N-1]位来表示数据2,这样一组地址线访问出来一组数据之后,再把数据走线从中间分开,分别处理;

2)两组数据存在两个RAM里面,这样,就需要扇出两组地址线分别对两个RAM进行访问,但是访问出来的数据可以不做分开处理,直接使用。

不知道解释清楚没有,斑竹看看,这两种方法哪个更节省资源,速度更快点?

4。还有一个问题,在Coregen生成RAM的时候,最后一页,有几个参数,Address width, Block used and Read pipeline latency。  最后一个Read pipeline latency 中的数值指的是什么,单位是纳秒吗?

万分感谢!

[此贴子已经被作者于2007-4-5 10:56:04编辑过]

[em11]
问题太多了吗?沉了。。

斑竹,万分感谢!

1)如果在保证速度的前提下,尽量节约内存的使用量是目的,那么使用了第二种,那就多用了1个block RAM,其实每组数据都不是很大,可以做在一个block RAM里,第二种是不是有点浪费了?对于FPGA,第一种方案比第二种方案慢吗?

2)Xilinx里面,不是很大的存储器还可以用什么来实现?速度也和block RAM 一样吗?

3)用coregenerator生成RAM的时候统计的所用到的selectedblock RAM的个数和最终布线之后用到的blockRAM的数目一致吗?会有多大的出入?

[此贴子已经被作者于2007-4-9 10:09:34编辑过]

谢谢~~

1。没什么浪费的吧,你放到一个里面和放到两个里面对FPGA都是一样的。

为什么这么说呢?如果放到一个里面,就能节省下一个去存储别的数据了。

我感觉blockRAM只要是被用了,哪怕只用了1bit,也要占用整个block了,不是吗?

[em11]
返回列表