微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 信号完整性分析 > 信号完整性分析讨论 > 不是所有DDR3都可以用Fly by结构!(DDR3系列)

不是所有DDR3都可以用Fly by结构!(DDR3系列)

时间:10-02 整理:3721RD 点击:

作者:周伟 一博科技高速先生团队成员


今天阳光明媚,空气清新,一路上开着车竟然畅行无阻,很早就来到了公司,还在楼下悠闲的吃了个早餐,真是很难得啊,不禁一阵窃喜,看来今天走了狗屎运,哈哈!


趁着时间还早,打开电脑正想百度下今天是什么好日子,突然桌上的电话铃声叮叮叮叮的响起来了,平时很少响的电话一大早怎么会有人找呢,不会打错电话了吧。我索性拿起电话,原来是公司分部的设计人员小A。小A说他最近摊上大事了,正急得满头大汗呢,希望我能给他找找原因,原来事情是这样的:


前不久小A设计了一块单板,单板很简单,上面有一个主控芯片拖着2片DDR3颗粒,客户也没有任何要求,就说按照常规布线即可。小A也觉得这个设计很简单,凭着自己好几年的设计经验那还不是小菜一碟、信手拈来之事,所以也没有太多顾虑,三下五除二就完工了,DDR3布线,常规还不就是用Fly_by拓扑,走线简单又省空间,哈哈,等着拿奖金吧。最近板子进入调试阶段,DDR3系统却死活运行不到额定频率,还老是死机,但是降频又能正常工作,各种办法用尽也无济于事,客户只好又来找小A,怀疑是不是PCB板设计有问题,小A此时也摸不着头脑,这么简单的板子怎么可能有问题呢,自己都是按照公司设计规范来做的啊,如果有问题那不是规范有问题?所以小A在束手无策的情况下也就只好找到我们制定规范的SI工程师了。


听了小A的描述,DDR3运行不到额定频率,但降频却工作正常,第一反应是时序问题,肯定是什么影响到了DDR3的时序。小A也算是经验较丰富的设计人员了,对于等长、线间距及电源设计等注意事项应该是烂熟于心的,而且公司也会不定期的培训,查板后也排除了这些问题,板子见如下图一所示。


图一


看来要查看芯片手册了,打开芯片功能规范手册,直接找到DDR控制器部分,下面这句话真是亮瞎了我的“24K钛合金火眼金睛”:



问题找到了,原来这个主控芯片不支持读写平衡功能!既然不支持读写平衡功能,那么这个设计就不能使用Fly_by的拓扑结构,这确实是典型的疏忽大意。


由于无法修改主控芯片内部的参数,也不想降频使用,看来只能使用T型拓扑改版了,可惜啊,小A的疏忽大意差点酿成了大错,还好客户只是前期的小批量测试版本。


各位看官,看到这里您会不会觉得其实设计也不是这么容易的事?稍不留神就有可能阴沟里翻船?所以我们要不断学习,丰富自己的经验,降低出错率。


想了解更多Fly_by的设计及知识吗?请看下回分解!


*************************

关注微信公众号:一博_看得懂的高速设计或扫描二维码


把高速设计掌上图书馆装入你的微信中!


对,不是所有DDR3都可以用fly_by拓扑结构!

高速先生可以讲解一下什么是Read and write leveling吗?
我的理解是如果不支持read and write leveling, PCB设计的设计就比较做好DQS和CLK的长度匹配
如果做好QDS和CLK的长度匹配,fly-by也不能工作吗?

理论上是可以工作的,但是实际上走线的时候时钟线可能长达6,7inch,去将一组DQS和DQ绕至这么长不太现实,所以通常不支持读写平衡时不会去做flyby。

我们有4个DDR颗粒的情况依然用了fly-by, 不支持write leveling, 工作到1333是没问题的
就是layout的时候比较有难度
如果不用fly-by, 你推荐用T吗? 颗粒比较多的时候也比较麻烦

那意思是:如果DDR3不支持Read and write leveling这功能,就是只能走T点结构,不能走FLY-BY;如果DDR3支持Read and write leveling这功能,就只能走FLY-BY点结构,小编帮忙看这话有问题没有!

4个颗粒如果没有读写平衡功能的话当然推荐用T,设计相对来说还好,如果用Fly_by的话loyout也比较痛苦,后面几片的数据信号要跟着绕等长。

有问题。不管是T点还是flyby,最终要做到的是两点:保证信号质量,保证时序。
不支持flyby时,可以使用楼上所说的,可以使用flyby,但是要将每组数据线与时钟做等长,layout难度较大。
颗粒较少时(2片,4片),可以使用T点,这样layout会容易一些。
颗粒越多,T点越难保证信号质量,需要精确的拓扑以及匹配,如果没有把握的话,那还是用传统的flyby,末端上啦,去辛苦我们的layout工程师了。

read and write leveling这个功能可以提供更多的选择,相当于是DDR3的加分项,没有这个功能的话前面也讲过了,需要对应的数据信号跟着绕等长,比较痛苦;有这个功能也不意味我一定要用啊,如果2片颗粒的话当然是可用可不用的,一般如果颗粒超过4片的话用这个功能就好很多了,所以芯片支持读写平衡功能的话也不意味我就不能用T型结构了,这个是不矛盾的,只是使用Fly_by的结构更简洁方便,那我为什么不用呢?

要根据实际情况来的,不管是flyby还是T点都可以玩出很多花样去保证信号质量以及时序。
控制分叉长度,控制匹配位置以及阻值,容性负载补偿,等等等等。

read and write leveling 学习了

me too  yeah!

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

网站地图

Top