首页/文章/ 详情

我把 PLL 做成了 13 块能拖的实验台

19分钟前浏览0

先说个具体的窘境。

教材上"环路带宽决定锁定速度和噪声抑制"这句话,很多人背得下来。

但只要动一个参数,我就说不清会发生什么:

C1 加倍,相位裕度是升还是降?

Kvco 从 180 调到 400 MHz/V,是锁得更快,还是直接振铃?

Icp 翻倍,噪声变好还是变差?

这些答案不在文字里,在"参数和曲线的对应关系"里。

静态的教材给不了,视频给不了,MATLAB 能算,但要先会写脚本。

所以我把 PLL 拆成 13 个知识点,每个做成一块可以拖的交互面板:

同一页里,公式、曲线、数字绑在一起,拖一下滑块,三者同时变。

一、13 章,五组

每章都是同一个结构:一句概念 → 一块可拖的面板 → 三条工程结论 → 面试考点 → 一道自测。

第一组 · 基础(01–02)

01 相位与锁定:PLL 锁的不是频率,是相位。拖初始频差,看相位误差怎么被一步步压到零。

02 五大模块:参考 → PFD → CP → 滤波器 → VCO → 分频器,点开每个看它当前干什么、失效会怎样。

第二组 · 三个模块的非理想(03–06)

03 鉴相器 PFD:拖相位差和复位延迟,UP/DN 脉冲实时重画;相位差小到被复位延迟吃掉时,那块区域变红——这就是死区。

04 电荷泵 CP:拖上下拉失配和最小脉宽,静态相位误差与参考杂散同时重算。

05 环路滤波器:拖 R1/C1/C2,Bode 实时重画,六项指标跟着变;也能反过来给定 fc 和 PM,让它解元件值。

06 压控振荡器:拖 Kvco 看调谐跨度,拖 Q 看相噪——Q 翻倍降 6.02 dB 这件事,屏幕上直接能看到。

第三组 · 分频与环路动态(07–08)

07 分频器与 ΔΣ:切 MASH-1/2/3,看量化噪声斜率 20/40/60 dB/dec,下面还画真实的瞬时分频比序列。

08 环路动态与锁定:给一个初始频差,看相位误差怎么追上去、滑移几次、多久锁住;频差太大时会直接告诉你"锁不住"。

第四组 · 系统指标(09–10)

09 相位噪声:参考、PFD/CP、分频器、VCO 四条噪声源 + 总噪声,一眼看谁在主导。

10 抖动:把相噪积分成 rms 抖动,顺便让人明白"抖动不写积分范围等于没说"。

第五组 · 用起来(11–13)

11 应用实战:SerDes / 频率合成 / CDR 三个场景,反推"该定多少带宽、多少抖动"。

12 完整设计流程:四步向导(指标 → 环路 → 元件 → 复核),每一步都标出实际值与目标值的差,不假装一次就中。

13 综合实验室:六滑块 + 七项指标 + Bode 与噪声两图同屏。

01 · 相位与锁定

二、四个最值得拖的地方

① 第 03 章:UP 和 DN 的脉宽不一样宽

03 · PFD与死区

拖相位差和复位延迟,你会看到:

UP 的宽度 = 相位差对应的时间 + 复位延迟;

DN 的宽度 = 复位延迟。

这个细节很多人记错。画出来就一目了然。

而当相位差小到被复位延迟吞掉,环路就"看不见"误差了——那块区域会变红。

默认参数下,死区等效窗口是 36°。

② 第 05 章:这一屏是整站的核心

05 · 环路滤波器

三个滑块(R1、C1、C2),上面六项指标实时重算:零点、高频极点、穿越频率、相位裕度、阻尼比、锁定时间。Bode 上下两栏同步重画。

它能回答三个问题:

▪ 为什么 C1 加大,fc 反而降?(积分电容变大,环路增益下降)

▪ 为什么 C2 太小时相位裕度会塌?(高频极点被推得太远,压不住高频增益)

▪ 给定 fc=500 kHz、PM=60°,元件到底取多少?(右下角能反解,还支持 E96 圆整)

③ 第 09 章:四条噪声线在同一张图上

09 · 相位噪声

默认工况下:

带内 10 kHz 是 −108.3 dBc/Hz(PFD/CP 主导),

315 kHz 附近 VCO 开始接管,

带外 20 MHz 是 −127.9 dBc/Hz。

积分 10 kHz–20 MHz,得到 1644 fs。

④ 第 13 章:全调一遍的沙盘

13 · 综合实验室

六滑块 + 七项指标 + 两张图。给"我想全调一遍看会怎样"的人准备。

三、一套真实的默认数字

