电路仿真软件stb iprobe应该加在什么地方

电子电路设计Proteus仿真及总结(有图)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
电子电路设计Proteus仿真及总结(有图)
&&①闪烁信号发生器设计与仿真 ②555报警器发声电路③一位译码显示电路设计与仿真 ④60进制显示电路设计与仿真 ⑤24进制显示电路设计与仿真 ⑥3位计数器设计与仿真⑦(0~999)60进24显示电路设计与仿真⑧电机调速设计与仿真 ⑨简易电容测试仪设计与仿真
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩5页未读,
定制HR最喜欢的简历
你可能喜欢stb仿真方法
全差分电路采用“cmdmprobe”来仿真。
其中,CMDM=1为共模信号仿真;CMDM=-1为差模信号仿真。
analogLib 中的
iprobe&&截断环路添加该元件
请问添加之后怎么看频率特性曲线啊
ADE - Results - Direct Plot - Main Form
其实很方便第一次Direct Plot,Main,stb,页面下有Add
to Outputs,选上就好了
【转】cadence环路仿真STB
1.偶一般都是先跑开环,调整差不多后,再用把opamp扔到实际电路中用stb跑个环路仿真看看真正的AC特性,尤其是在开关电容电路里,实际环路的开关电阻、寄生电容啥子的使得零极点比较复杂,用stb跑环路还是很有价值的~~
2.仿真一个feedback
loop稳定性,主要是phase margin,gain margin,圆图上的可能有稳定园。
求phase margin:
(1)采用一个大电感来阻止交流通路,保留DC通路(维持DC点)。然后大电容作为AC接地点,引入AC激励源。这个方法的问题在于理想电感有点影响高频phase图,所以最好加上电阻de-Q。另外隔离了input端的电容对output输出的load,所以高频下phase有些不准。
(2)采用一个大电阻来阻止交流通路,保留DC通路(维持DC点)。然后大电容作为AC接地点,引入AC激励源。在input为bipolar时会有问题。问题是bipolar的ib不等于0.大电阻建立的input
DC不对。同样,存在外隔离了input端的电容对output输出的load的问题。
(3)采用stb,通过不同input电容的比较分析,我认为在stb里面,output已经考虑了input load问题。
记下: stb差分:cmdmprobe 和 -1;共模:cmdmprobe 和+1;
&&&&&&&&&&&&&&&&&&&&&&
stb单端:(a方法)Vdc和vac=1;(b方法)cmdmprobe, input2和output2悬空;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
(c方法):cmdmprobe, input2接地和output2通过大电容接地;
(4)对于采用cmdmprobe,probe器件的方法,有些不是很明白。
3. analogLib 中的
iprobe&&截断环路添加该元件
全差分电路采用“cmdmprobe”来仿真。
其中,CMDM=1为共模信号仿真;CMDM=-1为差模信号仿真。
4.Stability Analysis
The STB analysis linearizes the circuit about the DC operating
point and computes the loop gain,
gain and phase margins (if the sweep variableis frequency), for a
feedback loop or a gain device.
5.stb结果与搭建电路仿真结果基本是一样的&
实际是没有区别,不过习惯上还是用搭建电路方便些,因为所有的参数都可以用公式列出来放在ADE,写报告很方便
stb虽然开始很简单,但是还要去direct--main 太麻烦了
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。&figure&&img src=&https://pic3.zhimg.com/0ad3ebcbdf9_b.jpg& data-rawwidth=&1620& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1620& data-original=&https://pic3.zhimg.com/0ad3ebcbdf9_r.jpg&&&/figure&&p&作者君今天学到了一个新技能。与其自己写在本子上,然后不知道哪年再想起来翻翻,不如和大家分享一下吧!(虽然被某人鄙视说除了酷炫以外用处不大,不过我还是觉得可能有些朋友能够用得着吧!大牛们就可以无视了哈)&/p&&p&问题的产生是我经常需要对同一个电路跑大量的仿真。比如一个bandgap,我要跑DC,要跑loopgain,有些时候加了Chopper什么的还要跑tran。这样就造成了一个问题:我需要create相当多的ADE state (因为作者的公司有一个类似ocean的GUI,每个仿真,比如PVT variation或者Monte Carlo都需要对应的ADE state)。&/p&&p&因为作者君最大的特点就是“懒”,能怎么省事就怎么干。所以一个同事教了下面的这个办法来免除新ADE的设置。&/p&&p&(下面的说明是作者君很烂的英文,因为同时把这些截图发给了我的师弟师妹们,有些人不会中文……大家意会意会好了)&/p&&p&1st, I have a simulation.&/p&&figure&&img src=&https://pic4.zhimg.com/ed6e714ead80_b.jpg& data-rawwidth=&312& data-rawheight=&200& class=&content_image& width=&312&&&/figure&&p&2nd, I want to vary the simulation
conditions:&/p&&p&I create a file:&figure&&img src=&https://pic2.zhimg.com/2274defcd4a9c7bbb6f05de_b.jpg& data-rawwidth=&471& data-rawheight=&262& class=&origin_image zh-lightbox-thumb& width=&471& data-original=&https://pic2.zhimg.com/2274defcd4a9c7bbb6f05de_r.jpg&&&/figure&&/p&&p&3rd, I add the above file in my libs.
&figure&&img src=&https://pic7.zhimg.com/8ae062acfddfc480f994_b.jpg& data-rawwidth=&846& data-rawheight=&307& class=&origin_image zh-lightbox-thumb& width=&846& data-original=&https://pic7.zhimg.com/8ae062acfddfc480f994_r.jpg&&&/figure&&/p&&p&4th, I choose the required condition, and
run the simulations: &/p&&figure&&img src=&https://pic2.zhimg.com/4e703e640efd0ab3e4ae563a62b6a524_b.jpg& data-rawwidth=&513& data-rawheight=&249& class=&origin_image zh-lightbox-thumb& width=&513& data-original=&https://pic2.zhimg.com/4e703e640efd0ab3e4ae563a62b6a524_r.jpg&&&/figure&&p&You can see, in ADE GUI, the simulation
length is 20ns, but the output waveforms are 30ns, because I choose 30ns in my
libs. (记住要把ADE里面原来打钩的那项disable掉)&/p&&p&Have a try!!!&/p&&p&&strong&You can run a lot of different conditions
with the same ADE state with just choosing the required lib file.&/strong&&/p&&p&or you can create a file to control the
lib.&/p&&p&spectre can be run with command, without
setting in GUI.&/p&&p&然后,我又试了试可不可以嵌套使用“lib”功能,比如把model file的lib嵌套在我的lib(也就是刚刚写的文本文档里面),然后发现是可以的。 &/p&&figure&&img src=&https://pic1.zhimg.com/34f9ad83db0c4cd65034_b.jpg& data-rawwidth=&641& data-rawheight=&226& class=&origin_image zh-lightbox-thumb& width=&641& data-original=&https://pic1.zhimg.com/34f9ad83db0c4cd65034_r.jpg&&&/figure&&p&even process corner files can be included:&figure&&img src=&https://pic2.zhimg.com/18c78cd2aa6ef4bd738bfc4_b.jpg& data-rawwidth=&529& data-rawheight=&206& class=&origin_image zh-lightbox-thumb& width=&529& data-original=&https://pic2.zhimg.com/18c78cd2aa6ef4bd738bfc4_r.jpg&&&/figure&&/p&&p&I vary the last word in the tech file,
&fast& and &nom&. you can see the results are different.&/p&&br&&figure&&img src=&https://pic2.zhimg.com/b01c5c6a7_b.jpg& data-rawwidth=&510& data-rawheight=&315& class=&origin_image zh-lightbox-thumb& width=&510& data-original=&https://pic2.zhimg.com/b01c5c6a7_r.jpg&&&/figure&&p&so you can create just 1 file to cover all
the conditions you want to check.&/p&&br&&p&___________________________________________________________________&/p&&br&&p&再多写一点好了。&/p&&p&请参考下面网页,可以plot 诸如&b&vth,gm&/b&之类的parameter(作者做bandgap 的时候经常这样做,然后可以得到诸如&b&beta,Nf&/b&之类的parameter):&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//eda.engineering.wustl.edu/wiki/index.php/How_to_Save_DC_Operating_Points%25E2%_Parameters_of_a_MOSFET_in_Cadence& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&How to Save DC Operating Points?EUR(TM) Parameters of a MOSFET in Cadence&/a&&/p&&p&This will describe how to save DC parameters of a MOSFET in Cadence.&/p&&p&Set up a circuit as shown in the figure below.&figure&&img src=&https://pic3.zhimg.com/ddfed16c804f79a88882cbce4af2fcea_b.jpg& data-rawwidth=&491& data-rawheight=&373& class=&origin_image zh-lightbox-thumb& width=&491& data-original=&https://pic3.zhimg.com/ddfed16c804f79a88882cbce4af2fcea_r.jpg&&&/figure&&/p&&p&Record the instance name of the transistor (N0 is the instance name of the transistor in the above circuit).&/p&&p&Open a text document, add the phrase “save N0:oppoint” and save it as “saveop.scs” file as shown below.&figure&&img src=&https://pic4.zhimg.com/49e3efbcb704d7a5aee030_b.jpg& data-rawwidth=&531& data-rawheight=&352& class=&origin_image zh-lightbox-thumb& width=&531& data-original=&https://pic4.zhimg.com/49e3efbcb704d7a5aee030_r.jpg&&&/figure&&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span& N0 is the instance name of the transistor
saveop you can use any other file name
The file will direct Spectre to save all DC operating points’ parameters of transistor N0
&/code&&/pre&&/div&&p&Next, click &Launch → ADE L& to launch Virtuoso Analog Design environment simulator.&/p&&p&In the simulator, select DC analysis, sweeping Vgs from 0 to 5V.&/p&&p&Select drain current on schematic as the output to plot.&/p&&p&Select &Setup → Model Libraries” and load saveop.scs as shown below.&figure&&img src=&https://pic1.zhimg.com/1ec46adba48a7efc34183_b.jpg& data-rawwidth=&510& data-rawheight=&217& class=&origin_image zh-lightbox-thumb& width=&510& data-original=&https://pic1.zhimg.com/1ec46adba48a7efc34183_r.jpg&&&/figure&&/p&&p&Click &Simulation → Run& or simply click green button to run the simulation.&/p&&p&The output from Cadence will look like this:&figure&&img src=&https://pic1.zhimg.com/fde4fadbcec1_b.jpg& data-rawwidth=&469& data-rawheight=&352& class=&origin_image zh-lightbox-thumb& width=&469& data-original=&https://pic1.zhimg.com/fde4fadbcec1_r.jpg&&&/figure&&/p&&p&On the simulator, click on &Tools → Results Browser&. Alternatively, click on &Tools → Browser& on the output plot.&/p&&p&Browse to the psf file associated with the simulation (~/cadence/simulation/sample/spectre/schematic/psf).&/p&&p&Select “dc-dc” to see parameters of the transistor N0 as shown below.&/p&&figure&&img src=&https://pic1.zhimg.com/ad88fbc8ac9_b.jpg& data-rawwidth=&371& data-rawheight=&240& class=&content_image& width=&371&&&/figure&&br&&p&Right click any parameter on the list to plot, tabulate, or export value(s) to a file.&/p&&p&___________________________________________________________&/p&&p&&b&原创声明:本文为原创,未经许可,严禁转载。如需转载,请联系作者。&/b&&/p&&p&&b&微信公众号:analogIC_gossip&/b&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/e68ad9e9d09b5e05051e8ca_b.jpg& data-rawwidth=&258& data-rawheight=&258& class=&content_image& width=&258&&&/figure&
作者君今天学到了一个新技能。与其自己写在本子上,然后不知道哪年再想起来翻翻,不如和大家分享一下吧!(虽然被某人鄙视说除了酷炫以外用处不大,不过我还是觉得可能有些朋友能够用得着吧!大牛们就可以无视了哈)问题的产生是我经常需要对同一个电路跑大…
&figure&&img src=&https://pic1.zhimg.com/ced0d2c883_b.jpg& data-rawwidth=&422& data-rawheight=&284& class=&origin_image zh-lightbox-thumb& width=&422& data-original=&https://pic1.zhimg.com/ced0d2c883_r.jpg&&&/figure&作者君最近重新读了一下Razavi讲反馈的那章。本来想列一个表格把四大反馈类型全部都总结一下,后来想了想,觉得此类的summary网上比比皆是。再说了,就算记住了定义,难道真的就等于已经融会贯通了吗?不见得吧!&p&所以,不如我们从头开始,仔细的问问自己:反馈到底是什么?&/p&&p&好了,让我们从一个非常简单的要求说起吧!&/p&&p&比如:&b&我想要一个精确的乘二电路&/b&,听起来很容易吧?&/p&&figure&&img src=&https://pic1.zhimg.com/dfc7b332d1e13_b.jpg& class=&content_image&&&/figure&&p&比如这样的:small signal gain是gm1*Rd,稍微调一下M1的大小和Rd的尺寸,似乎就可以做到了吧?&/p&&p&呵呵……&/p&&p&亲,你去跑个Corner看看?或者改变一下温度?或者……&/p&&p&亲,您还是先不要说了……nominal(或者叫typical) 下面调得好好的gain,换了个Corner就一切重头开始了……这日子还让不让人活了!!!&/p&&p&所以,对于这样一个非常简单的要求,广大的analog designer们也是穷尽浑身解数才能做到的!(比如高速pipeline ADC里面1.5bit的MDAC,为了拿到精确的乘二,那个opamp经常要烧电到mA的级别。)&/p&&p&analog不像digital,不是0就是1,逻辑理清了就不会有太大的障碍。我们analog的电路,中间有无数种可能的解法,无数种中间状态,你以为!哼哼!&/p&&p&好了,不说闲话了。脑子比较慢一拍的作者君觉得:如果咱们不用mosfet,只有电阻或者电容的ratio,是不是就不用担心这些PVT(process,supply voltage,temperature)的variation了呢?因为之前讲layout的时候,老师不是说了ratio还是蛮准的吗?&/p&&p&要不,咱们看看用电阻会怎么样?&/p&&p&&figure&&img src=&https://pic2.zhimg.com/faf070ffdc8e75dac6437b_b.jpg& data-rawwidth=&230& data-rawheight=&204& class=&content_image& width=&230&&&/figure&比如上面这个电路,如果&b&R1和R2一样大&/b&,那我们的Vout是不是就等于两倍Vin了?&/p&&p&想得挺美的,前提是没有负载加到Vout上面。但是!如果加上一个负载的电阻会变成什么样呢?&/p&&p&&figure&&img src=&https://pic1.zhimg.com/fb4adb94692d_b.jpg& data-rawwidth=&294& data-rawheight=&223& class=&content_image& width=&294&&&/figure&我们考虑下面几种情况:&/p&&p&(1)R3是无穷大的时候,Vin是1V,理论上来说,Vout就是2V;&/p&&p&(2)R3等于一个有限的值,那么Vout的值等于:&img src=&https://www.zhihu.com/equation?tex=V_%7Bout%7D+%3DV_%7Bin%7D+%5Ctimes+%5Cfrac%7BR_%7B3%7D+%7D%7B+%5Cleft%28+R_%7B2%7D+%2BR_%7B3%7D++%5Cright%29+++%7D& alt=&V_{out} =V_{in} \times \frac{R_{3} }{ \left( R_{2} +R_{3}
}& eeimg=&1&&&/p&&p&额?为什么跟R1没有关系了呢?而且,人家不知道R3到底是多大呢!&/p&&p&要是R3等于R2,岂不是Vout等于Vin的一半了……说好的2倍呢!&/p&&p&(3)若是R3非常小,Vout就约等于gnd了……这真是个悲剧啊!&/p&&p&(其实,大家想想看,大家常用的电池,是不是有个额定的功率?当负载电阻太小,输出电流太大的时候,输出电压其实会偏小一些。)&/p&&p&所以说,作者君这种笨笨的方法,用passive device的做法,是不能保证大家任何时候都能拿到需要的乘二的结果。&/p&&p&因此,passive的不行,咱们就只有用active的了,比如大家天天打交道的mosfet。&/p&&p&说到这里,作者君又想起了当年拿来解释mosfet为什么是有源active的了。其实,最最直接的说法,应该是&b&“跟电压源直接相连”的device,就是“有源”&/b&。&/p&&figure&&img src=&https://pic3.zhimg.com/da88cd637eb9eb28cfc7_b.jpg& data-rawwidth=&339& data-rawheight=&202& class=&content_image& width=&339&&&/figure&&p&好了,还是拿最基本的Voltage-to-Voltage (in Razavi's definition) or Series-to-Shunt (in Paul Gray's Definition)负反馈来举例子吧!&/p&&p&(对了,以后作者君还会解释,为什么两人会用不同的定义。)&/p&&p&和上面仅有passive 的电阻相比,我们在这个电路里加上了一个opamp。如果R2等于两倍的R1,那么Vout就等于Vin的两倍……慢着!是nagetive的两倍……抱歉,咱们不用这个inverting的结构了,用下面这个(精确乘二电路,R1等于R2):&/p&&figure&&img src=&https://pic1.zhimg.com/b95afaeff3412b_b.jpg& data-rawwidth=&300& data-rawheight=&125& class=&content_image& width=&300&&&/figure&&p&source: An op-amp connected in the non-inverting amplifier configuration &a href=&https://link.zhihu.com/?target=https%3A//en.wikipedia.org/wiki/Operational_amplifier%23Applications_without_using_any_feedback& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&en.wikipedia.org/wiki/O&/span&&span class=&invisible&&perational_amplifier#Applications_without_using_any_feedback&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&其实,差不多啦!唯一的区别就是前面那个inverting的结构里,transfer function有个负号,后面那个没有了。&/p&&p&因为电路里面有了opamp,有了active device,所以这个电路也是active的,所以它能够以自身的力量供应后面的负载电阻所需要的电流。因此,在上面那个inverting的结构里面,绿色的I2才是提供负载电流的主力,而不是蓝色的I1。&/p&&p&有了强大的opamp,即使负载的电阻变换较大,只要R1和R2的ratio稳定,opamp工作稳定,我们所需要的精确乘二就不是遥远的梦想!&/p&&br&&p&&b&原创声明:本文为原创,未经许可,严禁转载。如需转载,请联系作者。&/b&&/p&&p&&b&微信公众号:analogIC_gossip&/b&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/e68ad9e9d09b5e05051e8ca_b.jpg& data-rawwidth=&258& data-rawheight=&258& class=&content_image& width=&258&&&/figure&
作者君最近重新读了一下Razavi讲反馈的那章。本来想列一个表格把四大反馈类型全部都总结一下,后来想了想,觉得此类的summary网上比比皆是。再说了,就算记住了定义,难道真的就等于已经融会贯通了吗?不见得吧!所以,不如我们从头开始,仔细的问问自己:…
&figure&&img src=&https://pic1.zhimg.com/7cf03bf324fbbd_b.jpg& data-rawwidth=&1400& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1400& data-original=&https://pic1.zhimg.com/7cf03bf324fbbd_r.jpg&&&/figure&&p&作者君本来想从反馈的基本定义开始讲起,但是前几天作者君看到了这样一个问题:&a href=&https://www.zhihu.com/question/& class=&internal&&&span class=&invisible&&https://www.&/span&&span class=&visible&&zhihu.com/question/2146&/span&&span class=&invisible&&2949&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&题主的问题,想必很多同学(包括作者君自己)也曾经被深深的困扰过。所以,作者君决定先拿这个问题作为切入点,来啃啃“反馈”这块硬骨头。&/p&&p&我们也不要去看题主的V-V负反馈了,作者君这个懒人,就用最最简单的V-V负反馈结构:一个将output接到input的负输入端的buffer,来谈谈实际的反馈电路。&/p&&br&&p&首先,我们的电路,一个简单的buffer,是这个样子的:&/p&&figure&&img src=&https://pic2.zhimg.com/2dcba845fccfb_b.jpg& data-rawwidth=&304& data-rawheight=&123& class=&content_image& width=&304&&&/figure&嗯,output接到negative input,so easy哈!&p&那个,咱跑跑它的loopgain(ADE里面的&b&stb&/b&选项,可以用来仿loopgain。其中选source可以放dc是0的&b&vdc&/b&,或者直接是个&b&iprobe&/b&也可以),其实也就是那个amplifier的开环增益啦!&/p&&p&然后,作者君得到了下面的waveform:&br&&figure&&img src=&https://pic1.zhimg.com/4e16da7c2a3104_b.jpg& data-rawwidth=&713& data-rawheight=&423& class=&origin_image zh-lightbox-thumb& width=&713& data-original=&https://pic1.zhimg.com/4e16da7c2a3104_r.jpg&&&/figure&老实讲,作者君这个folded cascode的amplifier没有调好(懒人!),那个,大家就将就着看看吧!Global Foundry 40nm的CMOS工艺,folded cascode一级,大概DC增益可以做到63dB,也能凑合用吧?&br&好吧!现在我们有了DC gain的值,63dB,差不多就是1400倍。我们简化一些,就当它是1000倍好了。&/p&&p&好了!现在我们来用它放大一个小信号。嗯,多少合适呢?要不就1mV的input step吧?看看,&br&&figure&&img src=&https://pic3.zhimg.com/6daa58197_b.jpg& data-rawwidth=&456& data-rawheight=&174& class=&origin_image zh-lightbox-thumb& width=&456& data-original=&https://pic3.zhimg.com/6daa58197_r.jpg&&&/figure&&/p&&p&1)第一步,我们在input加了一个1mV的step,然后呢……&/p&&p&2)不是吧!output被amplifier放大到了1V?然后再被连到input……&/p&&p&3)input现在变成了-0.999V?!!!太吓人了……&/p&&p&4)output又被放大到了1000*(-0.999V)……&/p&&p&喂喂喂!有完没完啊!这世上哪有这么好的事情啊!你这个amplifier这么厉害?好像不太可能吧!&/p&&p&那是,要是按照这种算法,那永动机什么的倒是真有搞头嘛……&/p&&p&但是!这样算是错的!&/p&&p&为啥呢?&/p&&p&嘿嘿!我们来扫一下DC(开环状态)。作者君会设置一下output,然后懒人就有福啦~~&br&&/p&&figure&&img src=&https://pic2.zhimg.com/2a2ccaaeadf_b.jpg& data-rawwidth=&1163& data-rawheight=&469& class=&origin_image zh-lightbox-thumb& width=&1163& data-original=&https://pic2.zhimg.com/2a2ccaaeadf_r.jpg&&&/figure&首先,我们把input的DC从-100mV扫到100mV,得到了下面的图:&br&&figure&&img src=&https://pic3.zhimg.com/44476c1aaf606e401e7d4a_b.jpg& data-rawwidth=&703& data-rawheight=&420& class=&origin_image zh-lightbox-thumb& width=&703& data-original=&https://pic3.zhimg.com/44476c1aaf606e401e7d4a_r.jpg&&&/figure&咦!奇怪了,为啥gain很大的区域只有一点点?到了20mV,gain只有21.455dB了。而到了100mV,基本上就没有gain了呢?&p&嘿嘿!还记得作者君从一开始就苦口婆心的说:一定要注意,我们分析的那些gain什么的,都是small signal!如果input变化很大,那么我们得到的DC gain的值就不适用于这些很大的input了。&/p&&p&所以说,如果真的有1mV被放大到1V的情况,那这个1V出现在了input,立刻就会被已经不知道是负几十还是负几百dB的增益给瞬间衰减到无影无踪了,哪里还能让各位看到呢?&/p&&p&因此,我们所谓的AC analysis,都是在大家已经设置好的DC OP上面加上一个非常非常小的input激励,然后得到了大家觉得看起来很美好的大增益。其实呢……这个世界是很残酷的,这些美好的大增益其实在实际中根本用不了。是不是觉得很遗憾呢?&/p&&p&当然了,之后真正讲到feedback的时候,大家还是能感觉到,大的AC gain其实还是很有用的。现在就暂时先不讲这么多了哈!&/p&&p&对了,大家可能会观察到,为什么之前我们跑AC看到的DC gain是63dB,而上面sweep DC的时候,看到的最大值是58dB!居然差了5dB!&/p&&p&别着急!我们把sweeping的精度调高,然后把input范围局限在正负4mV,可以得到下面的图&br&&figure&&img src=&https://pic1.zhimg.com/15d42fecd97ba972c51296_b.jpg& data-rawwidth=&702& data-rawheight=&421& class=&origin_image zh-lightbox-thumb& width=&702& data-original=&https://pic1.zhimg.com/15d42fecd97ba972c51296_r.jpg&&&/figure&怎么样?是不是差不多跟AC analysis的结果一样了?&/p&&p&对了,大家切记,sweep DC的时候,不要让input=0出现哈!否则,嘿嘿,你懂的哦……&/p&&p&——————————————————————————————————————&/p&&p&看过了静态的分析,我们再看看动态的情况。在这里,在transient time 是&b&1us&/b&的时候,我们在input加了一个&b&10mV&/b&的&b&input step&/b&(用analogLib 里面的&b&vpwl&/b&设置),然后试着将 step从&b&1ns&/b&内上升10mV慢慢增加到&b&100us&/b&内上升10mV。可以得到下面一系列的波形:&br&&/p&&p&1)当step在1ns内上升10mV时,上半部分的波形是这个buffer的input(Vip)减去output(Vin or Vout,它们被短接了的),下半部分的波形是output。大家可以看到,由于这个step太快,我们这个UBW只有14MHz的buffer明显跟不上(input的高频部分被这个低通系统给滤波掉了),所以Vip-Vout出现了一个明显overshoot,有7.3mV那么大。&/p&&p&其实,也就是说,当input这么快的时候,这个buffer对如此高频率的input产生了衰减的效果,导致input的差分值(positive node - negative node)变大了不少。后来慢慢的,这个傻愣愣的buffer君总算是回过神来了,于是它奋起直追,结果呢……追过头了……&/p&&p&我们的input step只有1ns,也就是说,1.001us的时候,input已经稳定好了,不动了。理想情况,当然是output在1.001us也稳定下来了啦!那个,我们这个傻buffer明显是跟不上状况的,所以它还以为input在上升,它也就继续把output也往上抬。结果,它总算发现,怎么我的output现在变得比input还大点呢?&/p&&p&到了这个时候,非常接近终值,才是我们之前跑AC analysis时候,得到的63dB的gain发挥作用的时候了。正是应为我们总还是有个这么大的gain,所以最后output稳定在了709.92mV,跟input step来之前的700mV相减,差不多近似于10mV的input step了。&/p&&p&&figure&&img src=&https://pic1.zhimg.com/ce0e4d4a96f6224e7bfbe4e44c317f03_b.jpg& data-rawwidth=&706& data-rawheight=&426& class=&origin_image zh-lightbox-thumb& width=&706& data-original=&https://pic1.zhimg.com/ce0e4d4a96f6224e7bfbe4e44c317f03_r.jpg&&&/figure&作者君兴致盎然的试了试dft(calculator里面的,sampling范围是input step的1us到1.001us,我设置的采样点是8192,用的是Hanning Window)。然后下面这个是input的dft,DC的tone和1GHz(对应1ns的step)的tone清晰可见。&/p&&figure&&img src=&https://pic3.zhimg.com/7d83ddfa6_b.jpg& data-rawwidth=&701& data-rawheight=&422& class=&origin_image zh-lightbox-thumb& width=&701& data-original=&https://pic3.zhimg.com/7d83ddfa6_r.jpg&&&/figure&&p&回忆一下所谓的单位阶跃函数的频谱(《信号与系统》的课本里面有讲过),嗯,还是蛮相似的哈!&br&&/p&&p&再试试把output也做一下dft,然后跟input放一起对比一下:&/p&&figure&&img src=&https://pic3.zhimg.com/a21337fca368b3fa3254_b.jpg& data-rawwidth=&701& data-rawheight=&419& class=&origin_image zh-lightbox-thumb& width=&701& data-original=&https://pic3.zhimg.com/a21337fca368b3fa3254_r.jpg&&&/figure&&p&这个buffer的低通特性清晰可见了吧?高频分量已经被滤波掉了。&/p&&p&看到这里,各位是不是对buffer的动态响应有了那么一些直观的感觉呢?&/p&&p&作者君手痒再试了一些:step是10ns的时候:&br&&/p&&p&&figure&&img src=&https://pic2.zhimg.com/b30d334d051e38d95ae06_b.jpg& data-rawwidth=&702& data-rawheight=&422& class=&origin_image zh-lightbox-thumb& width=&702& data-original=&https://pic2.zhimg.com/b30d334d051e38d95ae06_r.jpg&&&/figure&dft:&/p&&figure&&img src=&https://pic1.zhimg.com/c1c618d78ee9f1c80df3c5d0_b.jpg& data-rawwidth=&705& data-rawheight=&426& class=&origin_image zh-lightbox-thumb& width=&705& data-original=&https://pic1.zhimg.com/c1c618d78ee9f1c80df3c5d0_r.jpg&&&/figure&&p&step是0.1us时:&/p&&figure&&img src=&https://pic2.zhimg.com/62a867f7d3b3fefadccd5dda9742bf86_b.jpg& data-rawwidth=&697& data-rawheight=&420& class=&origin_image zh-lightbox-thumb& width=&697& data-original=&https://pic2.zhimg.com/62a867f7d3b3fefadccd5dda9742bf86_r.jpg&&&/figure&&p&input step是1us时:&/p&&figure&&img src=&https://pic4.zhimg.com/eff87ac0e87ccd85ebf687e_b.jpg& data-rawwidth=&708& data-rawheight=&421& class=&origin_image zh-lightbox-thumb& width=&708& data-original=&https://pic4.zhimg.com/eff87ac0e87ccd85ebf687e_r.jpg&&&/figure&&p&10us step(或者应该成为ramp了),output的overshoot几本书看不出来了。output很好的跟上了input的ramp:&/p&&figure&&img src=&https://pic2.zhimg.com/02e10f4b08f36bd603cc_b.jpg& data-rawwidth=&710& data-rawheight=&424& class=&origin_image zh-lightbox-thumb& width=&710& data-original=&https://pic2.zhimg.com/02e10f4b08f36bd603cc_r.jpg&&&/figure&&p&上半部分是output的dft,下半部分是input的dft,已经almost same!&/p&&figure&&img src=&https://pic3.zhimg.com/c14b121e6bb21fcca8b6ac8_b.jpg& data-rawwidth=&700& data-rawheight=&393& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&https://pic3.zhimg.com/c14b121e6bb21fcca8b6ac8_r.jpg&&&/figure&&p&最后是step为100us,output的overshoot已经完全看不到了&/p&&p&&figure&&img src=&https://pic1.zhimg.com/b3d9f1be9ec98ed58112c_b.jpg& data-rawwidth=&706& data-rawheight=&424& class=&origin_image zh-lightbox-thumb& width=&706& data-original=&https://pic1.zhimg.com/b3d9f1be9ec98ed58112c_r.jpg&&&/figure&dft几乎一致(注意:横坐标从1ns时的100GHz已经减小到了1MHz):&/p&&figure&&img src=&https://pic3.zhimg.com/dfda9d_b.jpg& data-rawwidth=&699& data-rawheight=&405& class=&origin_image zh-lightbox-thumb& width=&699& data-original=&https://pic3.zhimg.com/dfda9d_r.jpg&&&/figure&&p&讲到这里,作者君其实算是比较详细的分析了一个buffer的静态和动态响应。至于反馈到底如何改善了性能,作者君就留到下一篇,从反馈的原理开始,从头到尾的仔细说说吧!&/p&&p&&b&原创声明:本文为原创,未经许可,严禁转载。如需转载,请联系作者。&/b&&/p&&p&&b&微信公众号:analogIC_gossip&/b&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/e68ad9e9d09b5e05051e8ca_b.jpg& data-rawwidth=&258& data-rawheight=&258& class=&content_image& width=&258&&&/figure&
作者君本来想从反馈的基本定义开始讲起,但是前几天作者君看到了这样一个问题:题主的问题,想必很多同学(包括作者君自己)也曾经被深深的困扰过。所以,作者君决定先拿这个问题作为切入点,来啃啃“反馈”这块硬骨头。我们也不要去看…
&figure&&img src=&https://pic1.zhimg.com/ced0d2c883_b.jpg& data-rawwidth=&422& data-rawheight=&284& class=&origin_image zh-lightbox-thumb& width=&422& data-original=&https://pic1.zhimg.com/ced0d2c883_r.jpg&&&/figure&注:本篇的反馈类型以Razavi书上的定义为标准。Paul Gray派系的定义其实也就是名词上的差异。&br&&p&记得之前讲cascode的那篇,作者君是从自己的所谓golden rules推导出的结论。在评论部分,一位网友(&a href=&https://www.zhihu.com/people/bu-kan-yue-bing& class=&internal&&&span class=&invisible&&https://www.&/span&&span class=&visible&&zhihu.com/people/bu-kan&/span&&span class=&invisible&&-yue-bing&/span&&span class=&ellipsis&&&/span&&/a&)提到作者君用小信号模型推导的方法比较繁琐(其实作者君只是为了证明自己简洁推导的方法是对的,^_^),此君说可以用反馈的方法来推导。&/p&&p&作者君看反馈的时候,又想到了此君的话,所以这篇就重新用反馈的方法,重新审视这个精妙的cascode结构。&/p&&p&话说一代宗师Razavi有云:反馈的效果是为了让系统更加趋向于一个理想的系统。&/p&&p&比如feed-forward的output是电压时,我们加上了反馈的feedback path,那么这个系统的输出阻抗会相应的被环路增益减小(为了让后面的电路认为自己是个理想电压源,所以牺牲闭环增益,拼了!)。同理,如果feed-forward的input是电压时,此系统的输入阻抗则会被环路增益增大(为了让前面的电路认为后面不过是个可有可无的理想电压表)。&br&&/p&&p&我们来看看一个最最基本的电路:&/p&&p&&figure&&img src=&https://pic4.zhimg.com/0c031c8a76a1eb4d5fb2f0f1b9c21197_b.png& data-rawwidth=&185& data-rawheight=&260& class=&content_image& width=&185&&&/figure&一个孤立的mosfet,M1,从drain看进去,等效电阻是ro;从source看进去,等效电阻是1/gm。&/p&&p&好了,&b&问题来了:如果input是source的话,如何减小从drain看进去的等效电阻呢?&/b&&/p&&p&既然说了反馈好用,那我们就来试试反馈!减小输出电阻,也就是说,要让这个system的输出等效于一个理想的电压源(理想电压源输出电阻为零)。或者按照Gray大师的说法,输出使用shunt结构。&/p&&p&因此,我们需要把输出的Vout反馈到input那边,这样便能够减小输出电阻了。比如这样:&/p&&p&&figure&&img src=&https://pic2.zhimg.com/bae1f13ce6c925_b.png& data-rawwidth=&447& data-rawheight=&315& class=&origin_image zh-lightbox-thumb& width=&447& data-original=&https://pic2.zhimg.com/bae1f13ce6c925_r.jpg&&&/figure&Source:&u&Prof.Behzad.Razavi &Design of Analog CMOS Integrated Circuits& 2001, p258&/u&&br&&/p&&p&现在我们只考虑输出电阻,所以就不用关心输入端是怎样的。那么,如何才能简洁高效的构成一个我们所需要的反馈环路呢?&/p&&p&让我想想看:将输出电压反馈回去……要不,直接将drain和source连在一起?不对不对!那样这个mosfet被短路了……这肯定不是我们需要的!&/p&&p&要不……把drain和gate连起来?&/p&&figure&&img src=&https://pic1.zhimg.com/21daefcae8a28_b.png& class=&content_image&&&/figure&&p&还记得之前diode那篇的这个图吗?按照断开任意点求loop gain的方法,比如在gate处加上一个Vx,我们很容易得到这个loop的loop gain就是gm*ro。&/p&&p&所以,因为输出端是电压的负反馈将之前的输出电阻ro减小到了ro/(1+AF),AF是loop gain,也就是gm*ro。因此,当gm*ro远大于一的时候,这个loop的等效输出电阻就变成了ro/(1+AF)=ro/(1+gm*ro)=&b&1/gm&/b&了!&/p&&p&多么强大的负反馈的力量啊!嘿嘿~~&/p&&p&看过了diode是如何成功的减小mosfet的输出电阻,我们再想想看,如何增大一个mosfet的输出电阻?&/p&&p&按照反馈的方法,如果需要增大输出电阻,我们需要将输出电流反馈到input那边。因为只有输出是电流的时候,为了让我们的电路被后面的负载以为“前面是个理想的电流源哦”,我们才能得到更大的输出电阻。&/p&&figure&&img src=&https://pic1.zhimg.com/cbc7c1e44a0fbd8bbb38_b.png& data-rawwidth=&600& data-rawheight=&424& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/cbc7c1e44a0fbd8bbb38_r.jpg&&&/figure&&p&然后,我们怎么样才能sense到输出电流,并把它反馈到input去呢?&/p&&p&我们可以用一个电阻或者另外一个mosfet去sense这个output current:&/p&&figure&&img src=&https://pic3.zhimg.com/953a9ff26f071e0cce0c231dada195c6_b.png& class=&content_image&&&/figure&&p&上面两者其实是大同小异的(如果把ro1变成一个Rs,就是source degeneration)。都是把Iout变成了电压,然后反馈到了M2的input,也就是它的source那里。因为这个电路跟传统的电流-电压 负反馈稍有不同,主要是下面的M1跟M2之间的那点不能被求loop gain的方法断开,我们就不把那点断开,DC相通,直接求loop gain:&/p&&p&&figure&&img src=&https://pic2.zhimg.com/48d184c3aebdf70c64e784d_b.png& data-rawwidth=&684& data-rawheight=&440& class=&origin_image zh-lightbox-thumb& width=&684& data-original=&https://pic2.zhimg.com/48d184c3aebdf70c64e784d_r.jpg&&&/figure&从M2的source放一个Vx看进去,Iout是Vx*gm2。经过下面那个M1的ro1,VF变成了Vx*gm2*ro1。这就是我们需要的loop gain:&b&gm2*ro1&/b&。&/p&&p&因此,经过了M1的负反馈作用,最后从M2的drain看进去,等效输出电阻变成了ro2(1+AF),也就是ro2*(1+gm2*ro1),当gm2*ro1远大于一的时候,也就是大家熟知的gm2*ro1*ro2了。&/p&&p&这种cascode通过反馈的效果达到增大输出电阻的方法,听起来还真是有让人耳目一新的感觉呢!&/p&&p&还可以是这样:&/p&&figure&&img src=&https://pic3.zhimg.com/2d2f0a88b0f9eb1cf49f3e54a7f8751e_b.png& class=&content_image&&&/figure&&p&变成实际电路也可以是(下图的M2才是上图的M1……有些乱……^_^):&/p&&figure&&img src=&https://pic3.zhimg.com/91e2c724dcc9e3643bb2_b.png& data-rawwidth=&320& data-rawheight=&440& class=&content_image& width=&320&&&/figure&&p&当然,大家也可以用这种负反馈的方法,去重新看看我第一篇文章里的那个结构(V1是输出端,output node),是如何从M2的source看进去,&b&得到一个比1/gm更小的输出电阻&/b&:&/p&&figure&&img src=&https://pic1.zhimg.com/b3e06a01de8aae56d7d484_b.png& data-rawwidth=&272& data-rawheight=&529& class=&content_image& width=&272&&&/figure&&p&没有M1的时候,V1的等效电阻是1/gm2,。有了M1之后变成了一个电压-电压(或者电流,输入类型不是关键)负反馈。M1的input是M2的drain voltage,output是V1。这个loop的gain是ro2*gm1。(从V2处断开,V2到M1的电流是gm1,M2把这个V2*gm1的电流变成了gm1*ro2的电压,表现在了V2断开的地方)&/p&&p&V1这点的等效电阻就是Rout/(1+AF),即(1/gm2)/(1+ gm1*ro2),也就是之前说到的:(1/gm1)/( gm2*ro2),都是&b&1/(gm1*gm2*ro2)&/b&。&br&&/p&&br&&p&原创声明:本文为原创,未经许可,严禁转载。如需转载,请联系作者。&/p&&p&微信公众号:analogIC_gossip&br&&/p&&figure&&img src=&https://pic3.zhimg.com/e68ad9e9d09b5e05051e8ca_b.jpg& data-rawwidth=&258& data-rawheight=&258& class=&content_image& width=&258&&&/figure&
注:本篇的反馈类型以Razavi书上的定义为标准。Paul Gray派系的定义其实也就是名词上的差异。 记得之前讲cascode的那篇,作者君是从自己的所谓golden rules推导出的结论。在评论部分,一位网友()提到作者君用小信号模型推导的方法比…
&figure&&img src=&https://pic2.zhimg.com/60a0f21f3cae_b.jpg& data-rawwidth=&1000& data-rawheight=&249& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic2.zhimg.com/60a0f21f3cae_r.jpg&&&/figure&&p&这一篇讲的主要是cadence的使用。欢迎大家提建议!&br&&/p&前几天看到自己之前计算的design error budget,其中有关于Rout的具体要求和mismatch的最大值。一想到马上要面临的design review,顿时打了个激灵,吓得跑去乖乖跑了一下仿真。&p&(一)Rout&/p&&p&一个简单的cascode(或者一切需要求Rout的电路),如何得到它的输出阻抗呢?&/p&&p&先扔出一个cadence的schematic(我们公司的symbol有些奇怪,大家随便看看就好。如果有同事认出这些symbol了,麻烦不要在回复里公布我的公司名字,谢谢!):&/p&&p&&figure&&img src=&https://pic4.zhimg.com/d891acbea4fa3490b8bbf883_b.png& data-rawwidth=&626& data-rawheight=&537& class=&origin_image zh-lightbox-thumb& width=&626& data-original=&https://pic4.zhimg.com/d891acbea4fa3490b8bbf883_r.jpg&&&/figure&(抱歉!为了能够plot电流,我放了不少dc=0的vdc,比如V4,V5,V7.....不知道为何直接plot那些transistor的电流,都不可以……如果大家有好的方法,请务必指教!)&/p&&p&VDD=1.2V。最上面两排的pmos被两个固定的电压源bias。&/p&&p&因为我的cascode是拿来bias BJT的,所以前两路下面都是BJT(为什么要放两个一样的branch?那个……因为我还有mismatch要跑)。最右边的一路,有些特别。&/p&&p&最右边的最下面是一个vcvs(还是analogLib那个libaray里面的)。之所以没有直接加BJT,是担心BJT的等效电阻破坏了这个求cascode Rout的支路。所以,我就只用了vcvs作为固定的DC偏置电压。(其实再想想,直接用BJT也是可以的,关键在于上面的一个理想电感,数值越大越理想)。当时没想太多,所以就自作主张用了vcvs……&/p&&p&求解小信号都需要跑AC simulation,V=I*R,R=V/I&/p&&p&为了简便,我就在最右边加上了idc。这个idc的DC 是0,但是AC是1。因此,我需要得到的Rout就直接是被highlight的那条线的AC电压了。&/p&&p&嗯,那就来跑个AC看看吧!&/p&&p&&figure&&img src=&https://pic1.zhimg.com/c3996efb7e19dddc9534_b.png& data-rawwidth=&613& data-rawheight=&162& class=&origin_image zh-lightbox-thumb& width=&613& data-original=&https://pic1.zhimg.com/c3996efb7e19dddc9534_r.jpg&&&/figure&(cascode:P3's W/L: 1u/500n)&/p&&p&呼呼!长得蛮像opamp的AC曲线呢!&/p&&p&DC的时候,居然有32.8341GV,也就是说,Rout是32.8341GOhm。哇!真的很大呢!&/p&&p&对比一下手算的结果:P2的gds是2.386n,P3的gm是2.972u,gds是45.06n,所以粗略的计算,DC的Rout应该是gm3/(gds2*gds3),也就是27.64GOhm。&/p&&p&嗯,总的来说,差别不是很大,毕竟实际的公式没有这么粗略啦!&/p&&p&然后,因为我的电路工作时,会有一个100KHz的sampling clock,我就特地标注了一下100KHz时候的数值,是1.8836GOhm。&/p&&p&之后,习惯折腾的本人,改变了一下P3的W和L。刚刚是1u/500n,我把它改成了2u/1u,然后重新跑了一遍,得到了新的结果:&/p&&p&&figure&&img src=&https://pic1.zhimg.com/f1f49cfcae7f7d34b6fd910_b.png& data-rawwidth=&635& data-rawheight=&155& class=&origin_image zh-lightbox-thumb& width=&635& data-original=&https://pic1.zhimg.com/f1f49cfcae7f7d34b6fd910_r.jpg&&&/figure&P2的gds变化不大,P3的gm是2.918u,gds是12.32n。&/p&&p&对比一下上面的结果,变化最显著的是gds3,明显小了很多。因此,DC的Rout也变大成了96.4683GOhm。&/p&&p&嗯,意料之中啊!短沟道效应。&/p&&p&等等!100KHz时,怎么变小了?从1.8836GOhm变成了1.18324GOhm……这也太……&/p&&p&让我想想先……&/p&&p&哦!原来如此!寄生的cap增大了,所以下降的频率被提前了。看来,若是结构不变,想要大的DC gain,还是要付出一些额外的代价啊!&/p&&p&为了验证自己的想法,作者君继续调了P3到4u/2u,得到了下面的波形:&/p&&p&&figure&&img src=&https://pic4.zhimg.com/abc3fafaa7_b.png& data-rawwidth=&598& data-rawheight=&170& class=&origin_image zh-lightbox-thumb& width=&598& data-original=&https://pic4.zhimg.com/abc3fafaa7_r.jpg&&&/figure&不出所料,DC的Rout也变大成了152.915GOhm。100KHz对应的Rout也变小成了573.243MOhm。&/p&&p&High gain和high bandwidth,很难兼得啊!&/p&&br&&p&&b&原创声明:本文为原创,未经许可,严禁转载。如需转载,请联系作者。&/b&&/p&&p&&b&微信公众号:analogIC_gossip&/b&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/e68ad9e9d09b5e05051e8ca_b.jpg& data-rawwidth=&258& data-rawheight=&258& class=&content_image& width=&258&&&/figure&
这一篇讲的主要是cadence的使用。欢迎大家提建议! 前几天看到自己之前计算的design error budget,其中有关于Rout的具体要求和mismatch的最大值。一想到马上要面临的design review,顿时打了个激灵,吓得跑去乖乖跑了一下仿真。(一)Rout一个简单的cascod…
&figure&&img src=&https://pic4.zhimg.com/v2-6b7b6a627f6437d63daef373d36c0f1c_b.jpg& data-rawwidth=&1728& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1728& data-original=&https://pic4.zhimg.com/v2-6b7b6a627f6437d63daef373d36c0f1c_r.jpg&&&/figure&作者君又来炒冷饭了~~&p&话说,大家会不会觉得这样反复折腾一个东西太弱鸡了?……额,不管怎么说,作者君已经辛辛苦苦截图了,还是不要浪费了的好吧!&/p&&p&作者君因为长期捣鼓Bandgap前端,最近又在折腾传统的启动电路,因此对diode又有了一些感觉。我们还是从公式看起比较规范哈!&/p&&p&一个diode的等效电阻:&figure&&img src=&https://pic3.zhimg.com/v2-82c444f6f7ede7f3becd834ff37ee2ac_b.jpg& data-rawwidth=&346& data-rawheight=&100& class=&content_image& width=&346&&&/figure&&/p&&p&&b&当电流非常小的时候,等效电阻非常巨大;而当电流非常大的时候,等效电阻会下降很快。&/b&&/p&&p&所以,作者君就扫了一下电流,就是一个pmos 的diode,头上放一个理想电流源,然后DC sweep这个bias电流,从1pA到1mA,得到了下面这个图:&/p&&br&&p&&figure&&img src=&https://pic2.zhimg.com/v2-40b4da6a2b_b.jpg& data-rawwidth=&894& data-rawheight=&643& class=&origin_image zh-lightbox-thumb& width=&894& data-original=&https://pic2.zhimg.com/v2-40b4da6a2b_r.jpg&&&/figure&蓝色的线就是diode的等效电阻,红色的是diode的电压。&/p&&p&为了做个比较,作者君量了一下这个800nm/10um的pmos在1uA时候的电压,比较接近1V,所以作者君加上了一个理想的1M欧姆电阻的电压线,就是上面图里浅紫色虚线;然后还有理想的电阻值,就是那根横着的黄线。&/p&&p&所以,大家可以清楚的看到diode等效电阻的变化:电流1pA的时候,等效电阻达到了70多GOhm;然后在1mA的时候,电阻只有232kOhm;中间有个极小值,应该是因为随着电流越来越大,各种次级效应变得显著了。不管怎么说,这个diode的oxide肯定不能扛到几百V这么大的电压吧!&/p&&p&然后,作者君就试了试,如果一个传统的resistor ladder被diode替代,结果会是怎么样呢?&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-ffa0e2d0b4bd_b.jpg& data-rawwidth=&440& data-rawheight=&485& class=&origin_image zh-lightbox-thumb& width=&440& data-original=&https://pic3.zhimg.com/v2-ffa0e2d0b4bd_r.jpg&&&/figure&三个diode,理想的情况下,V1应该等于三分之二的电源电压,但是当作者君sweep VDD的值,从0V到3.3V,却得到了下面的图!&/p&&p&&figure&&img src=&https://pic2.zhimg.com/v2-cbaf25c1ce21d2f7c9f1fda2_b.jpg& data-rawwidth=&685& data-rawheight=&390& class=&origin_image zh-lightbox-thumb& width=&685& data-original=&https://pic2.zhimg.com/v2-cbaf25c1ce21d2f7c9f1fda2_r.jpg&&&/figure&从来就没有等于过2/3!上图的红线就是V1和VDD的ratio。下面的两条虚线,一条是电阻分压,还有一条是“每个diode的body都连到它的source上面”的结果。&/p&&p&更无语的是:这个红线还不是monotonous的!&/p&&p&作者君很不甘心啊!这个body effect咋就这样呢?要不看看Vth到底咋变的?&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-c54f9dc1cac0167d2fabd_b.jpg& data-rawwidth=&737& data-rawheight=&422& class=&origin_image zh-lightbox-thumb& width=&737& data-original=&https://pic3.zhimg.com/v2-c54f9dc1cac0167d2fabd_r.jpg&&&/figure&对应上面diode ladder的三个pmos,红色的是最下面那个diode的Vth,绿色的是最上面的,黄色的是中间那个diode。蓝色的虚线是上面那个V1/VDD。很明显,随着VDD的上升,红色的Vth迅速变大,符合它的body effect最显著的情况。&/p&&p&这样看来,如果想拿到一个精确的跟VDD有关的电压值,diode似乎不是一个好的选择。&/p&&p&可能你会问了:写了这么多,你到底要拿diode干什么呢?&/p&&p&别急!作者君说了,start up里面可以用呢!那如何用呢?&/p&&p&我们还是先来看看一个传统的start up:&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-eb7b1a81e06_b.jpg& data-rawwidth=&434& data-rawheight=&366& class=&origin_image zh-lightbox-thumb& width=&434& data-original=&https://pic1.zhimg.com/v2-eb7b1a81e06_r.jpg&&&/figure&一般来说,M2一开始是断开的,因此V1t被Rst直接连到Rst上面,开始电压很高。因此,M1一开始就被打开了,这样右边那些pmos的gate就都被拉下来,一个很大的pull down current通过M1流到gnd。&/p&&p&作者君试了试三种情况:ZL被short(绿色),ZL是个电阻(红色),ZL是个diode(蓝色):&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-a66ecfd90d20aff2bfabd_b.jpg& data-rawwidth=&419& data-rawheight=&346& class=&content_image& width=&419&&&/figure&上半图是V1t的电压,下半图是M1上面的电流。&/p&&p&如果ZL被short的话,当V1t很高的时候,流过M1的电流可以达到87uA。这样的值,对于一个low power的电路来说,确实是大了点。&/p&&p&因此,作者君就开始想,如何把这个瞬态电流减小一些呢?&/p&&p&加个diode试试看?&/p&&p&于是,作者君加上了一个1um/1um的diode,放在ZL那个地方。这样,瞬态电流被减小到了40uA。然后为了找到对应的电阻值,作者君试了一下,发现大概电阻等于26.97kOhm的时候, 也就是W=0.5um, L=38.16um,或者是 W=0.2um, L=13.26um. (面积是2.652um2)的时候,瞬态电流差不多大。&/p&&p&最下面那个红色,对应的是当电阻被加到1MOhm的时候,相应的电流(2uA)和电压值。&/p&&p&稍微简单的比较一下,diode的面积是1,而resistor的面积是2.652um2或者19.08um2。&/p&&p&咦,这样看起来,diode倒是省了一些面积哦!&/p&&p&别急!这个电阻还不是最大的,最大的是Rst。&/p&&p&一个简单的计算:如果在稳态的时候,我希望启动电路只耗掉100nA的电流,然后VDD是3.3V,然后为了把M1完全关断,V1t最多100mV,那么这个Rst应该多大呢?&/p&&p&(3.3-0.1)/100n=33MOhm&/p&&p&亲,你是在开玩笑吗?&/p&&p&你知道33MOhm的电阻多大吗?&/p&&p&作者君用的110nm工艺,典型的poly resistor,W是200nm的时候,L有5mm多了……&/p&&p&还想tradeoff一下,给300nA的电流好不好?还有11MOhm……&/p&&p&吼吼,作者君就想起来上面折腾的这些diode了。4
diode in series,每个是 0.5um/10um,就可以基本拿到跟11MOhm的resistor差不多的transient电流波形了。&br&&/p&&p&PS:启动电路里面的ZL除了限制瞬态大电流之外,还有一个目的:减小稳态的leakage current。当电路的工作点都差不多建立好之后,理想的情况下,M1应该被完全关断。但是怎么也有一些leakage current。如果你觉得几百pA是可以接受的,那就short那个ZL好了。不过,要是你的电路是low power的,几百pA还是有点惊人。重新想想上面diode的等效电阻,当电流很小的时候,diode是个大电阻。这样的话,ZL上的压降,怎么也可以狠狠的把M1的Vds压下去了。然后,作者君就发现,加了diode之后,leakage大概就几个pA这样了。嘿嘿,不错哦!&/p&&br&&br&&p&&b&原创声明:本文为原创,未经许可,严禁转载。如需转载,请联系作者。&/b&&/p&&p&&b&微信公众号:analogIC_gossip&/b&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/e68ad9e9d09b5e05051e8ca_b.jpg& data-rawwidth=&258& data-rawheight=&258& class=&content_image& width=&258&&&/figure&
作者君又来炒冷饭了~~话说,大家会不会觉得这样反复折腾一个东西太弱鸡了?……额,不管怎么说,作者君已经辛辛苦苦截图了,还是不要浪费了的好吧!作者君因为长期捣鼓Bandgap前端,最近又在折腾传统的启动电路,因此对diode又有了一些感觉。我们还是从公式…
&figure&&img src=&https://pic3.zhimg.com/v2-ced0d2c883_b.jpg& data-rawwidth=&422& data-rawheight=&284& class=&origin_image zh-lightbox-thumb& width=&422& data-original=&https://pic3.zhimg.com/v2-ced0d2c883_r.jpg&&&/figure&&p&之前有小同学跟作者君说,希望讲讲反馈的知识。当时作者君好好想了想,感觉如果按照书上的顺序,四种反馈给表格给公式……强行灌输给大家,似乎违背了这个专栏的目的——以通俗易懂和有趣的话来讲解模拟电路。所以很长时间以来,作者君都没有想好怎么去啃反馈这块硬骨头。&/p&&p&最近作者君看书的时候,忽然看到了source follower,仔细一想,然后自己动手画了一张图,于是乎,觉得这样理解也挺直观,因此就在这里拿来跟大家分享一下吧!&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e9be7cd017fecadf55704_b.jpg& data-rawwidth=&998& data-rawheight=&471& class=&origin_image zh-lightbox-thumb& width=&998& data-original=&https://pic4.zhimg.com/v2-e9be7cd017fecadf55704_r.jpg&&&/figure&&p&图(1.a)是大家很熟悉的 source follower, 看过Razavi第三章的同学,肯定能一口说出它的增益约等于1。也就是当M1的gm和R的乘积gm*R很大的时候,output大致可以follow input。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-aaba502f3917e56a5ca6_b.jpg& data-rawwidth=&243& data-rawheight=&81& class=&content_image& width=&243&&&/figure&&p&Razavi的3.3节有很详细的推导过程,大家可以参考一下。&/p&&p&不过,作者君想问问了,既然说了这是一个很典型的反馈电路,那我们能不能用反馈的知识来重新认识一下它呢?&/p&&p&先想想看啊:反馈系统是如何构成的呢?前馈feed forward通路,反馈feedback通路,然后一个闭合的loop,就构成了一个完整的反馈系统:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-e77d6e53d86aa6f9290e17_b.jpg& data-rawwidth=&366& data-rawheight=&171& class=&content_image& width=&366&&&/figure&&p&传输函数transfer function等于:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-0ffe4c0f141e_b.jpg& data-rawwidth=&201& data-rawheight=&66& class=&content_image& width=&201&&&/figure&&p&我们用loop个方法,画一下source follower的模块图:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-9e1ea72c0ff_b.jpg& data-rawwidth=&1131& data-rawheight=&246& class=&origin_image zh-lightbox-thumb& width=&1131& data-original=&https://pic2.zhimg.com/v2-9e1ea72c0ff_r.jpg&&&/figure&&p&决定M1的小信号电流的Vgs等于input-output,如上图最左边这样。 经过M1,也就是一个voltage controlled current source,小信号电流Iout可以求出。由于Rs的上端和output直接相连,所以小信号的output就等于Iout*Rs。&/p&&p&所以,这个source follower的信号通路,就是这样的吧?&/p&&p&不过,为什么&u&看起来这不是一个闭合的loop&/u&呢?&/p&&p&等等,仔细看看先:怎么左下角和最右端都是Vout?这样岂不是可以直接相连了?&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-89e2baa62bd122dd678ee1_b.jpg& data-rawwidth=&1113& data-rawheight=&251& class=&origin_image zh-lightbox-thumb& width=&1113& data-original=&https://pic1.zhimg.com/v2-89e2baa62bd122dd678ee1_r.jpg&&&/figure&&p&如此看来,这个source follower确实构成了一个loop呢!&/p&&p&对照一般情况的反馈系统图,我们把input写在最左边,把output写在最右边,忽略掉所有的中间变量,只保留改变信号的模块,重新整理一下上面的图,我们得到了最终的反馈系统图(右边的图):&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-b654a2e7b66ed881e4698_b.jpg& data-rawwidth=&1388& data-rawheight=&302& class=&origin_image zh-lightbox-thumb& width=&1388& data-original=&https://pic2.zhimg.com/v2-b654a2e7b66ed881e4698_r.jpg&&&/figure&&p&对照左边的general feedback system,我们可以一眼看出,&b&这个系统的feedforward增益H(s)等于gmRs,而feedback增益G(s)=1.&/b&&/p&&p&所以,这个系统的增益等于:&/p&&p&&img src=&https://www.zhihu.com/equation?tex=CL%28s%29%3DH%28s%29%2F%281%2BH%28s%29G%28s%29%29%3Dg_mR_S%2F%281%2Bg_mR_S%29& alt=&CL(s)=H(s)/(1+H(s)G(s))=g_mR_S/(1+g_mR_S)& eeimg=&1&&&/p&&p&这样是不是就等于了最开始我们找到的书上的那个公式了呢?&/p&&p&不过,等一下啊!那个公式里面还有gmb呢!我们这个公式里面怎么没有了?&/p&&p&不用担心,这个很容易的嘛!gmb意味着body effect被考虑在里面了,大不了我们再重新改改我们的反馈系统模块图吧!&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-dda1a4afe0fc8ee7bd1168acada7d5ee_b.jpg& data-rawwidth=&1366& data-rawheight=&288& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic3.zhimg.com/v2-dda1a4afe0fc8ee7bd1168acada7d5ee_r.jpg&&&/figure&&p&在这里,请大家注意一下gmb的方向。&/p&&p&最后,这个包括gmb的系统推导,就算留给大家的课后作业啦!&/p&&p&这里啰啰嗦嗦讲了这么多,居然才说完了图(1.a),作者君实在是有些话痨了……其他的两个图,图(1.b)和图(1.c),是为了进一步使用作者君的方法来进行简单直观的观察。由于篇幅所限,所以这两个图就放到下一篇里面再讲吧!大家有空的话,可以自己先试试看,揣摩一下作者君放这两个图的用意。(故作高深之状……^_^)&/p&&p&PS:作者君尽量把专业术语用中文和英文一起写出来,希望大家能慢慢习惯,应该有助于大家以后看英文的文献。&/p&&p&———————————————————————————————————————&/p&&p&&b&原创声明:本文为原创,未经许可,严禁转载。如需转载,请联系作者。&/b&&/p&&p&&b&微信公众号:analogIC_gossip&/b&&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/e68ad9e9d09b5e05051e8ca_b.jpg& data-rawwidth=&258& data-rawheight=&258& class=&content_image& width=&258&&&/figure&&p&&/p&
之前有小同学跟作者君说,希望讲讲反馈的知识。当时作者君好好想了想,感觉如果按照书上的顺序,四种反馈给表格给公式……强行灌输给大家,似乎违背了这个专栏的目的——以通俗易懂和有趣的话来讲解模拟电路。所以很长时间以来,作者君都没有想好怎么去啃反…
&figure&&img src=&https://pic2.zhimg.com/v2-a3d122adb938b1f5f6c67bf_b.jpg& data-rawwidth=&400& data-rawheight=&178& class=&content_image& width=&400&&&/figure&今天想谈一个比较实用的话题:switched capacitor的integrator。&p&为什么会想到这个话题呢?因为作者君最近在做一些feasibility study,内容就是把之前别人的电路继续降低power consumption,继续减掉area之类的。然后呢,里面有个sigma-delta ADC,是个second order的。作者君的老大就让作者君去试试,看看变成1st-order的行不行?&/p&&p&因此,作者君就开始捣鼓第一个integrator。所以,就有了今天这篇文章。&/p&&p&言归正传,我们看看,一个理想的switched capacitor integrator是怎么样的呢?&/p&&br&&p&&figure&&img src=&https://pic2.zhimg.com/v2-ef3cc638fc388c1fa219f_b.jpg& data-rawwidth=&776& data-rawheight=&311& class=&origin_image zh-lightbox-thumb& width=&776& data-original=&https://pic2.zhimg.com/v2-ef3cc638fc388c1fa219f_r.jpg&&&/figure&&u&Prof.Behzad.Razavi &Design of Analog CMOS Integrated Circuits& &/u&&br&&/p&&p&它的TF (Transfer Function)是:&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-f17afc42c6ed_b.jpg& data-rawwidth=&733& data-rawheight=&98& class=&origin_image zh-lightbox-thumb& width=&733& data-original=&https://pic3.zhimg.com/v2-f17afc42c6ed_r.jpg&&&/figure&很显然,kT的Vout等于之前(k-1)T的Vout减去一个跟input有关(乘以一个电容ratio)的量。&/p&&p&一直到这里,我们都把这个Opamp当做是个ideal的。但是!哪有ideal的opamp存在嘛!&/p&&p&今天这一篇,我们先不考虑offset,只考虑finite gain。&/p&&p&so,如果这里的opamp的gain只有A这么多,那output会变成什么样呢?&/p&&p&X点电荷:&/p&&p&S1导通的时候:&img src=&https://www.zhihu.com/equation?tex=%5Cleft%5B+V_%7Bin%7D+%28k-1%29T+%5Cright%5D+%5Ctimes+C_%7B1%7D+%2B%5Cleft%5B+V_%7Bx%7D+%28k-1%29T-V_%7Bout%7D%28k-1%29T++%5Cright%5D+%5Ctimes+C_%7B2%7D+& alt=&\left[ V_{in} (k-1)T \right] \times C_{1} +\left[ V_{x} (k-1)T-V_{out}(k-1)T
\right] \times C_{2} & eeimg=&1&&..........&b&(eq.1)&/b&&br&&/p&&p&这个时候,由于opamp的gain只有A,所以Vx(k-1)T等于-Vout(k-1)/A。&/p&&p&好了,代入上面的公式里面,可以看到:&/p&&p&&img src=&https://www.zhihu.com/equation?tex=%5Cleft%5B+V_%7Bin%7D+%28k-1%29+T+%5Cright%5D+%5Ctimes+C_%7B1%7D+%2B%5Cleft%5B+-V_%7Bout%7D+%28k-1%29T-%5Cfrac%7BV_%7Bout%7D+%28k-1%29T%7D%7BA%7D++%5Cright%5D+%5Ctimes+C_%7B2%7D+& alt=&\left[ V_{in} (k-1) T \right] \times C_{1} +\left[ -V_{out} (k-1)T-\frac{V_{out} (k-1)T}{A}
\right] \times C_{2} & eeimg=&1&&..................&b&(eq.2)&/b&&br&&/p&&p&可以预料到,A进入了公式里面,然后稍微简化一些,把Vout(k-1)相关的部分合并,可以得到:&/p&&br&&p&&img src=&https://www.zhihu.com/equation?tex=%5Cleft%5B+V_%7Bin%7D+%28k-1%29T%5Cright%5D+%5Ctimes+C_%7B1%7D+%2B%5Cleft%5B+-C_%7B2%7D-%5Cfrac%7B1%7D%7BA%7DC_%7B2%7D++%5Cright%5D+%5Ctimes++V_%7Bout%7D+%28k-1%29T& alt=&\left[ V_{in} (k-1)T\right] \times C_{1} +\left[ -C_{2}-\frac{1}{A}C_{2}
\right] \times
V_{out} (k-1)T& eeimg=&1&&.........................&b&(eq.3)&/b&&br&&/p&&p&好了,这个公式就简化到这里。然后,我们来看看S2导通时候的情况。&/p&&p&还是X点电荷:&img src=&https://www.zhihu.com/equation?tex=V_%7Bx%7D+%28kT%29%5Ctimes+C_1%2B%5Cleft%5B+V_%7Bx%7D+%28kT%29+-V_%7Bout%7D+%28kT%29+%5Cright%5D+%5Ctimes+C_%7B2%7D+& alt=&V_{x} (kT)\times C_1+\left[ V_{x} (kT) -V_{out} (kT) \right] \times C_{2} & eeimg=&1&&..........................&b&
(eq.4)&/b&&/p&&p&然后,Vx(kT)等于-Vout(kT)/A,因为假设这个opamp的bandwidth够大,可以在半个sampling 周期内settle,就可以简化得到下面的公式:&img src=&https://www.zhihu.com/equation?tex=-%5Cfrac%7B1%7D%7BA%7DV_%7Bout%7D+%28kT%29%5Ctimes+C_%7B1%7D+%2B%5Cleft%5B+-C_%7B2%7D-%5Cfrac%7B1%7D%7BA%7DC_%7B2%7D++%5Cright%5D+%5Ctimes++V_%7Bout%7D+%28kT%29%3D-%5Cleft%5B+C_%7B2%7D%2B%5Cfrac%7B1%7D%7BA%7DC_%7B2%7D%2B%5Cfrac%7B1%7D%7BA%7DC_%7B1%7D++%5Cright%5DV_%7Bout%7D+%28kT%29& alt=&-\frac{1}{A}V_{out} (kT)\times C_{1} +\left[ -C_{2}-\frac{1}{A}C_{2}
\right] \times
V_{out} (kT)=-\left[ C_{2}+\frac{1}{A}C_{2}+\frac{1}{A}C_{1}
\right]V_{out} (kT)& eeimg=&1&&......&b&(eq.5)&/b&&/p&&p&X点电荷守恒: (eq.3)=(eq.5),得到一个终极的公式:&br&&/p&&p&&img src=&https://www.zhihu.com/equation?tex=%5Cleft%5B+V_%7Bin%7D+%28k-1%29T%5Cright%5D+%5Ctimes+C_%7B1%7D+-%5Cleft%5B+C_%7B2%7D%2B%5Cfrac%7B1%7D%7BA%7DC_%7B2%7D++%5Cright%5D+%5Ctimes++V_%7Bout%7D+%28k-1%29T%3D-%5Cleft%5B+C_%7B2%7D%2B%5Cfrac%7B1%7D%7BA%7DC_%7B2%7D%2B%5Cfrac%7B1%7D%7BA%7DC_%7B1%7D++%5Cright%5DV_%7Bout%7D+%28kT%29& alt=&\left[ V_{in} (k-1)T\right] \times C_{1} -\left[ C_{2}+\frac{1}{A}C_{2}
\right] \times
V_{out} (k-1)T=-\left[ C_{2}+\frac{1}{A}C_{2}+\frac{1}{A}C_{1}
\right]V_{out} (kT)& eeimg=&1&&....&b&(eq.7)&/b&&br&&/p&&p&然后再是化简……&/p&&p&别晕啊!一定要挺住!&/p&&p&其实最后的结果也不太复杂嘛:&/p&&p&&img src=&https://www.zhihu.com/equation?tex=V_%7Bout%7D+%28kT%29%3D+%5Cfrac%7B%5Cleft%5B+-V_%7Bin%7D+%28k-1%29T%5Cright%5D+%5Ctimes+C_%7B1%7D+%2B%5Cleft%5B+C_%7B2%7D%2B%5Cfrac%7B1%7D%7BA%7DC_%7B2%7D++%5Cright%5D+%5Ctimes++V_%7Bout%7D+%28k-1%29T%7D%7B%5Cleft%5B+C_%7B2%7D%2B%5Cfrac%7B1%7D%7BA%7DC_%7B2%7D%2B%5Cfrac%7B1%7D%7BA%7DC_%7B1%7D++%5Cright%5D%7D+& alt=&V_{out} (kT)= \frac{\left[ -V_{in} (k-1)T\right] \times C_{1} +\left[ C_{2}+\frac{1}{A}C_{2}
\right] \times
V_{out} (k-1)T}{\left[ C_{2}+\frac{1}{A}C_{2}+\frac{1}{A}C_{1}
\right]} & eeimg=&1&&....................&b&
(eq.8)&/b&&br&&/p&&p&作者君喜欢简单嘛!所以,我们来看看,如果C1=C2,那么公式能够被简化成什么样子呢?&/p&&p&&img src=&https://www.zhihu.com/equation?tex=V_%7Bout%7D+%28kT%29%3D+%5Cfrac%7B%5Cleft%5B+-V_%7Bin%7D+%28k-1%29T%5Cright%5D%2B%5Cleft%5B+1%2B%5Cfrac%7B1%7D%7BA%7D++%5Cright%5D+%5Ctimes++V_%7Bout%7D+%28k-1%29T%7D%7B%5Cleft%5B1%2B%5Cfrac%7B2%7D%7BA%7D%5Cright%5D%7D+& alt=&V_{out} (kT)= \frac{\left[ -V_{in} (k-1)T\right]+\left[ 1+\frac{1}{A}
\right] \times
V_{out} (k-1)T}{\left[1+\frac{2}{A}\right]} & eeimg=&1&&...............................&b&(eq.9)
&/b&&/p&&p&所以,回到最初的情况,也就是这个电路被reset了,那么Vout(0)就是0,没有存货嘛!因此,&/p&&p&&img src=&https://www.zhihu.com/equation?tex=V_%7Bout%7D+%281%29%3D+%5Cfrac%7B%5Cleft%5B+-V_%7Bin%7D+%280%29%5Cright%5D%2B%5Cleft%5B+1%2B%5Cfrac%7B1%7D%7BA%7D++%5Cright%5D+%5Ctimes++V_%7Bout%7D+%280%29%7D%7B%5Cleft%5B1%2B%5Cfrac%7B2%7D%7BA%7D%5Cright%5D%7D+%3D%5Cfrac%7B-V_%7Bin%7D+%280%29%7D%7B1%2B%5Cfrac%7B2%7D%7BA%7D%7D+& alt=&V_{out} (1)= \frac{\left[ -V_{in} (0)\right]+\left[ 1+\frac{1}{A}
\right] \times
V_{out} (0)}{\left[1+\frac{2}{A}\right]} =\frac{-V_{in} (0)}{1+\frac{2}{A}} & eeimg=&1&&...................................&b&(eq.10) &/b&&/p&&p&跟书上那个公式对比一下:分母多了个2/A呢!所以,这个integrator的DC gain就不是infinite了呢!(大家应该记得一个最基本的RC构成的integrator,TF是-1/SRC,这个TF的DC gain是infinite)。&/p&&p&所以,这个有着finite gain的integrator,DC gain变成了A/(2+A),当A非常大的时候,约等于1。&/p&&p&话说写了这么多,还没到正题呢!作者君心心念叨的是:finite gain的影响呢?&/p&&p&如果把上面的公式(eq.9)写成z-domain的,很容易就能得到:&/p&&p&&img src=&https://www.zhihu.com/equation?tex=H%28z%29%3D%5Cfrac%7BV_%7Bout%7D+%28z%29%7D%7BV_%7Bin%7D+%28z%29%7D+%3D+%5Cfrac%7B1%7D%7B%5Cleft%5B%281%2B%5Cfrac%7B1%7D%7BA%7D%29-%281%2B%5Cfrac%7B2%7D%7BA%7D%29z%5Cright%5D%7D+%3D%5Cfrac%7B1%7D%7B%5Cleft%5B%281%2B%5Cfrac%7B2%7D%7BA%7D%29%281-z%29-%5Cfrac%7B1%7D%7BA%7D%5Cright%5D%7D& alt=&H(z)=\frac{V_{out} (z)}{V_{in} (z)} = \frac{1}{\left[(1+\frac{1}{A})-(1+\frac{2}{A})z\right]} =\frac{1}{\left[(1+\frac{2}{A})(1-z)-\frac{1}{A}\right]}& eeimg=&1&&...............................&b&(eq.11)&/b&&/p&&p&DC的时候,也就是z=exp(jwT)=1的时候,分母是-1/A,这个&b&integrator的DC gain就是A&/b&。&/p&&p&好了,折腾了这么半天,我们来验证一下,是不是这样的?&/p&&p&咱们先拿个OTA跑下PSS和PSTB看看它的gain:(传说要用&em&diffstbprobe,可是作者君的古老工艺只支持&/em&&em&cmdmprobe……泪目……&/em&)&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-b5a043d4de7ace68a69e15_b.jpg& data-rawwidth=&981& data-rawheight=&598& class=&origin_image zh-lightbox-thumb& width=&981& data-original=&https://pic4.zhimg.com/v2-b5a043d4de7ace68a69e15_r.jpg&&&/figure&好了,这是一个DC gain是68dB的OTA。&/p&&p&然后,我们搭建上面那个integrator,跑PAC和PSTB,得到了下面的波形:&/p&&p&&figure&&img src=&https://pic2.zhimg.com/v2-6d82f8b0d8ce_b.jpg& data-rawwidth=&975& data-rawheight=&574& class=&origin_image zh-lightbox-thumb& width=&975& data-original=&https://pic2.zhimg.com/v2-6d82f8b0d8ce_r.jpg&&&/figure&跟上面估计的差不多,这个integrator的gain几乎就是OTA的gain。(寄生电容导致稍微有些区别)那种在0Hz趋于无穷大的波形,嘿嘿,当然是不可能的啦!&/p&&p&等等!怎么这个PSTB变成了这么奇怪的一个东西?DC的时候,loopgain是负的!!!&/p&&p&额,让我想想……&/p&&p&对哦!上面电路图里面,C2是跨在OTA的input和output之间的,所以……所以DC的时候,几乎没有从output到input的通路,loop是断开的,所以……&/p&&p&要不,咱们换个电路试试看?&/p&&p&作者君现在的仿真波形是基于这个电路的:&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-b9fe75f1edca59f422de_b.jpg& data-rawwidth=&271& data-rawheight=&179& class=&content_image& width=&271&&&/figure&里面带了CDS(Correlated Double Sampling),可以用来减小offset的影响。&/p&&p&继续跑PSS加PAC加PSTB:&/p&&p&&figure&&img src=&https://pic2.zhimg.com/v2-c496defeecec2315ebbe0303_b.jpg& data-rawwidth=&893& data-rawheight=&553& class=&origin_image zh-lightbox-thumb& width=&893& data-original=&https://pic2.zhimg.com/v2-c496defeecec2315ebbe0303_r.jpg&&&/figure&这次DC的时候,PSTB的数值稍微靠谱一些了,几乎跟PAC的值差不多大。&/p&&p&不过,为什么从刚刚的68变成了61dB了呢?&/p&&p&&b&PS:课后习题来啦!请计算这个带CDS的integrator的DC gain~~~~&/b&&/p&&p&还有一个值得仔细瞅瞅的地方:在中间某个频率范围,PSTB忽然上升了差不多3dB呢!&/p&&p&&b&PS:提示:PSTB计算的是一个周期内两个phase的平均值,so (61+68)/2=?&/b&&/p&&p&————————————————————————————————&/p&&p&话说写了这么多,还没到正题呢!作者君心心念叨的是:如何减小finite gain的影响呢?&/p&&p&重新再写一遍公式11:&/p&&p&&img src=&https://www.zhihu.com/equation?tex=H%28z%29%3D%5Cfrac%7BV_%7Bout%7D+%28z%29%7D%7BV_%7Bin%7D+%28z%29%7D+%3D+%5Cfrac%7B1%7D%7B%5Cleft%5B%281%2B%5Cfrac%7B1%7D%7BA%7D%29-%281%2B%5Cfrac%7B2%7D%7BA%7D%29z%5Cright%5D%7D+%3D%5Cfrac%7B1%7D%7B%5Cleft%5B%281%2B%5Cfrac%7B2%7D%7BA%7D%29%281-z%29-%5Cfrac%7B1%7D%7BA%7D%5Cright%5D%7D& alt=&H(z)=\frac{V_{out} (z)}{V_{in} (z)} = \frac{1}{\left[(1+\frac{1}{A})-(1+\frac{2}{A})z\right]} =\frac{1}{\left[(1+\frac{2}{A})(1-z)-\frac{1}{A}\right]}& eeimg=&1&&...............................&b&(eq.11)&/b&&br&&/p&&p&仔细看看,多出来的那个-1/A其实是个非常讨厌的家伙呢!因为1-z在低频的时候,趋近于s,所以即使前面有个(1+2/A),DC gain并不是很受限。但是,-1/A就破坏了一切……&/p&&p&沮丧……&/p&&p&话说,有没有简单的办法弄掉这个-1/A呢?&/p&&p&重新回去看(eq.7),我们可以发现,&b&(k-1)T的时候,没有sample一项:C1/A*Vout(k-1)T;但是&/b&&b&(k)T的时候,却sample了:C1/A*Vout(k)T&/b&。&br&&/p&&p&哦!就是这个讨厌的区别啊!&/p&&p&要不,我们试试看,怎么在(k-1)T的时候,加上这项呢?&/p&&p&那个,为了简化,还是假设cap都相等哈!&/p&&p&作者君灵机一动,^_^,要不多加一个相同大小的cap?(k-1)T连入Vx,(k)T的时候断开?&/p&&p&哇!自创新电路吗?好激动!&/p&&p&然而,这么简单的道理,其实牛人们早想到了吧?&/p&&figure&&img src=&https://pic1.zhimg.com/v2-cbd527dbb_b.jpg& data-rawwidth=&527& data-rawheight=&338& class=&origin_image zh-lightbox-thumb& width=&527& data-original=&https://pic1.zhimg.com/v2-cbd527dbb_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-1e812b73ed413acc1d8b76_b.jpg& data-rawwidth=&601& data-rawheight=&333& class=&origin_image zh-lightbox-thumb& width=&601& data-original=&https://pic2.zhimg.com/v2-1e812b73ed413acc1d8b76_r.jpg&&&/figure&&br&&p&&figure&&img src=&https://pic4.zhimg.com/v2-1f568f77a6ec7fd3aa9f_b.jpg& data-rawwidth=&609& data-rawheight=&268& class=&origin_image zh-lightbox-thumb& width=&609& data-original=&https://pic4.zhimg.com/v2-1f568f77a6ec7fd3aa9f_r.jpg&&&/figure&source: Circuit Techniques for Reducing the Effects of Op-Amp Imperfections: Autozeroing, Correlated Double Sampling, and Chopper Stabilization, Christian C. Enz and Gabor C. Temes, 1996&br&&/p&&p&这篇集大成的invited paper,供大家仔细阅读。&/p&&p&作者君抛砖引玉,finite gain的影响和补偿,就简单介绍到这里了。&/p&&p&为了证明上面的gain boosting有效,作者君又去跑了下PSS和PAC:&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-6d9722435deda2b5aa897_b.jpg& data-rawwidth=&1159& data-rawheight=&806& class=&origin_image zh-lightbox-thumb& width=&1159& data-original=&https://pic3.zhimg.com/v2-6d9722435deda2b5aa897_r.jpg&&&/figure&同一个OTA,用最后一个gain compensation的电路,DC被boost到了109dB……&/p&&p&&b&原创声明:本文为原创,未经许可,严禁转载。如需转载,请联系作者。&/b&&/p&&p&&b&微信公众号:analogIC_gossip&br&&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/e68ad9e9d09b5e05051e8ca_b.jpg& data-rawwidth=&258& data-rawheight=&258& class=&content_image& width=&258&&&/figure&
今天想谈一个比较实用的话题:switched capacitor的integrator。为什么会想到这个话题呢?因为作者君最近在做一些feasibility study,内容就是把之前别人的电路继续降低power consumption,继续减掉area之类的。然后呢,里面有个sigma-delta ADC,是个secon…
&figure&&img src=&https://pic3.zhimg.com/v2-ced0d2c883_b.jpg& data-rawwidth=&422& data-rawheight=&284& class=&origin_image zh-lightbox-thumb& width=&422& data-original=&https://pic3.zhimg.com/v2-ced0d2c883_r.jpg&&&/figure&&p&我们还是接着上次的source follower继续讲feedback吧:&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-e9be7cd017fecadf55704_b.png& data-rawwidth=&998& data-rawheight=&471& class=&origin_image zh-lightbox-thumb& width=&998& data-original=&https://pic1.zhimg.com/v2-e9be7cd017fecadf55704_r.jpg&&&/figure&&p&上一篇啰里啰嗦的讲了一下图(1.a),不知道大家觉得从作者君的角度来看feedback,会不会比较简单粗暴?总而言之,作者君的脑子回路就是这样的直接:不去研究到底是什么反馈类型,上来就画信号流图,辨析电路的信号流向,再判断电路的作用。用最基本的反馈公式得到传输函数之后,再简化函数,最后就能看出反馈类型了。&/p&&p&这一篇,我们来看看图(1.b)。&/p&&p&等等,为什么研究了图(1.a),我们还要研究图(1.b)呢?(左看右看,区别似乎只是M1上面那个负载?)&/p&&p&哈,大家是不是看过令人头疼的&Effect of loading&?不同的负载对feedback的影响?现在机会来了!我们本着“四两拨千斤”的原则,从简单的source follower来入手,看看这个Effect of loading到底如何看待?&/p&&p&话不多说,简单粗暴的信号流图来了:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-20a948b3a78dc777b2d8e2c98b9d1055_b.png& data-rawwidth=&1398& data-rawheight=&637& class=&origin_image zh-lightbox-thumb& width=&1398& data-original=&https://pic2.zhimg.com/v2-20a948b3a78dc777b2d8e2c98b9d1055_r.jpg&&&/figure&&p&跟之前的图(1.a)的信号流图对比,图(1.b)的主要区别就在于多出了右上角阴影部分那一块。我们可以这样想:当上方是电流源的时候,由于电流源的电阻视为无穷大,而且电路的电流被其所限制。而换成电阻后,负载Rd是个不可以被忽视的东西,我们必须考虑Rd的影响。而Rd其实可以影响的其实是Vd,也就是drain 的电压。所以在这里,gds,也就是ro(ro=1/gds),代表着沟道调制效应的小信号drain电阻必须被纳入分析之中。&/p&&p&为了检验这个信号流图到底对不对,我们把Rd假设为无穷大,这样Rd就可以看做是一个对小信号输出电流不敏感的模块,也就可以等效于图(1.a)里面的理想电流源了。&/p&&p&当Rd为无穷大的时候,灰色模块基本上可以看成是断路:open loop。因此这个模块就不用被include进我们的feedback analysis,所以也就等效于图(1.a)了。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-89e2baa62bd122dd678ee1_b.png& data-rawwidth=&1113& data-rawheight=&251& class=&origin_image zh-lightbox-thumb& width=&1113& data-original=&https://pic2.zhimg.com/v2-89e2baa62bd122dd678ee1_r.jpg&&&/figure&&p&好了,验证完毕,我们可以安心继续分析图(1.b)了!&/p&&p&如果直接用不动脑子的方法,我们可以给出图(1.b)的两个小信号方程:&/p&&p&&img src=&http://www.zhihu.com/equation?tex=V_%7Bout%7D%3D%5Cleft%5B+%28V_%7Bin%7D-V_%7Bout%7D%29g_m%2B%28V_%7BDrain%7D-V_%7Bout%7D%29g_%7Bds%7D+%5Cright%5D%5Ctimes+R_S+& alt=&V_{out}=\left[ (V_{in}-V_{out})g_m+(V_{Drain}-V_{out})g_{ds} \right]\times R_S & eeimg=&1&&
(eq.1)&/p&&p&&img src=&http://www.zhihu.com/equation?tex=V_%7BDrain%7D%3D-V_%7Bout%7D%5Ctimes+R_D%2FR_S& alt=&V_{Drain}=-V_{out}\times R_D/R_S& eeimg=&1&& (eq.2)&/p&&p&一顿猛推公式,我们可以得到:&/p&&p&&img src=&http://www.zhihu.com/equation?tex=%5Cfrac%7BV_%7Bout%7D%7D%7BV_%7Bin%7D%7D%3D%5Cfrac%7Bg_mR_S%7D%7B1%2Bg_mR_S%2Bg_%7Bds%7D%28R_S%2BR_D%29%7D& alt=&\frac{V_{out}}{V_{in}}=\frac{g_mR_S}{1+g_mR_S+g_{ds}(R_S+R_D)}& eeimg=&1&&
(eq.3)&/p&&p&喂喂喂!这个看起来很复杂呢!而且你这样推公式,感觉很懒,不动脑子?&/p&&p&好像是有点呢……要不我们用个有意思点的方法来重做一遍?重新画下信号流图:&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b1d4d30acfff7c3f715ae4_b.png& data-rawwidth=&1398& data-rawheight=&637& class=&origin_image zh-lightbox-thumb& width=&1398& data-original=&https://pic1.zhimg.com/v2-b1d4d30acfff7c3f715ae4_r.jpg&&&/figure&&p&大家仔细看看,这个图跟我们前面那个图有什么不同?灰色的部分有把Vout纳入,而这个紫色的部分没有了Vout。所以,这个紫色的部分其实很容易得到它的传输函数。因为我们根据:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-7519fbabdaabff95a17dfda_b.png& data-rawwidth=&1547& data-rawheight=&298& class=&origin_image zh-lightbox-thumb& width=&1547& data-original=&https://pic3.zhimg.com/v2-7519fbabdaabff95a17dfda_r.jpg&&&/figure&&p&在这个紫色的sub feedback里面,前馈通路的gain是1,反馈通路的gain是-gds(Rd+Rs)。所以它的等效闭环增益也就很容易拿到了:&/p&&p&&img src=&http://www.zhihu.com/equation?tex=H_1%28s%29%3D%5Cfrac%7B1%7D%7B1%2Bg_%7Bds%7D%28R_D%2BR_S%29%7D& alt=&H_1(s)=\frac{1}{1+g_{ds}(R_D+R_S)}& eeimg=&1&&
(eq.4)&/p&&p&然后,我们再接着简化信号流图:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-7bda1c25c0bfc3d6f5f50b3_b.png& data-rawwidth=&1361& data-rawheight=&251& class=&origin_image zh-lightbox-thumb& width=&1361& data-original=&https://pic4.zhimg.com/v2-7bda1c25c0bfc3d6f5f50b3_r.jpg&&&/figure&&p&最后,这个紫色的H1(s)变成了总的feedback的前馈通路的一部分,最后的公式计算可以简化成:&/p&&p&&img src=&http://www.zhihu.com/equation?tex=%5Cfrac%7BV_%7Bout%7D%7D%7BV_%7Bin%7D%7D%3D%5Cfrac%7BA%7D%7B1%2BAF%7D%3D%5Cfrac%7Bg_mH_1%28s%29R_S%7D%7B1%2Bg_mH_1%28s%29R_S%7D%3D%5Cfrac%7Bg_mR_S%7D%7B1%2Bg_mR_S%2Bg_%7Bds%7D%28R_S%2BR_D%29%7D& alt=&\frac{V_{out}}{V_{in}}=\frac{A}{1+AF}=\frac{g_mH_1(s)R_S}{1+g_mH_1(s)R_S}=\frac{g_mR_S}{1+g_mR_S+g_{ds}(R_S+R_D)}& eeimg=&1&&
(eq.5)&/p&&p&对比一下(eq.3)和(eq.}

我要回帖

更多关于 仿真电路模拟器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信