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

标题: 关于ADC的INL/DNL测试问题 [打印本页]

作者: duke2050    时间: 2012-7-13 11:34
标题: 关于ADC的INL/DNL测试问题
大家好,

    最近在做ADC的静态参数仿真,本人所要测试的ADC为10bit 300Ksps。

    如果采用码密度测试方法来测试INL和DNL的话,输入斜坡信号,假设每个code取10个点,那么仿真的时间就是3.33us*10*1024=34.2ms。
  这个仿真时间有点太长了,请问各位大侠有没有什么其他的仿真方法?或者能让仿真速度提高的方法?

    谢谢各位了!!
作者: chipdesign    时间: 2012-7-13 15:37
cadence - aps
作者: duke2050    时间: 2012-7-13 16:14
呵呵,谢谢了啊,研究下看怎么用
作者: 半支烟    时间: 2012-7-13 18:50
完全没有必要仿真DNL/INL。你做个FFT看看动态性能就OK了
作者: duke2050    时间: 2012-7-13 19:11
本帖最后由 duke2050 于 2012-7-13 19:14 编辑

回复 4# 半支烟


    半支烟,看过您之前发表过的关于INL/DNL的帖子,呵呵,不过小弟是新手,没怎么看懂,呵呵
   我想问问,论文上如果不写静态特性仿真可以吗?或者可不可以只仿真某个点(比如说512point)的INL/DNL?又或者我只从全0扫描到全1(每个code只采样一次),然后只查看输出结果有没有漏码就可以了??
   说实话,全部仿真的话时间确实比较长,呵呵

   谢谢了!!
作者: fuyibin    时间: 2012-7-13 23:48
回复 1# duke2050


码密度测试输入ramp信号? 谁告诉你的?码密度测试用sin作为输入的
仿真做INL/DNL需要太长时间,看看dft结果就好了
作者: duke2050    时间: 2012-7-14 00:33
回复 6# fuyibin


        我记得EE247上面码密度有用ramp信号的啊,小弟刚开始学习静态参数的测试,弄错的地方请您指点,谢谢了!!
作者: California    时间: 2012-7-14 10:43
回复 7# duke2050


    仿真阶段可以用RAMP输入来求ADC DNL/INL,因为仿真阶段可以输入的RAMP信号是理想的;而测试阶段用的code density test一般采用sine wave信号,这是因为“理想或符合精度”的sine wave在测试阶段比较容易获取,而测试阶段比较难生成”理想或符合精度的ramp信号“。
作者: duke2050    时间: 2012-7-14 11:10
回复 8# California


    对,领教了,呵呵,谢谢指点!!

   另外问一下,仿真精度方面,liberal和moderate之间的精度会不会相差很大啊?
作者: tuza2000    时间: 2012-7-14 12:42
INL/DNL 测试可以用ramp输入也可以用sin'输入只是统计方法不一样,有一个转换公式。但结果理论上是一样的。因为sin输入既可以统计INL/DNL又可以统计SNR,所以测试的时候用sin的比较多,但是测试和仿真INL/DNL我更倾向于用ramp,因为那样不仅可以看INL/DNL ,更可以查看non-linearity,很直观,而sin输入则看不到
作者: California    时间: 2012-7-15 00:57
回复 9# duke2050


    liberal与moderate仿真精度差蛮多的,具体数值不记得了。一般都是用moderate;conservative速度太蜗牛了~~;liberal在analog或在意精度的仿真,感觉还是要谨用。若觉得moderate还是速度太慢,可以适当调整analog options中的:reltol/vabstol/iabstol选项。当然最好是能配合一些加速的仿真器,比如APS/Finesim等。
作者: duke2050    时间: 2012-7-15 09:55
回复 11# California


   我也觉得liberal和moderate仿真精度差太多了,昨天liberal仿真结果出来时,一测ADC的ENOB只有6bit,吓了我一跳。

  今天把moderate仿真结果看看对比下,呵呵,谢谢您了!!
作者: 半支烟    时间: 2012-7-15 12:57


   
回复  California


   我也觉得liberal和moderate仿真精度差太多了,昨天liberal仿真结果出来时,一测 ...
duke2050 发表于 2012-7-15 09:55




   你加个Turbo加速窗,能快很多。
作者: steve_guo_1997    时间: 2012-7-15 13:00
实际上有些测试源的精度,正弦信号要远好于ramp信号,我之前用的一款信号发生器正弦有12位精度,ramp只有7位。所以很多时候比较喜欢用sine做code density测试,当然我这儿的设备比较差劲,也没有其他办法。INL/DNL是静态指标,跟SNR/SNDR这种动态指标是两回事情。虽然有点关系,但是有时候SNDR很差,INL/DNL可能很好,反之也存在。所以不太理解上面说的INL/DNL不用做,做个FFT就可以的提法。
还有你说得应该是仿真,而不是测试吧?那又是另外一回事请了。
作者: fuyibin    时间: 2012-7-15 13:21
标题: 标题
本帖最后由 fuyibin 于 2012-7-15 13:28 编辑

