[求助] 关于DDR3的读写操作,看看我的流程对吗?

[求助] 关于DDR3的读写操作,看看我的流程对吗?

最近简单调了一下KC705开发板上面的DDR3,型号是MT8JTF12864HZ-1G6;有时候加载程序后,发现读出数据不是写进去的,在这将我的操作思路说下,有弄过的说说哪块有问题:1.ip核的sys_clk_i给400M时钟,clk_ref_i给200M时钟;app_wdf_mask全为0;app_sr_req,app_ref_req,app_zq_req接pull_down;
2.等初始化完成后(即init_calib_complete为高电平)1.5s,对ddr3写操作,在app_wdf_rdy为高,且app_rdy为低电平时,使能app_en,且app_cmd=0;
3.判断:
a,若(app_rdy == 1) && (app_wdf_rdy == 1) ,则app_wdf_wren<=1, app_wdf_end  <= 1 ,app_wdf_data=写数据,app_addr 
<=初始地址,步骤4。

b,若(app_rdy == 0) && (app_wdf_rdy == 1) ,则app_wdf_wren<=0, app_wdf_end  <= 0 ;等待app_rdy == 1。
c,若 (app_wdf_rdy == 0) ,返回2。
4.判断:
a,若(app_wdf_rdy == 1),则app_wdf_wren<=0, app_wdf_end  <= 0 ,app_addr 
<= app_addr + 8 ;步骤3;
b,( app_addr == ADDRESS ),ADDRESS为设定的最大地址值;步骤5;
c,若 (app_wdf_rdy == 0) ,返回2。
5.空闲40周期,步骤6;
6.读操作,判断:
a,若(app_addr == ADDRESS),读结束,步骤7;
b,若( app_rdy == 1),app_en   <= 1 ;app_cmd
<= 3‘d1,app_addr
<= app_addr + 4 ;步骤6;
c,否则,步骤6;
7.空闲1024周期,步骤3。

但是有时候读的数据不是写进去的数据,如图:[attach]572540[/attach]


正确写-20140225.png (188.77 KB)


读正确.png (209.29 KB)


读错误.png (187.12 KB)

收藏分享

 
   
   

neufeifatonju

小富人

UID
965677 
帖子
188 
精华
积分
8115 
资产
8115 信元 
发贴收入
1010 信元 
推广收入
0 信元 
附件收入
0 信元 
下载支出
850 信元 
阅读权限
50 
在线时间
515 小时 
注册时间
2012-6-26 
最后登录
2017-10-20 

2#

 发表于 2014-2-28 17:24 | 只看该作者

步骤4.b中,app_en<=0,app_wdf_wren<=0, app_wdf_end  <= 0 ,app_addr <= 0,步骤5
 
 

TOP

   

neufeifatonju

小富人

UID
965677 
帖子
188 
精华
积分
8115 
资产
8115 信元 
发贴收入
1010 信元 
推广收入
0 信元 
附件收入
0 信元 
下载支出
850 信元 
阅读权限
50 
在线时间
515 小时 
注册时间
2012-6-26 
最后登录
2017-10-20 

3#

 发表于 2014-3-3 08:15 | 只看该作者

周一,会有人来解答的吧
 
 

TOP

   

neufeifatonju

小富人

UID
965677 
帖子
188 
精华
积分
8115 
资产
8115 信元 
发贴收入
1010 信元 
推广收入
0 信元 
附件收入
0 信元 
下载支出
850 信元 
阅读权限
50 
在线时间
515 小时 
注册时间
2012-6-26 
最后登录
2017-10-20 

4#

 发表于 2014-3-6 08:25 | 只看该作者

结贴了,调差不多了。虽然没人回答,但是希望能对别人有点借鉴意义。我只能说调试别人是帮不了你的,逛逛论坛,启发一下倒是真的,一百个人调试,一百个不同的问题,让人怎么帮。
 
 

TOP

   

漫步云端lzl

金领一族

UID
818234 
帖子
12 
精华
积分
1217 
资产
1217 信元 
发贴收入
65 信元 
推广收入
0 信元 
附件收入
0 信元 
下载支出
282 信元 
阅读权限
30 
在线时间
26 小时 
注册时间
2011-4-15 
最后登录
2014-9-11 

5#

 发表于 2014-3-7 15:44 | 只看该作者

您好,我来晚了,呵呵!我最近也在kc705上做ddr3的实验,但苦于没人交流,你的ddr3调试成功了吗?
 
 

TOP

   

漫步云端lzl

金领一族

UID
818234 
帖子
12 
精华
积分
1217 
资产
1217 信元 
发贴收入
65 信元 
推广收入
0 信元 
附件收入
0 信元 
下载支出
282 信元 
阅读权限
30 
在线时间
26 小时 
注册时间
2011-4-15 
最后登录
2014-9-11 

6#

 发表于 2014-3-10 14:13 | 只看该作者

回复 4# neufeifatonju 

您好,我来晚了,呵呵!我最近也在kc705上做ddr3的实验,但苦于没人交流,你的ddr3调试成功了吗?

 
 

TOP

   

muye87

蓝领工人

UID
1254604 
帖子
14 
精华
积分
180 
资产
180 信元 
发贴收入
80 信元 
推广收入
0 信元 
附件收入
0 信元 
下载支出
120 信元 
阅读权限
10 
在线时间
11 小时 
注册时间
2014-5-25 
最后登录
2016-6-24 

7#

 发表于 2014-6-30 19:38 | 只看该作者

回复 4# neufeifatonju 

你好,我最近也在弄ddr3,初始化的init_calib_complete信号仿真能拉高,下到板子上就一直为低,请问可能是啥问题。或者给个联系方式指导下

 
 

TOP

   

yangzai1236

金领一族

