在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: hitxiaojun

SOS——求救关于DAC的INL与DNL的仿真

[复制链接]
发表于 2009-3-10 18:50:32 | 显示全部楼层
问一下,你的DAC使用温度码吗?用的话用了几位?
发表于 2009-3-10 21:45:04 | 显示全部楼层
我用了一个24/16位两用的
发表于 2009-3-11 02:56:14 | 显示全部楼层
It is impossible to verify the true DNL/INL in that way because there is no mismatch data in your simulations. We  verify DNL/INL only on system level which modeling all mismatch data(Monte Carlo). However, your simulation can tell the TF, in which you can see it functions well or not.
发表于 2010-11-29 10:20:30 | 显示全部楼层
fengchengyao@yahoo.com.cn

麻烦传下台湾cic的资料
发表于 2011-5-13 15:55:44 | 显示全部楼层
呃,没有一个跟我一样的问题啊
发表于 2011-5-13 19:18:32 | 显示全部楼层




    Prof3 所言甚是
因為 SPICE simulates transistor-level design 一般不含 transistor mismatches
造成 INL / DNL 貌似很小
實際 silicon measurement 完全沒有這種好的表現

一般對 Nyquist-rate DAC (or ADC) 的 INL/DNL 分析
(before circuit design is conducted)
多半先進行 high-level behavioral modeling and analysis
去決定 LSB unit-component 的 dimension
同時決定 thermometer decode (MSB) & binary-weighted decode (LSB) 的 No. of bits

在 layout 前再作 SPICE Monte Carlo (transient) simulations ...
发表于 2011-5-13 19:23:45 | 显示全部楼层
回复 16# fhchen2002


    附上一個 behavioral analysis of (INL and DNL) MATLAB script


clear
clf
format long e
MSB = 6;
LSB = 4;
N = MSB + LSB;
iFull = 1;
iUnit = iFull / (2 ^ N);
iMSB  = iFull / (2 ^ MSB);
Stdev = 0.03; % Standard deviation of the unit current source
% \Delta(I_%) = sqrt(2) * Stdev;
for sample = 1: 100
   % The standard deviation of the normal distribution
   % (pseudo) random numbers should be very close to 1.
   errLSB = randn(1, (2 ^ LSB) - 1);
   iArrayLSB = 1 + Stdev * errLSB;
   
   errMSB = randn(1, (2^MSB) - 1) / sqrt(2^LSB);
   StdMSB = std(errMSB);
   iArrayMSB = 1 + Stdev * errMSB;
   
   % Real voltage output
   v(1) = 0;   
   for i = 1: 2^MSB
      for j = 1: 2^LSB - 1
         v((i-1) * 2^LSB + j + 1) = v((i-1)*(2^LSB) + j) + iUnit * iArrayLSB(j);
      end
      if i < 2^MSB
         v(i * 2^LSB + 1) = v((i-1) * 2^LSB + 1) + iMSB * iArrayMSB(i);        
      end
   end
   % ideal voltage output
   i = 1: 2^N;
   p = polyfit(i, v, 1);   
   v_ideal(i) = p(1) * i + p(2);   
   vlsb = (v_ideal(2^N) - v_ideal(1)) / (2^N-1);   
   INL(i) = (v_ideal(i) - v(i)) / vlsb;
   INL_max(sample) = max(abs(INL));
   
   i = 1: 2^N -1;
      DNL(i) = (v(i+1) - v(i)) / vlsb - 1;
   DNL_max(sample) = max(DNL);
end
% hist(INL_max,0:0.05:1), xlabel('INL'), ylabel('Sample count'), title('INL Histogram (\sigma = 0.3%), 10-bit DAC'), grid
% axis([0 1 0 15]);
hist(DNL_max, 0: 0.05: 1), xlabel('DNL'), ylabel('Sample count'), title('DNL Histogram (\sigma = 0.3%), 10-bit DAC'), grid
发表于 2013-6-6 21:54:41 | 显示全部楼层
希望代码能有帮助
发表于 2013-6-8 15:11:37 | 显示全部楼层
楼上的好人啊,这个我也需要
发表于 2013-6-29 18:37:37 | 显示全部楼层
回复 17# fhchen2002


   请问这个程序主要是做什么用的啊,输入实际的测试数据做输入吗?谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-1-3 22:28 , Processed in 0.022061 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表