尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
从MOS平方律曲线理解gm、ro、本征增益与设计避坑
简介面向模拟IC初学者、考研复试与课程补修人群的拉扎维《模拟CMOS集成电路设计》课后习题详解重点对应教材第二章器件物理与单级放大器基础。答案按题号逐题展开包含NFET与PFET原理图说明、漏电流随|VGS|变化的表达式推导与曲线绘制、跨导和输出阻抗计算以及本征增益gm·ro的完整求解公式代入、单位换算与数值表格均保留便于读者对照教材复盘手工推导、定位符号与参数取值上的易错点。资源包为1个PDF文件约68.09MB页面按章节和题号组织适合课程作业核对、复试笔试演算训练与建立模拟IC入门知识框架。已有3460人学习下载可作为器件分析与基础电路计算的配套答案册使用。1. 一条曲线里藏着的四个参数一道看起来只需要代入数字的课后题给定 W/L 50/0.5、|VDS| 3 V把 NFET 和 PFET 的漏电流画成 |VGS| 从 0 扫到 3 V 的函数。很多人做完就翻页了这条曲线其实同时包含了模拟IC设计里最核心的四个量曲线起翘的横坐标是阈值电压抛物线段的曲率由 μCox(W/L) 决定饱和段切线的斜率就是跨导 gm而曲线右端那点微微上翘的“尾巴”斜率反过来就是输出电阻 ro。换句话说这道题在问的是同一件事的两面——你能否把大信号方程里的每个系数量纲翻译成小信号参数。搞懂这条曲线怎么长出来的比背十个公式有用得多。2. 平方律模型三个区间与转折点的由来2.1 判据从来是电压差不是某个电压的绝对值刚接触 MOS 的人容易把 VGS 和 VDS 当成独立的两把尺子分别去比对 VTH 和某个“饱和电压”。真实判据是两个差值VGS − VTH 决定沟道里有没有反型层这叫过驱动电压 VovVDS 与 Vov 的比值决定沟道在漏端还剩不剩得下来。于是三个区间的划分非常干脆——Vov ≤ 0 时器件截止电流只剩亚阈值那一点点指数尾巴工程手算直接记 0VDS Vov 时整条沟道都存在电流随 VDS 近似线性增长叫线性区或三极管区VDS ≥ Vov 时漏端沟道被夹断电流不再随 VDS 明显变化叫饱和区。提示这里的“饱和”和双极型晶体管里的“饱和”含义几乎是反的。BJT 的饱和是管子被压到极限、两个结都正偏MOS 的饱和恰恰是它作为放大器的正常工作区。这个词是历史遗留初学时最容易在脑内串线。课程里反复强调的 break point转折点就是 VDS Vov 这条边界在 Id–VGS 平面上的投影。绕过它Id 与 VGS 的关系从平方关系切换到含 VDS 的抛物线斜率突变所以图形上能看到明显的弯折。第 2 章第 4 题让以 VDS 为参数画一族曲线并标出转折点本质是在考你能不能一眼看出每一条曲线是在哪一点离开线性区的。2.2 平方律不是假设出来的是沿沟道积分出来的把沟道看成一段电阻可变的导体位置 x 处的反型层电荷面密度可以写成 Q(x) −Cox[VGS − VTH − V(x)]其中 V(x) 是沟道电位从源端 0 爬到漏端 VDS 的那条曲线。漏电流是电荷以漂移速度通过沟道截面的通量于是 Id −W·μ·Q(x)·dV/dx。这条微分方程两边对 x 从 0 积到 L右边对 V 从 0 积到 VDS得到的就是那个经典表达式Id μCox(W/L)[(VGS − VTH)·VDS − VDS²/2]这是一个关于 VDS 的开口向下的抛物线极大值出现在 VDS VGS − VTH代回去恰好等于 (1/2)μCox(W/L)·Vov²。器件不会真的沿着这条抛物线往下走——到达极大值之后沟道在漏端夹断多出来的电压降落在夹断点到漏极之间的耗尽区上电流被“钉”在极大值附近这就是饱和区公式 Δ 的来历。从这段推导能读出一个关键事实饱和电流并不真的与 VDS 无关只是“无关”得比较好。夹断点会随着 VDS 往源端方向缩有效沟道长度从 L 变成 L − ΔL而 ΔL 随 VDS 增大而增大于是电流按 1/(L − ΔL) 缓慢上升。这个尾巴在第 3 章会被线性化成 λ但它的物理出身就在这里不是拟合出来的玄学系数。2.3 把 W/L 50/0.5 代进去一份可复现的扫描题面给的 |VDS| 3 V 不是随便挑的。VGS 扫到 3 V 时 Vov 最大也就 2.3 V永远小于 3 V意味整段扫描除截止区外全部落在饱和区。曲线是一条干净的抛物线中间不会有斜率突变——这一点如果没意识到画图时把线性区分支也塞进去图形就会莫名多出一段。import numpy as np # 一组示意工艺参数量纲统一到 SI实际数值请以所用模型卡为准 mu_n_cox 200e-6 # A/V^2电子迁移率 x 单位面积栅氧电容 mu_p_cox 80e-6 # A/V^2空穴版本约为电子的 0.4 倍 VTH_N 0.7 # VNFET 阈值 VTH_P 0.8 # VPFET 阈值用正数表示 |VTH| LAM 0.1 # 1/V沟道长度调制系数 W_L 50 / 0.5 # 无量纲W 与 L 用同一单位即可比值不受影响 def id_nmos(vgs, vds): vov vgs - VTH_N if vov 0: # 截止区没有沟道电流为 0 return 0.0 if vds vov: # 饱和区漏端夹断含 λ 修正 return 0.5 * mu_n_cox * W_L * vov**2 * (1 LAM * vds) return mu_n_cox * W_L * (vov * vds - 0.5 * vds**2) # 线性区整条沟道存在 def id_pmos(vgs_abs, vds_abs): # PMOS 全用绝对值处理符号问题留到画图时再统一 vov vgs_abs - VTH_P if vov 0: return 0.0 if vds_abs vov: return 0.5 * mu_p_cox * W_L * vov**2 * (1 LAM * vds_abs) return mu_p_cox * W_L * (vov * vds_abs - 0.5 * vds_abs**2) vgs np.linspace(0, 3, 301) id_n np.array([id_nmos(v, 3.0) for v in vgs]) id_p np.array([id_pmos(v, 3.0) for v in vgs]) # 自检点在 VGS 3 V 处两种器件的电流数量级应和 μCox 之比同阶约 2.5 倍 print(Id_n(VGS3) , id_n[-1] * 1e3, mA) print(Id_p(|VGS|3) , id_p[-1] * 1e3, mA)代码里那三个参数需要单独说清楚。μnCox 是把迁移率和单位面积栅氧电容乘在一起的合并参数所以它的量纲是 A/V²W/L 严格来说要用同一单位约掉只要不把 W 用 μm、L 用 nm 混着填比值都不会错。λ 的单位是 1/V乘上 VDS 之后无量纲这一点在检查公式量纲时非常管用。至于函数里为什么要按 vov 和 vds 的大小关系分支是因为平方律在两个区的解析式不同写成一个式子会让线性区电流被高估。想验证自己算得对不对有个很省事的办法在同一个工作点上用三种方式各算一次 gm结果必须吻合。取上例 Vov 0.8 V、W/L 100、μnCox 200 μA/V²则 Id 0.5 × 200e-6 × 100 × 0.64 6.4 mA此时 gm 按 μnCox(W/L)Vov 算是 16 mS按 sqrt(2μnCox(W/L)Id) 算也是 sqrt(2×200e-6×100×6.4e-3) 16 mS按 2Id/Vov 算仍是 16 mS。三个答案对得上才说明代入的参数之间是自洽的。3. 沟道长度调制与体效应两个修正项各自修的是什么3.1 λ 不是拟合参数它来自夹断点的位移上一章末尾提到饱和后电流仍随 VDS 缓慢上升因为有效沟道长度缩短了。严格写出来Id ∝ 1/(L − ΔL)而 ΔL 与 (VDS − Vov) 的平方根近似成正比。这个平方根关系在手算时很难用于是工程上做了一次线性化把 1/(L − ΔL) 展开成 (1/L)(1 ΔL/L)再把 ΔL/L 整体打包成一个与 VDS 成正比的量 λVDS。这样电流表达式就变成熟悉的 (1/2)μCox(W/L)Vov²(1 λVDS)。这个线性化的代价必须心里有数λ 只在 VDS 不是特别大的时候才近似常数而且它的数值天然与 1/L 成正比——因为 ΔL/L 的分母里就有 L。这就是“λ ∝ 1/L”这个结论的真正来源它成立的前提是 ΔL 本身与 L 关系不大。很多题目直接甩一句“注意 λ ∝ 1/L”就让你推本征增益随 L 的变化如果没搞清这个前提后面的推导方向很容易做反。输出电阻由定义直接对 VDS 求偏导取倒数ro [∂Id/∂VDS]⁻¹ 1/(λId) 是忽略 VDS 项之后的简化版严格版是 ro (1/λ VDS)/Id。两者差多少λ 0.1 /V、VDS 3 V 时 λVDS 0.3简化版会低估 ro 约 23%。这个误差在答案里表现为“两个数字并存”抄错一个就全盘皆输第 5 章会专门再说。3.2 体效应VSB 抬高阈值把曲线整体往右推源极不接地时源与衬底之间存在反偏电压 VSB耗尽层变宽栅极要先把更多电荷扫掉才能形成沟道阈值电压因此升高。标准模型写成VTH VTH0 γ(√(2ΦF VSB) − √(2ΦF))γ 叫体效应系数量纲是 V^0.5物理上是耗尽层电荷随表面势变化的敏感度2ΦF 是强反型所需的表面势通常取 0.8 到 0.9 V 附近。以 γ 0.45 V^0.5、2ΦF 0.9 V、VTH0 0.7 V 为例VSB 从 0 拉到 3 V 时VTH 会从 0.7 V 抬到大约 1.16 V——多了将近半伏在低电源电压下足以让一个本该导通的管子彻底关死。在 Id–VGS 平面上体效应的表现不是简单的水平平移。因为平方根关系VSB 越大同样的增量带来的 VTH 增量越小曲线族在高 VGS 端会略微收拢。这个细节正是判断图画得对不对的关键检查点如果你画出来的几条曲线是严格等间距平移的那多半是偷懒按线性关系估的。3.3 以 VDS 为参数和以 VBS 为参数图形差别在哪第 2 章第 4 题要求分别以 VDS 和 VBS 为参数画 Id–VGS 曲线族这两张图的形状逻辑完全不同混在一起就会画错。以 VDS 为参数时转折点之前的区域受 VDS 影响极大VDS 很小时管子停在线性区电流被压得很低曲线在 Vov 附近才猛地追上来VDS 一旦超过 Vov饱和区的电流几乎重合只在 λ 的量级上有细微分离。所以图的典型长相是“低 VGS 段散开、高 VGS 段挤成一束”。以 VBS 为参数时每条曲线的 VTH 不同转折点横坐标各不相同而斜率 μCox(W/L)Vov 在相同 VGS 下也会因为 Vov 被压缩而下降。图的典型长相是“整族曲线向右侧扇形展开”并且在原点附近有个共同区域——VGS 低于所有 VTH 时全都是截止电流为零。4. 跨导的三种写法与本征增益同一个器件三种提问方式4.1 gm 为什么有三种表达式又为什么都对跨导的定义只有一个gm ∂Id/∂VGS。在饱和区对平方律求偏导立刻得到 gm μCox(W/L)Vov。把 Vov 用 Id 反解出来代进去得到 gm √(2μCox(W/L)Id)。再把 Vov 2Id/gm 代回第一种写法得到 gm 2Id/Vov。三个式子数学上完全等价工程含义却泾渭分明。第一种把 gm 与过驱动电压挂钩适合分析“给定偏置电压”的电路比如电流镜、差分对的输入摆幅估算。第二种把 gm 与电流挂钩是设计时最常用的形式因为它告诉你想要更大 gm要么加电流要么加 W/L两条路各有代价。第三种是 gm/ID 设计方法的地基——它说明同样的电流下Vov 越小 gm 越大。这就是为什么低功耗设计会刻意把管子压在弱反型边缘用几十毫伏的过驱动去换高 gm 效率代价是速度、匹配和带宽全面恶化。回到第 2 章第 2 题给定 W/L 50/0.5、|ID| 0.5 mA要求算 gm 和 ro。第一步必须是算 Cox因为参数表给的是 μn 和 tox而不是直接给 μnCox。Cox εox/toxεox ≈ 3.45×10⁻¹¹ F/mtox 用纳米给的话记得转成米。算完 Cox 才能得到 μnCox再代入 gm 的第二种表达式。这一步顺序错了后面的数字全部作废。4.2 ro 的近似边界比想象中更容易翻车前面提过严格式 ro (1/λ VDS)/Id 和简化式 ro 1/(λId)。判断能不能用简化式的标准是 λVDS 是否远小于 1。用 λ 0.1 /V 代入VDS 1 V 时误差 10%VDS 3 V 时误差 30%。教材答案常常把两个值都列出来正是提醒读者这不是笔误而是精度取舍。对 PMOS 做同样的计算时λ 通常比 NMOS 略大空穴迁移率低、夹断区形貌不同所以 PMOS 的 ro 一般略小本征增益也更低。这个差别在单个管子分析里不起眼但在两级放大器里会直接反映成增益的几十个百分点。4.3 本征增益 gmro把 ID 和 W/L 塞进去看它长什么样把 gm 的第二种写法和 ro 1/(λId) 相乘Id 神奇地对消掉一次gmro √(2μCox(W/L)Id) / (λ·Id) √(2μCox(W/L)) / (λ·√Id)这条式子读起来信息量很大。它与 √Id 成反比电流越大本征增益越低因为 gm 只按 √Id 涨ro 却按 1/Id 掉。它与 √(W/L) 成正比加大宽长比能提增益但要占面积。它与 1/λ 成正比而 λ ∝ 1/L所以在保持 W/L 不变、把 L 和 W 同比例放大的前提下本征增益与 L 成正比。import numpy as np mu_n_cox, W_L, LAM0 200e-6, 100.0, 0.1 # LAM0 对应参考长度 L0 的 λ L0 0.5e-6 # 参考沟道长度单位 m id_arr np.logspace(-6, -3, 61) # 1 uA 到 1 mA # 情况一W/L 固定L 取 L0、2L0、3L0λ 随 1/L 缩小 for k in (1, 2, 3): lam LAM0 / k a np.sqrt(2 * mu_n_cox * W_L) / (lam * np.sqrt(id_arr)) print(fL {k}*L0, 本征增益 1mA {a[-1]:.1f}) # 情况二只固定 WL 拉长时 W/L 同步缩小结果趋势完全不同 for k in (1, 2, 3): lam, wl LAM0 / k, W_L / k a np.sqrt(2 * mu_n_cox * wl) / (lam * np.sqrt(id_arr)) print(f仅固定 W, L {k}*L0, 本征增益 1mA {a[-1]:.1f})两段循环只差一个条件结论却反向。第一种情况里本征增益随 L 线性增长第二种情况里几乎不变甚至略降。第 2 章第 3 题“以 L 为参数画 gmro 对 Id 的曲线”之所以能得到 1:2:3 的三条曲线前提正是 W/L 保持不变、W 与 L 同比例放大。这一点如果不写清光看到题面那句 λ ∝ 1/L很容易得出错误的增长规律。画出来的曲线在双对数坐标下是三条斜率 −1/2 的平行直线这一族直线就是工艺给出的增益天花板。想在电流不变的前提下把增益翻倍只能把 L 拉长 2 倍代价是 fT 按 1/L² 掉面积翻倍匹配变差。模拟设计里那些“增益不够就加长沟道”的老办法代价全写在这张图上。5. 避坑五条容易踩在同一个坑里的经验5.1 单位与符号坑一量纲不统一结果差三个数量级。现象是算出来的 Id 明明是毫安级结果写成 6.4 μA 或者 6.4 A。原因几乎总是 μnCox 用了 μA/V² 而电流公式要求 A/V²或者 W/L 里 W 用 μm、L 用 nm 但没约掉。解决办法是全程用 SI 单位算完最后一步再乘 10³ 转毫安W/L 则一定保证分子分母同一单位因为比值本身无量纲混用只会把自己坑进去。坑二PMOS 的符号处理。现象是画出来的 PMOS 曲线跑到第四象限或者电流出现负值。原因是习惯性地把 VGS 写成负电压往下代。稳妥做法是全程用绝对值 |VGS|、|VDS|、|VTH|公式结构与 NMOS 完全一样只在画图和写节点电压时统一加负号。上文的 id_pmos 函数就是这么写的符号问题被隔离在一个地方不会污染中间推导。坑三Cox 的单位换算。现象是 gm 算出来偏大或偏小整整一个数量级。Cox 常以 fF/μm² 给出而公式里要的是 F/m²1 fF/μm² 等于 10⁻³ F/m²。这个换算如果不熟建议先在纸上写一遍 1 fF 10⁻¹⁵ F、1 μm² 10⁻¹² m²比记结论可靠。5.2 模型假设与边界坑四随手把 (1 λVDS) 丢掉。现象是同一道题里 ro 出现两个不同的答案或者本征增益和后面的增益预算对不上。原因是简化式 1/(λId) 只在 λVDS ≪ 1 时成立而典型题目给的 VDS 就是 3 Vλ 取 0.1 时已经差 30%。解决办法是养成习惯凡是碰 ro先把严格式写出来再判断能不能近似只要 λVDS 超过 0.1就老老实实用严格式别为了省一行推导丢掉精度。坑五源漏互换时还在套原公式。现象是扫描 VX 从 0 到 VDD 时电流曲线在某个点突然反向或者出现莫名其妙的平台。MOS 是结构对称的器件谁当源取决于电位高低而不是版图上标的那一端。当外部电压把原本的漏端压到比源端更低时源漏角色对调VGS 和 VDS 都要重新按新源极来算W/L 不变但电流方向翻转。排查方法是先画出电位高低关系写清楚“谁是源”再代公式一旦发现电流符号和预期反了八成就是这个原因。注意体效应在源漏互换时会跟着一起变。源极换了位置VSB 也跟着变阈值电压会跳一下曲线在互换点附近往往有个小折角这不是算错了。6. 手算到仿真之间平方律能信到什么程度平方律是一套长沟道、强反型、载流子速度未饱和假设下的模型它的价值不在于精确复现硅片上的电流而在于把设计变量之间的关系暴露出来。真正上机之后偏差主要来自四个方向迁移率随 VGS 增大而退化导致实际电流比平方律预测的低短沟道下速度饱和Id 与 Vov 的关系从平方退化成近似线性亚阈值区电流按指数变化平方律直接归零而低功耗电路常常就工作在那条尾巴上漏致势垒降低DIBL让 VTH 随 VDS 漂移等效于给 λ 又叠了一层。以第一个偏差为例可以做个粗略对照偏差来源手算预测仿真趋势影响的设计指标迁移率退化Id ∝ Vov²大 Vov 时指数降到 1.3 左右gm 被高估增益预算偏乐观速度饱和gm ∝ Vov大 Vov 时 gm 趋于常数高过驱动下提 gm 效率骤降亚阈值导通Vov 0 时 Id 0指数尾约 80 mV/dec关断漏电、低功耗偏置点DIBLλ 为常数λ 随 VDS 增大ro 被高估本征增益偏大这张表最实际的用法是判断手算结果该往哪个方向修。如果手算给出 gmro 90仿真出来只有 40别急着怀疑自己算错了先看看是不是 Vov 取太大、L 取太短——两个偏差源叠加差两倍非常正常。那份把第二章第 1 到第 5 题一步步拆开的解答真正的用法不是对答案而是对中间量。每道题的解答都把 Cox、μCox、Vov、gm、ro 逐个列出来你只要拿自己的中间值和它比就能在第一步就发现是单位错了还是公式用错而不是等到最后结果差了三个数量级再回头找。血泪经验是结果错的时候九成的问题出在中间某一步的单位换算而不是物理理解。从那以后我每次碰到这类手算题都强制走一遍固定流程先写清三个区的判据再确认源在哪一端然后统一量纲算 Cox最后用 gm 的三种写法互验一次。这套流程慢是慢但从来没让我在同一个坑里栽第二次。希望帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

