Administrator
发布于 2026-10-08 / 1 阅读
0
0

用 VCO 型 ADC 监测电源纹波:把 PDN 自谐振写进非理想因素模型,并让 FFT 与闭式理论逐 bin 精确对齐

片上电源噪声(Power-Supply Noise, PSN)监测是近年最热的"传感 + ADC"课题之一,而 VCO 型 ADC(Voltage-Controlled-Oscillator-based ADC)因为"全数字、无运放、天然一阶噪声整形、低频噪声极低"成了热门候选。但把它真正用到电源纹波监测场景时,有两个东西必须一起建模才敢下结论:(1) 被测量不是理想正弦,而是 PDN 节点上被 塑形、并在自谐振 处被 放大的纹波谐波族;(2) VCO 型 ADC 的非理想因素(量化、调谐非线性、延迟单元失配、时钟抖动、VCO 相位噪声、DFF 亚稳态)在频域的表现方式各不相同——有的被整形、有的不被整形、有的恰好落在你想看的那个峰上。 本文以一篇经典分析设计论文(J. Kim et al., Analysis and Design of VCO-Based ADC, IEEE TCAS-I, 2010,下称"论文")的公式体系为骨架,把上述六类非理想因素 + PDN 的 RLC 谐振完整建模,并给出 Python/MATLAB 双实现。核心指标:19 项确定性检查中,仿真 FFT 的每个 bin 与闭式理论的相对误差最大 7.7×10⁻¹¹,全部达到机器精度——也就是"频谱结果和理论计算完全数值精确对应"。目标同样是"只看这一篇就能自己搭一套可对账的模型"。


目录


0. 结论速览

先把要带走的结论列出来,后面逐条给推导与数据。

  1. 相位量化即一阶整形。 VCO 型 ADC 的输出是"相位除以 后取整再差分",残留相位天然在相邻采样间传递,于是量化噪声被 高通整形: 时噪声趋零。这正是 PSN 监测最需要的特性(低频纹波干净)。实测本组参数下 SQNR(论文 eq.7) dB,等效分辨率 5.68 bit。
  2. PDN 自谐振必须显式建模。 开关电流的 次谐波 乘以 才是纹波电压; 在 处等于 并被 放大。示例 pH、 nF、: MHz、。谐振既放大纹波(好),也放大落在同处的杂散与噪声(坏)——灵敏度不是单调受益。
  3. 六类非理想因素的频域"形状"完全不同:量化噪声(整形、 上升)、调谐非线性(HD2/HD3 且被 加权, 处为零点)、延迟单元失配( 的 Bessel spur 族,同样被整形)、时钟抖动(噪声搬移到 附近成裙边)、VCO 相位噪声(先混叠再整形)、DFF 亚稳态(近似白噪声,是本组参数下的绝对瓶颈)。
  4. 要"逐 bin 精确对应",靠的是三件事:闭式解析积分( 余弦乘积)、绝对相位 + floor 记账、以及所有频率取整数 bin 的相干采样。三者缺一,误差就从 掉到 量级。
  5. 论文有三处需要注意的地方(eq.3 缺 ;eq.27/33 是双边功率;eq.37/41 的亚稳态上界与 59.04 dB 示例不自洽),详见 §7。

1. 为什么 VCO 型 ADC 适合做纹波监测

片上 PSN 监测对 ADC 的要求很苛刻:带宽要覆盖到几十~几百 MHz(要看到 PDN 的自谐振与开关谐波)、供电电压低(先进工艺 0.8 V 甚至更低)、面积与功耗小(要铺很多个监测点)、低频要极其干净(纹波的直流/低频分量往往是主要能量)。传统 SAR/流水线 ADC 在这些约束下吃紧,而 VCO 型 ADC 的结构恰好对口:

  • 全数字、无运放、无采样保持:输入直接调谐 VCO 频率,信息承载在"相位/频率"上,后级全是数字计数器与差分器,随工艺缩放友好。
  • 一阶噪声整形:量化噪声在低频被强烈压制(这里的关键,见 §2)。
  • 对 PVT 的敏感性可标定:VCO 的增益 、自由振荡频率 会漂,但都可以通过数字校准或参考通道消除。

