打印

ddr2 ram读写地址的困惑,求助。。。。。

[复制链接]
1656|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
asdf012|  楼主 | 2013-9-29 21:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 asdf012 于 2013-9-29 21:21 编辑

求助:ddr2 ram,256M,64位位宽,突发长度为4时,读写地址如何提供。
1. 提供给控制器的数据是上升沿和下降沿的拼接,一个周期提供两个数据到app_wdf_data,位宽为128位。那么写的地址该如何产生给app_af_addr?
2.  ddr2的ug086文档中ddr2的突发长度为4时,时序图为什么是下面这样。
app_wdf_data 赋值从D0到 D15,app_af_wren,为1和0交替出现,地址给A0~A4。是不是D0~D3为一个突发读写?D0~D3一个cmd命令即可?D3D2时wren=0 cmd未标值,作何解。
突发长度为8时,是不是第一个周期给cmd,wren=1即可?
如果app_wdf_afull, app_af_afull 为0,下一次突发写是不是  能立即进行?比如假设D0~D3为一个突发,example design的ug086说明中说,burst为4时两个写命令。
3. 突发读写是不是给起始地址即可,地址为接下来的连续地址?能不能读写不连续的地址?
4. 读数据时序图连续给了A0~A3四个地址,rd_data_valid 后,D0~D16,是不是就对应4个突发读?
5. mask_data是数据屏蔽的吧,不用时怎么处理,看到有的代码中赋值为0,是不是这样就可以还是不用给输入。
ddr2看了半个月以上了,还是不太清楚,求助啊。

   

相关帖子

沙发
glace12123| | 2013-9-29 23:41 | 只看该作者
你要看资料啊,SDRAM一个地址装多少位数,文档上有的,而且有例子,你能算清楚地址的。突发传输,就是给一个基地址B,给N个数据,再给命令,接下来一次就要向SDRAM里面写数据,地址从B开始到B+N-1结束,突发读写是自动读写连续地址,你改变不了,除非你人为读写不连续的地址。  如果DDR2核一次最大突发传输为N,那么一次cmd命令,只能一次突发传输N个数,下一次传输就要重新发命令。(我没注意有没有连续传输的模式,你看看文档)
数据屏蔽位就是屏蔽掉数据线上某一位数,你不用都给它置成“不屏蔽”,好像是0吧,不管它。
还有,我曾经用也是SP6,但用的是ise13.2,很多信号的命名和你的这个不一样啊。。。。反正,一切都在文档中,你自己慢慢琢磨吧

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
asdf012 + 1 1
板凳
jasondwd| | 2013-9-30 17:37 | 只看该作者
如果按图中的时序你的IP Core用户端接口位宽应该是芯片位宽的2倍,根据芯片位宽将IP Core的位宽改过来就OK了

使用特权

评论回复
地板
asdf012|  楼主 | 2013-10-14 10:49 | 只看该作者
glace12123 发表于 2013-9-29 23:41
你要看资料啊,SDRAM一个地址装多少位数,文档上有的,而且有例子,你能算清楚地址的。突发传输,就是给一 ...

多谢你回复得这么详细。
ddr2的几十页英文文档看了几遍,有的还是没说清楚。根据文档和时序图相互推测,得出上面那些可能的答案,加上你这一说,现在基本清楚了。

使用特权

评论回复
5
asdf012|  楼主 | 2013-10-14 10:56 | 只看该作者
glace12123 发表于 2013-9-29 23:41
你要看资料啊,SDRAM一个地址装多少位数,文档上有的,而且有例子,你能算清楚地址的。突发传输,就是给一 ...

mask_data这个现在还不太清楚。如果数据是64位,mask_data是8位,这个是只能屏蔽字节,如果突发为8,我估计如果只写第一个数据,后面7个不写,是不是mask_data = 56就可以了?
我做的是一个故障诊断的聚类算法,ddr2是工程中的一小部分,之前没接触过,想先写代码建立框架,最后再验证细节性的东西。

使用特权

评论回复
6
asdf012|  楼主 | 2013-10-14 11:01 | 只看该作者
jasondwd 发表于 2013-9-30 17:37
如果按图中的时序你的IP Core用户端接口位宽应该是芯片位宽的2倍,根据芯片位宽将IP Core的位宽改过来就OK ...

谢谢!app_wdf_fifo的宽度是的,128位,通过对64位位数据的位拼接实现的。

想问下突发写长度为8,如果只修改一个数据,给出这个数据的地址,通过mask_data = 56是不是后面7个数据的写入就屏蔽掉了。mask_data 具体如何赋值?只知道文档上说位宽为8,屏蔽的是字节。

使用特权

评论回复
7
41402169| | 2013-10-15 19:21 | 只看该作者
burst为4,那么每次需要写256bit数据,app_wdf_fifo宽度为128,所以需要写两次,地址是0 4 8 C ...
mask_data为0就好了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

15

帖子

0

粉丝