请教一个SDRAM数据读取的问题
检查set-up/hold timing
请问下handsomehhj ,如何检查建立,保持时间喃?谢谢!
对双向数据线sdram_data已经加了offset before in 约束,现象还是一样,请达人指点,谢谢!
顶起来。请问sdram时钟的相位选择?是否选择系统时钟的180°移向作为sdram的时钟?采样从sdram返回的数据时,是使用系统时钟采样,还是使用送给sdram的时钟进行采样喃?
你看一下SDRAM的芯片手册不就清楚了?
根据镁光的手册,用的是时钟上升沿采样,相信其它厂商的芯片也应该是一样的。
要验证你说的情况是不是时钟沿的问题也很简单,只需用上升沿、和下降沿各采一遍,看看数据对不对就可以了。
不过,看现象不像是时钟沿的问题,你用的是什么SDRAM控制器,IP核还是自己编写的?最好检查一下这块有没有问题。
LZ这个问题很难说
你是仿真还是在实际上板的时候的问题?
仿真的问题的话你看看送入的时序和手册上面的是否一致
用了东西连手册都不看怎么行呢?
功能仿真的时候是完全正确的。问题是在上板的时候出现的。SDRAM 控制器是自己编写的,,而且SDRAM时钟用的是60M,也不高,现在还没弄清楚是什么问题,请大家帮忙支支招,谢谢了!
个人理解,写SDRAM控制器有几个方面要注意:一是初始化,上电之后应该按器件手册说的顺序做一遍,比较重要的是Mode Register的设置,不要设错了;二是刷新,初始化完成之后,每64ms内要将所有行刷一遍;三是各条指令的组合、时序关系,比如读之前需要发Active指令,读完之后要发PRECHARGE指令,如果用Auto PRECHARGE的话,注意与下个指令间的延时,等等。
因为控制器是你自己写的,仿真对不对也依赖于你对器件手册的理解,别人不好判断。你可以再仔细看看看看器件手册,或者去下一个开源的SDRAM控制器核,对比一下。
谢谢各位指点。已经调试成功了。错误在于sdram_data这个双向端口的使用上!
的问题的话你看看送入的时序和手册上面
大家分析的太精彩了
我使用SDRAM的时候,采用系统时钟,通过PLL锁了一下,同时延迟一点时间输出。
不知道你的时钟是多大的,一般性情况下灌入SDRAM的时钟即使和系统时钟一样,数据采样时钟和系统时钟一样,也是可以正常操作的。建议可以先所有时钟都采用系统时钟,把频率降一下,如果数据读取操作正常就把频率再提高,如果不行就再降频,如果频率很低的话还是不行,那就是设计上有问题了。
学习,学习!
也在学习中
学习了
这个可能是design有问题,如果是timing问题,不可能是全1
学习~~