UID
1080411 
帖子
206 
精华
积分
674 
资产
674 信元 
发贴收入
1035 信元 
推广收入
0 信元 
附件收入
0 信元 
下载支出
421 信元 
阅读权限
30 
在线时间
208 小时 
注册时间
2013-3-21 
最后登录
2017-10-8 

8#

 发表于 2014-6-30 23:08 | 只看该作者

表示不太懂
 
 

TOP

   

yybbond

见习生

UID
1251878 
帖子
19 
精华
积分
72 
资产
72 信元 
发贴收入
95 信元 
推广收入
0 信元 
附件收入
0 信元 
下载支出
123 信元 
阅读权限
10 
在线时间
16 小时 
注册时间
2014-5-20 
最后登录
2017-3-31 

9#

 发表于 2014-7-9 22:40 | 只看该作者

学习了
 
 

TOP

   

legend198908

蓝领工人

UID
1247684 
帖子
精华
积分
189 
资产
189 信元 
发贴收入
50 信元 
推广收入
0 信元 
附件收入
0 信元 
下载支出
61 信元 
阅读权限
10 
在线时间
22 小时 
注册时间
2014-5-9 
最后登录
2017-11-9 

10#

 发表于 2014-7-17 15:28 | 只看该作者

spartan6的mig核的信号跟v7的不一样,还是高端器件的好调

转载:http://bbs.eetop.cn/viewthread.php?tid=438066

时间: 2024-10-12 01:11:12

[求助] 关于DDR3的读写操作,看看我的流程对吗?的相关文章

76.ZYNQ-用PS控制DDR3内存读写

本编文章的目的主要用简明的方法对DDR3进行读写,当然这种方式每次读写都需要CPU干预,效率是比较低的,但是这是学习的过程吧. 本系列文章尽可能的让每一个实验都相对独立,过程尽可能保证完整性,保证实验的可重现性. 但是用到的模块或者IP的具体作用和用法不保证都重复详细的介绍. 本文所使用的开发板是兼容zedboardPC 开发环境版本:Vivado 2015.4 Xilinx SDK 2015.4 生成硬件系统 新建vivado工程 选择Zedboard 新建Block Design 添加ZYN

最全java的读写操作(转载)

Java的I/O系统中的输入输出流为我们进行开发提供了很多便利,利用其强大的封装性,通过各种组合能够实现多种多样的功能.但是Java提供了很多输入输出流类,在概念和使用上有很多相似之处,所以给很多开发者带来了困扰,何时应该用何种输入输出流类成为一个问题. 以下即是Java输入输出流类的介绍,并附有实例说明,对各个类的用法都有简要分析. 输入输出流类介绍       1.stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO中,所有的stream(包括In

C#拾遗之读写操作

最近一直在学C#语言,在写一些程序的时候难免遇到C#输入输出的问题,除了葛老师讲的一些东西,我也在看网上的一些关于C#程序设计的视频讲解,在看到C#流程控制结构的这一章节,看到了一个很好的关于C#读写操作的一个例子.这个例子就是典型的for迭代语句编写"小九九表". 第一种输出格式的代码: <span style="font-size:18px;"> for (int i = 1; i <=9; i++) { for (int j = 1; j &

2017java文件操作(读写操作)

java的读写操作是学java开发的必经之路,下面就来总结下java的读写操作. 从上图可以开出,java的读写操作(输入输出)可以用"流"这个概念来表示,总体而言,java的读写操作又分为两种:字符流和字节流. 什么是流? 流是一个抽象的概念.当Java程序需要从数据源读取数据时,会开启一个到数据源的流.数据源可以是文件,内存或者网络等.同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件.内存或者网络等.流的创建是为了更方便地处理数据的输入输出. 那么字节流

Python写自动化之注册表的读写操作

Windows上的自动化测试经常会接触到对于注册表的读写操作问题,比如,获取一个程序的安装目录,一般情况下,我们可以去注册表的App Paths下去查找,这时就涉及到了注册表的读取操作,我们使用Python的_winreg模块来实现,代码如下: def reg_query(path, key): try: path = path.replace("/", "\\") rootName = path[:path.find("\\")] subPat

NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))

在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article/details/88922030 这篇博客,要不然你听不懂我下面在说什么. 版本NX11+VS2013+office2016 首先我们通过NX开发向导创建了一个模板. 先把项目属性改成多字节.下面我们把前面做的MFC项目里的几个EXCAL头文件和stdafx一块拷过来,加到NX的项目里. 在NX的

NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))

NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的方法,无论C++还是C#还是VB方式思路都是一样的.先介绍用MFC去做,然后在写一篇博客介绍怎么在NX的二次开发的向导模板里去做.NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article

java文件操作(读写操作)

java的读写操作是学java开发的必经之路,下面就来总结下java的读写操作. 从上图可以开出,java的读写操作(输入输出)可以用"流"这个概念来表示,总体而言,java的读写操作又分为两种:字符流和字节流. 什么是流? 流是一个抽象的概念.当Java程序需要从数据源读取数据时,会开启一个到数据源的流.数据源可以是文件,内存或者网络等.同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件.内存或者网络等.流的创建是为了更方便地处理数据的输入输出. 那么字节流

文件的新建、定位、截短和读写操作

1.创建一个新文件,创建新文件除了可以使用open函数之外还可以用creat()函数. 创建文件函数 creat(const char * pathname, mode_t mode) 头文件 :#include <fcntl.h> 参数说明:第一个参数pathname同open函数的第一个参数具有同样的意义,区别在于这是需要创建的文件的地址而不是需要打开文件的地址,第二个参数mode是新建文件的访问权限. 返回值:成功返回1,失败返回-1. 函数说明:creat()函数能够创建一个新的文件,