全站共享同一套参数,默认值是这样:

 
参考频率 fref    100 MHz
输出频率 fout    2.4 GHz(N = 24)
电荷泵电流 Icp   1.2 mA
VCO 增益 Kvco    180 MHz/V
设计目标         fc = 500 kHz
                 PM = 60°
解出元件         R1 = 337 Ω
                 C1 = 2.14 nF
                 C2 = 107 pF

实测(不是目标值):

 
fc = 500 kHz,PM = 60.0°
零点 221 kHz
高频极点 4.42 MHz
ζ = 0.722
锁定时间(1%)= 3.25 µs
带内噪声 −108.3 dBc/Hz @10 kHz
带外噪声 −127.9 dBc/Hz @20 MHz
积分抖动 1644 fs(10k–20M Hz)
参考杂散 −77.8 dBc
  (CP 失配 2%,最小脉宽 2 ns)
死区等效窗口 36°

这些数字不是我抄的,是网页内核按公式算出来的,每个都能在页面上追到它的公式。

四、改一个参数,看连锁反应

下面四组都是"只动一个变量",数值同样来自内核。

① C1:2.14 nF → 4.7 nF

fc 500 → 480 kHz(几乎没动),

但相位裕度 60.0° → 72.1°,

阻尼比 0.722 → 1.000(完全过阻尼),

锁定时间 3.25 → 5.18 µs。

所以"加大电容更稳"这句话是对的,但它同时把速度卖掉了——教材通常只说前半句。

② Icp:1.2 mA → 4.0 mA

fc 500 kHz → 1.48 MHz,

锁定 3.25 µs → 394 ns(快了 8 倍),

相位裕度 60.0° → 63.8°,阻尼比 0.722 → 0.897。

注意方向:Icp 加大,阻尼比是上升的,不是下降——这一点常被写反。

代价是带内噪声虽被压低,参考杂散会跟着变大。

③ Kvco:180 → 429 MHz/V

fc 上移到 1.09 MHz,锁定缩短到 2.48 µs,看起来是好事。

但同一屏上"控制线敏感度"会提醒你:Kvco 是双刃剑。

按 20·log₁₀(429/180) = 7.54 dB,控制线上的噪声被放大了 7.54 dB。

(每翻一倍是 +6.02 dB,本例是 2.38 倍。)

它不会把相位裕度弄崩(实测 65.3°,反而更好),它做的是把噪声放大。

④ 只动 VCO 的 Q:10 → 30.1

1 MHz 处相位噪声 −101.6 → −111.2 dBc/Hz,

差 −9.57 dB,正好等于 −20·log₁₀(3.01)。

Q 提三倍换 9.6 dB——这就是为什么振荡器里 Q 值值钱,也是为什么片外电感、高 Q 谐振腔一直被追捧。

⑤ 顺便纠正一个常见说法

很多人说 MASH-1/2/3 的量化噪声"在 f_ref/2 处汇合"。这句话是错的。

三条线的斜率分别是 20/40/60 dB/dec,但在 f_ref/2 处并不相等——每差一阶就要差约 6.02 dB。

"总噪声功率相同、只是分配方式不同"这个说法,只在积分到无穷大时才成立;在 f_ref/2 这个具体频点上不成立。

这也是我做这个网页的原因之一:能拖一遍,就不会再记混。

五、为什么这些数字值得信

这是我花时间最多的地方,也是它和"画得好看的示意图"的区别。

四路互证

同一个穿越频率,用四种方法各算一遍:频域数值解(自己写二分找 |G|=1)、闭环极点(自己写求根,由极点反推 ωn 和 ζ)、解析式、MATLAB 的 margin() 与 pole()。

MATLAB 当标尺,7 组工况

不只测漂亮参数,专门留了 PM=30° 的低裕度工况、C2=0 的退化二阶、强过阻尼。真值离线生成后写进代码。

133 条断言,两处可跑

同一份断言,终端 npm test 能跑,网页"自检"页也能跑。任何人打开网页都能看到 133 通过 / 0 失败,以及每一项的实测偏差。

关键几条的容差与实测:

 
穿越频率 fc     容差 0.1%    200 kHz 工况实测偏差 0.66 Hz
相位裕度 PM     容差 0.05°   实测 ~5×10⁻⁵ °
自然频率 ωn     容差 0.2%    实测 ~10⁻⁶
阻尼比 ζ        容差 0.5%    实测 ~10⁻⁶
锁定时间        容差 0.5%    实测 ~10⁻⁵
环内噪声 N·|H|  容差 0.01 dB 实测 ~10⁻⁹ dB
rms 抖动        容差 1%      200 kHz 工况 1741.1 vs 1741.1 fs

页面里内置自检

不是"作者说它对",而是"你自己点开就能验"。

