119543213的个人空间 https://blog.eetop.cn/1314522 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

SAR ADC Q&A

热度 10已有 594 次阅读| 2023-6-26 16:42 |个人分类:To do list|系统分类:芯片设计| SAR, ADC


1. clk_en 就是SOC ,更改相关verilog code

2. 2个analog input channel 变成6 个,包含t_sensor_dc 




1. Missing code 解决思路

https://bbs.eetop.cn/thread-883967-1-1.html

Q:MSB电容mismatch导致missing code如何解决?

A:1) 如果前仿无MC的话,估摸着和单调开关的架构有关系了,就要看架构了。

2) 前仿,无MC,初步判断是DAC建立时间的原因。需要查看采样时钟上升下降时间给多少???



2.DAC阵列中对地的不参加动作的电容对逐次判断电压有什么影响?

https://bbs.eetop.cn/thread-904665-1-1.html

Q:电容阵列采用差分的vcm在vref到gnd之间切换,发现一个奇怪的问题,在加上不参与开关切换的电容后,逐次逼近的过程不是vref/2^i这个过程,但是去掉之后逐次逼近过程反而变成了vref/2^i这个数,例如下面的VREF = 900m,加上最后那个单位电容后,第一次次逼近不是450mv,第二次也不是225mv,貌似呈现一个比例,但是去掉这个电容后,反而变成了450--225--125比较标准的数


A:1) 因为DAC阵列中对地的不参加动作的电容相当于一个attenuation capacitor. 它会scale每次动作的电压值。因为每次动作的deltaV=Cswitch/Ctot*Vref. 那个对地的电容会增加Ctot的值,从而改变每次动作的deltaV

不过这并不要紧,因为这只会造成一个gain error,并不会影响ADC的线性度。

2) 这个对地的电容不一定是自己加上去的,很多时候是版图中存在的对地的寄生电容。gain和offset error可以大致通过输入输出的特性曲线做个线性的拟合来算,不过也可能有更好的方法。offset error一般是比较器带来的,不是DAC造成的。




3.一个12位,1M转换速率的SAR ADC,用同步和异步clk的区别

https://bbs.eetop.cn/thread-840168-1-1.html

Q:1)1M的速率不高,采用同步时序也可以实现,是否可以简单评估一下,异步时序除了不需要高频时钟外,还有没有其他优势(因为应用中,本身会集成内部时钟,如16M);

2)关于延时单元的问题,异步控制需要ADC内部生成比较器的控制时钟。如果不加延时单元,生成的比较器的控制时钟周期Tclk很小。假设DAC的建立时间以同步的16M为参考,即31.25ns给DAC建立,此时异步的延时单元大约要延时30ns,才能满足建立的要求?不知这样理解对不对?



A:1)我认为低速的二进制的异步SAR和同步SAR比起来真的就只是没有高频时钟而已,不过说实话,我觉得这点其实算是很有意思的一个优势,说不定可以利用这个来实现一些很好玩的功能;

2)我认为有点本末倒置了,建立时间约束了时钟频率,而不是倒过来。如果普通的CDAC结构的SAR的话,每次拨开关以后建立的RC常数确定了需要的建立时间,我觉得可以比较精细的设计每次的延迟时间,使之与CDAC建立的RC常数匹配,从而抠点速度回来。

BTW:我个人觉得异步SAR最大的优势还是在于高速,冗余的SAR,因为冗余对每次的建立误差有足够的容忍能力。

PS:话说回来,单从项目来看的话,我觉得你这个项目还是玩同步更合适。




4.

https://bbs.eetop.cn/thread-627161-1-1.html

Q:CDAC LSB是8-bit,MSB是4-bit,当MSB的DNL不好,怎么分析?

A:DNL最大误差发生在MSB中间值跳变。误差的标准偏差大约是: sqrt(15)/16*单位电容的标准偏差*Vref。

12bit的DNL, 要求 < 1/2^13*Vref。考虑Yield,那要 3*sqrt(15)/16*单位电容标准偏差 < 1/2^13,

也就是你的单位电容标准偏差要 < 1/(3*sqrt(15)*2^9). 大约是0.017%,你看看你的工艺要多大的电容才能做到。



5.理论解释正反馈的动态比较器速度快的原因

