打印
[FPGA]

DDR3 MIG读写数据问题

[复制链接]
7343|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dingning123|  楼主 | 2013-12-25 08:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我有两个问题,麻烦大家帮帮忙
问题1:DDR3在进行读写数据的时候,一般是先写完一行再读一行,还是读写都在一行上完成,还是写完整个DDR3然后再读整个DDR3?
问题2:在用modelsim 观察example design 跑出的例子时,init_calib_complete被拉高后,首先是写bank0的第一行。在写bank0的第一行时 app_addr=0000200之前的app_addr与相应app_wdf_data不满足相差两个时钟周期以内的要求,app_addr=0000200 之后满足,这是为什么?难道是app_addr=0000200之前写进去数据都无效吗?  



相关帖子

沙发
haitaox| | 2013-12-25 10:55 | 只看该作者
你说的一行是什么意思,ddr的一个row?还是一个视频行?

使用特权

评论回复
板凳
dingning123|  楼主 | 2013-12-25 11:13 | 只看该作者
haitaox 发表于 2013-12-25 10:55
你说的一行是什么意思,ddr的一个row?还是一个视频行?

DDR3不是有8个bank,每个bank有14行,10列吗?我所说的行是14行中的一行。我不知道row和视频行是什么意思

使用特权

评论回复
地板
dingning123|  楼主 | 2013-12-25 13:59 | 只看该作者
haitaox 发表于 2013-12-25 10:55
你说的一行是什么意思,ddr的一个row?还是一个视频行?

帮帮我吧,每天就我自己在实验室研究这个,我是实在没办法了!

使用特权

评论回复
5
haitaox| | 2013-12-25 14:34 | 只看该作者
你看看user guide啊,看看推荐的读写时序是怎样的啊

使用特权

评论回复
6
dingning123|  楼主 | 2013-12-25 15:50 | 只看该作者
haitaox 发表于 2013-12-25 14:34
你看看user guide啊,看看推荐的读写时序是怎样的啊

用户指南上说 地址和数据的最大延迟为两个周期,我看例子上在写一行数据时app_addr=0000200之前根本不满足这样的时序关系,app_addr=0000200到00003ff之间地址和数据的延迟为一个周期满足时序关系,这是什么原因,与用户手册上的根本不同。
我快疯掉了!

使用特权

评论回复
7
dingning123|  楼主 | 2013-12-25 15:50 | 只看该作者
haitaox 发表于 2013-12-25 14:34
你看看user guide啊,看看推荐的读写时序是怎样的啊

用户指南上说 地址和数据的最大延迟为两个周期,我看例子上在写一行数据时app_addr=0000200之前根本不满足这样的时序关系,app_addr=0000200到00003ff之间地址和数据的延迟为一个周期满足时序关系,这是什么原因,与用户手册上的根本不同。
我快疯掉了!

使用特权

评论回复
8
zhuyi1234567899| | 2013-12-25 18:43 | 只看该作者
dingning123 发表于 2013-12-25 11:13
DDR3不是有8个bank,每个bank有14行,10列吗?我所说的行是14行中的一行。我不知道row和视频行是什么意思 ...

应该是14bit的行地址和10bit的列地址,而非你理解的

使用特权

评论回复
9
dingning123|  楼主 | 2013-12-25 19:26 | 只看该作者
zhuyi1234567899 发表于 2013-12-25 18:43
应该是14bit的行地址和10bit的列地址,而非你理解的

你说的对,应该是这个意思,我还想问一下,我在给app_addr=0000000到app_addr=0003ff之间写数据的时候,只有app_addr=0000200到app_addr=0003ff之间满足地址和数据的延迟为一个周期满足时序关系,app_addr=0000000到app_addr=0001ff之间地址和数据的时序关系特别乱,这是什么原因

使用特权

评论回复
10
dingning123|  楼主 | 2013-12-25 19:28 | 只看该作者
谁能告诉我init_calib_complete被拉高之后,应该先写多少个数据,再对其进行读
init_calib_complete被拉高之后,要多久才能够发送写数据命令

使用特权

评论回复
11
haitaox| | 2013-12-25 22:34 | 只看该作者
dingning123 发表于 2013-12-25 15:50
用户指南上说 地址和数据的最大延迟为两个周期,我看例子上在写一行数据时app_addr=0000200之前根本不满 ...

你说的地址和数据的最大延迟两个周期是什么意思,我怎么没见过。ddr3 mig 对于用户来说就是fifo,你把wr_fifo写了一些数,然后就写 cmd_fifo就好了

使用特权

评论回复
12
yybbond| | 2014-7-13 10:49 | 只看该作者
正在设计中,不了解

使用特权

评论回复
13
zhulin| | 2014-7-16 15:47 | 只看该作者
好好看看,文档上读写操作的波形图,INIT_CALIB_COMPLETE不由你控制,是DDR CONTOLLER自己完成的

使用特权

评论回复
14
gs862906973| | 2014-11-20 09:16 | 只看该作者
学习学习

使用特权

评论回复
15
huihui8023| | 2017-5-2 15:34 | 只看该作者
dingning123 发表于 2013-12-25 19:28
谁能告诉我init_calib_complete被拉高之后,应该先写多少个数据,再对其进行读
init_calib_complete被拉高 ...

init_calib_complete被拉高后,就可以写数据了,写多少数据由地址控制,可以把地址写满,读的代码和写的代码时同时进行的,只要ddr3中有数据,控制读的那几个信号都满足,就开始读了,读数也是根据地址读的,就相当于有几个坑(地址),每个坑里按顺序分别种着白菜,萝卜,黄瓜,那么你在拿的时候按顺序就应该也是白菜,萝卜,黄瓜的往出拿,要是你想拿第二个坑里的,那就是萝卜,就是这个道理。欢迎交流!

使用特权

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

本版积分规则

14

主题

48

帖子

1

粉丝