DLL 延迟锁相环:压控延迟线与相位对齐、倍频产生
更新时间:2026-09-19。前置:全数字 PLL、fractional-N PLL、源同步接口。DLL(Delay-Locked Loop)和 PLL 名字像、部件也像(鉴相器、电荷泵、环路滤波),但它调节的是延迟而不是振荡频率,特别适合时钟相移、去偏斜(de-skew)和多相/倍频时钟生成(DDR、SerDes、源同步采样)。
一、PLL 与 DLL 的根本区别
- PLL:压控振荡器(VCO),输出相位是频率对时间的积分;反馈调频率,相位误差可能积分累积,需仔细补偿保证稳定,但能频率合成/倍频任意比、跟踪范围宽(见 PLL 基础)。
- DLL:压控延迟线(VCDL),输入参考时钟经过一串可调延迟单元输出;反馈调节总延迟使输出边沿对齐输入(通常让延迟 = 一个完整周期)。输出只是输入的延迟复本,不积累相位误差,环路是一阶的、无条件稳定(不像 PLL 有二阶稳定性问题),抖动不积累、相位建立确定。
直觉:PLL「造一个新时钟」,DLL「把同一个时钟挪到指定相位」。
二、基本结构
bash
Clkin ──► VCDL(一串可调延迟单元 τ1..τn) ──► Clkout
│总延迟 τ = Στi
│ 各抽头 τ1,τ2,... 给出多相时钟
┌────────┐ 比较 ┌──────────┐
│ 鉴相器PFD│◄─Clkout │ 电荷泵+LF │──► Vctrl(调每级延迟)
│ │◄─Clkin └──────────┘
└────────┘
锁定时: Clkout 边沿与 Clkin 对齐 ⇒ 总延迟 τ = Tclk(一个周期)- VCDL(Voltage-Controlled Delay Line):若干反相/差分延迟级,每级延迟受控制电压(或数字码)调节;总延迟范围必须覆盖至少一个输入周期才能锁住。
- 鉴相器/电荷泵/环路滤波器:比较延迟后时钟与输入时钟的相位差,产生控制电压,调延迟直到相差为 0(锁定)。
- 锁定时总延迟 = T_in,因此 N 级延迟线的每个抽头把一个周期均匀切成 N 段,得到间隔 T/N 的多相时钟(如 4 相 0°/90°/180°/270°)。
三、多相时钟、相移与倍频
- 多相时钟:从 VCDL 抽头直接获得均分相位,用于 SerDes 过采样 CDR、半速率/四速率收发、时间交织 ADC。
- 相移/去偏斜(phase shift / de-skew):通过选择抽头或微调延迟,把时钟精确移到数据眼中央(DDR 读数据采集、源同步接口 用 DLL 产生 90°/可控相位时钟)。板级/封装走线延迟可用 DLL 反馈路径补偿,使芯片时钟与外部时钟零相位差(clock de-skew)。
- 倍频:DLL 本身不倍频,但结合边沿组合/脉冲合成电路可从多相抽头合成倍频时钟(如用每相抽头产生脉冲再相或,得到 N 倍频边沿),即 DLL-based frequency multiplier;相位均匀度决定倍频抖动。
- 占空比校正(DCC):差分延迟线/校正级可同时把非 50% 输入校正到 50%(DDR 双沿采样需要,见 DDR)。
数字 DLL(全数字延迟线 + TDC/计数器搜索延迟码)在先进工艺更常见,可快速锁定、便于校准和关断(类似 ADPLL)。
四、工作范围与锁定问题
- 延迟范围必须包含 T_in:VCDL 最小~最大延迟要覆盖目标输入周期。输入频率太高(周期 < 最小延迟)锁不住;太低(周期 > 最大延迟)也锁不住。DLL 工作频率窗口比 PLL 窄。
- 谐波(错拍)锁定:DLL 可能锁在延迟 = 2T 或 T/2(抽头/鉴相模糊)而非 T,输出相位错;用复位/搜索逻辑、辅助计数器确保锁在第一谐波(正确周期)。
- 锁定检测:需 lock 指示,失锁时输出时钟不可信,系统要等 lock(类似 时钟监控)。
- 上电锁定时间/复位:VCDL 初值决定能否单调收敛;先把延迟设到中间值或最小/最大再搜索,避免卡边界。
- 输入时钟停顿/抖动过大:DLL 跟踪有限,输入丢失时 VCDL 保持/漂移,需要失锁检测与安全时钟切换。
五、与 PLL 的选型
| 需求 | 选择 |
|---|---|
| 相位对齐、去偏斜、精确相移、多相时钟 | DLL(确定、稳定、不累积抖动) |
| DDR 读数据采集相移、源同步 | DLL/PI(相位插值) |
| 任意频率合成、整数/小数倍频、宽频率范围 | PLL(见 fractional-N) |
| SerDes 低抖动片上时钟源 | PLL(DLL 无法凭空生成参考没有的频率) |
| 输入时钟净化/跟踪抖动 | PLL 低通更好(DLL 输出基本是输入延迟版,不滤除长期频率漂移,但抖动传递特性不同) |
实际 SerDes/DDR PHY 常是 PLL 产生高频时钟 + DLL/PI 做相位定位和眼图追踪的组合(见 LPDDR PHY training、SerDes CDR)。
六、常见的坑
- VCDL 范围盖不住输入周期:频率超出窗口,锁到边界仍不 lock。
- 谐波锁定:锁在 2T/T/2,相位/倍频错误;需初始约束和 lock 校验。
- 把 DLL 当 PLL 期望任意倍频:它只延迟输入,无法合成参考不存在的频率。
- 失锁无检测:上电/时钟丢失期间直接用输出,采到错误数据。
- 抽头不均匀导致倍频抖动:延迟级失配使多相隔不等,合成时钟周期抖动;要匹配/校准。
- 电源噪声调延迟:VCDL 对 Vdd 敏感,电源纹波直接变相位抖动,需隔离/滤波(见 bandgap/电源)。
- 占空比失真:经过延迟级后占空比偏离 50%,DDR 双沿出错,需 DCC。
- 环路/电荷泵泄漏:控制电压缓慢漂移导致长期相位漂。
- 初值卡在延迟极限:上电搜索策略不当收敛慢/不收敛。
- 输入抖动超跟踪带宽:DLL 对输入抖动的传递与 PLL 不同,抖动大时输出跟着抖。
- 多路时钟切换无复位:切频率后仍按旧延迟,需重新锁定。
- 数字 DLL 量化台阶:离散延迟码产生量化相移/边界抖,需足够细的分辨率。
相关与延伸
对照见 全数字 PLL、fractional-N PLL;典型应用见 源同步接口、SerDes CDR、LPDDR PHY。
总结
DLL 把输入时钟送进一条压控延迟线 VCDL,用鉴相器+电荷泵把延迟后输出与输入的相位差调为零,锁定时总延迟恰为一个输入周期,于是各延迟级抽头把周期均匀切分出多相时钟,可直接做精确相移、板级 de-skew、DDR 双沿采集的 90° 时钟或配合边沿合成做倍频和占空比校正;因为它只调延迟、不积分相位,环路是一阶的、无条件稳定且抖动不积累,代价是不能像 PLL 那样合成参考不存在的频率且要求 VCDL 范围覆盖输入周期——延迟范围不够、谐波锁定在 2T、失锁无检测和抽头失配造成倍频抖动是四大常见坑,实际 PHY 多用 PLL 造频率、DLL/相位插值器定位相位。