回复 14# steve_guo_1997

sndr好,INL/DNL必须要好!
仿真中没有noise,只要速度满足,INL/DNL和频谱分析直接相关。
再说了,不带mismatch,INL/DNL有意义么?
作者: duke2050    时间: 2012-7-15 14:20
回复 13# 半支烟


     半支烟,
   您好!!

    请教一下,turbo加速和aps哪个快一点?
    另外我这边设置成aps仿真的时候,总是停留在“waiting for available license for virtuoso(R) spectre"这里,仿真不了,不知道什么原因?

   谢谢了!!
作者: 半支烟    时间: 2012-7-15 16:49


   
回复  半支烟


     半支烟,
   您好!!

    请教一下,turbo加速和aps哪个快一点?
    另外我 ...
duke2050 发表于 2012-7-15 14:20




    抱歉我只用过turbo加速。你选择性保存节点也能稍微快一些。如果数据量很大的话。我当时取1024个点只要1个半小时跑完。
作者: steve_guo_1997    时间: 2012-7-15 17:03
本帖最后由 steve_guo_1997 于 2012-7-15 17:10 编辑

回复 15# fuyibin


   你也说要满足速度要求了,反过来,在测试SNDR的是也会出现有些码不出现的情况,如果这些码有问题INL/DNL是可以表述出来的。举几个反例。当然我也说过了,多数情况下,这两者是有关系。
作者: steve_guo_1997    时间: 2012-7-15 17:09
回复 17# 半支烟


      另外不要觉得没有matching,仿真阶段仿INL/DNL就没有意义。举个例子,至少在后仿真阶段就有可能会发现问题。
作者: fuyibin    时间: 2012-7-15 22:58
回复 18# steve_guo_1997


   如果仿真中非相干采样,点数较大,应该所有的code都要出现的
作者: steve_guo_1997    时间: 2012-7-16 13:31
回复 20# fuyibin

你说的对。
但是仿真中不做coherent,仿真时间会长很多。有时候需要取舍一下。另外做code density测试时候,对于输入正弦信号的频率,幅度,offset,都会有具体要求,最终使得各个输出码能够得到很好的遍历。
这两者还是有些细微的区别。
不过仿真的时候,尽管用ramp信号。
作者: ch_00776    时间: 2013-2-1 15:24
回复 4# 半支烟


    你好,看了你的留言,请问为什么没有必要用ramp做DNL和INL,(我的想法是测sample,与理想ramp比较,再在excel计算得出)谢谢!
作者: shiunger    时间: 2013-2-1 17:02
以10-bits來說
我認為conservative方能滿足
可使用 mulithread & +aps 來加快simulation
Good luck!




   
回复  California


   我也觉得liberal和moderate仿真精度差太多了,昨天liberal仿真结果出来时,一测 ...
duke2050 发表于 2012-7-15 09:55


作者: gakuse    时间: 2013-2-1 20:52
学习学习
作者: ch_00776    时间: 2013-2-4 11:32
回复 13# 半支烟


    你好,请问Turbo加速窗怎样添加啊,谢谢!
作者: ch_00776    时间: 2013-2-4 11:41
回复 16# duke2050


    您好:请问Turbo加速窗怎样添加啊?

   另外,ADC要不要在Cadence里进行DNL/INL仿真,用ramp输入信号,导出用excel算出,流片回来用码密度法测试进行数据对比?

   非常谢谢!
作者: ch_00776    时间: 2013-2-4 11:47
回复 8# California


    您好:

    请问
    ADC要不要在Cadence里进行DNL/INL仿真,用ramp输入信号,流片回来后再用码密度法测试进行数据对比?


   谢谢!
作者: ch_00776    时间: 2013-2-4 12:52
回复 15# fuyibin


    您好:

    请问    您好:

    请问
    ADC要不要在Cadence里进行DNL/INL仿真,用ramp输入信号,流片回来后再用码密度法测试进行数据对比?

    谢谢!
作者: fuyibin    时间: 2013-2-4 13:06


   
回复  fuyibin


    您好:

    请问    您好:

    请问
    ADC要不要在Cadence里进行DNL/IN ...
ch_00776 发表于 2013-2-4 12:52