Android剧院购票APP开发实战:MVVM架构与选座系统设计

Android剧院购票APP开发实战:MVVM架构与选座系统设计

1. 项目背景与核心需求剧院购票APP的开发需求源于传统线下购票方式的诸多不便。作为一名常年混迹各大剧院的资深观众,我深刻体会过排队购票的煎熬——热门剧目开票时,售票窗口前动辄排起百米长龙,而线上购票平台要么功能简陋,要么…

📅 2026/11/6 2:53:16
并查集解决情侣牵手问题:算法与实现

并查集解决情侣牵手问题:算法与实现

1. 问题背景与核心挑战力扣765题"情侣牵手"描述了一个有趣的情境:N对情侣随机坐在一排2N个座位上,现在需要通过最少的交换操作让每对情侣都能相邻而坐。这道题看似是排列组合问题,实则考察对并查集(Union-Find)这一经典数据结构的理…

📅 2026/11/6 2:53:16
GLM4源码包部署实战:从解压配置到OpenAI兼容服务

GLM4源码包部署实战:从解压配置到OpenAI兼容服务

简介:这是一份围绕 GLM-4 代码仓库整理的源码压缩包,面向具备一定 Python 基础、希望了解大模型工程实现、复现实验流程或开展二次开发的研究者与开发者。压缩包共 78 个文件,约 7.57MB,内含 28 个 Python 脚本、14 个 Markdown 文…

