EETOP 创芯网论坛 (原名:电子顶级开发网)

标题: ADC中的动态比较器噪声仿真 [打印本页]

作者: gpffreedom    时间: 2020-11-16 09:09
标题: ADC中的动态比较器噪声仿真
本帖最后由 gpffreedom 于 2020-11-16 09:12 编辑

一篇关于ADC中动态比较器的噪声仿真方法的文章,转自微信公众号:IC宇宙成长记

https://mp.weixin.qq.com/s?__biz ... 2FNRIAt&wx_header=1


1.目标
(1)总结动态比较器噪声仿真方法;
(2)就噪声仿真,判断各仿真器仿真结果的可信度,找到仿真的合理方法。
2.仿真方法
根据spectre提供的workshop,动态比较器的噪声仿真有两种基本方式:
(1)trannoise仿真。如下图所示设置,设动态比较器的比较时钟周期为2ns,将仿真时长设为2us,能保证1000次比较结果。Noise Fmax设为100G。扫描比较器的输入差分值,当误码率达到16%,则输入差分值对应噪声分布的δ。
( , 下载次数: 124 )

(2)pss+pnoise仿真。如下图所示设置,将pss的BeatFrequency设为500M,与时钟频率相同,Number of harmonics设为100。需要重点说明的是pnoise的设置,这关系到该方法的核心思想。该仿真的方法基于如下思路:当设置一个输入差分值,比如vip-vin=0.8mV,则由于比较器的正反馈,输出会最终稳定在一对高低电平。实际上,噪声所影响的是比较器的稳态建立过程,而稳态建立后的噪声则不会对结果有影响。因此,仿真大信号周期内的平均噪声并不准确,而应该是上述建立过程中的噪声。因此,在Noise Type对应的选项中选择jitter。通过在Threshold Value设置电压值,比如48mV,Crossing Direction设置上升沿或下降沿,则仿真会在差分输出电压为48mV对应的时刻点计算噪声。此时对应的输入输出增益为48mV/0.8mV=60,将仿真得到的噪声电压除去增益,即得到对应的输入噪声。
( , 下载次数: 129 )

按照上述思路,使用hspice进行网表仿真也有对应的两种方式,对应的仿真方法如下:
(1)trannoise仿真
.tran 0.1n 2u sweep dif 0.35m 0.55m 0.05m
.trannoise v(outp,outm) fmax=100G
.PROBE trannoise onoise
.PROBE tran v(outp,outn)
(2)ptdnoise仿真
.SN tones=5e8 nharms=100 trinit=2n
.MEASURESN thre_time when v(latchp,latchn)=48m rise=1
.PTDNOISEv(latchp,latchn) TIME=thre_time dec 100 1 5e8
+listfreq=(all)
+listcount=3
+listsources=ON
.PROBE  PTDNOISE ONOISE
.PROBESN  v(latchp,latchn)
.MEASUREPTDNOISE strobejit STROBEJITTER onoise FROM = 1 TO =5e8
下面便根据这两种仿真方式,根据仿真工具的仿真结果,判断仿真工具的准确度,并确定最终的仿真方式
3.仿真结果对比
spectre工具:
首先是spectre工具的trannoise仿真结果:
( , 下载次数: 132 )

统计出各输入差分值对应的误码率如下:
输入差分值
0.35m
0.4m
0.45m
0.5m
0.55m
误码率
22.8%
19.9%
16.7%
13.2%
10.6%
因此输入噪声约为0.45mV。
然后是spectre工具的pnoise仿真结果,将仿真的阈值分别设为48mV和240mV,比较得到的输入噪声。
( , 下载次数: 139 )


阈值
48m
240m
Unit
输出噪声
36.16
153.4
mV
输入噪声
0.60
0.51
可见,pnoise仿真和trannoise仿真结果接近,且输出噪声随输入差分值的变化比例接近,因此较为合理。
hspice工具:
首先是hspice工具的trannoise仿真结果:
( , 下载次数: 122 )

输入差分值
0.35m
0.4m
0.45m
0.5m
0.55m
误码率
19.5%
17.2%
14.1%
11.9%
9.9%
因此输入噪声在0.4mV~0.45mV间。与spectre的仿真结果接近。
然后是hspice工具的ptdnoise仿真结果,将仿真的阈值分别设为48mV和240mV,比较得到的输入噪声。
( , 下载次数: 120 )