代价同样明确,也正是本文要建模的对象:

非理想因素 频域形状 在纹波监测场景里的后果
相位量化噪声 一阶整形( 上升) 低频干净;高频噪声底抬升,与 处的纹波峰直接竞争
调谐非线性 / 谐波、被 sinc 加权 产生假纹波谱线,可能被误判为真实 PSN 分量
延迟单元失配 Bessel spur 族 落在监测带内的顽固杂散,幅度由调制指数 决定
采样时钟抖动 裙边,集中在 附近 直接把相位噪声抬起来
VCO 相位噪声 混叠 + 整形 高频段几乎"原样通过"
DFF 亚稳态 近似白噪声(每拍可能错 1 个计数或更多) 本组参数下决定灵敏度上限
图 1 上:VCO 型 ADC 的信号链——被测的 PDN 节点纹波经"推频"(,即 )变成频率波动,再经  相 VCO 变成相位边沿、由复位计数器量化成计数,
图 1 上:VCO 型 ADC 的信号链——被测的 PDN 节点纹波经"推频"(,即 )变成频率波动,再经 相 VCO 变成相位边沿、由复位计数器量化成计数,最后一阶差分输出。下:相位斜坡与量化(计数)阶梯——上一拍的残留相位 成为下一拍的初相,这就是"天然一阶整形"的物理来源。注意信号链里没有采样保持:这一条决定了后面所有的 加权行为。

2. 信号链:从电压到计数

2.1 连续时间部分(论文 eq.1–4)

VCO 的自由振荡频率 被输入 线性调谐,相位是频率的积分,计数器把相位按 量化:

其中 是 VCO 的相数(本文 64 相, rad)。输入为单音 时,每个采样窗 内的相位增量有闭式解:

这一条是整篇文章的"锚":它给出了"输入电压幅度 → 输出计数幅度"的全部转换关系。本组参数( GHz/V、 V、 ns、 MHz)下

也就是说:每 1 mV 输入只换来 0.256 个计数——这个"计数/毫伏"的换算系数(,本文 counts/V)决定了后面所有灵敏度数字。实现上我用的是闭式解析积分而不是数值积分,这就是"逐 bin 精确"的第一块基石:

def int_product_cos(t0, t1, freqs, phs):
    """∫cos(2πf_i t+φ_i) 连乘 dt 的闭式解:展成 2^m 个复指数逐项积分"""
    total = 0.0 + 0.0j
    for s in range(1 << len(freqs)):          # 每个 cos 取 +/− 号
        Om = sum(±2πf_i);  Th = sum(±φ_i)
        e  = exp(1j·Th)
        total += e * ((exp(1j·Om·t1) − exp(1j·Om·t0))/(1j·Om) if |Om|>ε else (t1−t0))
    return total.real

2.2 量化噪声为什么天然被整形

把复位计数器的输出写成理想值与误差之和:,其中 是残留相位。差分输出

信号误差

于是量化误差的功率谱被乘上 : 时为零,(即 )时为 4 倍。带内量化噪声(论文 eq.6)为

图 2 输出频谱(相干采样 )与理论量化噪声包络  逐 bin 重合:低频按 20 dB/dec 上升、到  附近趋平。绿标为输入信号  MHz,其幅度严格等于闭式解  count
图 2 输出频谱(相干采样 )与理论量化噪声包络 逐 bin 重合:低频按 20 dB/dec 上升、到 附近趋平。绿标为输入信号 MHz,其幅度严格等于闭式解 counts(相对误差 4×10⁻¹⁶)。这就是"频谱 = 理论"最直白的证据。

2.3 三个容易被忽略的物理前提(都实测过)

