3. 时钟与复位审查:时钟源选择与分配、时钟树结构、时钟抖动与偏移、复位信号完整性与时序
时钟和复位,说白了就是数字系统的“心跳”和“总开关”。
我见过太多项目,功能逻辑都调通了,结果一上电就跑飞,或者高速信号眼图惨不忍睹。追根溯源,十有八九是时钟或复位没处理好。这一章,咱们就聊聊量产审查时,这两个关键信号线到底该怎么查。
3.1 时钟源选择与分配
选时钟源,不是随便找个晶振接上就完事了。你得想清楚:系统需要几个频率?相位关系有没有要求?对抖动有多敏感?
核心原则:时钟源的选择,直接决定了系统的噪声底和功耗基线。选错了,后面花十倍功夫也救不回来。
3.1.1 常见时钟源对比
| 类型 | 精度 | 抖动 | 功耗 | 成本 | 量产审查要点 |
|---|---|---|---|---|---|
| 无源晶振 (Crystal) | ±10~50ppm | 低 | 极低 | 低 | 匹配电容、起振裕量、ESR |
| 有源振荡器 (XO) | ±10~50ppm | 低 | 低 | 中 | 电源纹波、输出电平标准 |
| 温补振荡器 (TCXO) | ±0.5~2.5ppm | 中 | 中 | 高 | 温漂曲线、老化率 |
| MEMS振荡器 | ±10~50ppm | 中 | 低 | 中 | 抗振动、EMI特性 |
我个人习惯,对于普通MCU系统,用无源晶振加内部振荡器就够了。但如果是高速SerDes或者射频电路,我建议直接上TCXO或者专用的低抖动XO。别为了省几毛钱,把整个系统的性能给搭进去。
审查小技巧:检查晶振的负载电容(CL)是否与数据手册一致。我遇到过好几次,原理图上画了22pF,结果PCB布局时没考虑走线寄生电容,导致频率偏了上千ppm。
3.1.2 时钟分配网络
时钟分配,最忌讳的就是“一驱多”还走很长的线。你想想看,一个时钟源驱动四五个负载,每个负载的输入电容不一样,走线长度也不一样,波形能好看吗?
- 扇出限制:单个时钟输出驱动负载不超过2~3个。多了必须加时钟缓冲器(Clock Buffer)或扇出芯片。
- 走线拓扑:优先采用星型拓扑,从源端分别走线到每个负载。菊花链拓扑只适合低速或对时序不敏感的信号。
- 阻抗控制:高速时钟(>50MHz)必须做50Ω或100Ω差分阻抗控制。单端时钟建议包地处理。
注意:时钟信号不要跨越分割平面!回流路径一旦被切断,EMI和信号质量问题会让你怀疑人生。我曾经有个项目,就因为时钟线跨了电源分割,导致整机辐射超标,最后不得不改板。
3.2 时钟树结构
时钟树,就是整个系统的“血管网络”。设计得好,各个模块各取所需;设计得不好,到处都是时序冲突。
下面这张图,是我总结的一个典型时钟树结构,大家可以参考一下。
审查时钟树时,我一般会重点关注以下几点:
- 时钟域划分:每个时钟域是否独立?跨时钟域信号有没有做同步处理?
- PLL配置:VCO频率是否在芯片推荐范围内?分频比是否合理?
- 时钟使能:不需要的时钟分支有没有加Clock Gating?这能省不少功耗。
- 时钟监控:有没有留出时钟测试点?量产时方便用示波器测量。
3.3 时钟抖动与偏移
抖动(Jitter)和偏移(Skew),是时钟信号的两个“隐形杀手”。
抖动,指的是时钟边沿在时间轴上的随机或确定性偏差。说白了,就是时钟该来的时候没来,或者来早了。
偏移,指的是同一个时钟源到达不同负载的时间差。说白了,就是时钟到了A点,但还没到B点。
3.3.1 抖动审查
抖动对高速电路的影响是致命的。比如DDR接口,如果时钟抖动太大,建立时间和保持时间窗口都会被压缩,数据采样就容易出错。
| 抖动类型 | 来源 | 影响 | 审查方法 |
|---|---|---|---|
| 随机抖动 (RJ) | 热噪声、散粒噪声 | 高斯分布,长期累积 | 检查电源噪声、参考源噪声 |
| 确定性抖动 (DJ) | 串扰、EMI、电源纹波 | 有界,周期性 | 检查时钟走线隔离、电源去耦 |
| 周期抖动 | PLL环路不稳定 | 相邻周期差异 | 检查PLL环路滤波器设计 |
| 长期抖动 | 晶振老化、温漂 | 长时间累积偏差 | 检查晶振规格、温补电路 |
我的经验:审查原理图时,一定要看时钟芯片的电源去耦电容够不够。我见过一个项目,时钟抖动超标,查了半天,最后发现是去耦电容离芯片太远,等效串联电感(ESL)太大。把电容挪到芯片引脚旁边,问题就解决了。
3.3.2 偏移审查
偏移主要影响同步电路。比如DDR的DQS和CLK,如果偏移太大,数据眼图就张不开了。
审查偏移时,我一般会关注:
- 走线等长:同一组时钟信号,走线长度差要控制在±50mil以内。对于DDR3/DDR4,这个要求更严,通常要控制在±20mil。
- 负载匹配:每个时钟负载的输入电容要尽量一致。如果负载差异大,可以考虑加RC延迟来补偿。
- 缓冲器延迟:不同通道的时钟缓冲器,其传播延迟(Propagation Delay)会有差异。选型时要看数据手册中的Skew参数。
特别注意:不要为了追求绝对的等长,而让时钟线绕得乱七八糟。过长的走线会增加延迟和损耗,反而得不偿失。我建议,在满足时序要求的前提下,走线越短越好。
3.4 复位信号完整性与时序
复位信号,是系统的“总开关”。如果复位不可靠,系统上电后可能处于不确定状态,各种奇怪的问题都会冒出来。
3.4.1 复位信号完整性
复位信号最容易出问题的地方,就是毛刺和抖动。你想,如果复位信号上有个毛刺,芯片可能刚退出复位,又被拉回去了。
- 去毛刺:复位信号必须加施密特触发器或低通滤波器。我习惯在复位输入引脚旁边加一个RC滤波(比如10kΩ+0.1μF),可以有效滤除高频噪声。
- 上电时序:复位信号必须在电源稳定之后才释放。这个延迟时间,通常由复位监控芯片(如MAX809)或RC充电电路来保证。
- 手动复位:如果有按键复位,一定要加防抖电路。不然按一下复位键,芯片可能复位好几次。
3.4.2 复位时序
复位时序,说白了就是复位信号和其他信号(比如时钟、使能信号)之间的先后关系。
我遇到过最典型的问题,就是复位释放时,时钟还没稳定。芯片一跑起来,采到的第一个时钟周期就是错的,后面全乱套了。
关键时序要求:
- 复位释放必须在时钟稳定之后。延迟至少10个时钟周期。
- 复位释放必须在所有电源域稳定之后。
- 异步复位同步释放(Synchronized Reset Release)是标准做法。
下面是一个典型的复位时序图,大家可以对照着审查自己的设计。
避坑指南:我曾经在一个项目里,用了RC复位电路,结果因为电容漏电流太大,复位时间不够,导致部分芯片上电后无法正常工作。后来换成专用的复位监控芯片,问题就再也没出现过。所以,对于量产产品,我建议尽量用复位IC,别省那几毛钱。
好了,关于时钟与复位的审查要点,就聊到这里。这些内容看起来琐碎,但每一个细节都可能成为量产时的“定时炸弹”。审查时多花点时间,生产时就能少流点泪。