阈值
48m
240m
Unit
输出噪声
70.93
88.58
mV
输入噪声
1.18
0.295
可见,ptdnoise仿真和trannoise仿真结果有所差距,且输出噪声随输入差分值的变化比例也不一致,因此ptdnoise仿真结果可信度低。
4.结论
就动态比较器的输入噪声而言,pss+pnoise仿真,spectre的仿真结果合理,hspice的仿真结果不合理;trannoise仿真,spectre的仿真结果比hspice的更接近pnoise的仿真结果,因此更准确。

参考
1.HSPICE Reference Manual:Commands  and Control Options.pdf
2.HSPICE User Guide RF Analysis.pdf
3.Art Schaldenbrand . A New Methodology forDynamic Comparator Noise
4.Cadence: ADC Verification Workshop
5.宇文青霜. Comparator 动态噪声的仿真


作者: xuwenwei    时间: 2020-11-16 13:13
不错,学习一下
作者: VAEEE    时间: 2020-12-18 17:27
不错不错
作者: zhoujian.ww    时间: 2020-12-21 19:06
不错不错
作者: GenesisIC    时间: 2020-12-29 14:54
很有帮助
作者: FAR0001    时间: 2020-12-29 15:29
tran noise是最无脑,最花时间,但最准确的噪声仿真方式。
作者: wyazmg    时间: 2021-1-27 15:18
想请教一下,比较器结果出来的图如何处理得到误码率,萌新请教
作者: wyazmg    时间: 2021-1-28 16:22
请问一下这个tran noise仿真的误码率是怎么算的?
作者: gpffreedom    时间: 2021-1-28 18:29


   
wyazmg 发表于 2021-1-28 16:22
请问一下这个tran noise仿真的误码率是怎么算的?


可以根据比较器的时钟速率采样比较结果,然后用matlab或者excel统计误码的数量。
作者: savvy_jiang    时间: 2021-2-8 14:30
Thanks for your sharing
作者: HappenLau    时间: 2021-2-18 22:04


   
wyazmg 发表于 2021-1-27 15:18
想请教一下,比较器结果出来的图如何处理得到误码率,萌新请教


我觉得应该可以用波形窗口里面的Measurement-->Transient Measurement,通过统计波形边沿个数来统计误码率 ( , 下载次数: 81 )

作者: savvy_jiang    时间: 2021-3-2 17:03
有个问题请教下:在transient noise是Fmax设置很大,为什么在pnoise时,sweep frequency范围就只到时钟频率?
作者: 2729875798    时间: 2021-3-16 11:05
大家有仿真对比过吗,为啥比较器噪声仿真明明很大的改善,而代入ADC里,其SNR反而降低了呢


作者: gpffreedom    时间: 2021-3-19 14:54


   
savvy_jiang 发表于 2021-3-2 17:03
有个问题请教下:在transient noise是Fmax设置很大,为什么在pnoise时,sweep frequency范围就只到时钟频率 ...


pnoise仿真结果考虑了噪声折叠的影响,因此sweep frequency的范围选取对仿真结果影响应该不大。
( , 下载次数: 91 )

作者: savvy_jiang    时间: 2021-3-20 21:01


   
gpffreedom 发表于 2021-3-19 14:54
pnoise仿真结果考虑了噪声折叠的影响,因此sweep frequency的范围选取对仿真结果影响应该不大。

...


感谢感谢,明白了。。

作者: aftuehr1r    时间: 2021-3-21 16:55
Thanks for your sharing
作者: 9874748x    时间: 2021-5-24 17:08


   
gpffreedom 发表于 2021-1-28 18:29
可以根据比较器的时钟速率采样比较结果,然后用matlab或者excel统计误码的数量。 ...


请问怎么根据误码率看噪声啊,看起来也不是取误码率表格的中位数?

作者: gpffreedom    时间: 2021-5-28 16:20


   
sqxu1103 发表于 2021-5-24 17:08
请问怎么根据误码率看噪声啊,看起来也不是取误码率表格的中位数?


当误码率达到16%,则输入差分值对应噪声分布的δ

作者: 9874748x    时间: 2021-5-28 16:48


   
gpffreedom 发表于 2021-5-28 16:20
当误码率达到16%,则输入差分值对应噪声分布的δ


那达到16%对应 是有什么理论依据吗?
作者: gpffreedom    时间: 2021-5-31 12:22


   
sqxu1103 发表于 2021-5-28 16:48
那达到16%对应 是有什么理论依据吗?


