案例分享-DDR不能正常工作之DDR拓扑结构的选择
2017-07-20 10:55
375 查看
DDR的拓扑结构选择也是一个老生常谈的话题了,从最初只能采用T拓扑到支持读写平衡的Fly-by拓扑,设计似乎变得越来越简单了。大家来看这样一种情况,一个驱动拖动两片DDR颗粒,芯片支持读写平衡,您一般会选择什么拓扑结构呢?我想,这个应该和个人的设计习惯有关,或者选择T拓扑,或者选择Fly-by,没有标准答案。但是作者最近遇到的一个项目,一个主控拖动两个DDR颗粒,采用Fly-by结构,信号质量就不稳定,小批量量产总有几块板子DDR不能正常工作,仿真发现DDR信号质量并不是很理想,修改拓扑结构后,DDR运行变得稳定,具体什么情况呢?
该主板上有一块FPGA和一块DSP,FPGA驱动的DDR3没有问题,但是DSP驱动的DDR不稳定,我们仔细进行了查板工作,该主板上DSP与FPGA都是采用Fly-by拓扑结构,DDR颗粒也都支持读写平衡,如下图1所示,从布线上来看,设计并无不妥。
图1 Fly-by 拓扑走线
FPGA和DSP作为驱动时,仿真发现,两者的波形还是存在较大差异的,如下图所示:
图2 DSP与FPGA波形对比
由图2可知,该主板上FPGA的驱动能力明显好于DSP,DSP不仅驱动能力比较弱而且信号的过冲还很严重,信号的裕量非常的小。
怎样去改善信号质量呢?芯片的驱动能力是有限的,没有太大调整空间,但既然选择了这款芯片,也不能轻易的改变,只能从布线上作调整,希望可以提高信号裕量,于是,作者想到了使用T拓扑结构,修改后的拓扑结构如下图3所示:
图3 T拓扑走线
经过仿真分析,将Fly-by拓扑变成T拓扑之后,信号质量明显好了很多,如下图所示,红色波形代表的是采用Fly-by拓扑时信号的波形,绿色波形代表的是采用T拓扑时,仿真得到的波形。相比于采用Fly-by拓扑,T拓扑得到的波形过冲更小。
图4 T拓扑与Fly-by拓扑走线对比
修改拓扑结构,实际打板,再次小批量量产,该主板DSP驱动DDR不稳定的现象没有了。
看来在颗粒数目比较小的情况下,T拓扑还是具有一定的优势的,因为T拓扑是完全对称的,在完全等臂分支的情况下,两个接收端感受到的反射也是一样的,可以相互抵消一部分,从而抑制信号过冲。
总结:
(1) DDR的拓扑结构选择还要考虑芯片的驱动能力,同样的拓扑结构,不同的芯片驱动得到不同的信号质量,所以拓扑结构的设计也不是一劳永逸的,最好做一下仿真验证,评估设计风险。
(2) 颗粒比较少情况(少于4片),建议使用T拓扑;相对于Fly-by,T拓扑会使信号的过冲更小,信号质量更稳定。
该主板上有一块FPGA和一块DSP,FPGA驱动的DDR3没有问题,但是DSP驱动的DDR不稳定,我们仔细进行了查板工作,该主板上DSP与FPGA都是采用Fly-by拓扑结构,DDR颗粒也都支持读写平衡,如下图1所示,从布线上来看,设计并无不妥。
图1 Fly-by 拓扑走线
FPGA和DSP作为驱动时,仿真发现,两者的波形还是存在较大差异的,如下图所示:
图2 DSP与FPGA波形对比
由图2可知,该主板上FPGA的驱动能力明显好于DSP,DSP不仅驱动能力比较弱而且信号的过冲还很严重,信号的裕量非常的小。
怎样去改善信号质量呢?芯片的驱动能力是有限的,没有太大调整空间,但既然选择了这款芯片,也不能轻易的改变,只能从布线上作调整,希望可以提高信号裕量,于是,作者想到了使用T拓扑结构,修改后的拓扑结构如下图3所示:
图3 T拓扑走线
经过仿真分析,将Fly-by拓扑变成T拓扑之后,信号质量明显好了很多,如下图所示,红色波形代表的是采用Fly-by拓扑时信号的波形,绿色波形代表的是采用T拓扑时,仿真得到的波形。相比于采用Fly-by拓扑,T拓扑得到的波形过冲更小。
图4 T拓扑与Fly-by拓扑走线对比
修改拓扑结构,实际打板,再次小批量量产,该主板DSP驱动DDR不稳定的现象没有了。
看来在颗粒数目比较小的情况下,T拓扑还是具有一定的优势的,因为T拓扑是完全对称的,在完全等臂分支的情况下,两个接收端感受到的反射也是一样的,可以相互抵消一部分,从而抑制信号过冲。
总结:
(1) DDR的拓扑结构选择还要考虑芯片的驱动能力,同样的拓扑结构,不同的芯片驱动得到不同的信号质量,所以拓扑结构的设计也不是一劳永逸的,最好做一下仿真验证,评估设计风险。
(2) 颗粒比较少情况(少于4片),建议使用T拓扑;相对于Fly-by,T拓扑会使信号的过冲更小,信号质量更稳定。
相关文章推荐
- 案例分享之DDR拓扑结构的选择
- 1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)
- 卡巴斯基导致SVN不能正常工作
- liferay中 liferay-ui:input-asset-links不能正常选择类型的问题
- jQuery 1.4.2 getJSON() 不能正常工作的原因
- jQuery 1.4.2 getJSON() 不能正常工作的原因
- Hadoop DataNode不能正常工作的原因
- eclipse export出来的jar包不能正常工作 ,调试模式下可以正常运行
- DDR3之PCB拓扑结构与DDR布线要求
- NestedScrollView onClick事件不能正常工作
- Infragistics NetAdvantage 的 ASP.NET部分控件在IE7.0下不能正常工作的问题及解决
- Ajax 在IE 10下不能正常工作一例
- 解决Crystal Report XI R2不能在64操作系统正常工作的问题-web程序
- 本地jekyll突然不能正常工作,遇到的问题全可以在这个文章中找到答案。
- VC工作区间就不能正常打开问题解决方法
- 晶振虚焊导致TI 28335 DSP 烧写FLASH后,连接仿真器时正常工作,拔掉仿真器却不能启动运行
- Hadoop DataNode不能正常工作的原因
- IIS 7动态压缩引起CuteEditor在IE 6中不能正常工作 我这里IE 78都不行
- 移植 android, touch screen 不能正常工作的问题
- button 控件没有选择type类型导致kindeditor弹窗不能正常显示的错误