1. 从零开始理解NMOS差分放大器为什么是模拟IC的“基本功”如果你刚接触模拟集成电路设计可能会被各种复杂的拓扑和公式搞得晕头转向。别急我当年也一样。但干了这么多年我越来越觉得NMOS差分放大器就像是学武功时的扎马步看起来简单但所有高级功夫都建立在它的基础之上。今天我就带你走一遍从理论计算、软件仿真到最终物理版图设计的完整流程用的工具就是业界标准的Cadence Virtuoso。这个过程我们行话叫“从仿真到流片”听起来高大上其实拆解开来每一步都有清晰的逻辑和可操作的方法。为什么偏偏是差分放大器因为它太重要了。在真实的芯片里信号从来都不是“干净”的电源噪声、衬底噪声、各种干扰无处不在。差分放大器天生就有抑制这些“共模噪声”的本事只放大我们关心的两个输入之间的微小差异。而用NMOS来构建在早期的工艺或者一些特定应用中非常经典能让我们把注意力集中在理解晶体管如何工作、如何偏置这些核心概念上而不会被过于复杂的器件模型分散精力。这次我们要解析的这篇论文就用了一个沟道长度5微米的“老工艺”来演示这恰恰有利于我们看清本质。整个流程可以概括为三个大阶段也是我们这篇文章的主线首先是理论分析和手工计算你得知道电路大概该怎么工作管子该偏置在什么状态然后是Cadence Virtuoso环境下的仿真验证用SPICE模型把理论变成可视化的波形反复调试直到性能达标最后是物理实现也就是画版图这里要考虑的匹配、寄生、可测试性设计DFT等问题才是工程实践和纸上谈兵真正的分水岭。我会把我自己踩过的坑、总结的技巧揉碎了讲给你听。咱们不玩虚的直接上手。2. 理论先行手算NMOS差分放大器的直流工作点在打开Cadence Virtuoso之前我们必须先拿起纸笔或者计算器。这一步叫“手工分析”或“前仿真分析”目的是为了心里有底知道电路应该大概工作在什么状态而不是在仿真器里盲目地乱试参数。论文里的电路核心是一个经典的NMOS差分对由M1和M2组成它们的源极连接在一起并由一个NMOS电流源M5来提供尾电流。负载可以是电阻也可以是电流镜论文里用了二极管连接的NMOS做有源负载。第一个关键让所有晶体管都工作在饱和区。这是模拟电路设计的金科玉律。对于放大用的晶体管M1, M2饱和区才能提供高增益和良好的线性度。怎么判断对于NMOS饱和区的条件是 V_DS V_GS - V_TH。也就是说漏极电压要足够高。论文里首先做的就是直流分析推导出输入管M2的栅极电压Vin2的允许范围。他们通过列写KVL、KCL方程考虑VDD、阈值电压VTHN、以及电流源M5上的压降最终算出了一个范围。这个计算过程可能有点枯燥但至关重要。它告诉你你的输入信号直流电平不能随便给必须落在这个范围内否则有的管子就进入线性区甚至截止区电路就“趴窝”了。我刚开始学的时候总想跳过这一步觉得反正有仿真器让它自动调不就行了结果吃了大亏。仿真器只会告诉你结果不对但不会告诉你为什么不对。当你亲手算过一遍知道了Vin2的最大值受限于什么通常是电流源M5进入深线性区最小值又受限于什么可能是输入管本身进入线性区你对电路的理解就完全不一样了。这就像开车知道刹车和油门的极限在哪心里才不慌。第二个关键共模输入电压Vin,CM的影响。差分信号可以分解为共模分量和差模分量。共模电平决定了整个电路的“基准位置”。论文中的仿真图清晰地展示了随着Vin,CM变化输出节点Vout1的直流电压、以及M1、M2、M5的工作区域如何变化。你会发现只有一个特定的Vin,CM范围内所有管子才同时饱和这个范围可能只有1V左右。这直接决定了你电路的输入共模范围是设计指标之一。手工计算可以预估这个范围而仿真则能精确地描绘出它的边界。注意手工计算时用的器件参数如VTHN是典型值而实际仿真和流片时会存在工艺角Process Corner和温度变化。所以手工计算得到的是一个理想的中心值后续仿真必须覆盖各种极端情况。3. Cadence Virtuoso仿真实战从DC、AC到瞬态理论过关后我们终于可以打开Cadence Virtuoso了。这里假设你已经建好了库、cell和基本的原理图。我们按照由静到动、由简到繁的顺序来仿真。3.1 直流DC仿真验证工作点第一步永远是DC仿真。目的是验证我们手工计算的工作点是否正确所有晶体管是否真的工作在饱和区。在Virtuoso的ADE L仿真环境里选择“dc”分析将差分输入的两个电压源都设为你的理想共模电平比如论文中的2.5V。然后运行仿真。仿真结束后不要只看波形。最关键的是检查每个管子的工作状态。在Virtuoso里你可以输出每个晶体管的“region”参数。这个参数通常是1、2、3、4分别代表截止、线性、饱和和亚阈值区不同模型可能略有差异。你需要确保M1、M2、M5的region值都是2饱和区。同时查看它们的VGS、VDS、VTH等具体电压值与手工计算对比。如果发现M5在线性区region1那可能意味着你设定的共模电平太低了导致尾电流源上的压降不够你需要回头调整偏置电路或输入电平。3.2 交流AC仿真分析增益、带宽与相位裕度DC工作点调好后才能进行AC小信号分析这是看电路放大能力的关键。设置一个AC仿真在差分输入的正端加一个幅度为1方便直接读增益的AC源负端接地。扫描频率从1Hz到远高于你预估的带宽的频率比如1GHz。仿真后直接绘制输出节点的dB20幅频特性和相位图。你需要关注几个核心指标低频增益在频率很低时的增益值。论文中提到了18dB换算成倍数大约是7.9倍。这个值取决于你的跨导gm和负载阻抗。-3dB带宽增益下降3dB时对应的频率。这反映了电路的速度。相位裕度Phase Margin在增益降为0dB单位增益的频率点相位距离-180°还有多少度。通常要求大于60°才能稳定工作。论文中提到接2pF负载电容时仍有约60°相位裕度这说明他们的补偿做得不错。如果增益不够你可能需要增大输入对管的尺寸W/L来提高gm或者增大负载阻抗。如果相位裕度不够可能需要调整补偿电容密勒补偿的大小。这个过程需要反复迭代。3.3 瞬态Tran仿真观察时域行为与共模抑制比AC仿真看的是线性小信号特性而瞬态仿真看的是电路在时域的真实反应尤其能直观展示共模抑制能力。就像论文里做的那样我们可以在差分输入端加一个带“公共噪声”的信号。具体设置Vin Vcm Vdiff/2 Vnoise Vin- Vcm - Vdiff/2 Vnoise。其中Vdiff是一个很小的差分正弦信号比如10mVVnoise是一个较大的共模噪声比如100mV的正弦波。运行瞬态仿真后观察输出波形。一个性能良好的差分放大器其输出应该是一个干净的、放大了的Vdiff信号而那个巨大的Vnoise应该被极大地抑制掉了。你可以测量输出信号的幅度除以输入差分信号的幅度来验证增益是否和AC仿真结果一致。同时直观地看到输出波形上没有明显的噪声叠加这就是共模抑制比CMRR高的体现。你也可以通过公式计算CMRR但瞬态波形给人的信心是最直接的。4. 电路优化论文中的有源偏置与增益提升技巧如果仿真结果不理想比如增益太低、共模输入范围太窄我们就需要优化电路。论文的后半部分提出了一种改进方案非常具有启发性它没有用简单的电阻分压来产生偏置电压而是用了一串二极管连接的NMOS构成的有源分压器。为什么这么做电阻分压简单但它的电压会随着电源电压VDD波动而波动而且电阻本身在芯片上占面积大精度也不高。而用二极管连接的MOS管栅漏短接它本身就像一个稳压器件能提供一个相对稳定的电压且这个电压与MOS管的阈值电压VTH相关具有一定的工艺跟踪性。论文中的图b用三个串联的二极管连接NMOS从VDD分压得到VREF,12.5V和VREF,21.25V用来给差分对和电流源提供偏置。更巧妙的是后续的负载和增益提升。他们将负载管M3和M4的沟道宽度设置为偏置电路中某个管子Mbn1的50%。这样做在输出节点恰好能产生2.5V的直流电平。原理是电流源M5的电流被差分对平分每边流过I/2。如果负载管的尺寸是偏置基准管的一半那么在相同的栅源电压下负载管想要流过I/2的电流其漏源电压就会自动调整最终使输出点稳定在2.5V。这个设计保证了良好的直流工作点。同时减小负载管的尺寸宽度实际上降低了它的跨导gm_load。在单级放大器的增益公式 Av ≈ gm_input / (gds_input gds_load) 中分母的输出电导gds_load变小因为尺寸小的管子输出电阻更大从而提高了电压增益。这就是论文里说的“降低了负载晶体管的跨导从而增加了电路的增益”。这是一个将偏置、直流工作点和交流性能综合考虑的经典设计思路我们在自己设计时完全可以借鉴。5. 从电路到硅片物理版图设计与实战考量仿真性能达标了恭喜你但这只完成了设计工作的一半。另一半是把这漂亮的电路图变成实实在在的、能在硅片上制造出来的几何图形这就是版图设计。这一步如果没做好仿真结果再好也是空中楼阁。5.1 匹配设计叉指Interdigitation与共质心模拟电路性能对器件的对称性极其敏感。对于差分对M1和M2要求它们在任何工艺偏差下都尽可能一致。在版图上我们不能简单地把两个晶体管并排放置因为硅片上的掺杂、氧化层厚度可能存在梯度变化。论文中提到了使用叉指技术。具体怎么做呢就是把一个宽晶体管比如M1拆分成多个并联的、宽度较小的“手指”fingers同时把M2也拆分成同样数量、同样尺寸的手指。然后像梳子一样交叉排列这些手指。更进一步采用共质心布局比如ABBA的顺序使得两个管子的图形在空间上完全对称重心重合这样能最大限度地抵消工艺梯度的影响。画版图时在Virtuoso的版图界面里调用晶体管器件在属性里直接设置“Fingers”数量并选择“Interdigitated”选项软件会自动帮你生成叉指结构。但你要自己规划好整体布局确保差分对、电流镜等需要匹配的器件朝向一致周围有足够的虚拟器件Dummy包围以消除边缘效应。5.2 寄生参数与布线版图不仅仅是图形的连接它引入了寄生电阻、电容和电感。这些寄生参数会恶化电路性能特别是高频响应。论文中提到“避免重叠多金属以减少寄生电容”。这是非常重要的经验。在布线时应尽量避免长距离的金属线并行特别是不同层金属线在垂直方向上的重叠这会形成可观的寄生电容。电源线、地线要尽可能宽、短以减小电阻和电感。对于关键信号线比如差分对的两个输入必须做到等长、等宽、对称布线以保证信号传输延迟一致。画完版图后必须进行寄生参数提取PEX。Virtuoso可以调用Calibre等工具根据版图的几何图形和工艺文件提取出一个包含寄生电阻电容的网表。然后用这个网表进行后仿真Post-layout Simulation把结果和前仿真对比。如果性能如增益、带宽下降太多就要返回去修改版图比如调整走线、优化器件间距等。5.3 可测试性设计DFT与焊盘规划论文花了很大篇幅讲测试这是工程实践里非常现实的一环。芯片造出来怎么测他们设计了一个适应“地-信号-地”测试探针的焊盘布局。这意味着他们直接在版图上放置了特定形状和排列的焊盘使得测试时可以用探针台直接扎在晶圆上进行测量省去了昂贵的芯片封装步骤。这对于科研和小批量流片来说能极大降低成本。我们在做版图时也要提前考虑测试。需要哪些测试信号需要多少根探针对应的焊盘应该放在芯片的什么位置电源和地焊盘是否足够这些都需要在画版图初期就规划好并留出空间。把测试电路比如测试缓冲器也集成进去也是一个常见的DFT手段。总之版图设计是连接电路设计和最终产品的桥梁需要严谨、耐心和对工艺的深刻理解。我见过太多仿真完美、但流片失败的设计问题十有八九出在版图阶段。多花时间在这里绝对值得。