可参考正态分布曲线
作者: RODEN_IC    时间: 2021-7-25 14:33
请问比较器的噪声能量如何仿真?
作者: 453163787    时间: 2021-8-20 15:24
为什么误码率要达到16%
作者: 下山途中    时间: 2021-8-21 08:29
好的
作者: 453163787    时间: 2021-8-21 11:29


   
下山途中 发表于 2021-8-20 14:29
好的


为什么误码率达到16%

作者: 453163787    时间: 2021-8-21 11:30


   
HappenLau 发表于 2021-2-18 04:04
我觉得应该可以用波形窗口里面的Measurement-->Transient Measurement,通过统计波形边沿个数来统计误码 ...


为什么误码率达要到16%

作者: jiafu    时间: 2021-11-27 17:05
thanks
作者: SEU_Bear    时间: 2021-11-30 20:17
用PSS+Pnoise仿真时,Pnoise中设置的threshold值是怎么取的?有什么根据吗?
作者: gpffreedom    时间: 2021-12-14 11:26


   
SEU_Bear 发表于 2021-11-30 20:17
用PSS+Pnoise仿真时,Pnoise中设置的threshold值是怎么取的?有什么根据吗?


只要在比较建立过程中随意取,你会发现计算出的输出噪声和增益基本成正比。我觉得阈值最好取的稍小一些。对输入噪声计算结果不影响。

作者: 490590125    时间: 2021-12-15 09:03


   
HappenLau 发表于 2021-2-18 22:04
我觉得应该可以用波形窗口里面的Measurement-->Transient Measurement,通过统计波形边沿个数来统计误码 ...


请教下这个具体要怎么操作啊 ?
作者: dashezhixue    时间: 2021-12-31 15:07
请问为什么pss仿真的noise frequency的上限只有比较器工作的频率的一半,我看cadence那个ppt是那么写的,不应该要高于比较器工作频率么
作者: jimgrindan    时间: 2022-1-12 16:06
想请教一下,PSS加PNOISE的方式,输出噪声是看预放大级输出还是锁存级的输出还是锁存后加的SR_Latch的输出呀
作者: heng123    时间: 2022-1-12 16:20
学习下
作者: Aiden_yq    时间: 2022-1-13 19:39


   
gpffreedom 发表于 2021-1-28 18:29
可以根据比较器的时钟速率采样比较结果,然后用matlab或者excel统计误码的数量。 ...


看过一个博主直接用calculator表达出来了,但不知道他用的是什么函数

作者: CmosLgh    时间: 2022-1-13 20:23
学习下
作者: 战地旗手    时间: 2022-1-28 16:27


   
Aiden_yq 发表于 2022-1-13 19:39
看过一个博主直接用calculator表达出来了,但不知道他用的是什么函数


可以用这表达式统计下降沿个数,xmax(cross(v("/VOUTP" ?result"tran") 0.6 0 "falling" t "cycle" nil) 1)

作者: gpffreedom    时间: 2022-2-18 10:26


   
jimgrindan 发表于 2022-1-12 16:06
想请教一下,PSS加PNOISE的方式,输出噪声是看预放大级输出还是锁存级的输出还是锁存后加的SR_Latch的输出 ...


如果噪声的主要贡献是预放大,应该看预放大就够了。可以仿真对比下,我觉得无论看哪个输出,结果应该很接近。

作者: 晬婴    时间: 2022-3-25 11:28


   
490590125 发表于 2021-12-15 09:03
请教下这个具体要怎么操作啊 ?


就是在弹出的波形窗口上面有一个measure功能,点击里面的transient measurement
( , 下载次数: 54 )
然后右面就会弹出这样一个竖栏
( , 下载次数: 56 )
然后点击一个输出量,比如点击CLK,他就会统计CLK的沿数
( , 下载次数: 54 )
点击setting可以对沿进行定义,比如定义沿的低电平和高电平,rising edges和falling edges可以分别统计上升沿和下降沿
( , 下载次数: 60 )

作者: xavi17    时间: 2022-3-25 18:33
我觉得可以用cross 函数来统计,选multiple,横坐标选cycle,下降沿选择-0.5vdd,上升沿选择+0.5vdd,各自看最后的cycle数就可以了

作者: bee31441    时间: 2022-3-25 18:52
谢谢分享
作者: zjouu    时间: 2022-4-2 09:21
请问一下,这个pnoise最后输出的噪声是选哪个进行积分呢
作者: April1999    时间: 2022-4-23 14:55
这个比较的误码率的结果该如何统计呢?要用到什么函数呢?
作者: 模拟cmos    时间: 2022-5-17 19:58
mark一下  以后用

