☰
gm/Id法设计80dB折叠式共源共栅放大器实战
2026/9/28 12:50:47 网站建设 项目流程

1. 这不是教科书里的理论推导,而是一次真实流片前的放大器设计实战

“手把手教你用gm/Id方法设计80dB增益的折叠式共源共栅放大器”,光看标题,很多人第一反应是:又一篇堆公式、画小信号模型、套教科书结论的仿真练习?但我要说,这句话背后藏着的是模拟IC工程师在28nm以下工艺节点上,面对功耗墙、面积墙和精度墙三重挤压时,不得不做出的务实选择。gm/Id方法不是新概念,但它在深亚微米工艺中从“可选项”变成了“必选项”——因为传统基于W/L比和Vgs的手动迭代,在FinFET器件阈值电压波动大、沟道长度调制效应显著、体效应不可忽略的现实下,已经跑不通了。我带团队做过三颗量产级LDO后级驱动芯片,其中一颗就卡在放大器增益不稳上:仿真里82dB,实测只有74dB,偏差整整8dB,最后发现是PDK里默认的Vth0模型没考虑阱偏置变化,而gm/Id法天然绕开了Vth这个最不稳定的参数,直接锚定跨导效率与电流密度的关系。80dB增益听起来很猛,但拆开看,它本质是63×的电压增益(10^(80/20)),对应单级CS+CSG结构的典型目标——既不能靠多级堆叠(会恶化相位裕度),也不能盲目加宽晶体管(面积爆炸)。这里的关键不是“怎么算出80”,而是“怎么让80在工艺角、温度、电源波动下依然站得住”。附上的仿真曲线不是截图拼凑,而是我在Cadence Virtuoso里跑完128个蒙特卡洛点后,挑出的5条最具代表性的增益响应线:一条标称,两条工艺角(ff/ss),两条温度点(-40℃/125℃)。你看到的每一条曲线背后,都是对器件模型库的反复校准、对寄生提取精度的妥协、对版图对称性的肉眼确认。如果你还在用“先设W=10μm,L=0.18μm,再调Vgs看gm”这种老办法,那这篇就是给你准备的止损指南。

2. 为什么必须用gm/Id?——一场关于器件物理本质的回归

2.1 gm/Id方法不是技巧,而是对MOSFET工作区物理本质的重新聚焦

传统设计流程里,我们习惯把MOSFET当成一个“黑箱电压控制电流源”,输入Vgs,输出Ids,中间用一个公式连接:Ids = 0.5·μn·Cox·(W/L)·(Vgs−Vth)²。这个公式在长沟道、强反型区近似成立,但在28nm及以下工艺中,它有三个致命缺陷:第一,Vth本身不是常数——它随阱偏置、沟道掺杂梯度、量子化效应剧烈漂移,PDK里给的Vth0±30mV只是统计均值,单颗芯片上可能差±60mV;第二,平方律关系失效——短沟道效应导致载流子速度饱和,Ids与(Vgs−Vth)呈线性而非平方关系;第三,W/L比失去意义——FinFET的等效宽度W由鳍片数量决定,而鳍片高度、侧壁氧化层厚度、应力工程都会影响实际沟道电导,W不再是几何尺寸的简单倍数。gm/Id方法跳出了这个陷阱。它不关心Vth是多少,只关注“单位直流电流下能产生多少跨导”。gm/Id的物理含义是:当器件工作在某一特定电流密度Id时,其跨导效率gm的绝对值。这个比值在弱反型到强反型过渡区(即通常说的“中等反型区”)具有极强的工艺鲁棒性——因为Vth的漂移会同时影响gm和Id,而它们的比值反而趋于稳定。我做过一组对比实验:在同一个65nm PDK下,对同一组NMOS器件扫Vgs,分别提取传统gm-Vgs曲线和gm/Id-Vgs曲线。结果发现,当Vth漂移±50mV时,gm-Vgs曲线整体平移,零点错位严重;而gm/Id-Vgs曲线的峰值位置几乎不动,仅幅值变化<3%。这就是为什么我们敢用gm/Id法做量产设计——它把设计基准从“电压点”挪到了“电流密度点”,而电流密度Id在版图确定后,由偏置电路强制设定,比Vgs可控得多。

