在线咨询 切换到宽版
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
回复 支持 1 反对 0

使用道具 举报

发表于 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-8-5 08:20 , Processed in 0.016304 second(s), 3 queries , Gzip On, Redis On.

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