大家都知道DDR3设计通常使用Fly by 拓扑结构,但并非所有的DDR3都适合用Fly by 结构。本文就是一个不当使用 Fly by 结构的案例。
今天阳光明媚,空气清新,一路上开着车竟然畅行无阻,很早就来到了公司,还在楼下悠闲的吃了个早餐,真是很难得啊,不禁一阵窃喜,看来今天走了狗屎运,哈哈!
趁着时间还早,打开电脑正想百度下今天是什么好日子,突然桌上的电话铃声叮叮叮叮的响起来了,平时很少响的电话一大早怎么会有人找呢,不会打错电话了吧。我索性拿起电话,原来是分部的设计人员小A,小A说他最近摊上大事了,正急得满头大汗呢,希望我能给他找找原因,原来事情是这样的:
前不久小A设计了一块单板,单板很简单,上面有一个主控芯片拖着2片DDR3颗粒,客户也没有任何要求,就说按照常规布线即可。小A也觉得这个设计很简单,凭着自己好几年的设计经验那还不是小菜一碟、信手拈来之事,所以也没有太多顾虑,三下五除二就完工了,DDR3布线,常规还不就是用Fly_by拓扑,走线简单又省空间,哈哈,等着拿奖金吧。最近板子进入调试阶段,DDR3系统却死活运行不到额定频率,还老是死机,但是降频又能正常工作,各种办法用尽也无济于事,客户只好又来找小A,怀疑是不是PCB板设计有问题,小A此时也摸不着头脑,这么简单的板子怎么可能有问题呢,自己都是按照公司设计规范来做的啊,如果有问题那不是规范有问题?所以小A在束手无策的情况下也就只好找到我们制定规范的SI工程师了。
听了小A的描述,DDR3运行不到额定频率,但降频却工作正常,第一反应是时序问题,肯定是什么影响到了DDR3的时序。小A也算是经验较丰富的设计人员了,对于等长、线间距及电源设计等注意事项应该是烂熟于心的,而且公司也会不定期的培训,查板后也排除了这些问题,板子见如下图一所示。
图一、Fly_by拓扑
看来要查看芯片手册了,打开芯片功能规范手册,直接找到DDR控制器部分,下面这句话真是亮瞎了我的24K钛合金火眼金睛:
问题找到了,原来这个主控芯片不支持读写平衡功能,既然不支持读写平衡功能,那么这个设计就不能使用Fly_by的拓扑结构,这确实是典型的疏忽大意。
由于无法修改主控芯片内部的参数,也不想降频使用,看来只能使用T型拓扑改版了,可惜啊,小A的疏忽大意差点酿成了大错,还好客户只是前期的小批量测试版本。
各位看官,看到这里您会不会觉得其实设计也不是这么容易的事?稍不留神就有可能阴沟里翻船?所以我们要不断学习,丰富自己的经验,降低出错率。
编辑:hfy
全部0条评论
快来发表一下你的评论吧 !