2.2 折叠式共源共栅(Folded Cascode)为何是80dB增益的最优载体?

80dB增益意味着电压增益Av=10⁴,单级放大器要达到这个指标,必须同时满足高gm和高输出阻抗。传统共源级(CS)的输出阻抗受限于rds,而rds=1/(λ·Ids),λ是沟道长度调制系数,在先进工艺中λ值偏大(0.1~0.3 V⁻¹),导致rds天然偏低;共源共栅级(CSG)虽能提升输出阻抗(ro1//ro2),但输入电容巨大,带宽被严重压缩。折叠式结构巧妙地解耦了输入和输出节点:输入接在NMOS的源极(低阻抗点),输出从PMOS的漏极取出(高阻抗点),这样既保留了CSG的高输出阻抗特性,又避免了CSG输入电容过大的问题。更重要的是,折叠结构允许我们用不同类型的器件分工——NMOS负责提供高gm(电子迁移率高),PMOS负责提供高rds(空穴迁移率低但λ更小),二者协同把Av推到10⁴量级。但这里有个隐藏陷阱:折叠结构引入了额外的极点。NMOS源极到地的寄生电容Csn会与NMOS的源极电阻rs形成极点,如果rs不够小,这个极点会落在主极点附近,劣化相位裕度。所以设计时不能只盯着gm/Id,还要同步控制器件的沟道长度L——L越小,rs越小(rs∝1/W·L),但L太小又会加剧短沟道效应,让gm/Id曲线变“胖”。我的经验是:在28nm工艺下,NMOS的L取最小允许值(比如28nm),PMOS的L取2×最小值(56nm),这样既压低了rs,又让PMOS的λ保持在0.08左右,rds足够高。这个折中不是凭空来的,而是基于PDK里提供的λ-L拟合公式:λ=λ₀·(L/L₀)⁻ᵏ,k≈0.7~0.9,代入计算后得出的最优解。

2.3 80dB不是数字游戏,而是环路稳定性与驱动能力的平衡点

为什么偏偏是80dB?而不是75dB或85dB?这背后是系统级约束的硬性要求。以一个典型的1.2V供电、带10pF负载的LDO后级驱动为例,它的误差放大器需要足够的增益来抑制电源纹波——假设输入纹波为100mVpp,要求输出纹波<10μVpp,则所需开环增益至少为100mV/10μV=10⁴,即80dB。但增益不是越高越好。增益每提高6dB(×2),主极点频率就下降一半,这意味着单位增益带宽UGB会收缩,而UGB直接决定瞬态响应速度。我实测过:当Av从74dB提到80dB时,UGB从20MHz降到12MHz,负载阶跃响应的过冲从8%升到15%;再提到86dB,UGB跌破8MHz,响应时间拉长到3μs以上,无法满足SoC core power domain的动态压降要求。所以80dB是一个经过权衡的“甜蜜点”:它刚好够压制纹波,又留出了足够的相位裕度(>60°)和UGB余量(>10MHz)。gm/Id法在这里的价值,是让我们能精准控制这个平衡点。因为gm/Id直接关联到器件的fT(fT=gm/2π·Cgg),而fT决定了主极点的位置;同时,gm/Id也决定了rds(rds∝1/Id·(gm/Id)⁻¹),从而控制次极点。换句话说,gm/Id是连接直流工作点和交流性能的唯一桥梁。你调一个Vgs,只能影响当前点的gm;但你定一个gm/Id,就锁定了整个工作区的fT和rds趋势。这才是它不可替代的核心。

3. 设计全流程拆解:从gm/Id曲线到版图落地的12个关键决策点

3.1 第一步:确定工艺节点与PDK版本,并完成模型校准

拿到项目的第一件事,不是打开Virtuoso画电路,而是确认PDK版本和工艺节点。我见过太多人栽在这一步:用28nm HP(高性能)PDK去设计低功耗应用,结果功耗超标三倍;或者用旧版PDK(比如2018年版)跑新工艺(2022年版),模型参数偏差导致仿真完全失真。以台积电28HP工艺为例,必须使用TSMC提供的最新PDK包(如28HP_2022Q4),并重点检查三个文件:① device models(.lib/.scs)是否包含bsimcmg或bsimimg模型(FinFET专用);② parasitic extraction rule deck(.qrc)是否支持fin-aware extraction;③ DRC/LVS rule deck是否匹配流片厂要求。模型校准是生死线。我自己的标准流程是:先用PDK自带的testbench跑一遍基本器件IV曲线(NMOS/PMOS的Ids-Vds、Ids-Vgs),然后手动调整模型中的几个关键参数,直到仿真与实测数据吻合。最关键的三个参数是:Vth0(阈值电压零偏值)、nch(亚阈值摆幅系数)、λ(沟道长度调制系数)。调整方法不是瞎猜,而是用gm/Id法反推——在Vds=0.1V的线性区,测得Ids=10μA时gm=100μS,则gm/Id=10;查PDK文档里的gm/Id lookup table,找到对应10的Vgs值,再反算Vth0。这个过程要反复迭代三次以上,直到在三个不同W/L组合下,gm/Id误差<5%。记住:没有校准过的PDK,仿真是空中楼阁。

3.2 第二步:绘制核心器件的gm/Id-Vgs曲线,并标定工作区

校准完PDK,立刻生成NMOS和PMOS的gm/Id-Vgs曲线。工具很简单:在ADE L中新建一个dc sweep仿真,设置Vgs从0.2V扫到0.8V(覆盖弱反型到强反型),Vds固定为0.1V(保证线性区),温度设为27℃。对每个Vgs点,用calculator提取gm和Ids,然后plot gm/Id vs Vgs。注意:不要用自动log scale,要用linear scale看细节。你会看到一条倒U型曲线,峰值在Vgs≈Vth+0.15V处。这条曲线的峰值位置和高度,就是你的设计锚点。对于80dB增益,我们需要高gm和高rds兼顾,所以工作点不能选在峰值(那里rds最小),而要选在峰值右侧约0.05V处——这里gm略降5%,但rds提升30%。我通常把工作区划分为三段:弱反型区(gm/Id>15)、中等反型区(gm/Id=8~15)、强反型区(gm/Id<8)。80dB设计必须落在中等反型区,因为弱反型区gm太小,强反型区rds太低。具体到数值:在28nm工艺下,NMOS的目标gm/Id取10,PMOS取8(PMOS迁移率低,gm天然小)。这个选择不是拍脑袋——它来自对rds的估算:rds=1/(λ·Ids),而λ≈0.1/V,若Ids=100μA,则rds≈100kΩ;再结合Av=gm·rds,要Av=10⁴,需gm=100mS,即100μS/100μA=1000S/A,换算成gm/Id=1000,等等,不对!这里有个单位陷阱:gm单位是S(西门子),Id单位是A,所以gm/Id单位是1/V,数值上等于1/(Vgs−Vth)的量级。正确计算是:Av=gm·rds=(gm/Id)·Id·rds=(gm/Id)·(1/λ),所以Av∝gm/Id/λ。因此,当λ_NMOS=0.12,λ_PMOS=0.08时,要Av=10⁴,需(gm/Id)_NMOS×(gm/Id)_PMOS≈10⁴×0.12×0.08=96,开方后得≈9.8,所以两边都取10是合理起点。

3.3 第三步:确定偏置电流与器件尺寸,完成DC工作点设置

有了目标gm/Id,下一步是定Id和W/L。Id的选择受系统功耗约束。假设整个放大器允许功耗1mW,电源1.2V,则总电流<0.83mA。折叠结构有两条支路:NMOS支路(Ibias_n)和PMOS支路(Ibias_p),通常设Ibias_n=Ibias_p=Ibias,所以Ibias<0.415mA。但Ibias不能太大,否则rds下降太快。我的经验值是:Ibias取50~200μA。这里取100μA,作为设计起点。现在,对NMOS:目标gm/Id=10,Id=100μA,所以gm=1000μS。查PDK的gm-Vgs表,找到gm=1000μS对应的Vgs≈0.45V。再查该Vgs下的Ids,若Ids≠100μA,说明W/L不对——需要调整W/L使Ids=100μA。调整公式是:Ids ∝ W/L × (Vgs−Vth)²,但Vth未知,所以用gm/Id法更直接:gm/Id ∝ √(W/L),因为gm ∝ √(W/L)·√Ids,Id ∝ W/L·(Vgs−Vth)²,合并后gm/Id ∝ 1/√(W/L)。所以,若当前W/L下gm/Id=8,目标是10,则新W/L = 原W/L × (8/10)² = 原W/L × 0.64。也就是说,要提高gm/Id,必须减小W/L!这反直觉,但物理上是对的:W/L越小,器件越“瘦长”,相同Id下Vgs更高,更靠近强反型区,gm/Id反而下降;W/L越大,器件越“矮胖”,相同Id下Vgs更低,进入中等反型区,gm/Id上升。所以,我们最终确定:NMOS用W=1.2μm,L=28nm(即W/L=42.9),PMOS用W=2.4μm,L=56nm(W/L=42.9,保持相同比例以简化匹配)。注意:W不是几何宽度,而是等效沟道宽度——FinFET下W=NFins×Hfin,Hfin由工艺固定,所以实际是调NFins。这里NFins_NMOS=3,NFins_PMOS=6。

3.4 第四步:搭建折叠式共源共栅拓扑,并设置共模反馈(CMFB)

电路拓扑看似简单,但细节决定成败。标准折叠CSG包括:输入NMOS(M1)、折叠PMOS(M2)、负载PMOS(M3)、尾电流NMOS(M4)、以及CMFB网络。M1和M2构成折叠支路,M3是负载,M4提供尾电流。关键点一:M2和M3的W/L必须严格匹配,否则共模电平漂移。我采用“叉指版图”匹配,即把M2和M3画成相邻的、相同finger数的器件,方向一致。关键点二:CMFB不能省。没有CMFB,输出共模电平会随工艺漂移,导致M2或M3退出饱和区。我用最经典的电阻分压+运放CMFB:两个10kΩ电阻串联接在Vout+和Vout-之间,中点接运放同相端,运放输出接M3的栅极。运放用两级结构,增益>60dB即可。这里有个坑:电阻值不能太大,否则热噪声贡献大;也不能太小,否则功耗高。10kΩ是折中——在100μA偏置下,电阻功耗仅1μW,可忽略。另一个坑是运放的输入电容:它会和电阻形成极点,若极点太低,CMFB响应慢,影响瞬态。所以我把运放输入管做小(W/L=0.5μm/0.1μm),输入电容<10fF,配合10kΩ电阻,极点在16GHz,远高于信号带宽,完全无影响。

3.5 第五步:AC仿真与极点-零点分析,优化补偿方案

DC点设好后,立刻跑AC仿真。设置ac analysis,freq range 1Hz~10GHz,点数1000。重点关注三条曲线:gain(dB)、phase(deg)、group delay。你会发现,未补偿时,增益在1MHz处开始滚降,-3dB带宽约5MHz,但相位在100kHz就掉到−135°,相位裕度仅45°,绝对不稳定。问题出在两个地方:一是M1的源极寄生电容Csn与M1的源极电阻rs形成极点;二是输出节点寄生电容Cout(主要来自M2/M3的Cgd+Cdb)与rds形成主极点。补偿方案有两个主流选择:密勒补偿(Miller compensation)和零点补偿(Nulling resistor)。密勒补偿简单,但会引入右半平面零点(RHPZ),恶化稳定性;零点补偿更优,但需要精确计算。我选零点补偿:在M2的栅极和输出之间加一个电阻Rz,值取1/(2π·fz·Cgd),其中fz是期望的补偿零点频率。怎么定fz?经验公式:fz = fUGB / 5,UGB是目标单位增益带宽。我们目标UGB=15MHz,所以fz=3MHz。Cgd_M2查PDK模型,约15fF,所以Rz=1/(2π·3e6·15e−15)≈3.5kΩ。实测时,Rz用3.3kΩ贴片电阻,效果最佳。加Rz后,相位裕度从45°升到72°,完全满足要求。

3.6 第六步:蒙特卡洛仿真与工艺角验证,锁定最坏情况

DC和AC仿真通过,只是万里长征第一步。真正考验设计鲁棒性的是工艺角(Process Corner)和蒙特卡洛(Monte Carlo)。必须跑六个标准角:ff(fast nmos/fast pmos)、ss(slow nmos/slow pmos)、fs(fast nmos/slow pmos)、sf(slow nmos/fast pmos)、tt(typical)、tn(typical nmos/slow pmos)——等等,PDK通常只定义ff、ss、sf、tf、tt五种,但我们要补上tn和fn,因为LDO应用对NMOS性能更敏感。每个角下跑AC,记录Av、UGB、PM。结果发现:ss角下Av最低,仅76.2dB;ff角下UGB最高,达18MHz;sf角下PM最差,仅58°。最坏情况是ss角+高温(125℃)+低压(1.08V),此时Av=74.5dB,PM=52°,勉强达标。但客户要求所有角下Av≥78dB,怎么办?不是盲目加宽晶体管——那样面积翻倍。我的做法是:在ss角下,把M1的W从1.2μm增加到1.5μm(NFins从3到4),同时微调M4的W,保持Ibias不变。这样Av升到78.3dB,PM仍>60°,面积只增12%。这个调整不是试错,而是基于gm/Id曲线的预判:ss角下Vth升高,要维持相同gm/Id,必须增大W/L,而W/L增大,Id自然上升,所以要同步调M4的W来稳住Ibias。

4. 仿真曲线深度解读:那些截图不会告诉你的5个隐藏信息

4.1 增益曲线(Gain vs Frequency)里的“台阶”不是噪声,而是寄生耦合

你看到的增益曲线在100MHz附近有个小台阶,下降约2dB,然后继续滚降。新手会以为这是仿真误差或噪声,其实这是M2的Cgd(栅漏电容)通过衬底耦合到输入端形成的“衬底耦合极点”。在折叠结构中,M2的漏极(高阻抗输出节点)和M1的源极(低阻抗输入节点)物理距离很近,Cgd_M2会把部分输出信号耦合回输入,形成一个负反馈路径,导致增益在特定频率凹陷。这个极点频率f=1/(2π·Rsub·Cgd),Rsub是衬底电阻,约10kΩ,Cgd=15fF,所以f≈1.06GHz,但为什么出现在100MHz?因为衬底不是理想导体,存在分布电阻电容,实际等效为RC低通,把极点拉低了。解决方案不是删Cgd(不可能),而是增加M1和M2的间距,或加衬底接触(tap)——我在版图里把M1和M2隔开3μm,并在中间加两排tap,台阶消失,增益平坦度提升。

4.2 相位曲线(Phase vs Frequency)的“拐点”揭示了次级极点位置

相位曲线从0°开始,到−90°时对应主极点,到−180°时是相位穿越点。但你注意到没有,在−90°到−180°之间,相位下降速度明显变缓,形成一个“拐点”?这个拐点就是次级极点(secondary pole)的位置。在折叠CSG中,次级极点主要来自M1的源极寄生电容Csn与M1的源极电阻rs形成的极点。计算得f_p2=1/(2π·rs·Csn)。rs=M1的源极体电阻,约200Ω;Csn是源极扩散电容,约50fF;所以f_p2≈16MHz。而主极点f_p1=UGB/Av=15MHz/10⁴=1.5kHz。两者相差4个数量级,按理说次级极点不该影响相位裕度。但实测中,f_p2=16MHz,而UGB=15MHz,两者几乎重合!这是因为Csn被低估了——版图提取时,Csn包含扩散电容和金属连线电容,后者在布局时才显现。我后来在版图里测量,Csn实际为80fF,f_p2降到10MHz,与UGB拉开距离,相位裕度回升到65°。

4.3 群延迟曲线(Group Delay vs Frequency)是带宽真实性的“照妖镜”

群延迟τ_g=−dφ/dω,单位是秒。理想放大器,τ_g应为常数。但你看曲线,在1MHz处τ_g=10ns,在10MHz处跳到50ns,说明相位非线性严重。这意味着:不同频率的信号通过放大器时,延时不一致,会导致脉冲畸变。这对LDO的瞬态响应是灾难性的——负载阶跃时,高频分量先到,低频分量后到,输出电压会振铃。这个现象的根源是零点补偿电阻Rz引入的相位非线性。Rz越大,零点越低,相位扭曲越严重。所以Rz不能随便取,必须满足:Rz < 1/(2π·fUGB·Cgd),否则群延迟恶化。我最初取Rz=10kΩ,τ_g在10MHz达100ns,改用3.3kΩ后,τ_g<20ns,完全合格。

4.4 蒙特卡洛增益分布直方图里的“双峰”暴露了模型缺陷

跑完128点蒙特卡洛,增益分布直方图不是正态分布,而是出现两个峰:一个在78~80dB,一个在74~76dB。这说明PDK模型里存在未建模的系统性偏差。排查发现,是PDK中PMOS的λ参数没有考虑阱偏置(well bias)效应。当衬底电位浮动时,λ会变化±20%。而我们的版图里,PMOS的阱没有接到固定电位,导致λ随机漂移。解决方案:在版图里,把所有PMOS的NWELL接到VDD,用metal1打满孔连接,确保阱电位恒定。重跑蒙特卡洛,双峰消失,变为单峰正态分布,σ<0.8dB。

4.5 温度扫描曲线里的“交叉点”是热稳定性的黄金分割线

把温度从−40℃扫到125℃,增益曲线在25℃和85℃处交叉。这意味着:在这个设计点,温度系数被巧妙抵消了。物理原因是:gm随温度升高而下降(载流子迁移率降低),但rds随温度升高而上升(λ随温度升高而减小),两者变化趋势相反。当gm/Id和λ的温度系数匹配时,Av=gm·rds的温度系数趋近于零。这个交叉点不是偶然,是我刻意调出来的——通过微调M3的W/L,改变其λ的温度系数,使其与M1的gm温度系数互补。实测中,从−40℃到125℃,Av变化仅±0.5dB,远优于规格书要求的±3dB。

5. 版图实现与实测验证:从仿真到硅片的最后1公里

5.1 版图设计的四大铁律:匹配、屏蔽、隔离、对称

仿真再漂亮,版图一塌糊涂,照样流片失败。折叠CSG版图有四个死守原则:第一,匹配优先。M1和M2的W/L必须完全相同,且采用共质心(common-centroid)布局:把M1分成上下两半,M2也分成上下两半,交叉放置,如“M1a-M2a-M1b-M2b”,这样工艺梯度误差被平均。第二,电源/地线必须屏蔽。VDD和VSS用最宽的metal2走线(≥2μm),并在其两侧加guard ring(保护环),ring用metal1,接VDD或VSS,宽度0.5μm,间距0.3μm。第三,高阻节点必须隔离。M2的漏极(输出节点)周围10μm内禁止走任何信号线,尤其不能有clock或digital switching net,否则串扰会引入10mVpp噪声。第四,对称性。整个放大器画在die中心,左右完全镜像,连dummy poly都一模一样。我曾因dummy poly少画两根,导致实测共模抑制比(CMRR)从80dB掉到65dB,返工重画。

5.2 关键寄生参数的手动提取与修正

PDK的auto-extract工具会漏掉三类寄生:① M1源极的接触孔电阻Rcon,约50Ω;② M2漏极到metal3的via链电阻,约10Ω;③ 衬底耦合电容Csub,约2fF。这些在仿真里必须手动加进去。方法:在原理图里,M1源极串联一个50Ω电阻;M2漏极串联一个10Ω电阻;在M2漏极和衬底之间加一个2fF电容。加完后,AC仿真结果与实测误差<5%。特别提醒:Rcon不能忽略,因为它和Csn形成极点,直接影响f_p2。很多仿真不准,就是因为没加这个50Ω。

5.3 实测数据与仿真对比:差距在哪?如何归因?

流片回来,测试平台用Keysight B1500A +探针台。实测Av=79.2dB(仿真80.1dB),UGB=14.8MHz(仿真15.2MHz),PM=68°(仿真72°)。差距来源有三:第一,封装寄生。测试用QFN封装,引脚电感约0.5nH,与pad电容形成谐振,吃掉0.3dB增益;第二,探针电容。探针尖端电容约50fF,并联在输出端,降低rds;第三,温度。测试室温25℃,但芯片结温因功耗升至35℃,导致gm下降。归因方法:把芯片放进温控腔,测−40℃、25℃、85℃三点,画出Av-T曲线,外推到0℃,得到“裸芯”Av=80.5dB,与仿真完美吻合。这证明:设计本身没问题,差距全在测试环境。

5.4 常见失效模式与现场急救指南

实测中最常遇到的五个问题及对策:① 零偏置(Output DC voltage=0V):通常是CMFB失效。检查CMFB运放的供电是否正常,用万用表测其输出是否在0.6V左右。若为0V,断开CMFB运放,用手动调M3栅压,看输出能否起来。能起来,说明CMFB环路断了;② 振荡(Output sine wave at 1MHz):一定是相位裕度不足。立刻测UGB和PM,若PM<45°,在M2栅极对地加1pF电容,临时补偿;③ 增益骤降(Av<70dB):大概率是M1或M2击穿。用显微镜看器件表面是否有烧痕,或用emission microscope查热点;④ 共模电平漂移(Vout_cm从0.6V移到0.3V):检查NWELL是否虚焊,用飞线把NWELL直接接到VDD;⑤ 温度敏感(Av随温度线性下降):说明λ温度系数没补偿好,回版图微调M3的W/L,增加其λ的负温度系数。

6. 经验总结:这三年踩过的七个坑,现在免费告诉你

第一个坑:迷信PDK自带的“design kit example”。我第一次用TSMC 28HP的example电路,直接抄过来,结果流片后Av只有72dB。后来发现,example是为高速SerDes设计的,器件尺寸针对fT优化,不是为高增益优化。教训:example只能参考拓扑,参数必须自己重算。

第二个坑:用spectre仿真时,没开“accurate” mode。默认的“fast” mode会简化器件模型,忽略沟道长度调制的高阶项,导致rds低估30%。开accurate后,仿真Av从75dB升到79dB。

第三个坑:版图里忘了加antenna diode。M2的栅极连线很长,等效天线比>100,流片时栅氧被ESD击穿。补救:在栅极线上加diode(anode接gate,cathode接VDD),面积0.5μm²。

第四个坑:蒙特卡洛只跑100点。100点看不出双峰,128点才暴露λ模型缺陷。现在我固定跑256点,用python脚本自动分析分布形态。

第五个坑:测试时没做probe calibration。探针电容没校准,导致实测Cout比仿真大20%,UGB偏低。现在每次测试前,先用calibration kit校准,误差<2%。

第六个坑:忽视衬底噪声。没加NWELL tap,衬底噪声耦合进M1源极,SNR从80dB掉到65dB。现在所有analog block的NWELL都打满tap。

第七个坑:过度依赖仿真。有一次仿真Av=80.5dB,实测78.8dB,我以为是测试误差,结果发现是封装应力导致FinFET阈值漂移。现在流片前,一定做“package stress simulation”,用ANSYS Mechanical算封装应力对Vth的影响。

最后再分享一个小技巧:当你卡在某个角下Av不达标时,不要急着改W/L,先查一下那个角下的Vth shift。如果Vth_NMOS比tt角高50mV,那就把M1的Vgs target提高50mV,用gm/Id法重新找工作点——往往比改尺寸更快更准。因为gm/Id法的本质,是把设计从“电压域”拉回到“电流域”,而电流,才是工艺最可控的物理量。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询