六、三条用法

路径 A:两小时建立直觉

01 → 02 → 05 → 09。先明白"锁相位",再知道五个模块各干什么,然后亲手拖一次滤波器看 Bode 怎么动,最后看噪声预算。

路径 B:面试突击

每章结尾有"面试考点",是那种会当场被追问的问题:

为什么 Type-II 的稳态相差为零?

PM 从 60° 掉到 40°,阶跃过冲增加多少?

为什么分频器噪声进环路会被放大 N 倍?

配合 05、09、10 三章拖一遍,答题时脑子里有画面。

路径 C:设计速查

直接去 12 章(向导)或 13 章(实验室),从指标反推元件;05 章能反解并做 E96 圆整。

一个实用的小功能:全站参数会写进 URL。你把环路调到某个状态,链接发给同事,对方打开就是你调好的那一版。

七、它不是什么

不是晶体管级仿真。 全是行为级/线性模型:没有 PVT,没有器件噪声源,没有电荷泵输出阻抗。

不能替代 Spectre/HSPICE。 定位是"建立直觉 + 快速估算",流片前该跑的仿真一个都少不了。

噪声模型是简化的。 VCO 用 Leeson 简化式,参考/CP/分频按平坦噪声处理,没有 1/f 拐点,也没有杂散抬升。

如果你也在学某个硬核方向,我的建议不是"多读几遍书",而是:

给你的知识建一个能自我验证的最小模型。 一旦它能自己报错,学习速度会完全不同。

网站正在优化中,尽请期待。。。

来源:集成电路小刚
MATLAB控制HSPICE
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-11-12
最近编辑:19分钟前
集成电路小刚
硕士 立志成为集成电路领域专家
获赞 4粉丝 65文章 74课程 0
点赞
收藏
作者推荐

Cadence Virtuoso IC617从原理图建立器件和生成版图

本文主要记录了如何用Cadence Virtuoso IC617建立器件和生成版图。虽然前面的文章记录过如何生成器件,但是本文将重新记录,方便查看和学习。本文将用以下原理图,这是一个反相器。建立器件确保原理图中的器件都是有版图的,没有包含各种信号源,同时接口都放置了Pin脚。选择Create -> Cellview -> From Cellview。名字默认为原理图的名字。点击OK到下一步。修改一下默认生成的Pin的位置。左边是IN,右边是OUT,上面是VDD,下面是GND。点击OK到下一步。默认生成的器件。记得先保存一下这个器件的原理图和之前的原理图。保存之后确认一下Library里有没有生成对应的symbol。修改一下器件,这样就比较好看了。插播一个小广告:认为性价比比较高的《模拟集成电路设计精粹》,感兴趣可以购买建立版图在原理图界面下,选择Layout XL默认是创建新的Layout,默认即可。名字默认即可。到了版图界面。点击Connectivity -> Generate -> All from source,将每个元件的版图导入进来。只导入器件,不导入其他的。器件被导入,但是没有被显示出来。快捷键Shift+F,就显示了。布局连线常用快捷键布局和连线布局需要尽量紧凑,但是也要考虑两个器件之间的影响。一般的工艺支持6到8层的金属层,是用于布线的,从最底层到最顶层,支持的最小线宽和最小过孔依次增大。连线时,先选择对应的层,带drawing标识的才能画线 ,此处选择金属1层。按P添加走线,按O添加过孔,按R绘制矩形,基本就是这三个操作。在画图的时候还要结合测量工具(快捷键K),来保证满足最小间距的要求。最后,在金属字符层上,添加Label,也就是引脚,一定要和原理图中的对应。画好的版图如下图。DRC检测DRC检测是检测版图的器件间距和布线等,能否符合工艺的要求。选择Calibre -> Run nmDRC。叉掉第一个窗口。注意,如果在这一步出现License的错误,如下图稍等一会,等除了Rules之外全部变绿后,点击Rules,然后点击三个点,加载DRC规则。在存放工艺库文件的文件夹中,有DRC规则文件,加载进来。点击运行。在弹出的结果框中,可以筛选信息类型。就能看到版图存在的错误。将错误全部修改完就完成了DRC检测。(下图的错误主要是电路密度错误,也是就弄得太稀疏了,忽略即可)LVS检测LVS检测是针对电气连接的检测,能查看版图的连线是否和原理图连线完全一致。选择Calibre -> Run nmLVS。叉掉第一个窗口。选择Inputs,在Netlist里,把对应的勾选上。点击Rules,然后点击三个点,加载LVS规则。在存放工艺库文件的文件夹中,有LVS规则文件,加载进来。点击运行。在弹出的结果窗口中,看到笑脸,就意味着通过了检测。 来源:集成电路小刚

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