作者: syf6520985    时间: 2022-5-25 11:09
( , 下载次数: 70 ) 请问用pnoise仿真为什么会报错,说jitter这个仿真找不到cross的项目,求楼主和大佬们解答
作者: LDDD1997    时间: 2022-5-25 11:18


   
syf6520985 发表于 2022-5-25 11:09
请问用pnoise仿真为什么会报错,说jitter这个仿真找不到cross的项目,求楼主和大佬们解答 ...


输入得一个斜坡  一个直流吧

作者: syf6520985    时间: 2022-5-25 14:45


   
LDDD1997 发表于 2022-5-25 11:18
输入得一个斜坡  一个直流吧


无所谓用vpwl还是vdc源,都可以仿真且结果相差极小。   关键是pnoise的差分输出我没选对,我选择了锁存之后的两个输出,改为灵敏放大器直接的输出就可以正常仿真了。


作者: cc!123    时间: 2022-6-16 17:40
大佬牛批
作者: Can_do_go    时间: 2022-8-16 18:20
:):):):):)
作者: yal    时间: 2022-8-21 22:05
第一种是误码率的角度去分析噪声,由果推因。我感觉数据量够的情况下是挺精确的。
第二种是估算了放大器的增益,然后仿真输出点的噪声,再转换成输入噪声,感觉有误差,但也是很好的方法。
作者: jonkey_xu    时间: 2022-9-6 22:28
文中比较器的比较时钟周期是指什么???
作者: LSLS1997    时间: 2022-9-9 16:35
观摩学习
作者: 模拟小牛    时间: 2022-10-25 21:51
请问beat frequency是啥
作者: gpffreedom    时间: 2022-11-7 10:03


   
模拟小牛 发表于 2022-10-25 21:51
请问beat frequency是啥


pss仿真的基波,可以理解你的信号基本频率

作者: 小泉来袭IC    时间: 2022-11-14 19:54
挺好!
作者: saw2020    时间: 2022-12-7 14:51
求问16%是什么意思啊?正态分布中好像也没有看到这个数值,求大神解答
作者: 七月的思念    时间: 2022-12-8 10:59
真不错,顶贴
作者: 七月的思念    时间: 2022-12-8 11:01
但是有一个问题想请教一下,tran noise的Fmax设置多大的有什么讲究。我的比较器时钟1G时可以统计误码率,但是比较器时钟5G的时候就没有误码了,仿真已经仿不出来了

作者: Kamon    时间: 2023-1-10 14:48
学习
作者: q8097    时间: 2023-1-17 18:27


   
xavi17 发表于 2022-3-25 18:33
我觉得可以用cross 函数来统计,选multiple,横坐标选cycle,下降沿选择-0.5vdd,上升沿选择+0.5vdd,各自 ...


兄弟,这个方法可以的

作者: muaook    时间: 2023-1-30 09:57
可以用平均值统计误码率吧
作者: F548362    时间: 2023-2-7 11:22
请教一下,为什么误码率16%时的输入电压就是噪声的1sigma?这个16%的含义是什么?求大佬不吝赐教,感谢

作者: gpffreedom    时间: 2023-2-10 17:33


   
F548362 发表于 2023-2-7 11:22
请教一下,为什么误码率16%时的输入电压就是噪声的1sigma?这个16%的含义是什么?求大佬不吝赐教,感谢
...


根据正态分布图,+-sigma对应的概率是0.68,则落在负无穷到+sigma的概率为0.5+0.68/2=0.84,误码的概率就是0.16.

作者: Rabbit_CHAN    时间: 2023-2-12 17:35
很不错,学习了,谢谢贴主
作者: Candydarte    时间: 2023-3-18 04:40
fggfhghghghghg ghgh
作者: zixin1hao    时间: 2023-3-18 19:32
Thanks for sharing
作者: electroniczz1    时间: 2023-3-23 14:04

Thanks for sharing
作者: windyfall    时间: 2023-4-4 10:23
学习了,感谢
作者: Josez    时间: 2023-4-24 13:33
int(cross(cross(VT("/VOUTP") 0.6 0 "rising" t "cycle") 0.03 1 "rising" nil nil))我用的是傻办法,两个Cross然后取整。0.03是比较时间,就是tran的时间要比它长一点不然可能取不到。Voutp与VoutN都做一个,至少会有一个出个数。
作者: ll李    时间: 2023-5-8 17:59
为什么noise fmax 要设置为100G

