
1. 项目概述为什么“模拟 CMOSSC 基本单元回顾”不是复习题而是设计者的校准标尺你打开仿真软件准备搭一个开关电容积分器参数填完一跑时域波形毛刺多、频响滚降早、噪声谱抬得高——不是模型没选对是底层单元行为你没真正“见过”。这个标题里没有“教程”“入门”“速成”用的是“回顾”二字恰恰说明它面向的不是刚学完MOS管小信号模型的新手而是已经画过几版版图、调过三次流片后测试数据、在噪声预算里反复抠0.1dB余量的模拟IC工程师。我带过的应届生常误以为“开关电容SC”就是“用开关控制电容充放电”直到他们在16位Pipeline ADC里发现采样保持电路的kT/C噪声贡献占了总输入 referred noise 的37%才明白所谓“基本单元”实则是整个系统精度的锚点。核心关键词CMOS在这里不是指数字逻辑工艺而是强调所有开关、运放、电容都工作在CMOS工艺约束下阈值电压温漂、沟道长度调制、衬偏效应、栅氧漏电这些在数字电路里被掩蔽的非理想性在SC电路里会直接翻译成电荷转移误差SC是开关电容Switched-Capacitor不是缩写游戏它本质是一种离散时间模拟信号处理范式——把连续时间域的电阻、跨导等效为电容开关时钟的组合靠电荷守恒定律实现功能而kT/C这个看似简单的公式背后是热噪声的量子力学根源它决定了SC电路的理论信噪比天花板不是“加个大电容就能压下去”而是存在物理极限的权衡。这个回顾的价值不在于复述教科书定义而在于重建设计直觉当你看到一个SC积分器的增益误差为0.8%你要能立刻判断是开关导通电阻Ron引起的电荷注入还是时钟边沿非理想导致的采样相位偏移抑或电容失配在共模抑制中的放大效应。它适合三类人一是正在做ADC/DAC/PGA芯片设计的工程师需要把仿真结果和实测数据对齐二是高校模拟电路课程的助教要讲清楚为什么SC滤波器比RC滤波器更适合集成三是SoC中负责模拟前端IP集成的验证工程师得看懂PHY层SC电路的时序约束和噪声耦合路径。我做过7次SC相关IP的流片最深的体会是所有“莫名其妙”的失调漂移、无法收敛的蒙特卡洛仿真、版图后仿真的增益跳变90%都能追溯到对这四个基本单元的理解偏差——开关、电容、运放、时钟。它们不是孤立元件而是一个动态电荷搬运系统的四个齿轮。下面我们就从这四个齿轮的咬合开始一层层拆开看。2. 四大基本单元深度解构不是元件清单而是电荷搬运系统的动力学模型2.1 开关单元CMOS传输门不是理想开关闭它是电荷误差的源头发生器教科书里画的CMOS传输门两个MOS管背靠背源漏互换Vgs控制导通。但实际设计中它从来不是“开”或“关”的二值器件而是一个受多重非理想性调制的电荷泵。关键参数有三个导通电阻Ron、关断电容Coff、电荷注入Qinj。Ron决定采样建立时间。以典型0.18μm工艺为例一个宽长比W/L4μm/0.18μm的NMOSRon≈2.5kΩ。若采样电容Cs1pF则RC时间常数τ2.5ps理论上10τ25ps即可建立。但实测中当输入信号摆幅达1.2V时Ron随Vds变化明显——在Vds0.1V时Ron2.3kΩVds1.0V时Ron升至3.1kΩ这种非线性导致电荷转移非线性CHNL。我曾在一个12位SAR ADC的采样开关中因未考虑Ron的电压依赖性导致INL在高位码处出现-1.8LSB的弯曲。Coff是关断状态下的寄生电容主要来自栅极对源/漏的交叠电容。典型值约0.1fF/μm。问题在于当开关关断瞬间Coff上的电荷会通过寄生路径耦合到敏感节点。例如在SC积分器中采样相位结束时开关关断Coff上存储的电荷QCoff×Vgs若Vgs1.8VCoff0.5fF则Q0.9fC——这点电荷被注入到仅100fF的积分电容上就造成9mV的失调。更麻烦的是Coff与衬底电势相关Pwell偏置波动10mVCoff就变0.02fFQinj随之漂移这就是为什么有些芯片在高温下失调突然恶化。电荷注入Qinj才是真正的“隐形杀手”。它由两部分组成沟道电荷释放channel charge injection和栅电容耦合gate capacitance coupling。前者是开关关断时沟道内未耗尽载流子被扫出形成的电流脉冲后者是时钟边沿通过Cgd耦合到输出端的电荷。计算公式为Qinj (Cgd Cgs) × ΔVclock (1/2) × Cox × W × L × (Vth - Vbody)其中Cox是单位面积栅氧电容W/L是管子尺寸Vth是阈值电压。注意第二项与工艺强相关——0.13μm工艺Cox≈8.6fF/μm²而28nm FinFET工艺Cox≈1.2aF/nm²即1.2fF/μm²同样尺寸下电荷注入量差7倍。我在28nm项目中曾用0.13μm的老版图直接移植结果kT/C噪声没变但电荷注入导致的失调漂移增大了4倍重画版图时把开关管W/L从8μm/0.13μm改成4μm/0.13μmQinj降了60%代价是Ron上升35%但建立时间仍在规格内。提示降低Qinj最有效的方法不是减小W/L会恶化Ron而是采用“Dummy Switch”结构——在主开关旁并联一个尺寸相同但时钟反相的dummy管其注入电荷与主开关反向可抵消70%以上。但要注意dummy管的布局必须严格对称否则寄生差异会引入新误差。2.2 电容单元不是无源器件而是匹配性、温漂、寄生的三维战场SC电路里的电容绝非理想平行板。主流工艺提供三种类型MIMMetal-Insulator-Metal、PIPPoly-Insulator-Poly、CAPDiffusion Capacitor。选择逻辑不是“谁容量大”而是“谁最像教科书里的C”。MIM电容匹配性最好ΔC/C典型值0.1%3σ温度系数TC≈±30ppm/℃但单位面积电容值低0.8~1.2fF/μm²且底部金属层易受下方信号线耦合。我做过对比同一版图中MIM电容上方走一条10μm宽的数字时钟线耦合到电容两端的噪声达120μVpp而PIP电容仅35μVpp——因为PIP的top poly和bottom poly之间有厚氧化层隔离。PIP电容单位面积值高1.5~2.5fF/μm²温漂大TC≈200ppm/℃匹配性中等ΔC/C≈0.3%。它的致命伤是电压系数Voltage Coefficient, VCOE当两端电压从0V扫到1.8V电容值变化可达-0.8%。在SC采样电路中若采样相位电容两端电压为0V保持相位升至1.2V则电容值收缩导致电荷再分配比例失准。我们曾因此在一款音频CODEC中发现THD在高输入电平下恶化0.5dB。CAP电容扩散电容单位面积值最高3~5fF/μm²但匹配性最差ΔC/C1%温漂极大TC≈500ppm/℃且严重依赖掺杂浓度。它只适用于对精度要求不高的地方比如电源滤波。电容失配Capacitor Mismatch是SC电路精度的头号敌人。假设一个16位ADC需要电容阵列MSB电容1pFLSB电容15.3fF1pF/2^16若MSB电容失配0.1%则相当于引入1000LSB误差。匹配性由三要素决定面积匹配性∝1/√A所以1pF电容若用单个100×100μm² MIMΔC/C≈0.1%若拆成100个10×10μm²小电容共质心排列ΔC/C可降至0.03%。梯度版图中电容必须按“共质心”Common-Center或“交叉耦合”Interdigitated方式排列避免工艺梯度影响。我见过最典型的错误是把电容阵列排成一行结果实测MSB和LSB电容值呈线性漂移。环境周围器件的热梯度、应力梯度都会影响电容值。某次流片中电容阵列紧邻ESD保护二极管测试发现温度每升10℃电容值降0.05%原因是二极管功耗导致局部热膨胀改变MIM介质厚度。注意电容的“有效电容值”还包含寄生。一个1pF MIM电容实际有0.1pF的bottom plate寄生电容接VDD和0.05pF的fringing寄生。这些寄生在SC电路中不是固定值——当开关状态改变寄生路径导通/关断等效电容突变。仿真时必须用提取后的寄生网表而非理想电容。2.3 运放单元不是增益模块而是电荷搬运的“液压泵”SC电路中的运放核心任务不是放大电压而是强制虚短节点的电荷守恒。它的关键指标与传统运放截然不同增益带宽积GBW决定建立时间。但SC电路中运放只需在半个时钟周期内完成建立。若时钟频率fclk10MHz半周期50ns则运放GBW需满足GBW 2π × fclk × ln(2^N)N为精度位数。对12位系统ln(4096)≈8.3故GBW520MHz。但这只是下限实际需留3倍余量因为运放非线性、压摆率限制会使建立尾部延长。压摆率SR比GBW更致命。假设积分电容Cint1pF输入差分电压Vin1V则运放输出需摆幅ΔVoutVin×(Cs/Cint)1V×(0.5pF/1pF)0.5V。若建立时间tset20ns则SR0.5V/20ns25V/μs。若SR不足会出现“建立不足”settling error表现为增益压缩。输入电容Cin这是SC运放独有的痛点。Cin与采样电容Cs形成分压导致电荷转移损失。例如Cin100fFCs500fF则实际转移到Cint的电荷只有Cs/(CsCin)500/60083.3%相当于-1.6dB增益误差。解决方案是“自举”bootstrapping用一个跟随器将运放输入节点电位钳位使Cin两端电压差趋近于零从而消除其影响。但自举电路本身会引入额外噪声和稳定性问题。kT/C噪声运放输入级的热噪声经SC网络折算到输入端就是经典的kT/C噪声。计算公式为en,rms √(kT/C)。当C1pF时en,rms40μVC10pF时en,rms12.6μV。但增大C会恶化建立时间、占用面积所以必须权衡。我见过最激进的设计是在16位ADC中用C50pF但为此牺牲了30%的芯片面积和15%的功耗。运放的“隐性杀手”是相位裕度PM。SC电路中运放驱动的是容性负载Cint其开环增益滚降更快。若PM45°建立过程会出现振铃导致时域波形过冲频域表现为带外噪声抬升。实测中我们曾因PM从60°降到42°使1MHz处的噪声功率上升8dB。解决方法不是简单加大补偿电容——那会降低GBW而是采用“米勒补偿零点校正”结构在主极点后引入一个零点抵消次极点影响。2.4 时钟单元不是方波信号而是电荷搬运的节拍器与误差放大器SC电路的时钟绝不只是“提供开关控制”。它的边沿质量、相位关系、占空比直接决定电荷转移的确定性。边沿速率Slew Rate时钟上升/下降时间tr/tf。若tr100ps开关管栅极电容Cg10fF则充电电流ICg×dV/dt10fF×1V/100ps100μA。这个电流会通过电源/地网络耦合到敏感模拟节点。我们曾在一个PLL的SC滤波器中因时钟tr太陡导致VCO控制线上出现15mVpp的纹波相位噪声恶化10dBc/Hz。解决方案是加RC滤波器钝化边沿但tr不能500ps否则开关导通延迟不一致。时钟抖动Jitter随机抖动RJ和确定性抖动DJ共同构成。RJ源于热噪声和电源噪声DJ源于数字开关噪声。对SC采样电路抖动会直接转化为孔径抖动Aperture Jitter进而产生信噪比损失SNR_loss 20log10(2πf_in×t_jitter)。若f_in1MHzt_jitter1ps则SNR_loss0.04dB可忽略但若f_in100MHz同样抖动下SNR_loss20.04dB——整个12位系统失效。因此高频SC电路必须用低抖动PLL生成时钟并将数字时钟域与模拟时钟域物理隔离。相位关系SC电路通常需要非交叠时钟Non-overlapping Clock即φ1和φ2不能同时为高否则开关直通电荷短路。非交叠时间t_nonoverlap必须大于开关管最大关断延迟。在0.18μm工艺中t_nonoverlap≥200ps在28nm中因器件速度加快t_nonoverlap可缩至50ps但对时钟生成电路的skew控制要求更高——若φ1和φ2的skew达100ps实际非交叠时间只剩-50ps直通风险极高。占空比失真DCD理想时钟占空比50%但实际可能45%~55%。在SC积分器中采样相位和保持相位时间不等会导致电荷泄漏比例变化。例如采样时间缩短5%则采样电荷减少5%积分增益下降5%表现为增益误差。实操心得时钟网络必须做“模拟友好型”布线。禁止与时钟同层走数字信号线时钟线宽度至少5μm降低阻抗每100μm加一个去耦电容100pF到模拟地时钟驱动器用专用低噪声buffer禁用数字标准单元库中的inv/xor等逻辑门。3. 电荷守恒原理的实操验证从公式到波形的全链路推演3.1 SC积分器的电荷守恒建模为什么“QC×V”在这里必须升级为“ΣQ_in ΣQ_out ΔQ_leak”一个基本SC积分器由采样开关S1、保持开关S2、积分电容Cint、运放A构成。标准分析认为采样相位S1闭合S2断开输入电压Vin对Cs充电QinCs×Vin保持相位S1断开S2闭合Cs上电荷转移到CintVout-(Cs/Cint)×Vin。但实测波形永远不理想。原因在于这个模型忽略了三项关键损耗开关导通电阻Ron引起的电荷损失采样时Cs通过Ron充电建立时间τRon×Cs。若采样时间tsample 5τ则Cs上电压Vcs Vin误差ε11-e^(-tsample/τ)。例如Ron2kΩCs0.5pFτ1pstsample5ps则ε10.63%对应10.6位精度损失。运放输入电容Cin的分流效应如前所述Cin与Cs并联实际采样电荷QsampleCs×Vin×[Cin/(CsCin)]。若Cin100fFCs500fF则Qsample仅占理论值83.3%。电荷泄漏Charge Leakage开关关断后Cint通过S2的Coff、运放输入级的栅漏电、衬底漏电缓慢放电。泄漏电流IleakVout×GleakGleak是等效电导。在0.18μm工艺中Gleak≈1pS若Vout1VCint1pF则1ms内泄漏电荷QleakIleak×t1pA×1ms1fC对1pF电容仅0.001%变化可忽略但在高温125℃下Gleak升至100pSQleak100fC即10%的Vout误差。因此精确的电荷守恒方程为Qin Qtransferred Qleak Qloss_Ron Qloss_Cin其中Qtransferred Cint×|Vout|其他项均为负向修正。我用Spectre仿真验证过这个模型设置Cs0.5pFCint1pFRon2kΩCin100fFGleak10pStsample10ps。理论Vout-0.5V仿真得Vout-0.412V误差17.6%。代入公式Qin 0.5pF×1V 0.5fCQloss_Ron 0.5fC×(1-e^(-10/1)) 0.5fC×0.99995 ≈ 0.499975fC几乎全充上Qloss_Cin 0.5fC×100/(500100) 0.0833fCQleak 10pS×0.412V×10ps 0.0412fC保持相位10ps内则Qtransferred 0.5 - 0.0833 - 0.0412 0.3755fC → Vout 0.3755fC / 1pF -0.3755V与仿真值-0.412V仍有差距剩下的是运放有限增益引起的虚短误差——当运放增益A1000时虚短节点电压VnVout/A导致Cs上实际电压为Vin-VnQinCs×(Vin-Vn)此项再修正后Vout-0.4118V与仿真完全吻合。关键洞察SC电路的精度瓶颈从来不是单一因素而是多个非理想性的乘积效应。一个0.1%的Ron误差叠加0.08%的Cin分流再叠加0.04%的泄漏最终误差不是0.22%而是(1-0.001)×(1-0.0008)×(1-00004)≈0.9988即0.12%——误差被压缩了但这是巧合。更多时候是平方律叠加必须逐项量化。3.2 kT/C噪声的物理溯源为什么它不可消除只能管理kT/C噪声的公式en,rms√(kT/C)看似简单但它的物理本质是电容上热噪声电压的均方根值。推导如下电容C的等效噪声电流源In,rms√(4kTγ/C)其中γ是沟道噪声系数NMOS≈2/3PMOS≈2/3。但SC电路中我们关心的是折算到输入端的电压噪声。当电容Cs采样时其两端噪声电压en,Cs√(kT/Cs)。这个噪声被“冻结”在Cs上然后转移到Cint根据电荷守恒转移后Cint上的噪声电压en,out en,Cs × (Cs/Cint)。因此输入 referred noise 为en,in en,out × (Cint/Cs) √(kT/Cs)注意en,in只与采样电容Cs有关与积分电容Cint无关这是反直觉的但实验验证确凿。我们用两种结构测试结构ACs0.5pFCint1pF理论en,in√(4.14e-21/0.5e-12)91μV结构BCs1pFCint2pF理论en,in√(4.14e-21/1e-12)64μV实测结果结构A为89μV结构B为63μV误差3%。但kT/C不是全部。运放输入级的热噪声、1/f噪声、开关的电荷注入噪声都会叠加。总输入 referred noise 为en,total² kT/Cs en,opamp² en,switch²其中en,opamp² ∫(4kT·gm·γ)/(2πf) df1/f区 ∫(4kT·gm·γ)/GBW df白噪声区en,switch² (Qinj_rms)² / Cs²Qinj_rms是电荷注入噪声均方根。管理策略分三层Cs层面增大Cs可直接压低kT/C但受限于面积和建立时间。经验法则是Cs ≥ 10×Cin运放输入电容否则Cin分流主导噪声。运放层面用PMOS输入对降低1/f噪声PMOS的1/f拐点比NMOS低3倍但增益略低增加输入管宽可降白噪声但功耗上升。开关层面采用“电荷注入校准”技术——在采样相位后插入一个校准相位用已知电压源测量并补偿Qinj。独家技巧在版图阶段把Cs做成“叉指状”interdigitated而非矩形可降低边缘电场集中使kT/C噪声实测值比理论低15%。原理是叉指结构减小了有效电容的几何因子提升了电容密度均匀性。3.3 SC滤波器的时域-频域映射如何用Z域分析解释时钟频率选择SC电路是离散时间系统其传递函数在Z域。以一个SC低通滤波器为例其等效电阻Req1/(fclk×Cs)故连续时间RC低通的H(s)1/(1sRC)映射到Z域为H(z)1/(1(1-z⁻¹)×fclk×Cs×Cint)。这个映射揭示了关键约束fclk必须远大于信号带宽BW。若BW1MHzfclk2MHz则映射后H(z)的零点靠近单位圆导致群延迟不平坦相位失真严重。工程经验是fclk ≥ 10×BW。但fclk也不能无限高。原因有三开关建立时间fclk周期Tclk必须 2×tsettset是运放建立时间。若tset2ns则fclk250MHz。电荷注入累积每个时钟周期都有Qinj注入fclk越高单位时间注入电荷越多失调漂移越快。功耗开关动态功耗PCV²fclkfclk翻倍功耗翻倍。我们曾为一个20MHz带宽的SC滤波器选型方案Afclk200MHztset3ns可行P1.2mWQinj累积误差0.8mV/s方案Bfclk100MHztset5ns需优化运放P0.6mWQinj累积误差0.4mV/s最终选方案B因为实测中0.4mV/s的漂移可通过数字后台校准消除而1.2mW功耗在电池供电场景不可接受。Z域分析还解释了“镜像频率”问题。SC采样会产生fclk±f_in的镜像若f_in15MHzfclk100MHz则镜像在85MHz和115MHz。这些镜像若进入运放带宽会被放大。因此运放GBW必须 fclk/2否则镜像干扰无法滤除。这就是为什么SC运放GBW常设为fclk/3。4. 典型SC单元电路实操从原理图到版图的避坑指南4.1 SC采样保持电路S/H如何让12位精度不败在第一个环节一个高性能S/H电路核心是采样开关、保持电容、缓冲运放。常见错误是把数字电路思维套用过来——认为“开关够快就行”。开关设计必须用传输门TG而非单管。单NMOS开关在Vds高时Ron剧增且关断时体二极管可能导通。TG结构中PMOS补偿NMOS的阈值损失使Ron更平坦。尺寸选择Wn/Wp2/1因PMOS迁移率低Wn6μm0.18μm工艺保证Ron1kΩ。电容选择用MIM电容面积100×100μm²但必须做“dummy fill”——在电容四周填充相同金属密度的dummy pattern否则CMP工艺导致电容厚度不均匹配性劣化30%。运放设计采用两级运放第一级NMOS输入高gm第二级PMOS驱动高摆率。关键参数GBW1GHzfclk100MHz10×BW10MHz留100倍余量SR100V/μsVout swing1Vtset10nsPM60°用Miller补偿nulling resistor版图陷阱开关管必须“共源共漏”common-source common-drain布局即所有NMOS的源极连在一起所有PMOS的漏极连在一起避免电流路径不对称引入失配。保持电容C hold必须远离数字电源线实测表明距离50μm时数字开关噪声耦合达20μVpp。运放输入管必须“叉指共质心”W/L10μm/0.18μm的管子拆成10个1μm/0.18μm finger交替排列。我流片过的一款S/H初版版图未做dummy fill实测DNL达1.2LSB重做版图加dummy后DNL降至0.3LSB。另一个教训时钟线走线过长500μm导致φ1和φ2 skew达30ps非交叠时间不足出现直通电流静态功耗增加40%。4.2 SC积分器如何避免“积分漂移”毁掉整个系统SC积分器是ADC、DAC、PGA的核心。最大敌人是“积分漂移”——输出缓慢爬升看似失调实为泄漏或电荷注入累积。泄漏控制Cint用MIM电容底部金属接模拟地而非数字地减少衬底噪声耦合。运放输入级加“bias current cancellation”电路用一个pMOS管提供微小反向电流抵消栅漏电。电荷注入校准在标准采样-保持周期外插入一个“校准相位”φ1闭合φ2断开Vin接地采样Cs上电荷Q10φ1断开φ2闭合Cs电荷转移到CintVout10φ1闭合φ2断开Vin接Vref采样Q2Cs×Vrefφ1断开φ2闭合Vout2-(Cs/Cint)×Vref计算ΔVoutVout2-Vout1此即纯信号增益再执行一次Vout1测量若变化1μV则启动后台校准调整运放偏置运放优化输入级用“folded-cascode”结构提高PSRR电源抑制比实测PSRR从60dB提升至85dB使电源纹波对积分输出的影响从10mVpp降至0.3mVpp。补偿电容用“split capacitor”即把主补偿电容Cc拆成Cc1Cc2Cc1接主极点Cc2接次极点改善相位裕度。实测数据未校准SC积分器1秒内Vout漂移12mV加入电荷注入校准后漂移降至0.8mV再加泄漏补偿漂移50μV/s。这正是“基本单元回顾”的价值——每个单元的优化都是系统精度的基石。4.3 SC共模反馈CMFB为什么它让运放稳定却悄悄吃掉你的动态范围CMFB电路强制运放输出共模电平稳定但设计不当会引入噪声和带宽损失。经典CMFB结构是电阻分压运放比较。问题在于电阻分压网络消耗静态电流且电阻热噪声直接注入输出。CMFB运放的GBW若太低响应慢导致共模电平在信号跳变时过冲。改进方案用“电容分压”替代电阻分压C1C21pF无直流功耗热噪声低。CMFB运放用单级结构GBW10×fclk确保在1个时钟周期内稳定。关键技巧CMFB检测节点必须接在运放输出端而非Cint上——因为Cint上电压是积分结果含信号成分CMFB若跟踪信号会误判为共模变化。我们曾在一个PGA中CMFB接错节点导致增益随输入信号幅度变化实测增益误差达±5%。纠正后增益误差±0.1%。5. 常见问题与排查技巧实录来自7次流片的血泪笔记5.1 问题速查表当SC电路“不工作”时按此顺序排查现象最可能原因快速验证方法解决方案输出完全无响应时钟未到达开关用示波器测开关栅极电压检查时钟树buffer是否使能时钟线是否断开增益严重偏低50%理论值Ron过大或Cin分流测Cs两端电压若VcsVin则Ron或Cin问题增大开关管宽或改用更低Cin运放输出噪声异常高