https://blog.csdn.net/HZY2020/article/details/125308754





6.如何仿真动态比较器的噪声

A1: ISCAS会议CADENCE公司的William Evans视频资料 (重要)

https://bbs.eetop.cn/thread-666416-1-1.html


A2:一篇关于ADC中动态比较器的噪声仿真方法的文章(tran noise 和 pss+pnoise的仿真步骤)

https://bbs.eetop.cn/thread-887634-1-1.html

========

tran noise仿真的误码率算法:可以根据比较器的时钟速率采样比较结果,然后用matlab或者excel统计误码的数量。

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

2)我觉得应该可以用波形窗口里面的Measurement-->Transient Measurement,通过统计波形边沿个数来统计误码率(网页中Page 2 overshoot 参数,具体步骤在#37 in page 4)。

当误码率达到16%,则输入差分值对应噪声分布(正态分布)的δ。解释:根据正态分布图,+-sigma对应的概率是0.68,则落在负无穷到+sigma的概率为0.5+0.68/2=0.84,误码的概率就是0.16.

3)我觉得可以用cross 函数来统计,选multiple,横坐标选cycle,下降沿选择-0.5vdd,上升沿选择+0.5vdd,各自看最后的cycle数就可以了

4)int(cross(cross(VT("/VOUTP") 0.6 0 "rising" t "cycle") 0.03 1 "rising" nil nil))我用的是傻办法,两个Cross然后取整。0.03是比较时间,就是tran的时间要比它长一点不然可能取不到。Voutp与VoutN都做一个,至少会有一个出个数。

=======

另外,pnoise仿真结果考虑了噪声折叠的影响,因此sweep frequency的范围选取对仿真结果影响应该不大。(网页中Page 2 原文)

用PSS+Pnoise仿真时,Pnoise中设置的threshold值是怎么取:只要在比较建立过程中随意取,你会发现计算出的输出噪声和增益基本成正比。我觉得阈值最好取的稍小一些。对输入噪声计算结果不影响。

 为什么pnoise的maximum sideband 要设置为100?

=======

summary1:

第一种tran noise是误码率的角度去分析噪声,由果推因。我感觉数据量够的情况下是挺精确的。

第二种 pss+pnoise是估算了放大器的增益,然后仿真输出点的噪声,再转换成输入噪声,感觉有误差,但也是很好的方法。


评价:tran noise是最无脑,最花时间,但最准确的噪声仿真方式。

dynamic comparator noise and metastability simulation techniques

用瞬态仿真开噪声的方法也能用,但是要注意设置好testbench和噪声带宽,设值得太低,仿真结果会偏低,设值得太高,仿真时间会非常慢。

为了提高设计效率,还是推荐用pss+pnoise的方法,transient noise仿真一次时间太长,用来交叉验证pss的仿真结果还是可以的,在设计阶段就用transient noise就是给自己自找麻烦


======

summary2:

https://bbs.eetop.cn/thread-885162-1-1.html   (第一二页的讨论非常好,之后的页还没看)

这种比较器电路小,tran noise跑起来不慢。

cadence官方关于动态比较器噪声的仿真的总结是:tran noise和pnoise都可以用。前者的优点是可以用于包含ADC噪声分析的仿真之中。pnoise的好处是对噪声源的分析更好,缺点是不能用在adc仿真。也就是说如果这个比较器是用在adc里面,那么仿整个adc时还是要切回tran noise,这也是我一直推荐tran noise的原因。


从设置来讲tran noise的设置比pnoise简单,一个tran noise设置例子如下

trantranstart=0 stop=2u noisefmax=500G noisefmin=1 noiseseed=1+(d+5m)*10000

设置上需要注意的就是系统最大的有效噪声带宽, 此外仿真时间要足够长。

相对应的pss/pnoise的设置是


psspssperiod=0.5n harms=100pnoise(om op) pnoise start=1 stop=1G noisetype=pmjitter\crossingdirection=rise thresholdvalue=(d*ratio) \pnoisemethod=fullspectrum

对没玩过开关电容电路的新手而言明显是tran noise比较容易上手。

最后一点就是动态比较器的分辨率比较低,噪声仿真的准确性不是那么重要,不带校正的情况下,tran noise足够用了。


----------------

就算是电路小,transient noise跑起来也比pnoise慢

