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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 13909|回复: 72

[资料] A Very Low Power SAR Analog to Digital Converter

[复制链接]
发表于 2010-6-8 11:32:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 angelweishan 于 2010-6-8 11:42 编辑

A Very Low Power SAR Analog to Digital Converter
Includes two Matlab codes to calculate INL, DNL and SNR

Contents
Abstract.............................................III
Contents.............................................IV
List of Figures........................................V
List of Tables...................................................VI

1 Introduction.........................................- 1 -
1.1 Thesis Organization.........................................- 1 -

2 ADC Architectures..................................- 2 -
2.1 Topologies Comparison...........................................- 3 -
2.2 Successive Approximation Register ADC......................- 6 -

3 Behavioural Model..............................................................- 8 -
3.1 ADC Parameters................................................- 8 -
3.2 Simulink Model.....................................................- 9 -
3.3 Simulations Results...................................................- 12 -

4 SAR ADC Building Blocks.................................................- 13 -
4.1 90nm CMOS Technology....................................- 13 -
4.2 Fully Differential vs. Single Ended................................- 14 -
4.3 Digital to Analog Converter DAC Topologies................- 15 -
4.3.1 Binary Weighted Switched Capacitor Array DAC.................- 15 -
4.3.2 Junction-Splitting Capacitor Array...............................- 17 -
4.3.3 Energy Efficient Charge-Redistribution DAC.............- 19 -
4.3.4 Serial Charge Redistribution D/A Converter............- 20 -
4.3.5 Circuit Choice and Design..............................- 21 -
4.4 Comparator..............................................- 24 -
4.4.1 Subthreshold Source-Coupled Logic........................- 25 -
4.4.2 Design Approach..............................................- 26 -
4.4.3 Matching Considerations....................................- 28 -
4.4.4 Circuit implementation.....................................- 30 -
4.5 Level shifter........................................................- 33 -
4.6 Track and Hold..............................................- 33 -
4.7 Delay Cell.........................................................- 35 -
4.8 SAR Logic.........................................- 36 -
4.8.1 VHDL Code....................................................- 36 -
4.8.2 Synthesis....................................................- 41 -
4.8.3 Place & Route...........................................- 44 -

5 Experimental Results............................................- 45 -
5.1 Comparator........................................................- 45 -
5.2 Mismatch effects on ADC parameters...................- 47 -
5.3 Signal to Noise Ratio.............................................- 48 -
5.4 DAC...................................................- 49 -
5.5 Input/Output Characteristic........................................- 50 -
5.6 Current and power considerations........................- 52 -

6 Conclusions.......................................................- 55 -
6.1 Future work.....................................................- 56 -
References.........................................................- 57 -

Design of a Very Low Power SAR ADC
Appendix I…………………………………………………………………………-60-
Appendix II……………………………………………………………………..-63-
Appendix III…………………………………………………………………….-67-
Appendix IV……………………………………………………………………….-70-
Appendix V……………………………………………………………………….-71-
Appendix VI……………………………………………………………………….-75-

Matlab code for INL and DNL calculation:
clc
clear all
% Basic
Ut = 0.026;
Vsw = 10*Ut;
nn = 1.3;
ISS = 1e-9; % tail bias
% ADC
NF = 8; % num. bit
N = 2^NF; % fft points
FS = 1; % full scale
dV = FS/2^NF;
LSB = FS/N;
Vr = 1;
fs = 2^13; % sampling freq.
tck = 1/fs; % sampling period
fsh = fs/9; % sampling freq.
tsh = 1/fsh; % sampling period
% Input signal
Vin = 0.7;
Vref = FS;
Vss = 0;
Ain = 0.5; % sin wave amplitude
fin = fs/2^12; % sin wave freq
start_ramp=0;
offset_sin=0.5;
Vcin1 = 1; % =1->ramp ; =0->sin (if Vcin2=0)
Vcsah = 0; % Vcsah = 0 : SAH is employed
g_comp = 10000; % gain of comparator preamplifier
noise = 0; % white noise at comparator input
off_comp = 0; % offset of comparator
comp_val = 0.5; % limit of comparison
% Simulation
M = 2^12; % sample points
ts = 0.001*tck; % sim. time for unit delay
%tf = (6 + M)/(fs*2); % sim. final time
slope=(1/N)/(4*LSB);
stop_sim=1;

% DAC capacitances and voltages--mismatched
index=1;
tr=100;
var_cap=0;
vfin=0.01;
step=vfin/5;

while var_cap<=vfin
for turns=1:tr
Cdac = 0;
c0 = 24e-15;
for i=1:8

