微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > DDR2读数据问题的

DDR2读数据问题的

时间:10-02 整理:3721RD 点击:
在DDR2测试时,在ChipScope中观察到DDR2读数据端的读数据使能rd_data_valid总会出现一些毛刺,导致输出数据出现异常,DDR2是由MIG生成,在代码中,rd_data_valid是组合逻辑产生的,但后来将其修改为时序电路,rd_data_valid任然存在一些毛刺,rd_data_valid出现非正常状态主要是因为MIG3.6生成的状态控制单元(Ctrl)中有几个信号出现非正常状况,导致程序中状态机出现异常,而有问题的信号诸如:自动更新信号auto_ref_r,conflict_detect等,还有个问题是实际程序中的状态转移与数据手册上的状态转移是存在差别的,具体原因,请高手们探讨一下?

查一下以下两个问题
1. 模块的时序过了没有
2. Chipscope 使用的时钟和DDR2的工作时钟是不是同一个时钟?


模块的时序涉及到ILA,ICON的有部分没有过,由于是自己添加的cdc文件,没有使用原来生成的核,自己新建的cdc文件并且添加
观测信号,但是涉及到ILA,icon总是有部分建立时间不满足,不知道该如何处理,另外chipscope采样时钟采用的是mig的时钟clk0.

先降频使用看看,看看功能能不能正确完成,再考虑input, output delay约束之类的,另外输出到PIN的信号,最后一级寄存器约束在IO列上。


谢谢!请问你说的降频是什么意思?我使用的mig核在生成的时候有个频率范围在150-266MHZ,但是ddr2是MT4HTF3264HY-667,这个内存的在CL=3,4,5的时候对应的数据率分别是667,553和400,请问这个地方我该如何选择mig核的频率?还请指导,谢谢!


这个533,667是内存条能支持的最大频率,并不表示一定非得要运行这么快速率,是可以降下来的。你在MIG CORE里设置时,可以把频率设小点,比如100M,同时把进来的时钟信号也降下频,这个时钟来源可以是直接从板外接的,也可以是DCM这边分频出来的,你看下里面的设计。

DDR本身是使用单独的时钟频率的,然后通过个FIFO与外面的接口相连接,比如AHB接口之类的,也就是与AHB直接相连接的读写时钟这个可以直接用AHB的时钟,而DDR CORE本身用另外个时钟,这两者是分开的,修改进来很方便。

我以前跑250M的DDR,总是出现某些位错误,直接改成100M就能读写正常了,先用来验证来功能逻辑,以后再来看时序表示和DDR读写吞率之类的指标。


谢谢!我的mig核频率范围是150-266M,这里降频的话是不是只能选择150M,不能再低了?此时对应的DDR2的CL是不是应该设置为3?实际的时钟输入频率是设置为150还是可以更低?做时序约束的时候是不是得以实际输入时钟为准?还请指导!再次谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top