原创 FPGA的DDR SDRAM设计注意事项

2009-6-6 12:17 6289 5 6 分类: FPGA/CPLD


 


本来不着重介绍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也没有遇到过,希望有心人能提出来一起解决。


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

ilove314_323192455 2009-7-10 23:11

现在手上还用不上DDR,只是SDR得研究多些,代码时序分析都做得比较成熟了,呵呵,以后用得上DDR还多请教
相关推荐阅读
用户1122702 2015-12-20 21:29
在Emacs中应用Ctags
适宜人群 具备Emacs使用经验的程序员 什么是Tag? Tag,即标记,记录了程序重要信息(如函数、变量、宏定义等)的位置和相应的文件,方便程序浏览器进行跳转。 ...
用户1122702 2015-12-13 22:23
可综合的SystemVerilog:命名空间
关键名词解释: 编译单元(compilation unit):SystemVerilog 源代码的集合 编译单元域(compilation-unit scope):即编...
用户1122702 2015-12-13 22:15
可综合的SystemVerilog:参数化函数/任务
在Verilog中,参数化模块被广泛应用。参数可重新定义保证模块的可配置性及可复用性。但是,函数及任务并无法像模块一样被参数化,减弱了Verilog的描述化能力。 SystemVer...
用户1122702 2010-10-28 11:34
基于SOPC下RapidIO调试方法
RapidIO的一个难点在于地址转换方法,即将远端的Memory映射到当前Avalon-MM总线,所以地址需要一个转换过程——Local Avalon-MM<->RapidIO Addr&...
用户1122702 2010-08-24 14:22
西行重庆
八月初时离开生活并工作四年的深圳,来到求学四年的重庆。已经过去三周时间,对自己的将来也随之变的不可琢磨。重庆的生活水平并不如想象的低,除了房价不像沿海城市高企,其他诸如公共交通,生活日常用品基本都是一...
用户1122702 2010-07-07 18:05
Tcl用后感
                    Tcl用后感 (by Wind330)    Tcl - Tool Command Language近期做了一个Tcl脚本用于Modelsim仿真,完成如下功能...
EE直播间
更多
我要评论
1
5
关闭 站长推荐上一条 /3 下一条