本来不着重介绍DDR的工作原理,以及FPGA的实现方法,主要介绍在电路设计上的一些细节及调试方法。
在DDR SDRAM电路设计时,必须仔细阅读FPGA的芯片手册,根据自身内存的容量,位宽选择合适的Bank。
仔细的分配管脚,分配完成后,必须在FPGA相应的工具软件进行全过程编译(需要综合,布局,布线,暂不考虑时序分析过程中出现的warnings),如果出现错误中断(仔细阅读errors信息),首先排查是否软件使用不当的原因。根据错误信息重新分配管脚,重新编译直至没有错误发生,直至这一步说明管脚已经正确分配。
本人习惯使用工具提供的IPcores,生成过程中,如果有现成的型号可供选择就选,没有的就使用默认参数,一般都可工作正常。
电路设计中,主要是电源的设计很关键,并且重要体现在元件布局上。当有两片DDR PHY时,电源输入不提倡使用链接方式,即从一个PHY输入,然后从该PHY引出直接接入下一个PHY,这样容易造成下一个PHY引入前面PHY所产生的噪声,并且如加入隔离电感的话,致使下一个PHY的电压降过低,影响其正常工作。合适方法是:在电源走线的开头分成两路,类似并联的方法,两路走线长度相似,加入相同的退耦电路。DDR各信号线的上拉电压(Vtt)也采用供电电压的布局和走线,还有就是Vtt采用独立的电压变换器,而不是从供电电源电阻分压得来。
调式过程中,首先确定管脚的电平标准以及分配是否正确,IPcore提供了完善的时序约束,一般不需要自己动手,至多对DDR的逻辑区域需要大致设定一下;然后,检查电源的输出功率是否够用,因为DDR是用电大户;再就是用示波器测量各个电压的幅值以及噪声的大小。根据上述结果,对电路设计进行修改。
如果还有其他问题的话,那wind330也没有遇到过,希望有心人能提出来一起解决。
ilove314_323192455 2009-7-10 23:11