资讯动态

CMOS互补原理与反相器设计:从基础到LTspice仿真实践

发布时间:2026/10/6 14:06:55 来源:尧图企业网站定制
1. 先搞懂CMOS的“互补”二字到底在互补什么很多朋友在刚接触CMOS时容易被一堆术语绕晕NMOS、PMOS、耗尽层、载流子迁移率、阈值电压……表面上看每个词都认识但合在一起就不知道这些概念之间到底是什么关系。我当年也经历过这个阶段——能背出CMOS的全称是Complementary Metal Oxide Semiconductor但你要是问我“互补”到底指什么、为什么非得“互补”不可我大概率只能给你一个含糊的回答。1.1 为什么非要N管和P管配对使用要理解CMOS绕不开的第一步是理解MOSFET的结构。你可以把单个MOS管想象成一个由电压控制的水龙头栅极Gate是开关把手源极Source和漏极Drain是水管两端而中间的沟道就是水流经过的通道。N型MOS管NMOS的特点是当栅极电压相对于源极足够高超过阈值电压Vth沟道中的电子会被吸引到表面形成导电通道管子导通栅极电压拉低后通道消失管子关断。P型MOS管PMOS则正好相反它的导电载流子是空穴需要栅极电压低于源极足够多即Vgs小于负的阈值电压才会导通。但单管的数字逻辑存在一个很尴尬的问题——以最简单的反相器为例如果只用单个NMOS加上一个电阻做负载当输入为高电平时输出被拉到地没问题可当输入为低电平时NMOS关断输出只能靠电阻慢慢上拉不仅速度慢而且在输出稳定的过程中电阻上始终有电流流过静态功耗非常大。这正是早期NMOS工艺的痛点。CMOS的提出本质上是用“一对互补的开关”替代“一个开关加一个电阻”把PMOS放在上面上拉网络NMOS放在下面下拉网络同一时刻只让其中一个导通。输入为高时NMOS导通、PMOS关断输出被拉到地输入为低时PMOS导通、NMOS关断输出被拉到电源。这样一来稳态时从电源到地之间不存在直流通路静态功耗理论上接近零——这就是“互补”两个字的真正含义不是简单的“一个P一个N”摆在一起而是利用两者相反的导通条件让它们像跷跷板一样交替工作。1.2 阈值电压、衬底偏置和体效应三个常被忽略的细节基础概念里初学者最容易跳过但工程上又特别关键的有三个细节。第一个是阈值电压Vth的极性差异。NMOS的Vth是正的PMOS的Vth是负的。这意味着在设计电路时NMOS的导通条件是Vgs VthPMOS的导通条件是Vgs Vth即Vg比Vs低超过一个阈值。很多刚用LTspice做仿真的人自己搭了一个反相器却发现输出波形不对排查半天发现是PMOS的源漏接反了——因为PMOS的电流方向是从源极流向漏极而源极在电路图中通常画在上方接电源。这个问题看似低级但在实际工程中非常常见尤其是从学校里的原理图过渡到自己画版图或搭仿真的时候。第二个是衬底偏置效应也叫体效应。在实际工艺中NMOS的衬底通常接地PMOS的衬底接电源。问题是衬底和源极之间存在电位差时阈值电压会发生漂移。比如在反相器中某些瞬态情况下NMOS的源极电位会被抬高比如源极串联了电阻或存在寄生电感时导致Vth变大导通能力下降。这就是为什么在版图设计中我们通常尽量把同一电位域内所有NMOS的源极和衬底靠近放置减少衬底偏置带来的性能波动。第三个是闩锁效应Latch-Up。CMOS工艺中NMOS的P型衬底、N阱、以及阱中的PMOS和源漏区会天然形成一个PNPN四层结构等效于一个可控硅。当有外部扰动比如ESD静电放电、过压尖峰触发这个结构时电源和地之间会形成一条低阻抗通路电流剧增芯片直接烧毁。这个效应在深亚微米工艺中尤为危险所以在现代版图设计中会大量使用衬底接触环和阱接触环来降低寄生电阻破坏闩锁的触发条件。这些内容普通教材里讲得很少但做芯片设计的人早晚会碰上。2. 反相器CMOS世界里最小也最完整的“一台机器”如果说CMOS是一套思想那么反相器就是这套思想最纯粹、最浓缩的载体。它只有两个管子却是整个数字集成电路的基石。CPU里数十亿个晶体管本质上就是在不同层级上反复组合反相器、传输门和逻辑门而已。2.1 开关特性拆解从电路图到实际电流路径先看一个完整的CMOS反相器电路图上面是PMOS源极接VDD下面是NMOS源极接地两个管的栅极短接作为输入Vin两个管的漏极短接作为输出Vout。当Vin为低电平0V时PMOS的Vgs 0 - VDD -VDD远小于负阈值电压PMOS深度导通NMOS的Vgs 0小于Vth完全关断。此时Vout通过PMOS的沟道电阻上拉到VDD输出高电平。反过来当Vin为高电平时PMOS的Vgs VDD - VDD 0关断NMOS的Vgs VDD导通Vout被下拉到地。但这个看似简单的过程存在一个重要的转折区间。当Vin从低到高变化时存在一个中间区域此时PMOS和NMOS同时处于导通状态——PMOS的Vgs已经超过负阈值但仍小于0NMOS的Vgs也已经超过正阈值。这个区间叫“穿通区”或“短路电流区”。在这个区间内VDD到地之间会形成一条瞬时导通的路径产生短路电流。输入信号从这个区间经过的时间越长短路功耗就越大。所以在实际电路设计中我们要求输入信号的上升沿和下降沿足够陡峭尽量快速通过这个区间。2.2 电压传输特性与噪声容限读图比背公式更直观反相器的电压传输特性曲线VTC曲线是理解其噪声容限的最好工具。横轴是输入电压Vin纵轴是输出电压Vout。理想的VTC曲线应该是一个阶跃Vin低于VDD/2时输出恒为VDDVin高于VDD/2时输出恒为0。但实际的曲线是一条在中间区域有陡峭过渡的曲线。从VTC曲线上可以读出几个关键参数逻辑阈值VMVout Vin点的输入电压。对于设计对称的反相器VM大约在VDD/2附近。如果VM偏移说明NMOS和PMOS的驱动能力不匹配。在仿真里可以通过调整W/L宽长比来修正。噪声容限低电平NML定义为最大可接受的输入低电平VIL与输出低电平VOL之差。通俗讲就是输入为0时容忍多大的噪声叠加还能保证输出被正确识别为1。噪声容限高电平NMH定义为输出高电平VOH与最小可接受的输入高电平VIH之差。工程上有个经验法则好的反相器设计NML和NMH应该尽可能接近且最好都大于VDD的20%~30%。如果噪声容限太小信号在长距离传输或经过复杂逻辑链时稍有干扰就会出现逻辑错误。我在实际项目里调试过一个接口时序问题板级信号链路上串扰很大最终定位到是接收端芯片输入级的噪声容限不足而不仅仅是布线问题。2.3 动态功耗与传播延迟仿真里最值得盯的两个指标反相器以及所有CMOS门的功耗由三部分组成动态功耗开关功耗、短路功耗和静态漏电功耗。动态功耗对应输出电容的充放电公式是P_dynamic C_L × VDD² × f其中C_L是输出负载电容f是开关频率。这也是为什么降低电源电压一直是数字电路低功耗设计的核心手段——功耗与VDD的平方成正比从1.8V降到0.9V同样的电容和频率下功耗直接降到原来的四分之一。传播延迟定义为输入变化50%到输出变化50%的时间差分为上升延迟和下降延迟。影响延迟的主要因素有三个负载电容包括下一级栅极电容、互连线电容和本级的寄生电容。负载越大充放电越慢延迟越大。驱动管的等效电阻由W/L决定。管子越宽导通电阻越低驱动能力越强。电源电压VDD越高充放电电流越大延迟越小但功耗随之上升。这三者的取舍贯穿整个芯片设计流程。我在做IO接口设计时经常要反复权衡IO管子的尺寸加大驱动能力强了但栅极电容也变大前级驱动它的反相器就得更强层层往前推整个驱动链就像滚雪球一样越来越大——这就是“驱动链尺寸递推”的由来。3. 从反相器到寄存器CMOS逻辑门的组合与级联反相器解决了“单个开关”的问题但数字系统需要的是NAND、NOR、XOR这些复杂逻辑还需要能够存储状态的触发器。这一节从逻辑门最基本的构成思路讲起一直拆到D触发器和版图。3.1 CMOS逻辑门的构成思路上拉网络与下拉网络任何一个CMOS逻辑门都可以看作两个网络的组合下拉网络PDN和上拉网络PUN。PDN全部由NMOS组成负责把输出拉到地PUN全部由PMOS组成负责把输出拉到VDD。两个网络之间的关系是“对偶”的PUN的导通条件恰好是PDN关断的条件保证任意时刻不会同时导通也不会同时关断。以两输入与非门NAND为例。逻辑表达式是Y NOT(A AND B)也就是说当且仅当A和B同时为1时输出为0。因此PDN下拉网络应该是两个NMOS串联只有两个输入都为高时通路才建立输出被拉低。而PUN上拉网络则应该是两个PMOS并联只要A或B任意一个为0就有一条通路把输出拉高。串联对应“与”并联对应“或”这个映射关系是CMOS组合逻辑设计的核心。只要你记住“PDN用NMOS、串联表示AND、并联表示ORPUN用PMOS、结构对偶”你就能自主推导出任何静态CMOS逻辑门的电路结构而不需要死记硬背。3.2 D触发器的逻辑图拆解锁存、时钟与传输门D触发器是时序逻辑的基石。它的逻辑符号大家都见过但要真正理解它的内部结构需要从锁存器开始拆。最简单的D锁存器可以由两个CMOS传输门和两个反相器构成。传输门是CMOS里一个非常巧妙的器件——它由一个NMOS和一个PMOS并联组成控制信号CLK和CLK-bar同时控制这两个管子。当CLK为高时NMOS和PMOS同时导通输入信号可以双向通过CLK为低时两个管子都关断输入与输出隔离。主从D触发器的结构是这样的前级是一个由传输门TG1和反相器Inv1构成的“主锁存器”后级是由传输门TG2和反相器Inv2构成的“从锁存器”两个锁存器之间用另一个反相器Inv3连接。时钟信号CLK和反相时钟CLK-bar控制两个传输门交替导通。当CLK为高时TG1导通、TG2关断主锁存器采样D输入当CLK下降沿到来时TG1关断TG2导通主锁存器保持当前值从锁存器读取主锁存器的值并输出。这就是上升沿触发D触发器的完整工作原理。在电路设计中D触发器的时序参数有三个必须关注建立时间Setup Time、保持时间Hold Time和时钟到输出的传播延迟Ck-to-Q delay。了解D触发器内部结构后你会更容易理解为什么建立时间近似等于主锁存器完成采样的时间保持时间则主要由TG1关断时存储节点的电荷保持时间决定。3.3 版图与截面图怎么看层次、阱与金属连线从电路图到物理实现中间隔着版图设计。很多做嵌入式、做PCB的工程师对版图感觉很遥远但如果你的工作涉及FPGA、ASIC或定制芯片看懂版图是一项非常实用的技能。CMOS反相器的版图从上到下主要层次包括N阱N-Well、有源区Active/OD、多晶硅栅Poly、接触孔Contact、金属层Metal 1及更高层。PMOS放在N阱内NMOS放在P型衬底上两者之间通过阱边界隔开。看版图的截面图时你需要理解几个关键结构N阱在P型衬底上通过离子注入形成的一块N型区域PMOS就做在里面。阱的存在形成了NMOS的P衬底和PMOS的N阱之间的PN结隔离。LOCOS或STI隔离在有源区之间填充氧化物隔离相邻器件防止漏电。多晶硅栅覆盖在栅氧化层上方用于形成晶体管的沟道控制电极。多晶硅在截面图上通常表现为在硅表面上方横跨有源区的方块。接触孔和金属层将有源区、栅极连接到上层金属互连线。版图设计中有几条经验法则所有晶体管的栅极方向尽量一致比如都水平或都垂直可以减少工艺偏差带来的性能漂移。在多晶硅栅的两端都要在有源区外延伸一段距离避免栅边缘的工艺偏差影响沟道。衬底接触和阱接触要尽量靠近对应的源/漏区降低体效应和闩锁风险。4. LTspice仿真实践把CMOS反相器真正跑起来这部分说说怎么做CMOS反相器的LTspice仿真。LTspice是ADI提供的免费SPICE仿真工具在电源、模拟和混合信号设计领域用得非常多。用它仿真CMOS电路最大的优势是上手快、模型丰富而且波形查看和测量功能很顺手。4.1 模型选型与参数设置从工艺库到理想开关模型LTspice默认的元件库里没有专门的“CMOS反相器”模块需要你自己用NMOS和PMOS管搭建。最直接的方式是用LTspice内置的NMOS4和PMOS4符号并给它们赋上合适的模型参数。对于没有特定工艺库的情况下做概念验证可以选择使用LTspice自带的理想MOSFET模型直接通过.param语句定义阈值电压、跨导参数、沟道长度调制系数等。比如你可以用类似这样的语句M1 Vout Vin Vdd Vdd PMOS W2u L0.18u M2 Vout Vin 0 0 NMOS W1u L0.18u Vdd Vdd 0 1.8 Vin Vin 0 PULSE(0 1.8 0 100p 100p 5n 10n) .tran 20n这里面W是沟道宽度L是沟道长度单位是米1u表示1微米。NMOS和PMOS的尺寸比例通常设为2:1左右原因在于PMOS中空穴的迁移率大约是NMOS中电子迁移率的一半到三分之一为了匹配上升和下降的驱动能力PMOS需要做得更宽。如果你想要更贴近真实工艺的结果可以选择下载一些公开的PDK模型比如某些大学的0.18um工艺教学模型或者使用LTspice自带的VDMOS等器件模型替代。但作为理解原理和验证逻辑的起步理想模型已经足够。4.2 瞬态仿真的波形判读延迟、转换时间与功耗搭建好电路后运行瞬态仿真.tran你会得到输入Vin和输出Vout的波形。需要关注以下几点输出是否反相Vout的波形应该与Vin方向相反且高低电平分别接近VDD和0。上升/下降时间定义输出从10% VDD到90% VDD或20%/80%所需的时间。如果在LTspice中两者差异很大就说明NMOS和PMOS的尺寸比例不合理需要调整W。传播延迟测量从输入50%到输出50%的时间分为上升延迟输出从低到高和下降延迟输出从高到低。通常用光标工具直接测量。另外还需要做一个DC扫描仿真得到VTC曲线。在LTspice中把输入设为直流源运行.dc分析扫描Vin从0到VDD然后画出Vout曲线。从这个曲线中你可以直接读出VM、VOH、VOL并估算噪声容限。功耗测量方面可以在VDD源上串联一个电流探针用波形计算器计算平均电流再乘以VDD就是平均功耗。动态功耗主要集中在输入翻转的瞬间也就是PMOS和NMOS同时导通的时间段因此你能看到电流波形上有明显的尖峰。4.3 仿真中常见的收敛问题和解决办法实际跑LTspice时我遇到过不少次仿真不收敛的情况最常见的症状是仿真在某一时刻停滞不前或者报错“Time step too small”。原因通常是电路中出现了一些数值上的奇点或者初始条件设置不合理。几个实用的解决办法增加仿真时间步长限制在.tran指令中手动指定最大步长比如.tran 0 20n 0 10p强制LTspice以最小10皮秒的步长计算这样虽然仿真慢一些但更容易收敛。给电源加缓启动在某些情况下瞬态仿真一开始电源阶跃过大会导致计算发散。可以用一个带有限流或缓启动特性的电源模型或者用一个脉冲源替代直流源。检查模型参数如果使用了自定义MOS模型检查是否某些参数设置为0或负值比如沟道长度调制系数设置为负值往往会导致收敛困难。修改积分容差在SPICE指令中添加.options reltol0.01或.options abstol1e-10等选项放宽收敛容差。这条排错路径在很多模拟仿真中都通用。遇到不收敛的问题先别急着改电路优先排查仿真参数和模型参数往往能节约大量时间。5. 现代应用中的CMOS从像素到嵌入式内核前面花了大篇幅讲CMOS的基础和仿真这节把视角拉到现代应用。CMOS技术之所以在整个半导体行业占据统治地位不仅仅是因为它功耗低、集成度高更因为它具备极强的可扩展性和多功能性。从手机摄像头的图像传感器到嵌入式处理器底层都是同一套CMOS工艺逻辑。5.1 CMOS图像传感器为什么它把CCD挤出了主流市场CMOS图像传感器CIS的像素结构本质上是几个CMOS管加一个光电二极管的组合。一个典型的4T像素结构包含光电二极管PD、传输管Transfer Gate、复位管Reset、源跟随器Source Follower和行选择管Row Select。曝光期间光电二极管积累光生电荷曝光结束时传输管打开电荷转移到浮置扩散节点FD复位管先将FD节点复位到已知电位然后源跟随器根据FD节点电荷量输出对应的电压信号。早期CCD传感器在灵敏度、噪声和一致性上优于CMOS传感器但CCD的制造工艺与逻辑电路不兼容无法把模数转换器、时序控制电路和图像处理算法集成在同一块芯片上。而CMOS图像传感器最大的杀手锏就是工艺兼容性——传感器阵列和数字逻辑可以在同一颗芯片上完成这直接改变了摄像机、手机的产业格局。现在手机上的CMOS传感器动辄上亿像素配合堆栈式结构把模拟电路和数字逻辑堆叠在像素层下方芯片面积得以大幅缩小。当然CMOS传感器并非没有短板。卷帘快门Rolling Shutter在拍摄高速运动物体时会产生果冻效应全局快门Global Shutter的实现需要更多的存储电容和晶体管像素尺寸会变大。业内通常会根据目标应用场景在两者之间做取舍。5.2 嵌入式系统中的CMOS低功耗设计与接口电路嵌入式系统是CMOS技术最广泛的应用领域之一。几乎所有MCU、SoC和FPGA都基于CMOS工艺制造。对于嵌入式开发者来说虽然不需要设计芯片内部电路但理解CMOS器件的特性仍然对系统设计有很大帮助。最典型的例子是GPIO的推挽输出结构一个GPIO引脚内部就是一组CMOS反相器或缓冲器输出高电平时PMOS导通输出低电平时NMOS导通。理解了这一点你就知道为什么GPIO输出高电平时不能对地短路——那相当于把PMOS直接接到地流过的大电流会烧毁管子。另一个常见应用是电平转换电路。在混合信号系统如MCU的3.3V和传感器的1.8V之间经常需要在两者之间加电平转换。最简单的双向电平转换电路就利用了MOSFET的导通特性通过控制栅极电压实现两个电压域之间的兼容。另外低功耗设计也是CMOS技术的核心主题。嵌入式设备的睡眠和唤醒过程本质上就是控制内部CMOS逻辑的时钟和电源域。理解动态功耗公式P C × V² × f你就能明白为什么降低主频和省电模式对电池寿命的影响如此显著——降低频率可以线性降低动态功耗降低电压则是平方级的收益。5.3 先进工艺节点下的新挑战短沟道效应与设计权衡随着工艺节点不断缩小至纳米尺度CMOS器件面临一系列新挑战。当沟道长度缩短到与耗尽区宽度相当时出现了所谓的短沟道效应阈值电压随沟道长度变化、亚阈值漏电增大、DIBL效应漏极感应势垒降低导致关断态漏电增加。这些效应带来的直接后果是在现代深纳米工艺下晶体管的静态功耗不再可以忽略。为了抑制漏电业界引入了FinFET鳍式场效应晶体管和GAA环绕栅极结构用三维的栅极包裹沟道加强对沟道的静电控制。从设计角度先进工艺下功耗与性能的权衡变得更加复杂。芯片设计人员需要综合考虑工作电压、阈值电压、器件尺寸和电路拓扑。在实际的嵌入式芯片项目中我通常会在架构阶段就明确功耗目标是追求最高性能还是优先保证电池续航。这个目标决定了后续的电源域划分、时钟门控策略和标准单元库的选型方向。CMOS技术从基础的互补开关原理一步步扩展到逻辑门、寄存器、像素传感器乃至整个现代电子信息产业本质上是一代代工程师在功耗、速度、成本和集成度之间不断做取舍的结果。理解这些取舍的出发点比记住任何一个具体的参数都重要。对我来说这也是从“会用器件”到“理解系统设计”之间最关键的一步。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