前不久小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的疏忽大意差点酿成了大错,还好客户只是前期的小批量测试版本。 各位看官,看到这里您会不会觉得其实设计也不是这么容易的事?稍不留神就有可能阴沟里翻船?所以我们要不断学习,丰富自己的经验,降低出错率。
原文链接:http://www.edadoc.com/cn/TechnicalArticle/Show.aspx?id=555