也不能认为比较器电路简单,transient noise就跑起来不慢。后仿真的时候电路规模还是很大的,这个时候pnoise可能等1分钟就能出结果,transient noise半天也出不来

我并没有抵制transient noise的意思,两种仿真方法都能给出正确的结果,但是为了提高设计效率,单独仿真比较器时,还是用pnoise更好

整个ADC仿真那是另外一回事,ADC总体的仿真和比较器单独的仿真并不冲突,两个仿真也没有必要一定要用相同的仿真方法。我主要想表达的就是要提高设计效率,哪种方法效率高,就用哪种

你从设置仿真的角度考虑,来证明transient noise比pnoise优越,我觉得理由不成立。首先设置一个仿真并不是什么难事,我上面提到的那个视频里1:12:00的地方就专门介绍了要怎么设置仿真,只要按照视频里讲解的方法设置,就没什么问题。其次真要说这两种仿真方法设置上的难度区别,那也是transient noise难度比pnoise高。对于新手来说,摸索明白噪声带宽是多少,要比玩明白开关电容的难度高多了。新手如果不懂得怎样粗略地估计比较器的噪声带宽,就只能盲目地试不同的值,一直试到噪声不再随着带宽的增加而明显增加为止,这花费的时间也不少。

动态比较器的分辨率低也是一种错误看法,我不知道你这里说的分辨率具体指的是噪声还是比较器的速度,从噪声来说,动态比较器的噪声也是能够做到几百uV的程度的(A 12-bit 104 MS/s SAR ADC in 28 nm CMOS for Digitally-Assisted Wireless Transmitters),从速度来说,纯SAR的ADC也能工作到几百兆的速度(A 10 bit 320 MS/s Low-Cost SAR ADC for IEEE 802.11ac Applications in 20 nm CMOS)。噪声仿真的准确性也不是无关紧要,比如在上面第一个例子里比较器噪声占到了总体噪声的33%。(不要说这两篇文章是学术界拿来骗人的东西,我专门找的两篇文章都是联发科的)

无论如何,对于设计比较器的人来说,上面那个视频还是值得一看的,尤其是视频当中提到的仿真比较器offset和迟滞的仿真方法,非常实用


--------

很有意思的探讨。


首先我也没有说pnoise不行的,只说新手如果愿意很快的看到自己设计的比较器的噪声,我个人建议用tran noise,毕竟搞明白那些参数不是短时间的事情,天才除外。当然Cadence自己也说了两者皆可。其实两者仿真时间的差主要在于tran noise设置的仿真时间要比较长才比较准确。单独仿这么一个比较器加上每个管子的噪声源以后,电路的矩阵其实大不了多少。 另外精度来上看,在设计的开始阶段仿出来的噪声差那么百分十左右,我想并不是太要紧,因为设计裕量肯定比仿真误差要大。至于后仿,总归是不能用pnoise来跑整个adc,所以学会tran noise的设置也是没有坏处的。



关于动态比较器分辨率低这个说法我是单纯的指动态比较器本身,通常latch本身可以提供8比特的分辨率。楼主和刘纯成用的都是Elzakker的结构。这个结构的第一级是放大系数为5的预防大,两个结合起来用刚好就是10-bit的分辨率。至于你提到的MTK的JSSC里的做到12-bit的结构还用到了一些其他技巧来抑制offset和回踢噪声。如果你仔细看会发现作者主要在讨论如何降低回踢和失调,而不是降低比较器本身的噪声。其中在第三部分讲的是用预放大器来抑制回踢。第四段讲的是前台校正的时候用平均来消除比较器白噪声。第四段最后讲了怎降低offset。做了这些工作以后才有图20里比较器噪声占33%的结论。所以我认为我说的动态比较器本身的分辨率不高的说法没有问题。至于16bit以上的adc基本都是和比较器噪声做斗争了,这时候可以用平均来降低比较器噪声,典型的例子就是linear的LTC2380-24.



------------

大佬分析的确实好,那两篇我看了CCL的,确实做的不错,比较器这两天我用TRAN  NOISE 只设置了FMAX=100G,验证与理论差距不大。



-------

“我还是不明白你说的“动态比较器分辨率低这个说法我是单纯的指动态比较器本身”是什么意思,具体指什么指标,噪声、回踢还是失调?”