作者: 滴水藏海    时间: 2023-6-5 17:35
tran noise 的结果得到了一个σ的输入噪声, 是一个统计量, 那么pss pnoise得出的输入噪声也是对应一个σ的统计量吗?如何理解呢
作者: chasefeng    时间: 2023-7-6 15:15
请问tran noise里 为什么是加100G的噪声,可以加小一点吗
作者: gaojy    时间: 2023-7-10 14:52
误码率用计算边沿的办法会出现连续两次比较错误,只计算一个沿的情况。可以先采样,再计算平均值,根据平均值推算出误码率
作者: Heartbeats    时间: 2023-7-13 15:53
学习

作者: dc33912345    时间: 2023-8-1 10:11


   
syf6520985 发表于 2022-5-25 11:09
请问用pnoise仿真为什么会报错,说jitter这个仿真找不到cross的项目,求楼主和大佬们解答 ...


请问这个问题您解决了吗?

作者: wjzhang    时间: 2023-8-14 16:44
学习
作者: auch0311    时间: 2023-8-25 14:35
谢谢
作者: yangcqupt    时间: 2023-9-4 16:45
谢谢分享
作者: 菜菜CC    时间: 2023-9-7 09:42


   
七月的思念 发表于 2022-12-8 11:01
但是有一个问题想请教一下,tran noise的Fmax设置多大的有什么讲究。我的比较器时钟1G时可以统计误码率,但 ...


同问,想知道这个transnoise的Fmax要怎么设置?

作者: 菜菜CC    时间: 2023-9-7 09:50


   
chasefeng 发表于 2023-7-6 15:15
请问tran noise里 为什么是加100G的噪声,可以加小一点吗


请问知道原因了嘛?

作者: chasefeng    时间: 2023-9-7 16:13


   
菜菜CC 发表于 2023-9-7 09:50
请问知道原因了嘛?


说是给的越大越准确

作者: 菜菜CC    时间: 2023-9-7 17:16


   
chasefeng 发表于 2023-9-7 16:13
说是给的越大越准确


但是这个要给得多大才合适?

作者: chasefeng    时间: 2023-9-9 18:25


   
菜菜CC 发表于 2023-9-7 17:16
但是这个要给得多大才合适?


不知道咧,给100G吧 100G感觉很大了

作者: Harold-HAN    时间: 2023-10-9 15:50
对于trannoise得到的结果,有什么说法吗?我的意思是这个噪声值怎么评判才算这个比较器的性能达标?小于1LSB还是其他说法?
作者: syq506912088    时间: 2023-10-11 11:24
mark


作者: pri_du    时间: 2023-10-15 19:37
请问输出噪声该积分到什么频率?
作者: zt_ic222    时间: 2023-10-16 14:59
请问楼主动态比较器的工作频率和pss的beat频率是怎么设置的?我不同的beat frequency得到的noise差别很大
作者: FZUYJY    时间: 2023-10-16 17:06
厉害厉害1111
作者: Electron_tube    时间: 2023-10-26 11:04
nice!
作者: kayjep    时间: 2023-10-27 20:09
kankan
作者: jcxwzy    时间: 2023-11-5 23:00
mark一下

作者: cbdubvld    时间: 2023-11-9 14:04
想请问一下中间提到的阈值电压48mV和240mV是什么意思吗
作者: Electron_tube    时间: 2023-11-9 14:25
nice!
作者: Aflyer612    时间: 2023-12-10 16:01
mark mark

作者: spr.x    时间: 2023-12-11 11:15
mark一下 好帖绑定

作者: liuhuigino    时间: 2023-12-12 19:59
多谢分享
作者: zh593518457    时间: 2023-12-12 20:37

Thanks for your sharing
作者: 模拟小牛    时间: 2023-12-20 20:48
这比较器本身有个最小精度,并且存在动态失调,这样仿真出出来的是对的吗
作者: syq506912088    时间: 2023-12-23 10:50
学习一下

作者: spr.x    时间: 2024-1-2 15:51
学习
作者: syf6520985    时间: 2024-1-12 11:04


   
dc33912345 发表于 2023-8-1 10:11
请问这个问题您解决了吗?


没有,你有思路吗
作者: Franklin_tf    时间: 2024-2-27 15:08
动态比较器噪声仿真 mark




欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/) Powered by Discuz! X3.5