尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

电流源进化:从单管到共源共栅低压电流镜的设计解析

电流源进化:从单管到共源共栅低压电流镜的设计解析 模拟电路设计里有一个很常见的现象明明运放的主放大管选得没问题拓扑也照着教科书搭了可仿真出来的增益就是差一个数量级或者电流镜的镜像电流在输出电压变化时“飘”得厉害共模抑制比、电源抑制比统统不达标。排查到最后问题通常不在主路径而在那个被你当成“理想电流源”来用的偏置电路上。这篇文章想聊的就是电流源的进化路线从最简单的单管电流源到共源共栅cascode电流源再到低压共源共栅电流镜。核心判断很直接cascode 不是简单地“堆一只管子”而是用一只管子换一个数量级的输出阻抗再用一点电压余量换一整套更精细的偏置设计。把这条线看透很多运放、比较器、带隙基准里的设计细节都能串起来。文章会先讲清楚电流源为什么需要高输出阻抗再说明单管电流源为什么不够用接着拆解共源共栅为什么能提高输出阻抗、它付出了什么代价然后介绍低压共源共栅电流镜如何解决电压裕度问题最后给出仿真验证方法和工程建议。1. 这篇文章真正要解决的问题电流源在模拟集成电路里几乎无处不在差分对的尾电流源、运放的有源负载、带隙基准里的 PTAT 电流、LDO 误差放大器的工作点偏置背后都离不开电流源。只要电路里需要“给一个稳定的电流”就会用到电流源或电流镜。但真实 MOS 管做出来的电流源和教科书里的理想电流源差距很大。理想电流源的特点是无论负载电压怎么变输出电流都恒定不变。实际电流源做不到这一点差别大小就体现在一个关键指标上——输出阻抗。输出阻抗越高电流随输出电压的变化越小电流源就越“接近理想”。这个指标会直接影响三类电路性能电流镜的镜像精度。电流镜本质上是“复制”参考电流如果输出阻抗不够输出端的电压波动会让复制出来的电流偏离设计值。放大器的电压增益。有源负载的本质是用电流源的高阻抗替代电阻负载负载阻抗越高增益越大。共模抑制比和电源抑制比。差分对的尾电流源如果不够理想共模电压变化会转化为差分输出误差CMRR 就被限制住了。很多初学者只把电流源当成一个“提供电流的模块”忽略输出阻抗结果主放大级明明设计得很认真整体指标却始终上不去。这篇文章要解决的问题就是帮助你建立一条从单管电流源到共源共栅电流镜的完整技术脉络知道什么场景需要升级电路结构升级后又会踩哪些坑。2. 电流源的基础概念理想与现实先复习一个最基本的概念。理想电流源的伏安特性是一条水平线无论端电压是多少电流始终等于设定的 Iref。水平线意味着它的动态电阻无穷大也就是输出阻抗无穷大。实际 MOS 电流源做不到这一点。MOS 管工作在饱和区时漏电流并不完全恒定它会随漏源电压 Vds 的增大而略微增大。这个现象叫沟道长度调制效应用参数 λ 描述。在小信号模型里它的等效输出电阻为ro 1 / (λ * ID)这里的 ID 是静态工作点电流λ 与工艺和沟道长度有关。举一个典型估算如果 λ 0.03 V⁻¹ID 50 µA那么 ro ≈ 666 kΩ。这个阻抗对偏置电路来说不算太低但如果你把它当成运放的有源负载想让增益达到几千倍它就不够看了。把实际电流源和理想电流源放在一起对比差异就非常清晰对比维度理想电流源实际 MOS 电流源伏安特性完全水平随 Vds 有轻微上翘输出阻抗无穷大有限约等于 ro电流精度不受负载影响随输出电压变化电路实现不可直接实现一只或几只 MOS 管这里要区分两个容易混淆的概念电流源和电流镜。电流镜是一种用参考电流生成复制电流的电路它的输出支路在某种意义上就是一个电流源。所以讨论“电流源的进化”本质上也是在讨论电流镜输出阻抗的进化。3. 简单电流源的局限单管电流镜的真实表现最简单的电流镜由两只 NMOS 管构成。输入支路的 M1 接成二极管形式漏极和栅极短接参考电流 Iref 从外部流入输出支路的 M2 栅极与 M1 栅极相连源极也接地。结构可以这样理解输入参考支路VDD - Iref - D(M1, 二极管连接) - S(M1) - GND 输出支路 VDD - 负载 - D(M2) - S(M2) - GND 栅极连接 M1 栅极 M1 漏极 M2 栅极如果忽略沟道长度调制输出电流满足Iout Iref * (W/L)2 / (W/L)1这是一个非常简洁的比例关系只取决于两管的宽长比。但在真实工艺里M1 和 M2 的 Vds 通常不一样。M1 的 Vds 被二极管连接固定为 Vgs而 M2 的 Vds 取决于输出端电压。由于沟道长度调制实际输出电流会变成Iout Iref * (W/L)2 / (W/L)1 * (1 λ * Vds2) / (1 λ * Vds1)这意味着输出电压一变电流就跟着变。从输出端看进去这个电流镜的小信号输出阻抗就是 M2 的 roRout ro2 1 / (λ * ID2)它的问题就在这里。若用这个电流镜做运放的有源负载负载阻抗只有 ro 量级增益做不高若做差分对尾电流源共模电压变化会直接扰动尾电流导致 CMRR 受限。有人会说那就把 L 加大λ 就会变小ro 自然变大。这对单管来说确实有效但代价是管子面积大、速度变慢而且提升有限。更根本的出路是改变电路结构让输出阻抗从“单管的 ro”提升到“多个管子共同作用形成的等效阻抗”。这就是 cascode 的用武之地。4. 共源共栅Cascode的核心思想共源共栅英文叫 Cascode是控制极-阴极类真空管与栅极-屏极类真空管串接结构的历史音译。在 MOS 工艺里它通常指一只共源管和一只共栅管垂直串接的组合。很多人第一次看到 cascode 电路会觉得它只是“两只管子叠起来”但它的设计哲学不是简单的串联而是让上面的共栅管“保护”下面的共源管。用一个小类比来帮助理解假设你是一家公司的前台负责处理日常事务。普通电流源相当于没有秘书所有电话都直接打进来任何人进来都能干扰你的工作节奏于是你的状态很容易被外部电压波动带偏。cascode 相当于给你配了一位秘书外面的事先由秘书挡一道你感受到的外部扰动被大幅压制你的工作状态就更稳定。在电路里上面的管子就是这位“秘书”它把输出电压的变化大部分承担下来让下面管子的 Vds 几乎保持不变。小信号分析更能说明问题。先看下面这只共源管 M1它的漏极电压不是直接接外部输出而是被上面的共栅管 M2“夹住”。当输出节点电压变化 ΔVout 时由于 M2 的源极跟随作用M1 的漏极电压只变化很小一点。于是 M1 产生的电流变化很小整体表现为输出阻抗大幅提高。如果忽略二阶效应一个 NMOS cascode 对从漏端看进去的输出阻抗可以写成Rout ro2 (1 gm2 * ro2) * ro1 ≈ gm2 * ro2 * ro1这里的关键是输出阻抗从单管的 ro 量级提升到了 gmro 倍的 ro也就是 gmro² 量级。如果一只管子的 gm*ro 大约是 50那么两管级联后输出阻抗理论上可以提高约 50 倍。在典型工艺参数下输出阻抗可以从几百 kΩ 提升到几十 MΩ。但天下没有免费的午餐。cascode 结构要求两只管子都工作在饱和区。设 M1 需要的过驱动电压为 Vov1M2 需要的过驱动电压为 Vov2则输出端最低电压大约是Vout_min ≈ Vov1 Vov2也就是说为了获得高输出阻抗你至少要让输出电压留出两个过驱动电压的余量。在电源电压充足的时代这个代价可以接受但在低电压设计中这个代价有时非常昂贵。这也是后面“低压共源共栅电流镜”要专门解决的问题。5. 共源共栅电流镜结构、原理与代价前面说的共源共栅拓扑放到电流镜里就是共源共栅电流镜。它把简单电流镜的输出管 M2 改成“下管 M2 上管 M4”的串接结构同时把输入支路也升级为类似结构让栅极偏置的生成保持一致。一个典型的 NMOS cascode 电流镜结构如下输入参考支路VDD - Iref - D(M3, 二极管连接) - S(M3) - D(M1, 二极管连接) - S(M1) - GND 输出支路 VDD - 负载 - D(M4) - S(M4) - D(M2) - S(M2) - GND 栅极连接 - M1 栅极 M1 漏极 M2 栅极 - M3 栅极 M3 漏极 M4 栅极这种接法里M1 和 M2 构成传统的电流镜M3 和 M4 负责提供更高的输出阻抗。从输出端看进去输出阻抗近似为Rout ≈ gm4 * ro4 * ro2对比简单电流镜的 Rout ≈ ro2这个提升是巨大的。以一个典型估算为例如果单管 ro 666 kΩgm 141 µS那么 cascode 后的输出阻抗可以超过 60 MΩ。用这样的电流源做有源负载一级放大器的增益能做到 1000 倍以上。不过直接堆叠两个二极管连接管产生的偏置有一个隐患。设所有管子的阈值电压相同记为 Vth过驱动电压相同记为 Vov。输入支路中间节点电压约为Vg4 Vgs3 Vgs1 (Vth Vov) (Vth Vov) 2Vth 2Vov于是输出支路中间节点电压为Vx Vg4 - Vgs4 (2Vth 2Vov) - (Vth Vov) Vth Vov这意味着下管 M2 的 Vds 被抬到了 Vth Vov而它只需要 Vov 就能饱和。这个被浪费的电压就是阈值电压 Vth。在 0.18 µm 工艺里Vth 可能接近 0.5 V而 Vov 只要 0.2 V 左右相当于白白多花了一个阈值电压的电压余量。对 1.8 V 甚至 1.2 V 的低压系统来说这种浪费非常不可接受。因此共源共栅电流镜的设计并不只是把管子叠起来那么简单。真正需要解决的问题是如何在不浪费阈值电压的前提下保证上下两只管子都恰好处于饱和区边缘。6. 低压共源共栅电流镜电压预算不够时的解决方案低压共源共栅电流镜也叫宽摆幅 cascode 电流镜。它的目标很简单在保持 cascode 高输出阻抗的前提下把输出支路需要的最低电压从“Vth 2Vov”压低到“2Vov”省掉那个阈值电压的开销。前面提到问题出在偏置电压 Vg4 太高。如果能把 M4 的栅极偏置修成Vb Vth 2Vov那么输出支路中间节点电压就变为Vx Vb - Vgs4 (Vth 2Vov) - (Vth Vov) Vov这样 M2 的 Vds 恰好等于 Vov刚好饱和M4 的漏极只需要再留一个 Vov 就能饱和。整个输出支路的最低电压就从 Vth 2Vov 降到了 2Vov。由于 Vth 往往比 Vov 大不少这个改进对低压设计意义重大。关键难点在于如何产生 Vb Vth 2Vov 这个精确电压。一种常见的方法是用一个复制参考支路让其中一个二极管连接管的 Vgs 与输出支路的上管匹配再在它的源极串入一个工作在饱和区的管子用电平移位的方式把偏置抬高到目标值。由于参考支路和主支路使用同样的工艺、同样的器件类型偏置电压会跟随工艺和温度变化保持“Vth 2Vov”的跟踪关系。偏置产生电路的一个示意思路如下参考产生支路 VDD - Iref2 - D(M5, 二极管连接) - S(M5) - D(M6, 二极管连接) - S(M6) - GND 取偏置Vb 从 M6 的源极附近或者用额外的电平移位管/电阻调整到目标值这里要特别提醒不要把产生 Vb 的参考支路和主电流镜共用一个电流源就直接完事。参考支路电流和主支路电流的比例、管子的宽长比选择、温度特性匹配都会影响 Vb 的精度。如果 Vb 偏大下管 Vds 被抬高摆幅依旧浪费如果 Vb 偏小下管可能进入线性区输出阻抗和镜像精度反而变差。三种电流源结构的对比可以看得更清楚结构输出阻抗输出最小电压偏置复杂度单管电流镜roVov低基本 cascode 电流镜gm*ro² 量级Vth 2Vov 或更高中低压/宽摆幅 cascode 电流镜gm*ro² 量级2Vov高从表格可以看出低压版本并不是提高输出阻抗而是修复基本 cascode 在电压预算上的浪费。如果你做的是 5V 或 3.3V 模拟系统Vth 2Vov 的代价也许还能接受但如果做 1.8V 以下的低功耗设计低压 cascode 就是更合理的选择。7. 以电流源为负载的放大器增益cascode 的价值体现为什么工程师愿意花这么多精力设计一个高输出阻抗的电流源因为它直接决定了放大器的电压增益。用一个具体场景来说明。考虑一个共栅极放大器输入信号加在 NMOS 的源极输出从漏极取出漏极负载是一个电流源。它的电压增益近似为Av ≈ gm * (RCS || ro_MN)这里 RCS 是电流源负载的输出阻抗ro_MN 是放大管自身的输出阻抗。如果电流源只是单管实现RCS 和 ro_MN 差不多都是 ro 量级两者并联后大致是 ro/2增益也就被限制在 gm*ro/2 的数量级。如果把电流源负载升级为 cascode 电流源RCS 大幅提升但要注意当 RCS 远大于 ro_MN 时并联结果仍然由 ro_MN 决定增益不会继续线性增长。这说明了两个问题电流源负载的阻抗必须和放大管输出阻抗同数量级甚至更高cascode 的提升才真正有意义。如果放大管本身很弱单纯提高负载阻抗对增益的帮助有限。这也是为什么高性能运放里往往放大管和电流源负载都采用 cascode 结构。再看共源共栅放大器。输入管 M1 采用共源接法上管 M2 作为共栅接法外部负载如果是理想电流源增益可以写成Av ≈ -gm1 * (gm2 * ro2 * ro1)这就是 cascode 放大器的经典结论。它的跨导仍然由输入管 M1 决定但输出阻抗被 M2 提高了约 gm2*ro2 倍因此增益显著提升。这个场景里电流源负载自身如果也换成 cascode输出端就是“双高阻并联”增益可以达到非常高的水平。所以共源共栅在电流源里的价值最终会体现为放大器增益的提升。理解这条链路对分析两级运放、折叠共源共栅运放、全差分放大器都很有帮助。8. 一次完整的仿真验证思路理论推导再多也不如自己跑一次仿真。下面用一个最小示例来验证 cascode 电流镜的输出阻抗提升效果。这里不绑定特定工具以通用 SPICE 语法编写网表逻辑同样适用于 Cadence、HSPICE 或 ngspice。* 基本 cascode 电流镜M1/M2 为下管镜像M3 作为二极管连接偏置M4 使用理想偏置 VB VDD VDD 0 DC 1.8 IREF ID VDD DC 50u M3 ID ID VG 0 NMOS W2u L2u M1 VG VG 0 0 NMOS W2u L2u M4 VOUT VB VX 0 NMOS W2u L2u M2 VX VG 0 0 NMOS W2u L2u VB VB 0 DC 0.9 VOUT VOUT 0 DC 1.0 .op .model NMOS NMOS (VTO0.5 KP200u LAMBDA0.03)在开始分析之前先确认几个设定M3 和 M1 都接成二极管形式M3 用来提供 M4 的偏置参考M1 用来提供 M2 的镜像栅压M4 的栅极接理想电压源 VB用于演示“当偏置合适时”cascode 的性能。实际设计时这个 VB 不能直接用理想源而需要用参考支路生成。你也可以用 Python 做一个简单的数量级估算帮助自己判断仿真结果是否合理# 估算单管电流源与 cascode 电流源的输出阻抗 lam 0.03 # 沟道长度调制系数1/V ID 50e-6 # 支路电流A gm 141e-6 # 估算跨导A/V ro 1 / (lam * ID) rout_simple ro rout_cascode gm * ro * ro print(f单管电流源输出阻抗: {rout_simple / 1e6:.2f} MΩ) print(fcascode 电流源输出阻抗: {rout_cascode / 1e6:.1f} MΩ)运行后可以得到一个明显的数量级差距。如果你的仿真结果和数量级估算相差很多优先检查两件事第一所有管子是否真的工作在饱和区第二偏置电压 VB 是否合适。只要有一个管子进入线性区输出阻抗就会急剧下降。对输出阻抗的准确测量更推荐的方式是做 AC 小信号仿真在输出节点加一个 1A 的交流电流源看该节点的交流电压。交流电压的数值就等于节点阻抗。如果在某些输出电压范围里阻抗突然掉下来那通常说明有管子离开了饱和区。9. 常见问题与排查思路问题现象可能原因排查方式解决方案cascode 后输出阻抗没有明显提升某只管子进入线性区查看每只管子的 Vds 和 Vov重新调整偏置 VB 和输出直流点镜像电流比例不对下管 Vds 不一致沟道长度调制影响大查看 M1/M2 的工作点增大 L使用 cascode 或低压 cascode输出电压摆幅变小偏置电压 VB 设置偏高检查 Vx 节点电压使用低压/宽摆幅偏置电路低压 cascode 偏置温度漂移严重偏置参考支路和主支路匹配不好做温度扫描仿真采用同类型管和相同电流密度设计高阻节点引起稳定性问题输出阻抗过高寄生电容形成非主极点查看环路增益和相位裕度在输出节点加补偿电容或调整 GBW版图不匹配导致镜像误差阈值电压和电流密度失配做 Monte Carlo 仿真采用共质心版图和 dummy 管最容易踩的坑是“以为叠了管子就万事大吉”。cascode 的效果依赖偏置、尺寸、工作点三个条件同时满足。有一次我帮人排查一个放大器增益偏低的问题查了很久发现是 cascode 管栅极偏置由电阻分压产生电阻受温度影响漂移导致某一角落上管进入线性区输出阻抗掉了一个数量级。这种问题在仿真里做工艺角扫描和温度扫描时很容易暴露出来。10. 最佳实践与工程建议在实际项目中选择哪种电流源结构不能只看“输出阻抗越高越好”还要看电压预算、功耗、面积和设计复杂度。如果系统电源电压充足例如 3.3V 或 5V基本 cascode 电流镜的电压浪费可以接受偏置电路简单是很好的选择。但如果电源电压在 1.8V 以下建议直接上低压/宽摆幅 cascode 电流镜否则主放大级的摆幅会被压缩得非常厉害。偏置设计是这一整套方案的核心。一个实用的设计流程是先确定支路电流根据功耗预算定下每个分支的电流。再确定过驱动电压 Vov。Vov 太小gm 变小、匹配变差Vov 太大电压余量不够。一般取 0.15V 到 0.3V 之间比较常见。根据 ID 和 Vov 计算宽长比然后进一步综合匹配需求选择 L。检查每只管子的 Vds确保所有管子在工艺角和温度范围内都处于饱和区。做 AC 仿真测量输出阻抗确认数量级符合预期。有一个经常被忽略的细节电流镜的匹配不仅取决于结构还取决于版图。即使电路设计完全正确版图上如果不做共质心匹配、不添加 dummy 管阈值电压失配和梯度效应会直接破坏电流比例。这个误差无法靠 cascode 结构本身消除。在工艺角仿真时不要只盯着 DC 工作点。重点看一下不同 corner 下的输出阻抗曲线以及偏置电压是否跟随 Vth 和 Vov 变化。如果偏置采用自偏置/参考支路方式要确认它在 fast 和 slow 角落下都能维持应有的摆幅。11. 总结与后续学习方向梳理一下整条技术脉络单管电流源的输出阻抗只有 ro受沟道长度调制影响明显cascode 结构通过“共源管 共栅管”的串接把输出阻抗提升到 gm*ro² 量级代价是输出电压余量增加低压/宽摆幅 cascode 电流镜进一步优化偏置把不必要的阈值电压损耗省掉
返回列表