📅 2026/11/6 2:53:16
MORE NEWS

更多资讯

📰

AI能替代小程序的程序员吗?真相比你想的更扎心

最近, 许多从事小程序开发的相关人员都表现出一种焦虑的情绪。因为人工智能编写代码的能力变得越来越强大, 只需要把具体的需求传递过去, 短短几秒钟的时间就可以生成一个完整的页面结构。此外, 它还能够自动检查出现的错误, 并为代码提供符合规范的注释内容。与此同时, 各种声…

📰

WorkBuddy三大工作模式——Ask / Plan / Craft

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

AI 资讯日报 | 2026年11月3日:乌镇峰会聚焦AI开源开放,DeepSeek二轮融资1055亿元,腾讯混元Hyra 2.0发布,美团万亿参数LongCat-2.5登顶

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

:六大核心能力——WorkBuddy能干什么

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

进程间通信(IPC

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Python基础:第 10 篇 · for 循环与 range:遍历的正确姿势

文章目录 专栏导读 第 10 篇 for 循环与 range:遍历的正确姿势 本篇目标 一、for 循环的本质 遍历各种类型 二、range():生成数字序列 反向遍历 三、enumerate():带下标遍历(推荐) 四、zip():同时遍历多个序列 五、break / continue / else 六、推导式全家桶 七、可迭代…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