ADC性能仿真

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.用calculator把你的数字比特输出按不同权重做和,得到重建信号

2.对重建信号做dft,再做spectralPower,注意跑了多少点就做多少点的dft。最好是64,128,。。。但是cadence里跑一个tran很花时间,尤其是跑高精度的tran,所以你要在精度和仿真时间上做权衡

3.重建信号和延时的输入信号做差,你的tb上要有两个信号源,其中s1进adc,s2接电阻到地。s2是s1的延时版本,s1进adc后延时多少时间才输出,s2也同样延时多少时间

4.对差信号做sample得到每个采样点的量化误差,注意sample的起始时间是s1的延时时间

5.把4中得到的信号除以LSB,做abs,再做average,得到用LSB表示的平均量化误差。你可以用这个误差估计adc的性能,当然这个误差一定要小于0,5LSB

6.以上步骤中提到的函数在cadence里的calculator里都有,你去找找吧。不同版本的cadence 对dft的定义似乎有差别,你可以试试

终了时间=起始时间+63*时钟周期,终了时间=起始时间+64*时钟周期,结果会有不同。

至于INL和DNL,还有ENOB,我还没想出来,不过估计是用锯齿波做输入,再把输出重建为阶梯波形,当然要在时序上对齐

嘻嘻,先把期末考试应付过去,暑假里再想想

小的最近做了一个adc,现在在做动态特性的仿真,sfdr,thd都可以从频谱中直接计算,好象sndr,snr不能直接计算,看了一些matlab的代码,有些函数不是特别理解,但根据自己的理解在计算adc的动态特性,结果感觉也比较正常,下面说一下我的理解,请高人指点一下,看我的这种理解是否合理.

1.用cadence的计算器做dft,这里不乘以20db,得到一个频谱,通常的频谱是乘以20db的结果.

2.把1得到的频谱的每个点用计算器里面的一个列表功能全列出来,然后用csv后缀进行保存,并把保存的结果从服务器导到自己用的终端上,在windows下csv后缀的文件会被转为excel格式.

3.sndr的计算:在得到的excel里,把基波处的值设为0,对其他所有项求平方和,excel 提供这个函数,然后用基波处那个值的平方除以前面得到的平方和,得到的结果再取10log10,就得到了sndr,通过sndr就可算得enob.

4.snr的计算:和上面的第一个步骤相同,在得到的excel里面,把基波处的值设为0,同时把需要考虑的偕波值也设为0,剩下的可认为是量化噪声,然后把剩下的项求平方和,用基波处的值除以前面得到的平方和再乘以10log10就得到了snr.

5.thd的计算:把上一步那些需要考虑成谐波的量求平方和,设这个值为a,然后b=a+基波处值^2,thd=10log10(a/b).

这是我对这几个参数的计算方法,不知道是否有问题,请高人指点啊.

相关文档
最新文档