(a) 量化误差真的"像白噪声"吗? 论文 eq.5/6 的推导前提是 近似独立均匀分布。实测本组参数:均值 (理想 ✓)、方差 (理想 ,差 0.9%)、滞后 1 自相关 (≈0 ✓)。前提成立,可以放心用 eq.6。

(b) "无采样保持"意味着谐波也被 sinc 加权。 因为 VCO 在整个采样窗内都在积分输入,等效于"窗内平均",所以第 次谐波幅度正比于 ,在 处出现零点(图 4 右)。别只在时域算 :非线性产生的谐波同样要乘这个 sinc。

(c) 相干采样是"逐 bin 对账"的硬前提。 本文把所有频率都取成 的整数倍(、、、)。一旦某个频率落在 bin 之间,FFT 就会泄漏,任何"逐 bin 相等"的比较都失去意义。改参数时请守住这一条。

图 3 带内量化噪声:32 次不同初相的集平均(蓝点, 初相)对上离散精确理论曲线(红)。斜率为 2( 上升)验证一阶整形;带内总功率与闭式 eq.(6) 的连续积分差 1.55%
图 3 带内量化噪声:32 次不同初相的集平均(蓝点, 初相)对上离散精确理论曲线(红)。斜率为 2( 上升)验证一阶整形;带内总功率与闭式 eq.(6) 的连续积分差 1.55%(离散精确求和 vs 连续积分),而集平均与离散理论的残差属于统计涨落(单次实现相对标准差 0.262,集平均 96 次的标准误 2.7%)。注意:单次实现的"噪声底"其实是密集的 fractional-N 杂散谱线,只有集平均后才收敛到理论底噪——拿单次频谱去对理论值会得到 20~60 倍的假偏差。

3. PDN 侧建模:自谐振、Q、纹波谐波、探头负载、热噪声

3.1 一阶模型:并联 RLC

把一个 PDN 节点在关心频段内简化成并联 (:封装/走线电感,:去耦电容,:等效阻尼),则

本文示例 pH、 nF、: MHz、、(数值上 精确成立,误差 0,这是并联 RLC 的解析性质,也是模型自检的第一项)。

3.2 纹波怎么进模型

开关电源的负载电流是周期性的,其 次谐波电流 在 PDN 上产生的电压

这些 就是注入 VCO 型 ADC 的"多音输入"。 mA、 MHz、取前 8 次谐波时:

谐波 频率 (MHz) (Ω) 纹波电压 (µV)
1 7.8125 0.0050 37.7
3 23.4375 0.0187 140.4
5 39.0625 0.0590 442.4
6 46.875 0.1486 1114.9
7 54.6875 0.1378 1033.6
8 62.5 0.0681 510.8

关键点:纹波频谱是被 塑形的,不是平的。 靠近 的谐波(第 6、7 次)比第 1 次高 30 倍(29.5 dB)。这既是"能看见谐振"的原因,也意味着监测器必须在 附近同时具备幅度精度。

