
很多人第一次做交通灯控制器是在数字电路实验课上一个状态机四个状态红黄绿来回切计数器决定每个状态停留几秒。我当年做完这个实验的时候完全没想到它跟LC VCO——电感电容压控振荡器——是同一类问题。直到最近重新翻拉扎维第二版教材把振荡器章节和相关射频内容串起来才意识到交通灯和LC VCO都在做同一件事用一段稳定的循环来定义时间。这篇文章是“[拉扎维2026]”系列的第6篇适合正在啃拉扎维、或者准备接触射频模拟IC设计的读者。我会把负阻原理、起振条件、相位噪声这些概念全部用“交通灯”这条线串起来讲最后给一份从原理图到仿真验证的实操路径。1. 交通灯状态机和LC VCO之间隔着什么1.1 从状态循环到自持振荡本质是同一件事交通灯控制器的逻辑很容易描述S0红灯保持30秒S1红黄保持5秒S2绿灯保持25秒S3黄灯保持5秒然后回到S0。这个循环一旦启动不需要外部干预就能一直跑下去。用专业一点的话说它是一个自持的时序系统。这跟振荡器的定义极其相似。振荡器就是一个不需要外部周期激励、自己就能产生周期信号的电路。交通灯能自持是因为背后有一个外部时钟源加一组计数器LC VCO没有外部时钟它自己就是时钟源。LC谐振腔里的电磁能量在电感和电容之间往复交换交叉耦合管对不断补充能量振荡就能维持下去。数字世界里的“持续循环”靠计数器归零重启模拟世界里靠能量谐振这是两者最本质的分野。如果你把这个类比再推进一步会发现所谓“状态循环”本身就是一种振荡。交通灯的状态序列周期是65秒对应频率约0.015HzLC VCO的振荡周期是纳秒级对应频率GHz。两者频率差了十几个数量级但系统层面的结构高度一致一个有增益的环路加一个决定周期的选择性机制。交通灯的选择性机制是计数器分频比LC VCO的选择性机制是LC谐振回路的Q值。1.2 数字思维看周期模拟思维看频谱交通灯工程师关心的是红灯是不是准时切换会不会多亮几十毫秒导致路口混乱。这类问题在时域里通过状态时长就能解决。射频工程师看VCO时则要同时站在时域和频域两个角度时域看波形周期是否一致频域看能量是否集中在一个干净的载波上。数字状态机对噪声是免疫的——只要电压没有越过逻辑阈值时序就基本不受影响。LC VCO完全不同谐振腔里的电压是连续的任何叠加在电感电流或电容电压上的扰动都会转化为相位偏移。这就是LC VCO最核心的指标不是频率精度、而是相位噪声的原因。相位噪声的直观含义是本应完全稳定的振荡频率实际在中心频率附近做随机漂移。打个比方交通灯的红灯时长理论上是30秒但因为有噪声实际每次亮灯时间都在29.99秒到30.01秒之间抖动。如果这个抖动太大早晚高峰的交通流就会乱掉。所以数字系统的周期精度由计数器位数和时钟源精度决定模拟振荡器的周期精度由谐振腔Q值和器件噪声决定。从交通灯切入LC VCO最大价值是帮你把“周期”这个概念从数字的离散计数切换到模拟的连续谐振之后的负阻、相位噪声就不再是孤立的公式而是一个系统问题。1.3 为什么拉扎维体系在这个节点放振荡器拉扎维第二版把振荡器放在反馈系统之后逻辑很清楚LC VCO的本质就是一个正反馈系统。交叉耦合管对提供环路增益LC谐振腔提供选频两者凑在一起满足起振条件后系统不再是放大器而变成了振荡器。如果你之前只做过运放、带隙基准这类负反馈电路切到振荡器时容易形成一个思维误区以为负反馈才是模拟设计的核心。振荡器恰好是“反着用反馈”——把反馈环路的相位条件从负反馈的180°翻到0°360°让增益在特定频率处大于等于1系统就会自发地越晃越大最终被非线性机制拉入稳态。LC VCO是理解“从稳定到不稳定再到自持”的最佳载体这也是为什么拉扎维系列通常在讲完反馈、频率响应之后才把振荡器拿出来。2. 负阻原理LC VCO里最反直觉的一环2.1 理想LC回路为什么能一直振荡看一个理想LC并联回路。初始时刻电容上有电压V0存储电能E 1/2 · C · V0²。随后电容放电电流流入电感电能变成磁能电感电流到达峰值后又把能量还给电容。这个过程如果没有损耗电容电压会以正弦形式无限振荡下去频率是f0 1 / (2π√(LC))这是每个接触过电路基础的人都会背的公式。但现实中没有理想元件。片上电感和变容管都有寄生电阻还有从谐振腔耦合到衬底、耦合到后级负载的损耗整体等效成一个并联电阻Rp。能量每次往返都会有一部分变成热散失掉。如果没有任何补充机制振荡幅度会指数衰减最终停摆。LC VCO的使命就是做一个“能量泵”把每个周期损耗的能量补回来。这个泵就是交叉耦合管对。理解了这一点再看后面的负阻推导就不会晕。2.2 交叉耦合管对如何“给出能量”以NMOS交叉耦合对为例M1的栅极接M2的漏极M2的栅极接M1的漏极两个源极接在一起通过尾电流源接地。对这个结构做小信号分析在差分输入端加上一个小的差模电压v_id看从端口流入的电流i_in你会发现电流方向和电压变化趋势是相反的。换句话说从端口看进去的等效电阻是负的R_in -2/gm负号的含义非常关键。普通正电阻是电流从高电位流向低电位对外消耗能量负阻是电流方向与电压趋势相反对外表现为“给出能量”。把这样一个负阻并联到LC谐振腔两端它就能把Rp每周期损耗的能量补回来振荡器就能维持等幅振荡。起振条件用这个视角看非常直观负阻绝对值必须小于谐振腔的等效并联电阻也就是2/gm Rp ⇒ gm 2/Rp如果gm太小能量泵不给力损耗大于补充振荡起不来gm越大起振越快。但gm不能无限大尾电流过大会让振荡摆幅很快碰到电源电压波形过早进入非线性区反而会恶化相位噪声。设计时一般取2到4倍的裕量。2.3 换到环路增益视角验证一遍负阻分析很直观但我建议你再用巴克豪森条件复核一遍两个视角结论一致才说明理解到位。交叉耦合的两级都是共源放大器每一级栅到漏反相180°两级级联后相位接近0°360°。LC谐振腔在谐振频率处阻抗最大且相位为零不影响相位条件。注意差分LC负载的中点可以视为虚地因此每个管子漏极看到的负载是Rp/2。从M1栅极注入一个小信号v_x经过M1放大后输出为-gm·v_x·(Rp/2)这个电压直接驱动M2栅极再经M2放大回到M1栅极。环路增益写出来是A_loop (gm · Rp / 2)²起振条件是A_loop ≥ 1也就是gm·Rp/2 ≥ 1即gm ≥ 2/Rp。和负阻分析得到的判据完全一致。我见过不少初学者把环路增益误写成gm·Rp得到起振条件gm 1/Rp然后去流片结果仿真里振荡器起不来就是这个二分之一的viterbi被忽略了。2.4 几种常见VCO拓扑怎么选LC VCO不是只有NMOS交叉耦合一种。实际项目里常见的还有互补交叉耦合和尾电流滤波型我把它们放在一起对比拓扑负阻等效优点主要代价NMOS交叉耦合-2/gmn结构简单起振电流低适合低压尾电流源噪声贡献大互补交叉耦合NMOSPMOS-2/(gmngmp)电流复用相位噪声好器件多摆幅受电源限制尾电流滤波在尾节点加谐振同互补型抑制尾电流2ω0噪声混叠多一个电感面积大我的经验是对指标要求不高的普通PLLNMOS交叉耦合完全够用到了射频收发机或者高速SerDes的时钟源优先考虑互补交叉耦合加尾电流滤波。后者的相位噪声改善立竿见影代价是版图面积和设计复杂度。3. 压控与频率设计从“定时”到“可调”3.1 变容管决定频率怎么被控制LC VCO里的“压控”依赖变容管。变容管本质上是一个偏置电压控制结电容的器件反向偏压越大结电容越小偏压变小电容变大。常见的实现是PN结变容管和积累型MOS变容管。PN结变容管的C-V曲线比较平缓调谐范围有限积累型MOS变容管的电容变化更陡适合需要宽调谐范围的场景。设计时第一个问题是变容管工作点在哪儿。反向偏压太小二极管会进入正偏区把Q值拉低反向偏压太大电容变化率趋缓Kvco太小。一般把控制电压的静态工作点放在C-V曲线斜率最大的区间附近。比如电源电压1.2VVctrl静态值可以取0.6V左右然后通过PLL环路让它在0.2V到1.0V之间摆动。3.2 从频率公式推KvcoVCO总电容由固定电容和变容管电容并联组成C_total(Vctrl) C_fixed C_var(Vctrl)振荡频率是f(Vctrl) 1 / (2π√(L · C_total(Vctrl)))压控增益Kvco定义为频率对控制电压的导数Kvco ∂f / ∂Vctrl -f0 / (2 · C_total) · ∂C_var / ∂Vctrl负号表示控制电压增大、电容减小、频率升高。看起来只是书上的推导实际设计里这个公式很有用。比如你定了目标频率5GHz估算C_total是200fF变容管电容变化率是50fF/V那Kvco大约就是5GHz / (2·200fF) × 50fF/V算出来约625MHz/V。这个值偏高意味着控制电压上只要混入1mV噪声输出频率就会偏625kHz带外噪声表现会很差。所以Kvco不是越大越好。PLL设计里经常要在调谐范围和相位噪声之间做折中调谐范围不够工艺偏差和温度漂移会覆盖不住Kvco过大控制线上的噪声会被直接放大成相位噪声。一般把所需频段的1.2到1.5倍作为调谐范围目标Kvco尽量控制在几十到两三百MHz/V这个量级。3.3 调谐范围、电感量和相位噪声的三角关系很多初学者一上来就追求大调谐范围结果发现电感做的很小相位噪声却差了几个dB。这里的关系是调谐范围要增大变容管占总电容的比例就得提高总电容跟着变大为了维持频率电感L只能缩小。片上电感的Q值在高频下主要由金属损耗和衬底涡流损耗决定电感做小以后占用的金属面积减少但谐振腔的总等效电阻Rp Q·ωL也会下降负阻余量变小相位噪声随之恶化。换句话说调谐范围、电感面积、相位噪声三者互相拉扯。设计流程上建议先根据噪声预算把可接受的相位噪声定下来反推所需的Q值和摆幅再去定电感和变容管的大小而不是先拍一个调谐范围再补救。4. 相位噪声红灯时长为什么会抖动4.1 通信系统为什么怕它相位噪声在时域看就是周期边沿的抖动。对无线收机来说本振信号由VCO加PLL产生。如果本振有相位噪声混频时会把相邻信道的信号叠到目标信道里这叫倒易混频。比如WiFi信道间隔20MHz本振在20MHz偏移处的相位噪声是多少直接决定接收机能承受多强的邻道干扰。在数字系统里相位噪声表现为时钟抖动。高速ADC/DAC对时钟抖动极其敏感信噪比和抖动的关系可以近似写成SNR ≈ -20 · log(2π · f_sig · t_jitter)假设输入信号频率1GHz时钟抖动100fs算出来SNR约64dB。这个数字刚好卡在许多中端ADC的指标边缘。所以不管是无线还是有线只要电路里有“时间基准”相位噪声就是一个绕不开的指标。4.2 Leeson模型怎么读评估相位噪声最常用的经验模型是Leeson公式L{Δf} 10 · log [ (2FkT / P) · (1 (f0 / (2Q·Δf))²) · (1 Δf_1/f³ / |Δf|) ]这里有几个关键部分。第一项2FkT/P是基础噪声层F是振荡器噪声因子P是振荡信号功率信号功率越大这个底噪越低。第二项是1/f²区域直接由谐振腔有载Q值决定Q越高同样偏移频率下的相位噪声越低。第三项是1/f³区域来自器件闪烁噪声的上变频。实际读这个公式时我会提醒自己Leeson模型里哪些参数是你真正能设计的。Q值靠电感结构和版图优化P靠增加尾电流和摆动幅度F靠选择器件尺寸和拓扑。闪烁噪声上变频的机制比较复杂单靠Leeson模型不够需要更精确的时变分析。4.3 拉扎维的线性时变视角为什么更接近真相Leeson模型有个隐含假设噪声对振荡器的影响和它注入的时刻无关。但真实振荡器不是这样。一个电流脉冲打在谐振电压的过零点附近对相位的影响最大打在波峰上主要影响幅度、对相位几乎没有扰动。这种“注入时刻敏感性”是周期性的拉扎维用ISF冲激敏感函数来描述它。ISF是一个与振荡波形相关的周期函数Γ(x)。它把时变系统变成了类似时不变的形式每个噪声源对相位噪声的贡献等于它的功率谱密度与ISF傅里叶系数的卷积。这个视角最大的价值在于解释了一些Leeson模型解释不了的现象比如尾电流源噪声为什么会在2ω0处被混叠到载波附近以及为什么对称差分结构的相位噪声往往优于非对称结构。对实际设计的帮助也很直接让波形上升沿更陡、让交叉点更陡峭可以减小ISF在过零点附近的响应把尾电流源加滤波电容或谐振网络可以抑制2ω0处的混叠路径。这些都是从线性时变模型导出的工程结论。4.4 三个降相位噪声的实操方向第一提高谐振腔Q值。片上电感放在最顶层厚金属下方不打多余过孔远离有源区和衬底噪声源。可以用patterned ground shield或者悬浮地来减小衬底涡流损耗但这要根据仿真结果决定不要教条。第二优化偏置和尾电流噪声。交叉耦合管和尾电流源管用较长的沟道长度来降低1/f噪声尾电流源漏端加谐振到2ω0的LC滤波网络能有效抑制尾噪声混叠。如果面积不允许退而求其次加一个大的片上去耦电容也有改善。第三提高振荡摆幅。摆幅越大输出信号功率越大基础噪声层2FkT/P就越低。但要注意进入电压限制区后波形被电源钳位ISF反而变差相位噪声可能出现“增加电流反而变差”的拐点。我一般会在仿真里扫电流找到这个拐点再定偏置。5. 从原理图到仿真验证实操阶段复盘5.1 瞬态仿真的起振条件检查在Cadence Virtuoso里搭好LC VCO原理图后第一件事不是跑PSS而是先跑瞬态仿真确认它能起振。理想LC回路没有初始扰动仿真器不会自己让它振起来。我这里加初始电压非常关键比如在谐振腔正负两端设置一个1mV到10mV的初始差模电压。一个比较标准的设置是transient仿真的停止时间设为200ns到500ns精度用moderate或conservative最大步长不要超过振荡周期的二十分之一。对5GHz振荡器来说周期200ps最大步长就设10ps。跑完看波形是否单调增长后稳定到某个摆幅如果是起振条件满足如果振幅一直指数衰减或者干脆是直流说明gm不足或者负阻失配需要加大尾电流或管子宽长比。我踩过的一个坑是忘记加buffer。谐振腔直接接测试负载后负载电容改变了谐振频率测试看到的频率跟设计值差了10%浪费了很多时间。正确做法是在谐振腔和输出焊盘之间加一个源跟随器或反相器缓冲把负载隔离掉。5.2 PSS和PNOISE仿真设置瞬态仿真确认起振后用PSS找周期稳态再用PNOISE看相位噪声。PSS设置里最关键的是beat frequency要填振荡频率的估计值比如5GHz。如果填得太偏仿真可能不收敛如果电路包含分频链还可以把beat frequency设为分频后的频率减少仿真开销。PNOISE的相位噪声仿真类型设置为phase输出节点选振荡器输出。注意参考边沿设置成PSS的振荡边沿否则仿真器不知道以哪个过零点作为参考。扫描方式建议用对数扫描从10kHz扫到100MHz看够不够覆盖你关心的偏移区间。仿真中常见的问题是相位噪声曲线在低频出现异常上翘或者在高频出现平台。前者通常是PSS的谐波数不够把number of harmonics从默认值往上加比如加到15或者20后者可能是PNOISE的输出采样有混叠把采样率设置到最高或者用带通输出的方式规避。5.3 版图布局中的对称性与电感放置流片不是仿真版图对LC VCO性能的影响有时候能到5dB相位噪声级别。最重要的一条是差分对称。交叉耦合管的栅极、漏极连线必须等长对称变容管和电感的连接也要镜像对称任何不对称都会把共模噪声变成差模扰动。电感的放置要单独考虑。片上电感占用面积最大要放在最顶层金属下方不要走长信号线电感中心区域不要放任何有源器件否则衬底涡流会明显降低Q值。电感的交流电流非常大周围1到2个器件间距内不要放置敏感的偏置电路避免磁耦合干扰。变容管的位置也很关键。它直接接在谐振腔上任何寄生电容都会改变振荡频率所以变容管到电感的连线要尽可能短粗。电源和地的去耦不要省在电感供电附近放足够大的去耦电容因为电源上的毛刺会直接调制VCO频率。5.4 我踩过的三个实际坑第一个坑是初始条件没加仿真器一直输出直流。我一度以为电路没起振反复调晶体管尺寸后来才想起来理想LC回路没有噪声源根本不会自己动加个1mV初值就解决了。第二个坑是PSS的beat frequency设置偏低仿真器在试着找谐波时收敛到了一个不稳定的解相位噪声曲线出现整段上移。后来把谐波数从10加到20曲线恢复正常。第三个坑是版图阶段在电感下方走了一条比较长的信号线最初觉得离得很远没事结果实测相位噪声比仿真差了好几个dB。拆掉那条走线、用电感周围净空之后指标回到正常范围。电感正下方和正上方都是敏感区域这个教训让我记住了“近电感区域只留地参考不跑其他信号”。6. 按拉扎维第二版把这章读透的路径6.1 阅读顺序建议如果你手头的是拉扎维第二版教材我不建议直接从振荡器章节入手。我的建议是先快速翻一遍反馈章节把环路增益、相位裕度、正反馈条件这些基本概念捡起来再去看振荡器章节。拉扎维在振荡器章节里默认你已经理解反馈系统如何从稳定走向不稳定没有这个基础读负阻推导会感到突兀。振荡器章节内部也有一个顺序。先看负阻振荡器的基本思想再看三种以上具体拓扑之后是相位噪声的时变分析。相位噪声部分对初学者来说是全章最难啃的地方可以跳过部分数学推导先抓住ISF的物理含义。读完后回到PLL章节因为VCO在真实系统里几乎总是和PLL绑定单独学习容易失去上下文。6.2 习题和仿真复现怎么配拉扎维每章后面的习题质量很高但有几道题明显偏难。我的方法是先挑那些“推公式型”的题做比如推导交叉耦合对负阻表达式、计算给定条件下的起振电流、分析尾电流源噪声的变频效应。这些题做一遍对公式的理解会从“眼熟”变成“会用”。仿真复现方面如果公司只有老旧的工艺库也没关系用一个简单的0.18μm PDK照样能搭LC VCO做学习用。工具上Cadence的spectre/RFDE都可以开源的话ngspice也能做瞬态和部分噪声分析只是PSS/PNOISE的支持不如商业工具完整。仿真目标不必追求流片指标能复现起振过程、看到相位噪声曲线随Q值变化就达到学习目的了。6.3 两条实用心得第一学振荡器时一定要动手推一遍小信号等效电路别只记“交叉耦合对提供负阻”这个结论。负阻的推导过程会逼你把差分半电路、跨导、负载阻抗这些基础概念全部过一遍这是普通运放分析练不出来的。第二把VCO放进一个迷你PLL项目里学。哪怕只是理想PLL模型给VCO加上反馈环路你会直观看到VCO的Kvco和相位噪声如何影响环路的带宽和抖动。拉扎维教材本身是从系统角度讲振荡器的单纯把VCO当孤立电路学容易失去重心。就我自己而言从交通灯状态机转到LC VCO最大的收获不是记住了多少公式而是建立了“周期性系统”的统一视角。数字状态机用计数器分段定时模拟振荡器用谐振腔连续选频两者殊途同归。下一次再看到一个振荡器拓扑先问一句“谁是它的周期定义者、谁是它的能量补充者”分析思路会清楚很多。