1. 从零开始:认识我们的“折叠式共源共栅+共源”运放
如果你刚开始接触模拟集成电路设计,看到“折叠式共源共栅”这个名字,是不是觉得头都大了?别怕,咱们今天不搞那些复杂的公式推导,就用大白话聊聊它到底是什么,以及为什么在CSMC 0.18um这个工艺节点上,我们选择用它来干活。
你可以把运放想象成一个超级灵敏的“电压放大器”。它的核心任务,就是把输入的两个微小电压差,放大成一个大得多的输出电压信号。而“折叠式共源共栅”(Folded Cascode, 简称FC)结构,就是实现这个任务的一种非常经典且高效的电路架构。它有点像盖房子,普通的共源共栅是“一层叠一层”的直筒结构,而“折叠式”则像把其中一部分楼层“折”了一下,这样做的最大好处,就是在保证高增益的同时,能获得更好的输出摆幅和频率响应。这次我们的设计,就是在FC后面又级联了一个共源极(Common Source, CS)作为输出级,相当于给这个高增益的“预放大器”又加了一个“功率推动级”,让整个运放既能“看得清”微弱的信号,又能“推得动”后级的负载。
那么,为什么偏偏是CSMC 0.18um工艺呢?这就像木匠选木头,不同的工艺就是不同的材料。0.18um指的是晶体管的沟道长度,这个尺寸在当下属于成熟工艺,成本、性能和设计资源之间取得了很好的平衡。CSMC(中芯国际)的0.18um工艺库非常完善,模型准确,对于学习者和实践者来说,是入门和深化模拟IC设计的绝佳选择。我们设定的电源电压VCC=5V,输入共模电压VIP/VIN和参考电压VREF都设在2.5V,也就是电源电压的一半,这是为了让信号有最大的上下摆动空间,就像在马路中央开车,左右都有充足的避让余地。
整个电路系统主要由四大部分构成:最核心的折叠式共源共栅放大级、负责进一步放大和驱动的共源极输出级、确保输出直流工作点稳定的共模反馈电路,以及为所有晶体管提供合适“工作偏置”的偏置电路。偏置电路就像是给整个乐队定调,它产生的电压或电流,决定了每一个晶体管是工作在“放大区”还是“开关区”。而共模反馈电路则像一个“稳压器”,确保输出端的直流电压稳稳地停留在我们想要的2.5V附近,不会因为温度、工艺偏差而乱跑。接下来,我们就一步步搭建这个电路,并用仿真工具来验证它是否真的如我们所愿那样工作。
2. 电路搭建与参数初定:像搭积木一样设计
纸上谈兵终觉浅,咱们直接打开Cadence Virtuoso(或者其他你熟悉的EDA工具),新建一个Schematic,开始“搭积木”。这个过程需要耐心和反复调整,我把自己踩过的坑和心得分享给你,希望能帮你少走弯路。
2.1 核心放大级:折叠式共源共栅(FC)的布局
首先放置差分输入对管。我们选择PMOS管作为输入对(比如M1和M2),因为PMOS在0.18um工艺下,其闪烁噪声(1/f噪声)通常比NMOS要小,这对于追求低噪声的应用很关键。它们的宽长比(W/L)需要仔细斟酌,这直接关系到跨导、功耗和噪声。一开始,你可以参考工艺库文档里的典型值,或者从一些经典论文里找一个起点。我这里最初设了一个比较保守的值,比如W=10u, L=0.5u(注意,0.18um工艺的最小沟道长度通常是0.18u,但为了性能,我们常会取大一些,比如0.5u或1u,以减小沟道长度调制效应)。
接下来是“折叠”部分的关键——折叠点电流源和共栅管。我们需要一组NMOS电流源(比如M3, M4)将输入差分对的尾电流“折叠”下来,并注入到共栅NMOS管(比如M5, M6)中。同时,还需要一组PMOS电流源(比如M7, M8)作为共栅管的负载。这几组管子的尺寸和偏置电流,共同决定了第一级放大器的增益、输出摆幅和极点位置。我的经验是,先确保所有管子都预留足够的过驱动电压(Vod=Vgs-Vth),通常设置在150mV-300mV之间,以保证它们在各种工艺角下都能稳定工作在饱和区。你可以先用一个简单的公式估算:Ids = 0.5 * μ * Cox * (W/L) * Vod^2 * (1+λ*Vds)。其中λ是沟道长度调制系数,从模型里可以查到。
2.2 输出级与偏置网络:赋予电路“力量”与“稳定”
FC级的输出虽然增益高,但输出电阻大,驱动能力弱。所以我们级联一个共源极(CS)作为输出级。这个输出级(比如M9, 如果采用NMOS)的尺寸要更大,因为它要提供足够的电流来驱动负载电容(可能是下一级的输入电容,或者我们设定的测试负载,比如1pF)。它的宽长比会显著影响运放的带宽和压摆率。
偏置电路的设计是重中之重,也是最容易出问题的地方。我们不能直接用理想的电压源来偏置,必须设计一个与电源、温度、工艺相关(即PTAT)的电流源,然后通过电流镜复制到各个支路。一个简单的带隙基准核心加上启动电路,再配合多路电流镜,是常见的做法。你需要确保电流镜的镜像比例准确,并且所有被偏置的管子,其栅极电压都能使它们进入饱和区。这里特别要注意“匹配”问题,对于电流镜对管,尽量采用共质心版图布局来减小失配,在原理图设计阶段,就要用多指栅(multifinger)结构来表征。
共模反馈(CMFB)电路我们采用开关电容或者连续时间结构。对于中低速应用,连续时间CMFB更简单可靠。它的原理是检测输出端的共模电压,与一个参考电压(VREF=2.5V)比较,产生误差信号,然后反馈回去调节FC级负载电流源的栅压,从而将输出共模电压“锁”在2.5V。CMFB环路的稳定性需要单独仿真验证,其带宽通常要设得比主信号通路慢,但又要足够快以抑制共模干扰。
3. DC仿真:确保每个晶体管都“站对位置”
电路搭好了,第一件事不是看它能跑多快(AC),而是先看它能不能“站直了”,这就是直流工作点(DC Operating Point)仿真。如果DC点不对,后面的所有仿真都是空中楼阁。
3.1 仿真设置与关键检查点
在ADE L(或Virtuoso ADE Explorer)里,新建一个DC仿真。扫描类型选“直流”,通常我们不需要扫描变量,直接运行,工具会计算电路在静态(没有交流信号输入)下的各个节点电压和支路电流。运行完后,最关键的步骤是查看所有晶体管的工作区域。在输出日志或通过计算器(Calculator)的函数op(“region” “/M1”)来查看。我们期望看到的是“saturation”(饱和区)。只有工作在饱和区,晶体管才能起到良好的放大作用。
为什么饱和区这么重要?你可以把晶体管想象成一个水龙头。在饱和区,水龙头开度(栅压)控制水流(电流)的大小,而下游的水压(漏源电压)对水流影响很小,这是一个很好的受控电流源特性,正是放大器需要的。如果管子工作在“线性区”(triode region),那就好比水龙头开度很大,但水流主要被下游的水压决定,控制力很差,增益会非常低。如果工作在“截止区”(cutoff),那水龙头就完全关死了。
根据原始文章的提示,我们检查发现除了M26和M37(它们很可能是偏置电路或CMFB电路中的特定器件,用于启动或提供特定功能),所有其他管子都稳稳地工作在饱和区。这是一个非常好的迹象,说明我们的偏置电压设计基本合理。然后,我们重点查看输出节点的直流电压。仿真结果显示,输出共模电压大约在2.502V,与我们设定的2.5V目标几乎完全一致,误差只有2mV。这证明了我们的共模反馈电路工作得非常出色,成功地将输出“钉”在了理想位置。这个微小的偏差可能来源于运放自身的失调,在可接受范围内。
3.2 深度分析与调优思路
如果仿真发现有些管子没在饱和区怎么办?别慌,这是常态。首先,看它的Vds(漏源电压)是否大于Vod(过驱动电压)。如果Vds太小,可能是该支路电流太小,或者负载太重,可以尝试调整其宽长比或上游的偏置电流。其次,看Vgs(栅源电压)是否合理。如果Vgs太小,可能偏置电压给得不对,需要回溯检查偏置生成电路。
另一个重要检查点是各个节点的电压余度(Voltage Headroom)。尤其是在折叠式共源共栅这种堆叠了多个管子的结构中,从电源到地之间的电压要合理分配给每一个管子。你需要确保没有哪个管子“吃掉”了过多的电压,导致其他管子没有足够的Vds来维持饱和。例如,输入对管的Vds、折叠点节点的电压、共栅管的Vds、输出级的Vds,都需要逐一审视。我常用的方法是,把关键节点的电压在仿真结果里标注出来,画一个简单的电压分布图,一眼就能看出哪里是瓶颈。
4. AC仿真:剖析运放的“速度”与“稳定性”
DC点调好了,电路算是能站稳了。接下来我们就要测试它的“动态性能”:给它一个小信号“推”一下,看它反应有多快、会不会振荡。这就是交流小信号(AC)分析。
4.1 仿真配置与增益带宽积
在ADE中新建一个AC仿真。频率范围设置从1Hz到1GHz(1-1G),采用对数扫描。如何施加激励呢?对于全差分运放,我们需要施加差模信号。在正输入端VIP加一个500mV的交流小信号(幅度是1,但通过端口属性设置相位为0度),在负输入端VIN加一个**-500mV的交流小信号**(幅度是1,相位为180度)。这样,差模输入信号就是1V(500mV - (-500mV)),而共模输入信号是0。注意,这个500mV是AC幅度,用于小信号分析,实际仿真时它只是一个测试标度,不代表真实的大信号。
运行仿真后,我们最关心的几条曲线就出来了。首先看增益。在输出端(差分输出VOP-VON)绘制电压增益(dB20)。在低频段(比如10Hz),曲线应该是一个平坦的高台,这个高度就是运放的开环直流增益。在我们的仿真中,这个值达到了101dB。这是个非常不错的成绩,意味着这个运放能将输入差模电压放大大约10万倍。高增益是运放实现高精度运算(如闭环精度)的基础。
接着看带宽。随着频率升高,增益开始下降。当增益下降到比直流增益低3dB(即下降到98dB)时,对应的频率就是**-3dB带宽**,也叫单位增益带宽的预估点。我们的仿真显示这个带宽是16MHz。增益带宽积(GBW)约等于 10^(101/20) * 16MHz ≈ 1.6GHz。这个GBW值在0.18um工艺、5V电源下是合理的,它决定了运放能处理多高频率的信号而增益不明显衰减。
4.2 相位裕度与稳定性判据
光有增益和带宽还不够,我们必须确保运放是稳定的,不会自激振荡。这就要看相位裕度。在同一幅图上,绘制输出信号的相位。找到增益下降到0dB(即增益为1倍)的频率点,这个频率称为单位增益频率。在这个频率点上,查看相位曲线距离-180度还有多少度,这个差值就是相位裕度。
为什么是-180度?因为对于一个负反馈系统,如果环路增益的相位达到-180度,同时幅度还大于1,那么负反馈就变成了正反馈,就会产生振荡。我们的仿真结果显示,相位裕度是73度。这是一个非常充裕的裕度,通常大于60度就认为系统是稳定的,响应会比较“干净”,过冲小。如果相位裕度只有45度,阶跃响应会有较大的过冲和振铃;如果低于30度,就非常危险了。如果相位裕度不足,我们需要回过头去调整补偿电容(可能在输出级并一个米勒电容)或者调整主极点的位置(例如减小关键节点的阻抗或电容)。
5. 噪声仿真:聆听电路的“底噪”
对于一个高精度运放,比如用于传感器信号调理或音频前置放大,噪声性能至关重要。噪声就像背景里的“嘶嘶”声,会淹没微弱的有用信号。我们需要仿真并评估它。
5.1 噪声来源与仿真方法
集成电路中的噪声主要来自两个方面:闪烁噪声和热噪声。闪烁噪声(1/f噪声)在低频段占主导,它与工艺、器件面积密切相关。热噪声(白噪声)在所有频率都有分布,与器件的跨导和电阻值有关。在ADE中,我们设置一个Noise仿真。输入源选择差模输入电压源,输出节点选择差分输出,并指定一个参考源(通常是输入噪声源本身)。仿真频率范围同样可以设为1Hz到1GHz。
仿真结束后,我们可以通过Results -> Print -> Noise Summary...来打印一个详细的噪声贡献报告。这个报告会列出每个噪声源(每个晶体管、每个电阻)对输出总噪声的贡献量,并按照贡献大小排序。这简直是调试的“神器”!你一眼就能看出谁是噪声“大户”。通常,输入对管和负载电流源是主要的噪声贡献者,因为它们的噪声会直接被放大。
5.2 积分噪声与设计优化
噪声报告给出的是每个频率点的噪声功率谱密度。但我们更关心在一定频带内的总噪声。这就需要做噪声积分。在计算器(Calculator)里,我们可以使用noise函数,然后选择积分integ功能。例如,如果我们关心的信号带宽是0.1Hz到10MHz,我们就可以对这个频带内的输出噪声电压谱密度进行积分,开平方后得到积分噪声电压,单位是Vrms。这个值直接告诉你,在目标带宽内,运放自身会产生多大的“底噪”电压。
根据原始文章的简单描述,我们进行积分后,可能会得到一个在微伏量级的结果。如何优化它呢?如果闪烁噪声太大,可以增大输入对管的面积(W*L),因为1/f噪声与面积成反比。但这会增大输入电容,影响带宽。如果热噪声太大,可以考虑在满足带宽要求的前提下,增大输入对管的跨导(通过调整偏置电流或宽长比),因为热噪声功率谱密度与跨导成反比。这是一个典型的折中(Trade-off)过程:噪声、带宽、功耗、面积,你需要根据系统要求反复权衡。我个人的经验是,先通过噪声贡献报告锁定前两三个最大的噪声源,集中精力优化它们,往往能事半功倍。
6. 深入实践:工艺角与蒙特卡洛分析
前面的仿真都是在“典型”工艺模型下进行的。但芯片制造存在偏差,比如晶体管阈值电压、氧化层厚度等参数会在一定范围内波动。我们必须确保设计在所有可能的工艺偏差下都能正常工作,这就是工艺角仿真和蒙特卡洛分析。
6.1 工艺角仿真:覆盖极端情况
CSMC 0.18um工艺库通常会提供多个工艺角模型,例如:
- TT: Typical-Typical (典型NMOS, 典型PMOS)
- FF: Fast-Fast (快NMOS, 快PMOS)
- SS: Slow-Slow (慢NMOS, 慢PMOS)
- FS: Fast-Slow
- SF: Slow-Fast
此外,还要考虑温度变化(比如 -40°C, 27°C, 125°C)和电源电压波动(比如5V±10%)。我们需要在ADE中设置一个“Corner”仿真,将工艺、温度、电压的所有组合都跑一遍。然后检查在所有角落下:
- 所有管子是否仍然工作在饱和区?(至少关键放大管必须保证)
- 直流增益是否下降过多?(例如,从101dB掉到95dB以下可能就有风险)
- 带宽和相位裕度是否仍然满足要求?(例如,带宽>10MHz, 相位裕度>60度)
- 输出共模电压是否仍能稳定在2.5V附近?
这个过程可能会暴露出在TT corner下隐藏的问题。例如,在SS corner(慢管,高阈值电压)下,可能某些管子的过驱动电压不足,滑入线性区,导致增益暴跌。这时就需要回到DC偏置设计,增加偏置电流或调整尺寸,确保在最差的SS corner下也有足够的余量。
6.2 蒙特卡洛分析:评估良率与失配影响
工艺角仿真覆盖的是全局工艺偏差。而同一芯片上相邻两个晶体管之间的微小差异,称为失配。这会影响差分对的对称性,导致运放产生输入失调电压。蒙特卡洛分析就是用来评估这个的。
在仿真中,我们启用蒙特卡洛模型,对电路进行数百次甚至上千次的随机抽样仿真。每次仿真中,每个晶体管的参数(如Vth, β)都会根据其失配模型进行随机扰动。仿真结束后,我们可以统计输出失调电压、增益、带宽等参数的分布情况,计算其均值(μ)和标准差(σ)。例如,输入失调电压的3σ值如果小于系统要求(比如<1mV),那么我们就可以认为设计在失配影响下是鲁棒的。
如果蒙特卡洛结果显示失调电压太大,版图设计时就需要采用更严格的匹配布局技巧,比如共质心结构、dummy器件、相同的取向和周围环境等。这些措施虽然不能消除失配,但可以显著减小它。
7. 版图设计初探与后仿真考量
原理图仿真(前仿真)通过后,就要进入紧张的版图设计阶段。这里只提几个与我们的FC+CS运放密切相关的要点,因为版图本身是一门大学问。
匹配性至关重要:对于差分对(M1, M2)、电流镜对管,必须使用共质心布局,并添加dummy器件,以消除光刻和工艺梯度带来的系统性失配。走线对称:从输入焊盘到两个输入管栅极的走线,必须尽可能做到长度、宽度、拐角完全对称,以减小寄生电阻和电容的失配,这直接影响共模抑制比。电源与地线:要足够宽,采用网格或环状结构,以减小IR压降和电感效应。对于模拟模块,通常使用独立的、干净的模拟电源和地。
画好版图后,进行DRC(设计规则检查)和LVS(版图与原理图一致性检查)。通过后,最关键的一步是参数提取。工具会从版图中提取出所有连线的寄生电阻和电容,生成一个带寄生参数的网表。用这个网表再次进行DC、AC、噪声仿真,这就是后仿真。
后仿真的结果往往会比前仿真“差”一些:增益可能会下降几个dB,带宽会因为寄生电容而减小,相位裕度可能变差,噪声可能会增加。这是因为之前忽略的寄生效应现在被包含了进来。你需要对比前仿和后仿的结果,如果性能退化在可接受范围内,那设计就基本成功了。如果退化严重,比如相位裕度从73度掉到了40度,那就要回到版图,看看是哪里的寄生电容太大了(比如长平行走线),并优化布局布线。这个过程可能需要反复几次,直到后仿真结果也满足指标。这最后一步,才是真正检验设计是否扎实的试金石,它连接了理想电路与物理现实。