--我其实想强调的是失调,回踢和噪声把比较器的分辨率限制在10左右,如果要继续提高分辨率,单纯一个double tail比较器做不到。你给的MTK的那篇JSSC刚好可以佐证我的观点。




“不过后面“做了这些工作以后才有图20里比较器噪声占33%的结论”逻辑上不是很正确。比较器的热噪声,与回踢还有失调基本上是无关的,比较器的offset再大,也不会影响比较器热噪声的占比,这只会引起整个ADC的offset。”

--这篇JSSC单独把噪声提出来讲是基于他们已经搞定offset和kickback的前提下才有意义的。设计的时候也是失调消除和回踢中和优先的,最后才考虑噪声。之所以这些文章这么强调噪声无非是从低压低功耗的角度来找的创新点。



“新手如果愿意很快的看到自己设计的比较器的噪声,那也应该用pnoise, 不是天才也能短时间内搞明白那些参数,我上面说了,视频1:12:00手把手教你怎么设置,非常简单”


--我可能资质一般,以前我做Sigma Delta时学pnoise仿真花了好多时间去看文档和论文,搞明白原理和每个参数的设置。我个人总觉得如果不明白原理就去跑仿真比较不保险。比如,pnoise对周期性电路里的噪声很准,但是这是有前提的。当电路对噪声大信号响应敏感时,pnoise就不那么准了。



还有,跑offset和kickback也都是要用tran仿真的,直接用tran noise来跑可以无缝切换,如果熟悉脚本,知道怎么处理数据,两个可以包在一起跑,省时省力何乐而不为?pnoise也是好工具。pnoise快主要还是对电路的周期工作点做了线性化,然后从频域来处理噪声。



最后楼主在10楼也说了用tran noise做出来的误差不大。所以我建议是不要因为有pnoise,而tran noise稍慢就放弃tran noise。


-----

上面我又举了另外两篇文章的例子,都是动态比较器做到12位。

我认为你说的“动态比较器本身的分辨率不高的说法”有问题,至少在12位的程度你的说法是不成立的。


我也觉得两种仿真方法都会最好,毕竟能交叉验证。但是具体要使用哪个还是要看设计效率,毕竟时间就是金钱



-----老尤皮:

没有例子了,我自己看过的论文里,大部分12位的ADC都是pipeline sar架构的,用动态比较器的纯SAR做到12位的只有上面三篇

你说的“做到10”是指什么,是12位的ADC的ENOB做到10吗?那这样的例子还很难找,我自己感觉,学术界为了FOM值好看,12位的ENOB往往做不到10。但是你要是不管FOM值,那做还是能做出来的

另外说一下,10楼说他用transient noise仿真出来结果基本吻合,但是噪声带宽开到了100G,这正好说明了我上面提到的问题,那就是新手很难对噪声带宽做出合理的估计。其实很有可能噪声带宽只开到20G或者50G就已经可以了,但是楼主还是开到了100G,这会浪费很长的仿真时间。



----quantus:

单独的动态比较器,不带offset trimming和回踢抑制,如果分辨率做到12ENOB,我想肯定是重大突破了。


你对tran noise的原理可能有点误解,tran noise仍然是在时域里跑的。tran noise和pnoise的区别类似电磁仿真里的CST和HFSS, 前者在时域里通过使用几种积分方法求系统的差分方程,后者是对电路进行线性化用工作点上小信号模型来求传输函数。fmax只是加入到模型里的小信号噪声源的频率上限。从时域产生信号的角度讲频率上限是1G和100G的信号产生并没有什么不同,无非就是个查表。所以,你说的fmax取100G会拖慢仿真时间是有问题的。


瞬态仿真的仿真时间是由仿真的时长,积分方法,数值容差等综合决定的。如我前面所讲的,如果牺牲掉一些精度,对单个比较器而言,tran noise的仿真速度不慢。pnoise的优点并非在仿真速度上,而是在于可以精确地确定每个器件对噪声的贡献。


当然,我所见有限,理解也可能有偏颇,如果有不对的地方可以指出来。



----老尤皮:

受教了,我确实对tran noise的原理可能有点误解,不过我跑transient noise的时候速度真的挺慢的。噪声带宽提高了以后,不会影响仿真过程中时间的步长吗?




