热度 20| |||
一、参考
1.噪声仿真 https://zhuanlan.zhihu.com/p/279111199
2.噪声仿真 https://zhuanlan.zhihu.com/p/302611133
3. PSS+PNOISE的文章:Noise-aware simulation-based sizing and optimization of clockedcomparators
二、PSS+Pnoise测输入噪声电压
这种仿真相比于transnoise的好处是可以看到管子对噪声的贡献程度。
大致的思路是这样的:
加一个实际工作的时钟频率;
在输入端加一个DC的差;
采用PSS,PAC, Pnoise的仿真;Pnoise计算出integrated output noise(用V^2/Hz作积分然后sqrt做开方);PAC计算出comparator的gain;
第四步得到的noise除以第五步得到的gain,就是input referred noise。
仿真电路:设置vdiff=100uV,vidff的值要保证输出有结果而不会出现亚稳态,不带SRlatch,时钟频率为fCK=500Mhz
三、具体步骤:
1.设置PSS:
选择基频为CK时钟源,在“output harmonics”中,填入谐波个数。所谓谐波,是相对于基频而言的。谐波个数越多,仿真结果越精确,速度越慢。一般取10~15就足够了。
2.设置pnoise:
截止频率为那奎斯特频率,即时钟频率的一半,可以扫更多,不过后续积分噪声的区间也是1~fCK/2;Sidebends设置为 Method=fullspectrum。根据cadence manual,这个方法对于计算高阶harmonics folding back的noise精度要更好一些;Noise type设置为sampled(jitter)。这种方法会计算pss过程中某一时刻的采样噪声。这个时刻由下面设置的event type决定;Event type=edge crossing, Trigger=voltage, Output Nodes=/outp and /outn(这两个是comparator的输出node,注意这个必须是cross-coupled transistor的输出,要分清在vdiff作用下哪端会变正和变负,不要搞反了),Edge number=1, Threshold value=0.05(当output nodes电压差为50mV时对输出节点进行采样计算noise),Mesurement=voltage ,output nodes和上面一样都是/outp和/outn;最后Event设置完成后记得点一下Add,否则不会生效。
3.根据仿真结果计算输出噪声电压
先画出输出噪声电压谱密度
低频以1/f噪声为主,噪声高,高频以热噪为主,与频率不相关。
为了计算输出噪声电压,需要将其先平方后在1~fCK/2积分得到输出噪声功率再开方。
得到输出噪声电压为201.2mV。
4.计算比较器的gain和输入噪声电压
4.1 计算gain的方式一和对应的输入噪声电压
现在我们需要将这个在comparator输出采样得到的噪声除以一个gain得到input-referred noies。“Keeping Things Quiet: A New Methodology for Dynamic Comparator Noise Analysis”文中提出的计算gain的方法为直接用50mV除以100uV得到的Gain=500。前者为进行Pnoise中设置的comparator的输出电压之差,后者为我们之前在comparator输入端所加的offset。
下面我们解释一下这种计算方法的内在逻辑。以下图电路为例,当Comparator clk从低变为高时,Comparator开始比较。当开始regeneration时正反馈开始启动,VX和VY开始分离,在X和Y点电压差为50mV时,我们可以认为regeneration还未产生很强的非线性,所以我们这时可以用大信号gain来近似小信号gain。最后谈一下为什么要把comparator input设置为100uV。第一,input不能设的太大。如果input设置太大,当comparator刚开始regeneration时就会通过input pair M1/M2产生很大的非线性。第二,input不能设置的太小,比如10uV。因为当我们计算gain时实际上要考虑comparator的input offset的。当然如果仅仅进行schematic仿真我们可以这么做,但是经过rc-extraction后comparator可能会有几个uV的offset。这样如果我们设置input为10uV,考虑offset实际上的input应该是15uV(假定rc-extraction产生5uV的input offset),而实际的gain就不是5000,而是50mV/15uV=3333(问题在于除非我们进行仿真,我们并不知道具体的input offset是多少)。
所以input-referred noies = 输出噪声电压201.2mV/gain500=0.40mV。和之前用transnoise测到的0.35mV差不多,就不继续增加output harmonics去重复测了。
下面看下管子对噪声的贡献:
设置查看积分噪声电压的贡献
查看噪声贡献:贡献最大的是输入对管沟道热噪声,其次是两个充电开关的1/f噪声。输入对管沟道热噪声可以通过增加w/L来减少但会对kicknose有增加,1/f噪声可以增加面积来降低,但影响比较器速度。
4.2 计算gain的方式二和对应的输入噪声电压
用pac计算gain,设置pac如下:扫描频率到fck/2。设置输入DC源的pac mag=1,那么pac下的输出电压为pac gain。
画出pac gain图像,依次点击两个输出端(尝试了一下,点的先后顺序无影响)
低频增益为213,前面测的输出噪声电压为201mV,那么输入噪声电压=0.94mV,和方法一计算出来接近。这种感觉更为客观。
补充说明的是输入差分电压大小会影响pac gain,但同时也会影响积分出来的输出噪声电压,两项抵消,等效到输入噪声时差别不大:现在以Vdiff=1mV重新上述仿真
此时pac gain=22.4
可以看到输出噪声整体降低了10倍,对应pac gain的下降。
积分出来的输出噪声电压为20.2mV,换算为输入噪声电压为0.9mV,和Vdiff=100uV时结果一致。
Riching: 这个我也不太清楚,当时只觉得量级差不多就没细想了