我在spectre做仿真的时候不做DNL/INL的仿真的, 我只看频谱,看harmonic
所有INL/DNL 上的问题都会出现在频谱上
我之前说过,INL/DNL仿真没什么意义,只能看看opamp的gain够不够
由于电容mismatch这一造成INL/DNL degradation 的因素没有加入,仿真就没有太大意义
但是你当然可以用ramp信号做INL/DNL的simulation,免得老大们challenge你,把事情做的严谨总没有错
实际测试的时候ramp可以测位数比较低的ADC,resolution高的ADC 就可以用code density去测,因为有输入带来的影响更小,结果更可信
作者: ch_00776    时间: 2013-2-5 12:20
回复 29# fuyibin


    谢谢老大,那为什么用ramp测低比特的呢,用什么方法,还是用code density吗?我研究下code density,非常感谢!
作者: fuyibin    时间: 2013-2-5 13:01


   
回复  fuyibin


    谢谢老大,那为什么用ramp测低比特的呢,用什么方法,还是用code density吗?我研 ...
ch_00776 发表于 2013-2-5 12:20



ramp 测试的优点是简单直接,但是获得很高线性度的ramp比较困难,同时ramp的noise也会进入ADC
用code density测试是灌sine信号,然后按照sine pattern所对应code的分布,间接计算出INL/DNL
高纯度的sine 信号容易获得,而且可以用bandpass filter滤除noise
所以resolution比较低的ADC比如8bit的,ramp pattern测试问题不大,但是ADC精度越高,对source要求也越高
作者: ch_00776    时间: 2013-2-8 10:04
回复 31# fuyibin


    不好意思,这两天没上论坛,谢谢你的回复!

    祝春节快乐!
作者: lishiliang    时间: 2014-3-8 21:40
回复 1# duke2050


    仿真和测试不是一个概念,不要混淆。
作者: ralphtw    时间: 2014-6-27 20:04
码密度测试方法
作者: zhouliangxi    时间: 2014-8-24 16:05
回复 1# duke2050


   楼主您好,请问你用来仿真INL DNL的数据,也就是那些模拟量,
   是直接从sine或者ramp经过 S&H得到,还是从AD转换完后再DA得到的呢?

   对INL和DNL还不是很清楚,望指点一二
作者: zhouliangxi    时间: 2014-8-24 16:10
回复 6# fuyibin



   您好,请问如果在matlab里仿INL DNL,需要用到的数据,也就是那些模拟量,
   是直接从sine经过 S&H得到,还是从AD转换完后再DA得到的呢?

   对INL和DNL还不是很清楚,望指点一二

作者: fuyibin    时间: 2014-8-24 19:39


   
回复  fuyibin
zhouliangxi 发表于 2014-8-24 16:10


   
经过smaple hold的信号还是模拟量,哪里来什么inl dnl的说法呢?
作者: duke2050    时间: 2014-8-26 09:44
回复 35# zhouliangxi


    正如fuyibin所说的,S/H之后仍然是模拟信号,INL和DNL应该是A/D转换后的一个性能参数
作者: zhouliangxi    时间: 2014-9-1 20:48
回复 38# duke2050

谢谢指导,当时的问题确实有点简单。
INL DNL 的测试已经跑起来了,取的是AD之后的量。多谢指点
作者: zhouliangxi    时间: 2014-9-1 20:52
回复 38# duke2050


多谢指导,是这样运行起来的。
请问有没有一个很好的办法去验证自己跑出来的INL DNL 曲线以及方法是否正确,虽然知道我用的美信代码不太会有什么问题。


例如:在matlab里搭一个理想的ADC去做验证到DNL为0或者是其他的办法呢
作者: huage151    时间: 2016-4-28 09:54
前来学习 受教了
作者: doctorjyb    时间: 2017-3-21 18:02
学习学习
作者: edwardk    时间: 2018-11-17 10:08
学习中。。。。。
作者: penghe666    时间: 2022-8-15 10:21


   
tuza2000 发表于 2012-7-14 12:42
INL/DNL 测试可以用ramp输入也可以用sin'输入只是统计方法不一样,有一个转换公式。但结果理论上是一样的。 ...


您好,请问ramp输入仿真INL和DNL,输出的阶梯曲线怎么算dnl和inl呀

作者: L.H    时间: 2022-11-21 09:42


   
fuyibin 发表于 2013-2-5 13:01
ramp 测试的优点是简单直接,但是获得很高线性度的ramp比较困难,同时ramp的noise也会进入ADC
用code den ...


大佬你好,请问用ramp作输入进行AD转换后如何进行数据处理才能得出INL\DNL呢,网上matlab的代码大多是sin输入的码密度法
作者: L.H    时间: 2022-11-21 10:16
请问一下美信代码中的midcode是啥意思呢?抱拳
作者: 灼灼其华ZT    时间: 2024-10-7 15:36


   
zhouliangxi 发表于 2014-9-1 20:52
回复 38# duke2050


佬,可以分享一下美信的代码吗





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