----quantus:

最大步长是由1/Noise Fmax确定的。noise本身的产生只是个函数求值或者查表的过程,不会影响仿真速度,最大步长确定噪声源输出的更新速度。影响仿真速度的是步长的大小。步长变小,只要仿真收敛,结果的精度一般是提高的。在仿真时间很长的时候,限制最大步长反倒可以帮助收敛。

但是不能由于Noise Fmax的原因把步长弄得太小,那样仿出来的精确结果其实得不偿失,因为如果电路连10%的误差都容忍不了基本上是无法量产的。合理设置仿真,牺牲一点精度,加快仿真速度对12-bit以下的比较器应该是适用的。另外可以对一部分电路做tran noise,这样可以提高速度,比如double tail的比较器,可以只对第一级做tran noise仿真。

楼主刚也说了一种设置Noise Fmax的方法是根据时钟的上升时间。这么设置的原因是这样可以保证在时钟的上升沿可以观察到至少一个仿真结果。按这种方法假设上升时间是10ps,那么Fmax就是100G。但是这么设置的主要目的在于观察回踢,对噪声的仿真意义不大,因为时钟上升沿第一级还在对输入进行预防大。

以上是我粗浅的看法,如果有不对请不吝赐教。





6.5请问PSS+PNOISE的方法如何得到比较器输入端参考噪声呢?

A:PSS+PNOISE+PAC

PAC和AC仿真一样,需要在信号源设置PAC为1


7.上面谈到MTK的文章

A 12-bit 104 MS/s SAR ADC in 28 nm CMOS for Digitally-Assisted Wireless Transmitters

http://sci-hub.ee/10.1109/JSSC.2016.2582861



A 10-bit 320-MS/s low-cost SAR ADC for IEEE 802.11ac applications in 20-nm CMOS

http://sci-hub.ee/10.1109/ASSCC.2014.7008864



8.详细的dynamic compactor noise analysis以及减小kick-back的方法


Kickback Noise Reduction Techniques for CMOS Lacthed Com

https://bbs.eetop.cn/forum.php?mod=attachment&aid=NTUzOTkyfDEzNTQ2YWJmfDE2ODg5NTYyNzB8MTMxNDUyMnw0MjMxOTY%3D&ck=2cf392b0



Noise Analysis of Regenerative Comparators for.pdf

https://bbs.eetop.cn/forum.php?mod=attachment&aid=NTUzOTkzfDk4MDYwNTQwfDE2ODg5NTYyNzJ8MTMxNDUyMnw0MjMxOTY%3D&ck=0ba3c194


dynamic comparator offset计算的文章Analyses of Static and Dynamic Random Offset Voltages in Dynamic Comparators


https://bbs.eetop.cn/forum.php?mod=attachment&aid=NTU0MDEzfDNhMWNlNzk2fDE2ODg5NTYyODR8MTMxNDUyMnw0MjMxOTY%3D&ck=f0966e9d




9.比较器的Vos和仿真方法


https://bbs.eetop.cn/thread-669768-1-1.html

未经处理的失调电压基本都在mV量级,用chopping 或auto-zero,可以把Vos 减小到uV量级

https://bbs.eetop.cn/thread-669769-1-1.html




10. 2Ids/gm = vds 仿真 (gm/id)

a. 本征增益查找表选L和Vds/(2Id/gm)

https://bbs.eetop.cn/forum.php?mod=attachment&aid=NzczNDk2fGU5N2Y3Y2ZmfDE2ODkwNDMxNDd8MTMxNDUyMnw4ODQzMjM%3D&ck=ff7aeaaa


2Id/gm查找表选W

https://bbs.eetop.cn/forum.php?mod=attachment&aid=ODIyNjEwfDgwZGM3MzgyfDE2ODkwNDM3NjZ8MTMxNDUyMnw4ODQzMjM%3D&ck=73129d42



11. pre-amp 的增益

1st stage: Av= gm1/(1-gm1/gm2 )


12.动态比较器蒙特卡洛(mente carlo)仿真失调电压

https://zhuanlan.zhihu.com/p/582019112


评论 (0 个评论)

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 2

    关注
  • 42

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 404

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-6 12:35 , Processed in 0.027173 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部