ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

单管放大器AC仿真全解析:从频响曲线到直流工作点与密勒效应

单管放大器AC仿真全解析:从频响曲线到直流工作点与密勒效应 做模拟IC设计这行Cadence Virtuoso里的AC仿真基本上是天天都要碰的东西。可越是基础的操作越容易在细节上翻车。前阵子一个师弟把单管放大器频响曲线截图发我看上去挺正常的一条曲线增益只有6个dB相位一路掉到接近-300度他问我是不是管子接错了。我打开他的仿真环境扫了一眼问题其实很典型AC激励源压根没设置对直流偏置点让他把管子推到了线性区输出端还忘了接负载电容频率轴也被设成了线性扫描。这一套组合拳下来曲线能不怪吗。AC仿真本身不复杂但能跑和跑对完全是两码事。尤其单管放大器这种最基础的电路恰恰是检验你是否真正理解AC仿真原理的最佳试金石。这篇东西我打算把单管放大器频响仿真从头到尾掰开揉碎讲一遍从激励源设置、直流工作点检查、输出负载的接法到频响曲线到底该怎么读、每个拐点背后对应什么物理机制再到我自己踩过的一些坑一次性说清楚。不管你是刚上手Virtuoso的学生还是带项目的新人照着这个思路走至少不会再把一条错误的曲线当成宝。1. 单管放大器AC仿真总出问题的根源在哪里1.1 先搞清楚AC仿真到底在算什么AC仿真本质上是对电路做小信号线性分析。仿真器会先在设定的直流工作点上把每个管子、每个无源器件都线性化成小信号模型然后给电路叠加一个正弦小信号在某个频率范围内扫描算出每个频点上的小信号响应。这里有个关键点很容易被忽略AC仿真的结果完全取决于直流工作点。工作点不对后面所有频响曲线都没有意义。比如你把NMOS偏到了线性区仿真器照常会给你输出一条增益曲线只不过这条曲线对应的已经不是放大器正常的放大状态而是像一个可变电阻那样衰减信号你看到的结果自然就是错的。所以AC仿真能不能跑出正确结果第一步不是看曲线而是先把直流工作点检查明白。我个人在检查别人仿真问题的顺序永远是先看工作点再看激励源然后看负载最后才轮到看曲线。1.2 我用来做示例的共源级放大器参数为了让后面的讨论有具体抓手我设定一个非常经典的共源级放大器CS放大器作为参考电路参数如下表参数数值说明工艺180nm CMOS也可以换成其他工艺规律不变增益管NMOSW/L 20µm / 0.18µm单管共源级电源电压 VDD1.8V标准180nm工艺电压电阻负载 R_load20kΩ漏极到VDD的电阻输入直流偏置 VG约0.55V~0.65V需结合工作点微调让输出在中间电平输出负载电容 CL1pF模拟后级负载输入源阻抗 Rs0Ω到10kΩ可调这个参数对带宽的影响后面会专门讲这个电路的预期低频增益大致在20dB上下具体数值会根据实际偏置电流略有浮动。带宽方面在CL1pF、输出电阻约16kΩ左右的情况下主极点应该在10MHz附近。记住增益约20dB、带宽约10MHz这个预期值后面就是围绕它来排查各种异常。1.3 第一步永远是直流工作点先让电路活对在Virtuoso里跑AC仿真之前我会先做一次DC仿真然后打开原理图的Annotate → DC Operating Point把每个节点的电压、每个管子的工作状态都显示出来。对于共源级放大器检查三件事增益管必须工作在饱和区条件就是VDS VGS - VTH。如果VDS只有零点几伏基本可以断定管子进了线性区AC仿真的结果直接废掉。输出节点直流电平最好在电源电压的一半附近这样信号才有足够的上下摆幅空间小信号线性化也才算合理。记录一下gm和rds的具体数值后面手算验证频响曲线时要用。如果偏置不对比如输出节点被电阻下拉到了0.2V那你首先应该去调输入直流偏置或者电阻值而不是急着跑AC。偏置没捋顺之前跑AC得到的每一条曲线都只是在浪费时间这一点再怎么强调都不过分。2. 从原理图到仿真台把激励源和负载一次配到位2.1 激励源的设置:AC小信号与直流偏置要同时给在analogLib库里面选电压源时刚入门的人经常搞混几种源的区别。平常常用的有vdc、vsin、vsource和port这几种。对于单管放大器的AC仿真最稳妥的做法是用一个支持同时输出直流偏置和交流小信号的电压源在里面同时设置DC voltage和AC magnitude。关键就在这个AC magnitude上。很多人跑完仿真发现曲线是一条接近负无穷的直线原因十有八九是忘记填这一项或者填成了0。我在实际测试中发现AC magnitude统一填1V是最省心的做法。为什么填1V方便因为AC仿真本身是线性小信号分析输入1V的信号输出端的电压值就直接等于电路的电压增益。比如你在输出端看到的幅度是31.6那增益就是31.6倍折合成dB的话约等于30dB。这样省去了再拿输出除输入这一步换算读曲线的时候脑子不容易绕晕。同时注意这个1V是小信号的幅度设置不是直流偏置。直流偏置照样要单独设置到管子需要的栅极电压上二者是并行不冲突的。2.2 输出探针、负载电容和源阻抗怎么接探针接法看似小事其实也会坑人。正确的做法是在输出节点上挂一个探针同时把输入端的探针也挂上在波形计算器里直接用VF(/OUT)/VF(/IN)做比值这样算出来的才是真正的电压增益传输函数。如果只挂输出探针默认显示的是输出节点的绝对电压这个数值在频响图上也可以当增益看但前提是AC幅度必须恰好是1V。为了保险起见我习惯直接把输入输出两个探针都加上用比值方式出图这样无论AC幅度设置成多少都不会读错。负载电容CL的接法同样重要。很多初学者画原理图时只画了放大管和电阻没有加任何负载电容跑出来的带宽曲线会显得特别宽可能到好几个GHz都没有明显滚降。这不是你的放大器真的那么快而是你根本没有给放大器一个真实的负载环境。实际电路后级总有栅极电容、走线电容、下一级的输入电容所以一定要在输出节点和地之间接一个合理的CL值。源阻抗这块更隐蔽。如果输入端直接接理想电压源源阻抗为零输入节点的极点会被推到无穷远你在曲线上完全看不到输入极点的贡献。但真实信号源是有内阻的前一级的输出阻抗通常也有几千到几万欧姆。所以仿真时如果只有Rs0的曲线你对带宽的判断很可能是过度乐观的。2.3 AC扫描参数里的频段、点数和刻度AC仿真面板里需要设置扫描类型、起始频率和停止频率。扫描类型建议用Logarithmic也就是对数扫描起始频率取1Hz或10Hz停止频率取1GHz或10GHz。频率轴用对数刻度的原因后面第4节会详细展开这里先记住频响曲线的极点和零点在频谱上通常跨越好几个数量级只有对数轴才能把整条曲线在屏幕上完整、均匀地展现出来。扫描点数默认每个十倍频程给100个点就够用太少了曲线会有锯齿感尤其是相位曲线在极点附近变化很快点数太少会看到折线而不是平滑曲线太多了仿真时间变长还会因为数值噪声在曲线上留下细小的毛刺。我一般用每十倍频程100点个别想看得更细的关键频段会单独用线性扫描再补一段。3. 频响曲线的正确读法幅度、带宽与相位3.1 dB标度和线性标度先想清楚你要看什么Virtuoso的波形窗口里可以同时用dB、线性幅度、相位等多种方式显示曲线。新手最容易犯的错是选择了线性标度盯着曲线从100倍往下掉然后自己算半天怎么没看到-3dB点。我的习惯是主图用增益dB20显示也就是20×log10(输出电压/输入电压)。这种标度下低频平台段的读数就是放大器的小信号增益比如20dB就对应10倍40dB就对应100倍。遇到需要精确比较曲线形状的场合我才会临时切到线性标度。补充一个小知识点dB20和dB10只在测功率时才用dB10电压增益一律用dB20。我看过有人把电压增益的dB数直接除以10去算倍数结果对不上号还以为是电路问题这种低级错误也算高频翻车现场了。3.2 -3dB带宽到底从哪里量频响曲线上低频段有一段接近水平的区域那就是中频增益平台。从高频端往下曲线开始向下弯当增益从平台值下降了3dB的位置对应的频率就是-3dB带宽也就是放大器的上限频率。实际操作中我会在波形窗口里打两个Marker一个放在平台区域比较高的位置比如10kHz处的增益值另一个沿曲线往后挪当增益比平台低3dB时停下来读到的X轴频率就是带宽。注意一定要先确定平台在哪。有些人看到曲线从几十Hz就开始缓慢下降就以为带宽只有几百Hz其实那可能是输出耦合电容或者扫描源的低频限制导致的问题不是放大器本身的真实频率响应。单管共源级放大器的频响曲线一般只有中频平台加高频滚降低频端不会有明显的零点。如果你的曲线在低频端还有额外下降那通常是你输入端的偏置网络引入了高通效应需要单独分析。3.3 相位曲线共源级从-180度起步是正常的很多人第一次看到共源级放大器的相位曲线发现低频段相位是-180度左右心里就犯嘀咕是不是仿真器把正负搞反了。这种担心完全多余。共源级放大器天生就是反相结构栅极输入电压上升时漏极输出电压下降所以它的小信号增益本身就带一个负号。频响的相位曲线在低频段显示-180度相当于180度两者等价这才是正确结果不是反转。随着频率升高每过一个极点相位会再滞后90度。一个单极点系统最终会向-270度方向收敛如果还有第二个、第三个极点相位会继续往下掉。所以当你看到相位一路从-180度降到-270度说明这个放大器在带宽之后至少有一个主极点在起作用如果继续降到-360度甚至更多那说明高频部分还有次极点和零点在作祟。3.4 用Marker和波形计算器把重要频点标出来仿真跑完不要急着截图先在波形窗口里把关键信息标注清楚。我的固定动作是在增益曲线上找到中频平台放一个Marker记下增益值。移动第二个Marker到增益下降3dB的位置记下带宽频率。切到相位曲线读出带宽频率点上的相位余量是多少。把输入输出电压比值函数存在Output Setup里方便下次重新仿真后直接调用。这些标注看起来是小事但在写报告或者和同事对方案时能省掉大量来回确认的时间和口舌。4. 曲线是怎么来的单管放大器的极点物理4.1 输出节点的主极点决定了带宽的量级单管共源级放大器的频响之所以会有滚降根本原因是电路里存在各种寄生电容和负载电容它们与等效输出电阻一起形成了RC极点。输出节点上的等效电阻包括漏极负载电阻R_load和增益管的输出电阻ro的并联值记作R_out。输出节点上的电容包括负载电容CL、管子本身的Cdb、还有栅漏电容Cgd的一部分。输出极点频率大致可以写成fp_out ≈ 1 / (2 × π × R_out × (CL Cdb Cgd相关项))以我前面给的示例参数来算R_load20kΩ假设NMOS的ro有80kΩ左右那么R_out≈16kΩCL1pF这样fp_out≈1/(2×π×16k×1p)≈10MHz。这条曲线的主极点就在10MHz附近超过这个频率增益以每十倍频程-20dB的速度滚降。4.2 密勒效应会把输入电容放大得很夸张共源级放大器的另外一个重要极点来自输入端。栅源电容Cgs和栅漏电容Cgd都对输入极点有贡献其中Cgd的影响还会被密勒效应放大。密勒效应的说法是跨接在反相放大器的输入和输出端的阻抗等效到输入端时数值要乘以(1增益倍数)。Cgd跨在栅极和漏极之间而漏极相对栅极的增益是-Av所以等效到栅极的电容变成了Cgd×(1Av)。比如Cgd本身只有0.5pFAv是10倍等效出来就是5.5pF如果Av是40dB100倍那就变成50pF左右非常可观。输入极点频率大约等于fp_in ≈ 1 / (2 × π × Rs × (Cgs Cgd×(1Av)))如果信号源内阻Rs很小比如0Ω这个极点频率会非常高对带宽几乎没影响此时起作用的主要是输出极点。但如果Rs有10kΩ甚至更高输入极点就会移动到很低的频率变成整个放大器的主极点带宽跟着大幅缩水。这也是为什么同一块电路在不同驱动源条件下测出来的带宽会差很多不是电路变了是源阻抗变了。4.3 为什么频率轴必须是对数的前面铺垫了这么多其实都在为这里做说明。单个RC极点只在十倍频程范围内就完成从平坦到-20dB/dec的过渡如果把频率轴设成线性刻度可能在屏幕最左边挤了1000倍的频率范围而真正的极点区域只有几个像素宽曲线看起来像一条从高处垂直摔下来的直线什么都看不出来。对数轴的含义是把频率的倍数关系等距化每十倍频程占同样的屏幕宽度。这样低频、中频、高频的细节都能均匀展开极点的转折位置一眼就能看到。这是读频响曲线的基本素养。5. 五个高频翻车现场每个都能直接照着排查5.1 翻车一跑完了曲线是一条平线或者完全没有信号症状是增益曲线全程在-200dB附近趴着或者输出波形是水平直线。这通常不是放大器本身的问题而是激励源没设置对。排查链是这样走的先双击输入电压源看AC magnitude是不是0AC magnitude是不是没填或者填成0。再看输出探针是不是接对了节点。然后看输入直流通路是不是输入源和MOS管栅极之间断开了。我自己遇到过最离谱的一次是原理图里输入源连到了地而不是栅极结果仿真器很诚实地给出了0增益的结果。5.2 翻车二低频增益只有2倍和手算差了几十倍这种情况十有八九是直流工作点不对。如果管子被偏置到了线性区增益会变得非常低如果偏置电流太大导致过驱动电压过大跨导gm会异常增益同样对不上。排查方法是先把DC工作点面板调出来看管子工作在哪个区看gm和ID是多少然后用Av≈gm×(ro∥R_load)这个公式手算一遍。如果手算和仿真对不上说明你手算用的参数和仿真工作点不是同一套数据如果工作点本身就错了那就先调整偏置比如改输入直流电平把输出拉到接近VDD的一半。另一个容易被忽略的原因是你把输出探针接到了输入节点上比例算出来自然接近1。这种错误虽然低级但我真的见过不止一次。5.3 翻车三带宽只有几十kHz换个源电阻又好几十MHz了这个问题在找bug阶段最让人困惑。同一个放大器平台增益都一样唯一区别就是输出带宽差了几十倍。比如用理想电压源直接驱动时带宽10MHz看起来很正常但加上一个10kΩ的源阻抗之后带宽掉到200kHz。如果不太理解密勒效应第一反应肯定是仿真器坏了。其实这正是密勒电容放大的效果。低频增益约20dB10倍Cgd如果有1pF等效到输入就有10pF左右再算上Cgs输入总电容可能到15pF和10kΩ源电阻一结合输入极点大约就在1MHz附近。如果源阻抗20kΩ那这个值还会更低。所以遇到换源阻抗带宽突变的情况不要慌先在计算器里分别看输入节点的阻抗和电容确认主极点位置再回来对照公式。5.4 翻车四相位曲线高频段掉到-360度以下相位曲线往-360度方向一路走看起来好像很吓人其实只要极点数够多就正常。单管放大器在很高的频率下除了主极点还有次极点以及晶体管的寄生极点三个极点叠加起来相位就能到达-450度甚至更往下。这是物理事实不是错误。但反过来如果相位曲线高频段出现了往上翘的拐弯那就要格外留意了这通常说明电路里存在零点。零点可能来自栅漏电容Cgd的前馈通路也可能来自某些寄生路径。零点在频响曲线上表现为相位回升和增益下降速度变缓严重时会让增益曲线在高频出现一个平台甚至反翘。如果是在做反馈系统的稳定性分析这种高频零点的存在感会变得至关重要绝不能忽略。5.5 翻车五波形上长满毛刺曲线一点也不光滑曲线出现明显毛刺第一反应不要怀疑仿真器坏了先检查扫描设置。每十倍频程只给十几个点曲线在高频段转折区域就会因为采样密度不够而出现锯齿。把点数增加到100点甚至200点毛刺一般就没了。还有一种毛刺来源是数值噪声尤其是输出阻抗非常高、电流非常小的电路中更容易出现。这时候可以试试把仿真精度等级调高或者把扫描频段的起始频率稍微提高一点避开数值异常的低频区域。6. 让频响曲线真正可靠的交叉验证方法6.1 用DC工作点参数手算反推曲线不是孤证仿真跑完不要急着存档。我在确认一条频响曲线可信之前一定会用DC工作点里读出来的gm和ro手算一遍低频增益再用R_out和CL估算一遍主极点频率。把所有数对上了这条曲线才算真正钉死。以示例电路为例假设仿真显示ID60µAVOV0.15V那么gm≈2×ID/VOV≈0.8mA/V。如果工作点显示ro80kΩR_load20kΩ那么R_out≈16kΩ低频增益Av≈0.8m×16k≈12.8倍也就是约22dB。带宽估算fp≈1/(2×π×16k×1p)≈10MHz。拿着这两个数字去看仿真曲线如果平台在22dB附近、-3dB点在10MHz附近基本可以确认仿真环境正确。6.2 瞬态仿真交叉验证频域结果频域结果最好再用瞬态仿真验证一下。做法很简单把输入源换成vsin频率放在带宽的百分之一左右比如100kHz幅度设成一个小信号比如10mV跑一个足够长度的瞬态仿真。测量输出正弦波的峰峰值与输入的峰峰值相除得到的倍数应该和AC曲线上100kHz处的增益对应上。这个方法特别适合排查AC曲线看着对但其实仿真架设有问题的情况。因为你用完全不同的两类仿真方式得到的却是同一个物理量的两种表达如果它们对不上肯定有一边出了问题。6.3 参数扫描看极点移动规律改变CL验证主极点位置还有一个很实用的验证手段是参数扫描。在ADE里把负载电容CL设成变量分别扫描1pF、2pF、5pF三组看带宽是怎么变化的。如果主极点确实由输出节点决定那么CL从1pF增加到5pF带宽应该近似反比例下降也就是从10MHz左右降到2MHz左右。如果扫描结果明显不符合这个规律那就说明主极点另在他处需要重新审视输入极点或者寄生效应对带宽的主导地位。这种让元件参数动起来观察曲线变化规律的手段比死盯单条曲线更能暴露问题。很多低频电路的陷阱就是在这种情况下暴露出来的。最后再分享一个我自己的习惯每次跑AC仿真之前先在心里问自己三句话——直流工作点对不对激励源设置对不对负载环境合不合理。这三个问题答不上来跑出来的曲线再漂亮我也不信它。配合上面这套读图和验证方法单管放大器的频响曲线基本就不会看不明白了。
返回列表