cap_id(i) = c0 * 2^(i-1);


cap(i) = c0*2^(i-1) + var_cap*cap_id(i)*randn(1);

end
Cdac = sum(cap)+c0;
Cdac_id= sum(cap_id)+c0;
for j=1:8

Vdac(j)=cap(j)/Cdac;


Vdac_id(j)=cap_id(j)/Cdac_id;

end

% run simulation

tout = sim('SAR_ADC_inldnl');
load('o_adc_di.mat');
out_adc_a=o_adc(2,';
x_adc=o_adc(1,';
load('o_sah_di.mat');
out_sah=o_sah(2,';
load('in_sh_di.mat');
in_shape=in_sh(2,:)';
load('o_adc_dig.mat');
y_adc_d=o_adc_dig';

fin=max(size(y_adc_d));
out_adc=zeros(fin,1);

for ii=1:fin

for jj=1:8


out_adc(ii) = out_adc(ii)+y_adc_d(ii,jj+1)*Vdac_id(jj);


end

end

i=1;
while x_adc(i)<(tsh)

i=i+1;

end
l=max(size(out_adc));
out_adc=out_adc(i:l);
l1=l-i+1;
x_adc=x_adc(1:l1);
out_sah=out_sah(1:l1);
in_shape=in_shape(1:l1);
y=out_adc;
x=in_shape;
out_ch=[x y];

% dnl and inl ADC output
% input y contains the ADC output vs time
min_v=min(y);
max_v=max(y);
x1=min_vSB:max_v;
l=numel(x1);

% histogram
h = hist(y,x1);

n_elem =histc(y,x1);

% cumulative histogram
ch = cumsum(h);

dnl=0;
v_real=zeros(l-1,1);
n=0;
n_old=0;
x1=x1(1:l-1);
for i=1:l-1

if i==1


n=ch(i);


n_old=1;


v_real(i)=out_ch(n,1);


else


n_old=n;


n=ch(i);


v_real(i)=out_ch(n,1)-out_ch(n_old,1);


end




dnl(i) = (v_real(i)-LSB)/LSB;

end

misscodes = length(find(dnl<-0.9));
%
% calculate inl
inl=zeros(size(dnl));
for j=1:size(inl')

inl(j)=sum(dnl(1:j));
%INL,j=DNL,0+DNL,1+...+DNL,j


% INL=inl(j);

end
inl_turn(turns)=max(abs(inl));
dnl_turn(turns)=max(abs(dnl));
end

INL(index)=mean(inl_turn);
DNL(index)=mean(dnl_turn);
xax(index)=var_cap;
index=index+1;
var_cap = var_cap + step;

end

figure(1)
clf
subplot(211)
plot([1:2^NF],DNL,'--rs','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10);
grid on;
title('MAX DIFFERENTIAL NONLINEARITY vs. VARIANCE_ERROR_CAP');
xlabel('VARIANCE_ERROR_CAP');
ylabel('DNL (LSB)');
hold on
subplot(212)
plot([1:2^NF],INL);
grid on;
title('MAX INTEGRAL NONLINEARITY vs. VARIANCE_ERROR_CAP');
xlabel('VARIANCE_ERROR_CAP');
ylabel('INL(LSB)');
hold on
-

SAR ADC.rar

1.74 MB, 下载次数: 753 , 下载积分: 资产 -2 信元, 下载支出 2 信元

发表于 2010-6-8 12:14:04 | 显示全部楼层
thanks
回复 支持 反对

使用道具 举报

发表于 2010-6-8 13:18:34 | 显示全部楼层
看看是谁的论文
回复 支持 反对

使用道具 举报

发表于 2010-6-8 13:23:09 | 显示全部楼层
看看!!
回复 支持 反对

使用道具 举报

发表于 2010-6-8 14:46:25 | 显示全部楼层
下来学习一下,谢了
回复 支持 反对

使用道具 举报

发表于 2010-6-8 16:45:35 | 显示全部楼层
thanks for sharing
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-8 18:53:26 | 显示全部楼层
thanks for sharing
回复 支持 反对

使用道具 举报

发表于 2010-6-8 20:34:07 | 显示全部楼层
需要学习啊 谢谢
回复 支持 反对

使用道具 举报

发表于 2010-6-9 22:56:38 | 显示全部楼层
下来学习一下,谢了
回复 支持 反对

使用道具 举报

发表于 2010-6-12 22:29:31 | 显示全部楼层
ding ding ding
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-9-15 17:39 , Processed in 0.018457 second(s), 4 queries , Gzip On, Redis On.

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