[老师分享] PCB Layout问题引起的CPU工作不稳定

[复制链接]
查看4701 | 回复33 | 2014-12-23 17:16:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在高速数字电路中,CPU的功耗往往随着主频的提升而增大,如果PCB Layout不当,则可能会引起CPU工作不稳定,本人就曾经遇到过。Marvell 88F6282 CPU运行在2GHz主频时,进行Memory Test测试,发现CPU常常不工作,而且每次不工作的时间点没什么规律,但是当CPU降频到1.6GHz运行时,这种现象不会发生。
Marvell-88F6282_thumb.jpg
进行以下分析
Memory Test是验证CPU和DDR在大负载情形下能否正常工作的一种方式,当系统运行在1.6GHz的时候,是正常的,说明CPU和DDR物理连线上是OK的,当升级到2GHz后会出现不工作,这种现象有两种原因:一种是时序上尤其是Set-up Time和Hold Time大于Margin,在1.6GHz时,因为频率相对来说低点,也就是时钟周期相对来说长点,所以时序上可能能满足CPU对访问DDR的要求,但是升级到2GHz后,由于时钟周期变短了,很有可能导致时序不能满足要求,导致CPU访问DDR时出现读写错误。为了验证这种想法,我们测试了2GHz时CPU访问DDR的时序,结果显示是时序满足要求的。另一种可能是CPU供电不足,因为,从Marvell 88F6282的Datasheet上看,CPU工作在2GHz时比工作在1.6GHz时电流消耗增加了700mA。
88F6282-Spec_thumb.png
但是打开我们的PCB,我们发现VCC_CPU是通过第三层的Power层经过过孔来提供电流路径的,检查发现有效的电流路径宽度是40mil左右,根据经验公式,40mil线宽在表层可以走1A的电流来算,这个线宽是不能满足CPU供电要求。
Top-Layer-CPU-VCC_thumb.png
Top层VCC_CPU网络
Internal-Layer-CPU-VCC_thumb.png
Power层VCC_CPU网络
解决方案
比较简单的方法是从VCC_CPU电源处走一个飞线到CPU供电引脚处的电容。最终的方法是改Layout,使VCC_CPU电源层线宽最小处为80mil,改版后,这个问题就没有再出现了。
回复

使用道具 举报

lozgwn | 2014-12-23 17:20:58 | 显示全部楼层
回复

使用道具 举报

bidinghong | 2014-12-23 18:48:05 | 显示全部楼层
回复

使用道具 举报

漂泊 | 2014-12-23 19:43:32 | 显示全部楼层
回复

使用道具 举报

protel99 | 2014-12-23 21:01:23 | 显示全部楼层
经验是宝贵的财富!!!
回复

使用道具 举报

hufuju | 2014-12-23 21:29:09 | 显示全部楼层
元芳老大,Memory Test 是如何进行测试的,可否告诉方法?
回复

使用道具 举报

ytian668 | 2014-12-23 21:55:46 | 显示全部楼层
回复

使用道具 举报

267101126 | 2014-12-24 06:17:35 | 显示全部楼层
回复

使用道具 举报

shanming20e | 2014-12-24 08:32:00 | 显示全部楼层
为天地立心,为生民立命,为往圣继绝学,为万世开太平
回复

使用道具 举报

rsk1988 | 2014-12-24 08:35:37 | 显示全部楼层
杰出的工程师wiki
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则