图 8 左:,谐振处  且被  抬高;探头/前端电容并入的代价是 ——本场景 5 pF 对 100 nF 只下移 0.0025%(可忽略),但若节点处的等效电容只有 100 pF(
图 8 左:,谐振处 且被 抬高;探头/前端电容并入的代价是 ——本场景 5 pF 对 100 nF 只下移 0.0025%(可忽略),但若节点处的等效电容只有 100 pF(片上分支),同样 5 pF 就会下移 2.4%,必须补偿。右:各次开关谐波经 后的纹波电压——只有 附近的两三条被显著放大。

3.3 探头负载与热噪声

  • 探头/前端输入电容:它直接并在被测节点上,把 变大、 拉低:。这是"测量改变被测对象"的经典问题: 越高(片上节点、 越小),探头电容越致命;用高阻有源探头(皮法级)或把前端做进片内是常见对策。
  • PDN 自身热噪声: 的热噪声电压密度 pV/(),在 250 MHz 带内积分只有 V rms,远低于前端自身的量化/亚稳态噪声。在本文参数下可以忽略——但如果 PDN 用的是高 高 的谐振结构,这个结论要重新算。

3.4 "谐振落在监测带内"意味着什么

这是把 PDN 与 ADC 连起来最容易被忽略的耦合: 处 最大 → 纹波峰最大(好),但同一个 也把该频段的热噪声、以及后级所有高频噪声"感受"得更强;更要命的是,如果 (失配 spur 族中心)或 与 重合,杂散会被 PDN 从输入端"盖章"进去,看起来就像真实的纹波分量。工程做法:把 VCO 的 与 设成非整数比,让 spur 族分散开(代价是不能逐 bin 对账,仿真验证与芯片实测要分开做)。


4. 六类非理想因素(机理 → 公式 → 实现 → 验证 → 坑)

本节所有"验证"数字都来自与 MATLAB 实现 1:1 等价的 Python 参考实现(run_verify.py,19 项检查,最大相对误差 7.7×10⁻¹¹,0 项失败)。

4.1 相位量化噪声(eq.5–8)

机理/公式:见 §2.2。带内 ;闭环 SQNR(eq.7)在本文参数下 81.74 dB,等效位数 bit。

实现要点:必须走"绝对相位 → floor → 差分",而不是"逐窗增量累加"。前者让残留相位 自然跨拍传递(整形成立),后者会把量化误差变成每拍独立的白噪声(整形消失)。

验证:eq.(7) 与 eq.(5)/(6) 的功率比一致到 2.2×10⁻⁵;离散精确求和 vs eq.(6) 连续积分差 1.55%;32~96 次集平均与离散理论在统计涨落内一致。

坑:① 拿单次实现的多音频谱去比理论底噪会差 20~60 倍(fractional-N 杂散谱线是离散的,请看图 3 的说明);② 定义要与带宽口径一致(本文 , MHz)。

4.2 VCO 调谐非线性(eq.26/27)

机理:。 产生 、 产生 ,并且因为无采样保持,每个谐波都要乘上的 sinc 窗内平均因子。

(单边幅度,单位 counts)三次项同时压缩基波:。

验证: GHz/V²、 GHz/V³、 V 时 counts(−42.5 dBc)、 counts(−46.1 dBc),与实现逐 bin 一致到 / ;基波压缩后 25.967 counts,与修正公式一致到 。

图 4 左:HD2/HD3 随输入幅度分别按 、 上升(虚线为理论斜率),红蓝空心点(仿真 FFT)压在闭式线上。右:、 包络—— 时 HD2 归零、 时 HD3 归零,这是&qu
图 4 左:HD2/HD3 随输入幅度分别按 、 上升(虚线为理论斜率),红蓝空心点(仿真 FFT)压在闭式线上。右:、 包络—— 时 HD2 归零、 时 HD3 归零,这是"无采样保持"独有的现象:选输入频段时可以利用这些零点把非线性杂散推到零。

坑:非线性项不能只在时域写 然后问"为什么频谱对不上"——窗内积分必须做,否则在 接近 时误差可达 20 dB 以上。此外若同时存在多个纹波谐波,非线性会产生大量交调项,这些交调项与真实的纹波谐波落在同一频率栅格上(因为 的谐波就是 的整数倍),会与真实分量矢量相加,造成"幅度对不上"。要做严格对账,就用单音激励(本文的做法)。

4.3 延迟单元失配 → Bessel spur 族(eq.28–33)

机理: 相 VCO 的延迟单元之间总有失配,等效为相位误差

失配百分比

因为 本身含被调制的频率, 经 Jacobi–Anger 展开后变成以 为中心、间隔 的一族谱线:

注意两点:① spur 幅度含 ——失配误差是作为"残留相位"注入的,因此同样被一阶整形(低频被压);② 可以很大(本文 rad),此时 在 附近才有显著值,spur 族会拖出很远。

验证:3% 失配()时 的 spur 分别为 、、、 counts(−105/−82.6/−107/−79.2 dBc),与闭式 eq.(33) 一致到 (这是全表最大的那一项,仍是机器精度)。

图 5 未量化的失配 spur 频谱(蓝)与 Bessel 闭式理论(红空心三角)逐点重合,中心在  MHz、间隔  MHz。注意纵轴范围:这些 spur 比信号低 80~105
图 5 未量化的失配 spur 频谱(蓝)与 Bessel 闭式理论(红空心三角)逐点重合,中心在 MHz、间隔 MHz。注意纵轴范围:这些 spur 比信号低 80~105 dB,是一条"很深的底"。

坑(很重要):

  • 失配必须作为残留相位差分注入(),不能直接加到输出计数上,否则整形特性丢失。
  • 经相位量化器后,同一条 spur 会从 变成 counts——因为 floor 交叉事件本身就是量化噪声,会把深达 −105 dBc 的谱线淹掉。所以想验证 Bessel 公式,必须走"未量化"的精确路径;这本身就是一条建模经验:先在没有量化器的情况下把模拟域的公式验证干净,再谈量化后的系统指标。

4.4 采样时钟抖动(eq.9–19)

机理:抖动通过两条路径进入。(a) 采样不确定(SU):采样时刻偏移 使相位误差 (正比于输入导数);(b) 积分时间(IT):窗长变成 ,使积分误差 被积函数本身。合成后

由的窗长扰动给出

验证:① 确定性抖动 ps MHz 产生 边带,精确积分仿真的边带幅度与 eq.(11)(12) 线性化模型一致到 (残余是 的二阶项);② 标度律验证: 时二阶残差精确降为 1/4,证明误差确为 (这比单点比对更有说服力);③ 随机抖动 ps:蒙特卡洛 64 次全带 SNR dB,闭式 eq.(15)+(18) 给 56.900 dB,差 0.024 dB。

图 6 左:确定性抖动音的边带——蓝(精确积分)与红(论文线性化模型)几乎完全重合。右:随机抖动把噪声搬移到  附近形成裙边;全带 SNR 56.9 dB,而 5 MHz 带内 1
图 6 左:确定性抖动音的边带——蓝(精确积分)与红(论文线性化模型)几乎完全重合。右:随机抖动把噪声搬移到 附近形成裙边;全带 SNR 56.9 dB,而 5 MHz 带内 104.7 dB(同一份数据、不同口径,差 47.8 dB)。

坑(两条,都踩过):

  1. 口径:论文 eq.(16)/(19) 是"总误差功率"口径(全带)。本文同一仿真全带 56.9 dB、带内 104.7 dB。拿带内数字去对论文公式,会以为模型错了。
  2. 漏乘输入幅度:IT 抖动路径的误差 ,写成代码时极易丢掉 中的 ,结果误差正好差 10 倍()。这类"量纲/因子"错误是建模里最常见的假 bug。

4.5 VCO 相位噪声(eq.20–25)

机理:VCO 自身相位噪声 先被采样混叠( 折叠求和),再被差分整形:

验证:取 dBc/Hz 的 包络(10 kHz 极点),带内 rad(必须 rad,否则量化器会被"推着走",出现爬坡/饱和),整形后的噪声包络与理论线逐 bin 一致到 。

图 7 绿点线为输入的 VCO 相位噪声包络,红虚线为"混叠 + 整形"后的理论包络,蓝为仿真——低频段被  压掉、高频段几乎原样通过( 时增益为 4)。这就是
图 7 绿点线为输入的 VCO 相位噪声包络,红虚线为"混叠 + 整形"后的理论包络,蓝为仿真——低频段被 压掉、高频段几乎原样通过( 时增益为 4)。这就是为什么 VCO 型 ADC 的高频噪声底主要由量化 + 相位噪声共同决定。

坑:混叠求和必须做(本文取 次折叠),否则高频段会差 3 dB 甚至更多;另外要检查带内 这个"线性区"前提。

4.6 DFF 亚稳态(eq.36–41)——本组参数下的瓶颈

机理:锁存器的亚稳态窗口 内可能锁到错误相位,等效为每拍的计数误差。论文给出上界

数字: ps、 ns(输入正峰处的最短 VCO 周期)→ → (最坏情况),,闭式 SNR(eq.41) dB。蒙特卡洛仿真给 38.83 dB,与闭式一致。

坑(★ 最需要注意的是这个): 公式里的 把亚稳态窗口量化到整数个 VCO 半周期,所以只要 ,本组参数下就得到 ——即每拍可能错最多一整个 VCO 周期( rad 全量程)。若按这个上界注入,其整形后噪声会超过百毫伏级的纹波信号(本文实测:全模型 SNR 直接变成负值),说明该配置不可用。工程结论: 必须做到 ,同时 与计数器位宽要匹配;论文示例宣称的 59.04 dB 需要 ,也就是完全不同的 / 组合(论文未给该例参数,本文如实给出差异,见 §7)。


5. 全模型与灵敏度

把 §3 的 PDN 纹波(8 个谐波)+ §4 的六类非理想因素一起打开,做 16 次集平均(噪声随机、纹波确定),得到:

图 9 全模型输出频谱(相对最强纹波谐波)。8 个纹波谐波(绿三角)全部清晰高于本地噪声底(每 bin SNR 3.4~26.6 dB);红虚线为 PDN 谐振  MHz,紫点划线
图 9 全模型输出频谱(相对最强纹波谐波)。8 个纹波谐波(绿三角)全部清晰高于本地噪声底(每 bin SNR 3.4~26.6 dB);红虚线为 PDN 谐振 MHz,紫点划线为失配 spur 族中心 MHz。注意高频段噪声底被一阶整形抬高,条纹状结构是 fractional-N 杂散谱线经集平均后的残留。

逐谐波灵敏度(等效输入噪声按 折算):

谐波 频率 (MHz) 纹波输入 (µV) 输出幅度 (counts) 本地噪声底 (counts²) 每 bin SNR
1 7.8125 37.7 0.0249 7.19e−6 16.3 dB
2 15.625 81.4 0.0481 2.69e−5 16.3 dB
3 23.4375 140.4 0.2372 6.13e−5 26.6 dB
4 31.25 236.7 0.1256 9.87e−5 19.0 dB
5 39.0625 442.4 0.0260 1.54e−4 3.4 dB
6 46.875 1114.9 0.0512 1.88e−4 8.4 dB
7 54.6875 1033.6 0.0482 2.71e−4 6.3 dB
8 62.5 510.8 0.0637 3.65e−4 7.5 dB

灵敏度换算(这是纹波监测最该关心的指标):

等效输入噪声

本文全模型下:100 MHz 带内平均 44.5 µV/bin,而 5 MHz 带内只有 2.03 µV/bin——同一套硬件,靠一阶整形在低频端把灵敏度提高了约 22 倍。这解释了为什么 PSN 监测通常把主带宽压在 DC 到几 MHz,而只把 FFT 的"观察窗"开到覆盖 。

一个必须说清的口径问题:如果你把"8 个纹波谐波功率之和"除以"整带(0–100 MHz)除谐波外的全部功率",会得到 −18 dB 这种看起来很糟的数字。这不是有效指标,因为 ① 纹波谐波本身就是被测的"信号"(不是杂散),② 整带功率里含大量 fractional-N 杂散谱线(离散谱线,不能当连续噪声底)。正确的做法是逐 bin 判 SNR(上表)或给等效输入噪声——这也是我在建模过程中被"负 SNR"误导了一轮之后才想明白的事。


6. 让"频谱 = 理论"的六条工程准则 + 验证表

如果你的目标是"仿真频谱与闭式理论逐 bin 数值精确对应"(而不是"趋势差不多"),下面六条基本是充分必要的:

  1. 一切频率取整数 bin(相干采样)。 全部写成 。否则 FFT 泄漏,逐 bin 对账无从谈起。这是唯一一条无法靠增加算力绕过的约束。
  2. 用闭式解析积分,不用数值积分。 展成复指数逐项积分可得到 1e−16 级精度;而任何数值积分(梯形/cumtrapz)都会把相位误差累积到 1e−6~1e−3,直接毁掉 的目标。
  3. 相位用"绝对相位 + floor"记账,不要"增量累加再量化"。前者让残留相位自然跨拍传递(一阶整形成立且可解析验证),后者会引入累积误差并破坏整形。
  4. 非理想因素要选对注入点:失配、相位噪声走"残留相位"路径(因此被整形);抖动走"窗口边界"路径(不被整形);亚稳态走"计数"路径;非线性走"窗内积分"路径。注入点选错,频谱形状会完全不对(而且看起来"很像"有噪声,最难查)。
  5. 验证分档容差:确定性项 1e−10(机器精度)、解析近似项 1e−2(如连续 vs 离散积分)、统计项 5e−2(蒙特卡洛)、模型近似项 1e−3(论文的线性化模型)。把所有项塞进同一个容差,结论必然失真。
  6. 用标度律而不是单点验证: 残差应降到 1/4; 时 HD2 应涨 4 倍、HD3 涨 8 倍; 整数倍时 spur 位置应线性移动。标度律能证伪错误的结构,单点吻合不能。
图 10 确定性项验证汇总(15 项,另有 4 项统计/模型项在验证脚本里单独判定):横轴为"仿真 FFT 与闭式理论的相对误差",全部落在 1e−10 容差线
图 10 确定性项验证汇总(15 项,另有 4 项统计/模型项在验证脚本里单独判定):横轴为"仿真 FFT 与闭式理论的相对误差",全部落在 1e−10 容差线的左侧,最大 7.7×10⁻¹¹;其中 12 项 ≤3.4e−13, 一项误差为 0(解析恒等式)。

完整验证清单(run_verify.py / verify_exact.m,19 项,节选):

编号 检查项 类型 实测相对误差
V1 相位增量 vs eq.(3)(4) 闭式 精确 2.2e−16
V2 信号 bin 幅度 vs 精确 4.2e−16
V3 量化器恒等式 与残留相位统计 精确 4.4e−12
V4 SQNR:eq.(7) vs eq.(5)/(6) vs 仿真 统计 2.2e−5 / 1.55% / 9.9%(集平均涨落)
V5 HD2 / HD3 / 基波压缩 vs eq.(26)(27) 精确 8.5e−14 / 1.1e−13 / 4.1e−16
V6 失配 spur vs Bessel 闭式 eq.(33) 精确 7.7e−11
V7 抖动边带 vs eq.(11)(12); 标度律 模型 2.0e−7;残差比 0.2500
V8 相位噪声整形包络 vs eq.(22) 精确 1.5e−14
V9 亚稳态 SNR vs eq.(40)(41) 统计 38.83 vs 39.53 dB
V10 PDN 、纹波谐波、谐振噪声增益 精确 0 / 3.3e−13

7. 论文勘误与三处口径陷阱

① eq.(3) 的直流项少了 。 论文印作 ,但积分对象是 ,应为 。若照抄,由 eq.(1) 得到的计数值 会差 倍(也就是相位差一整圈,复位计数器的输出会完全错位)。

② eq.(27)/(33) 给的是"双边 bin 功率",不是单边幅度。 直接拿它当幅度用,所有谐波/spur 幅度会差 2 倍(6 dB)。本文所有公式都显式做了单/双边换算。

③ eq.(37)+(41) 的示例不自洽。 按 与 eq.(40) 反解,要得到论文示例的 59.04 dB 需要 ——而该公式在本组 64 相参数下给出 (详见 §4.6)。论文未给该例的 ,本文按公式原样计算并如实给出 39.5 dB 的差异,而不是"调参凑数"。

另有两处阅读陷阱(不是错误,但不澄清会让人怀疑模型):

  • 的量纲:论文示例 MHz,若按"Hz/V"读,则 ,VCO 频率会在输入负峰处过零、线性模型失效。合理的读法是把 当作角频率增益(rad/s/V),等效 MHz/V,此时 MHz 与 同量级,模型自洽。做纹波监测时更要注意:本文 PDN 场景的纹波只有 37.7 µV1.11 mV,对应频偏 0.0752.2 MHz,远小于 ,线性区完全够用。
  • 抖动 SNR 的全带/带内口径:见 §4.4 的坑 1。

8. Trade-off 汇总

设计/参数 调大它 代价与副作用
相数 量化步长 变小,SQNR ↑ 6 dB/倍 失配 spur 族更密()、亚稳态 更致命 → 有最优值
过采样率 OSR 带内量化噪声 ↓ 3 dB/倍(一阶) 监测带宽 ↓;同样的时钟下观察窗变窄
比 取整数比 → spur 精确对齐、便于仿真对账 实际芯片里反而是"spur 恰好落在信号上"的灾难;设计取无理比(抖散),仿真验证取整数比(对账),两者分工
灵敏度 ↑ 调谐非线性(HD2/HD3)↑、易被纹波推出线性区
—— 必须 ≪1:它直接决定亚稳态上限;本组参数(500 ps vs 4.65 ns)已给到最坏上界
探头/前端电容 —— , 越高越致命
PDN 的 谐振处纹波峰更易观测 噪声/杂散同比例放大,灵敏度非单调; 高还意味着谐振频率对温度/老化更敏感
监测带宽 覆盖更多谐波与 带内噪声按整形曲线增长,灵敏度变差(本文 100 MHz vs 5 MHz 差 22 倍)

9. 复现

本模型有两套等价实现(共享同一套参数与公式,逐行对应):

MATLAB 包(vco_adc_pdn/,13 个函数 + 7 个 demo + 验证脚本)

vco_adc_pdn/
├── run_all.m            一键跑 verify + demo1..7
├── verify_exact.m       逐项 PASS/FAIL 表(4 档容差)
├── src/  p_params       论文基准 & PDN 纹波两套参数
│         p_int_cos      闭式积分引擎(∫cos 乘积)
│         p_phase_inc / p_phase_abs / p_quantize / p_spectrum / p_meter
│         p_theory       全部闭式公式(标注论文公式号)
│         p_imperfection 4 类非理想源(mismatch/phasenoise/jitter/metastability)
│         p_pdn          PDN 阻抗 / 谐振 / 纹波 / 热噪声 / 探头负载
└── demos/ demo1..7      每个非理想因素一个,末尾直接打印"理论 vs FFT"对照表

Python 参考实现(python_ref/):exact_core.py + run_verify.py(19 项检查)+ verify_output.txt(实测日志)。

运行:cd vco_adc_pdn && matlab -batch run_all(Octave 亦可,verify_exact.m 里对 rng/randi 做了兼容处理)。改参数时守住 §6 第 1 条:任何新频率都写成 ,否则无法逐 bin 对账。

想加新场景:PDN 用 p_pdn 换 ;把"纹波电流谐波"换成你的实测频谱即可;灵敏度用 §5 的等效输入噪声公式折算。


10. 参考

  1. J. Kim, T.-K. Jang, Y.-G. Yoon, S. Cho, "Analysis and Design of Voltage-Controlled Oscillator Based Analog-to-Digital Converter," IEEE Trans. Circuits Syst. I, 2010. (本文公式骨架 eq.1–43)
  2. 片上 PSN 监测的方向性综述与"非相干时钟"采样要求(见本站另一篇:电源纹波监测中的"非相干时钟"生成)。
  3. 关于 PDN 阻抗与自谐振的通用模型(并联 RLC、、去耦网络)——任何一本信号完整性教材的 PDN 章节。

评论