本文为我自己的学习笔记,属于Cadence Virtuoso系列的进阶部分,采用的软件版本是Cadence Virtuoso IC617。其他文章请点击上方,看我制作的Cadence Virtuoso专栏内容。
在前面的文章中,记录了gm/id设计方法并仿真了有关参数曲线,以及使用gm/id设计方法去设计一个有源负载差动对(俗称五管OTA)。本文将更深一步研究,设计一个两级放大器,第一级使用有源负载差动对,第二级使用电流源负载的共源极,同时还学习了密勒补偿。
原理 电路拓扑电路拓扑如下,其中M5和M7是电流源,因为电流源的研究不在本文讨论,所以在后面的仿真中使用理想电流源代替。
对于一个运放系统来说,其自身的响应H(s)引入了一个180°的相移(实际上为-180°),当系统接入反馈时,若反馈自身的响应也引入180°相移,那整个系统的总相移为360°。当增益大于等于1时,电路会放大自身的噪声最终产生振荡,这是我们不希望看到的。
当相移180°的频率点位于运放的单位增益带宽(wu)之内时,在这个频率点上将发生振荡,这个系统将变得不稳定,所以我们希望这个频率点大于wu。
如下图,将相移180°的频率点移动到大于wu的地方,此时环路增益小于1,在这个频率点就不会发生振荡。
那么问题来了,在运放的设计中,这个频率点不是随随便便就能移动的,我们需要对它进行定量的分析。
如下图所示,单位增益带宽wu的频率点为GX,相移180°的频率点为PX,它们对应的相位差距取值多少比较合适?这个定量分析得到的相位差,就是相位裕度。
下图给出了取不同相位裕度的情况。可以看出,取45°时,电路出现了一些振铃,有一定的不稳定性。取90°时,虽然电路较为稳定,但是响应速度变慢了。取60°时,电路呈现出较好的效果。结合实际设计经验,相位裕度一般取值为60°-70°。
对于一级运放来说,其可以看成是单极点系统,相移不会大于90°,不需要考虑相位裕度。但对于两级运放,其相移是会达到180°的,在设计时需要考虑相位裕度。
对于频率补偿,有以下两种方法。
- 减小总的相移,把相移交点外推,但实现起来不太现实。
- 降低增益,把增益交点内推,但电路指标会下降。
我们还有另一种思路,增加负载电容CL,使得主极点的频率wp1降低,由此,我们引入密勒补偿。
在两级运放之间,加入一个密勒补偿电容Cc,如下图所示。
密勒补偿以一个中等的电容器建立了一个低频极点,不需要引入其他的元器件和晶体管,节省了芯片面积。但是在实际设计过程中,密勒电容很难定量计算其具体数值。根据设计经验,若相位裕度取值为60°,Cc取值为0.25到0.5倍CL。
引入密勒补偿还有一个问题需要解决,就是系统频率响应的零点,这个零点会导致更大的相移,同时,增益曲线会出现+20的转折,这将降低系统的稳定性,如下图红色曲线所示。(在本文涉及到的设计中,为了简化分析,不引入零点补偿电路)
使用一个电阻Rz与Cc串联可以解决这个问题,如下图。其中Vin是上一级运放的输出,Rs是上一级运放的输出电阻。
还有一种方法,让Rz由工作于线性区的MOS实现。而Vb的实现将在后续文章中,关于电流源的实现中提到。
一般情况下,输入晶体管决定着运放的主要参数,而对于两级运放而言,则是两级运放的输入晶体管都对主要参数有影响。在引入密勒补偿后,由于频率响应的极点发生了变化,对于输入晶体管跨导gm的取值,需要重新调整。
由于引入密勒补偿电容后,出现了极点分裂现象,我们为了让系统稳定,同时简化计算,我们使系统变成单极点系统(单极点近似)。
- 第一极点wp1(图中wp,E)左移,但它并没有消失,而是作为电路的主极点
- 第二极点wp2(图中wp,A)右移,直至大于单位增益带宽wu,增益小于1后当它不存在了
那么,就有了新的关系式。在上面提到,单极点近似要求 wp2>wu,一般取值为 wp2=(2~3)wu,即2到3倍。同时,零点wz也要大于wu。
ω p 2 = ( 2 ∽ 3 ) ω u ω z > ω u omega _{p2} = (2backsim3) omega _{u} \qquad\ omega _{z} > omega _{u} ωp2=(2∽3)ωuωz>ωu
对于以上值的取值,有以下的式子。其中,gm-in1和gm-in2分别代表第一级和第二级运放的输入管跨导,CL是整个运放的负载电容(也是第二级运放的负载电容)。
ω p 2 = g m − i n 2 C L ω u = g m − i n 1 C C ω z = 1 ( 1 g m − i n 2 − R Z ) C C omega _{p2} = {g_{m-in2} over C_L } \qquad\ omega _{u} = {g_{m-in1} over C_C } \qquad\ omega _{z} = {1 over ({1 over g_{m-in2}} - R_Z) C_C } ωp2=CLgm−in2ωu=CCgm−in1ωz=(gm−in21−RZ)CC1
简单计算一下跨导的取值,这里选取最低限度的取值,也就是理论上相位裕度是60°,但实际上可能达不到。
ω p 2 = 2 ω u , C C = 1 4 C L ⇓ g m − i n 2 g m − i n 1 = 8 omega _{p2} = 2 omega _{u} enspace , enspace C_C={1 over 4}C_L \dArr\ {g_{m-in2} over g_{m-in1}} = 8 ωp2=2ωu,CC=41CL⇓gm−in1gm−in2=8
也就是说,在最低限度下,第二级输入管的跨导是第一级的8倍,在实际设计时,最好取10或以上才能有一定裕度。
参数指标以一个例题举例,题目要求如下:
和前面的设计一样,先从输入管的尺寸以及GBW指标入手。只不过,这里多了一个指标Av,也就是我们要考虑沟道长度L和gm/id参数对晶体管增益的影响。
其次,要考虑寄生电容对负载电容的影响,如前面电路拓扑中的CGS。指标要求负载电容CL为10pF,根据设计经验,加上寄生参数后,一般取1.2CL也就是12pF做计算。
此时,密勒补偿电容Cc大约在3pF到6pF之间(一般取不到6pF那么大)。一般的文献或方法会教直接用Cc作为GBW公式中的CL,但是我们最好加上一点第一级输出和第二级输入的寄生电容。所以第一级运放的负载电容CL1取值6pF时留有的裕度会比较大。由得到的CL1可以对GBW进行解算,有以下式子。
G B W = g m 1 , 2 2 π C L 1 ⇓ g m 1 , 2 = 1.885 m A / V GBW={ g_{m1,2} over 2 pi C_{L1} } \dArr\ g_{m1,2}=1.885 enspace mA/V GBW=2πCL1gm1,2⇓gm1,2=1.885mA/V
对增益Av进行解算。整体的增益是10000,那就令每一级增益为100,这就要求晶体管的自身增益大于200。
A V = A V 1 ∗ A V 2 = 80 d B = 10000 ⇓ A V 1 = 1 2 ∗ g m 1 , 2 ∗ r o 1 , 2 = 100 ⇓ g m 1 , 2 ∗ r o 1 , 2 ⩾ 200 A_V=A_{V1}*A_{V2}=80dB=10000 \dArr\ A_{V1} ={1 over 2}* g_{m1,2}*r_{o1,2}=100 \dArr\ g_{m1,2}*r_{o1,2}geqslant200 AV=AV1∗AV2=80dB=10000⇓AV1=21∗gm1,2∗ro1,2=100⇓gm1,2∗ro1,2⩾200
同时,为了让压摆率满足50V/us的需求,gm/id就不能取太大,以此来保证电流不会太小,这里gm/id取值为12。
观察晶体管的self_gain - gmoverid曲线,找出在gm/id=12时,哪个沟道长度L下的增益大于200。最终确定L=500nm。
再观察idoverw - gmoverid曲线,得到gm/id取值为12下的电流密度。
至此,M1和M2的W就可以确定了。
g m I d = 12 , g m 1 , 2 = 1.885 , I d W = 6 ⇓ I d = 0.157 m A , W = 26.14 μ m {g_m over I_d} = 12 enspace , enspace g_{m1,2}=1.885 enspace , enspace {I_d over W}=6 \dArr\ I_d=0.157 enspace mA enspace , enspace W=26.14 enspace mu m Idgm=12,gm1,2=1.885,WId=6⇓Id=0.157mA,W=26.14μm
确定M3和M4尺寸和前面一样,选取gm/id=8,self_gain大于200时沟道长度L=1um。
再观察idoverw - gmoverid曲线,得到gm/id取值为8下的电流密度。
至此,M3和M4的W就可以确定了。
I d = 0.157 m A , I d W = 16 ⇓ W = 9.74 μ m I_d=0.157 enspace mA enspace , enspace {I_d over W}=16 \dArr\ W=9.74 enspace mu m Id=0.157mA,WId=16⇓W=9.74μm
第一级运放仿真如果对自己的设计比较放心,这一步可以不用做。
根据前面得到的器件尺寸,设计电路,同时设置电流源的电流为0.314mA,负载电容为5pF。不用管里面器件标号,以前面的原理图为准。
得到Av为41.8dB,GBW为58MHz,意味着后面的Cc可以最高取到5pF,甚至还可以多一点点。
前面的第一级运放满足了指标要求,对于Cc最高可以取到5pF,接下来就设计第二级运放。
第二级运放采用电流源负载的共源极。首先,我们再研究一遍原理图。对于第一级的M4和第二级的M6来说,它们的直流工作点都是一致的,也就是说,它们的VGS一样。接下来将从这里入手。
在仿真设置里,选择查看直流工作点。
点击要查看的器件。
在d出的窗口中可以看到,VGS为635mV。
观察N-MOS晶体管的VGS-gmoverid曲线,看看对应的范围是多少。从图中看出,gmoverid的取值在8左右。
再观察N-MOS晶体管的slef_gain-gmoverid曲线,得出结果,若想在gmoverid=8处的增益大于200,沟道长度L的取值为1um。
根据前面分析的结果,gm-in2需要取10倍的gm-in1,就得到了id。
g m − i n 2 = 10 ∗ g m − i n 1 = 18.85 , g m I d = 8 ⇓ I d = 2.356 m A g_{m-in2}=10*g_{m-in1}=18.85 enspace , enspace {g_m over I_d}=8 \dArr\ I_d=2.356 enspace mA gm−in2=10∗gm−in1=18.85,Idgm=8⇓Id=2.356mA
从idoverw-gmoverid曲线中找到gm/id=8对应的id/W的值。
至此,M6的W就可以确定了。
I d = 2.356 m A , I d W = 64.9 ⇓ W = 36.31 μ m I_d=2.356 enspace mA enspace , enspace {I_d over W}=64.9 \dArr\ W=36.31 enspace mu m Id=2.356mA,WId=64.9⇓W=36.31μm
结果仿真 参数汇总根据以上结果,汇总成下表。
以及,经过多次仿真,设置Cc为3.8pF,CL为8pF。
绘制以下原理图,其中电流镜没有接进来,用的是理想电流源。
用以下输出设置,可以查看增益和相位。
dB20((VF("/OUT2") / VF("/IN+"))) phaseDegUnwrapped((VF("/OUT2") / VF("/IN+")))测试结果
从图中得出,GBW=72MHz,Av=87dB,PM=60.6°,这里就没有测SR了,根据电流和负载电容来计算,SR是满足要求的。
观察时域波形,可以看出电路没有发生振荡,比较稳定。
使用gmoverid的设计方法设计二级运放,相较于使用工艺库参数去计算,简便了许多。在设计时一定要注意相位裕度,对于Cc的取值需要改变数值多仿真。
而最终结果的GBW比设计略大,是因为第一级运放的负载电容并没有6pF那么大,导致了GBW的上升。
在设计时一定要合理设置目标参数。一开始设计时设定的GBW为200MHz,导致每一只晶体管的尺寸非常大,而且无论怎么优化电路,最终的相位裕度都没有超过30°,后来改GBW为50MHz才能完成本次设计。
这也告诉我们,在不是太先进的工艺下,设计运放时,不能盲目最求指标高。当指标太高时,会导致第一级的跨导gm较大,第二级的跨导会跟着变得非常大,面积增大后,寄生参数尤其是寄生电容也会跟着变得很大。
寄生电容的增大,会导致负载电容无形中变大,在设计时需要考虑的就更多了。最终,整个芯片的面积会非常大,功耗也会很高,导致设计出来的东西虽然能用,但是不实用,也没有什么使用价值。
最后,电流源的选取也是和之前一样选取了理想电流源。后期会继续研究和学习自偏置电流源,然后应用于电路中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)