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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 138350|回复: 227

[原创] 12bit 100MHz pipelined ADC设计直播

[复制链接]
发表于 2012-12-16 21:33:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 mouseliu 于 2012-12-19 21:46 编辑

先说点废话:
好久以来都有一种混日子的感觉,每天都是浑浑噩噩,时间一长,人的上进心就被慢慢消磨掉了。
笔者认识到这个问题已经很久了,近日终于下定决心准备自己做点东西,但是苦于害怕自己毅力不够,不能坚持很多。于是就想到来论坛,用鼠标键盘记录下个中历程,与各位看官分享,想必与各位看官的交流和学习也能在客观上对我起到一种督促的作用。

我选了一个ADC的课题,打算做一个12bit 100MHz pipeline ADC,之前也曾拜读过论坛里面有些大大的高作,但大多都是show-off性质的帖子,贴上测试结果,却又不肯透露自己的设计思路和方法。当然,很多东西属于商业秘密,不便公开也是可以理解的。本人的这个东西只是自己工作之余的一些知识积累,不存在保密的问题。况且我个人也非常想要和论坛里面的兄弟们交流学习。因此,在接下来的1个多月里面,我会尽量详细地把我自己的设计思路和方法与大家分享,希望各位大大多加指导。

再说两句废话,在我看来,做模拟的,最重要的就是概念清晰,概念错了,做再多的计算和推导也枉然。与一般工程师交流和与高手交流的区别在,一般工程师会给你一堆公式一堆计算直到把你和他都整晕;而高手更多地会用简单的公式和语言引导你正确地理解概念。什么叫“茅塞顿开”?大抵也就是对某个概念的理解又上了一个层次罢了。

时间预算:到过年,有限时间1.5个月。电路+仿真时间比较紧张,但是我大概已经捉摸了一段时间,系统架构和一些细节的东西已经有些积累,所以时间定为1.5个月。layout年后再整吧。
Process:HJTC 0.18um
Power:1.8V
resolution: 12bit
speed:100MHz
ENOB>10bit @ ~ Nyquist frequency
Circuit :ADC Core + integrated Vref buffer without off-chip cap
FOM:<0.5pj/conv
Architecture:
  2.5bit/stage,
  opamp-sharing & capacitor sharing for SH and MDAC1,
  opamp-sharing for MDAC2&MDAC3   
  opamp-sharing for MDAC4&MDAC5
**************************************************
**************************************************
第一部分:系统设计:
**************************************************
1.reference的确定
Vrefp=0.9+0.4=1.3V
Vcmo=0.9
Vrefn=0.9-0.4=0.5V
Vrefp-Vrefn=0.8V
VFS=1.6VPP

**************************************************
2. opamp DC gain的确定

每一级的有限增益误差小于当前级后面所剩位数的1/2LSB,各级的有限增益误差要求是:
MDAC1,后面还有10位精度,delta<1/2^11,等效到输入的误差<delta/4=1/2LSB
MDAC2,后面还有8位精度,delta<1/2^9,等效到输入的误差<delta/4^2=1/2LSB
MDAC3,后面还有6位精度,delta<1/2^7,等效到输入的误差<delta/4^3=1/2LSB
MDAC4,后面还有4位精度,delta<1/2^5,等效到输入的误差<delta/4^4=1/2LSB
MDAC5,后面还有2位精度,delta<1/2^3,等效到输入的误差<delta/4^5=1/2LSB

对于MDAC1,忽略opamp的输入寄生电容,beta=0.25,gain=4,
               输出opamp的有限增益误差 delta=1/(beta*A1)=4/A1
               等效到输入,误差为delta/gain=delta/4=1/A1,令1/A1<1/2LSB,得到A1>2/LSB=2^13,故A1>78dB

对于MDAC2,考虑到opamp的输入电容,beta=1/5,gain=4^2,
              输出opamp的有限增益误差 delta=1/(beta*A2)=5/A1
              等效到输入,误差为delta/gain=delta/4^2=5/(16*A2),令5/(16*A2)<1/2LSB,得到A2>5/8/LSB=5/8*2^12,故A2>68dB

对于MDAC3,考虑到opamp的输入电容,beta=1/5,gain=4^3,
              输出opamp的有限增益误差 delta=1/(beta*A3)=5/A1
              等效到输入,误差为delta/gain=delta/4^3=5/(48*A3),令5/(64*A3)<1/2LSB,得到A3>5/32/LSB=5/32*2^12,A3>56dB

同理,
对于MDAC4,A4>44dB
对于MDAC5,A4>32dB

到此,应该可以估计各级OP的结构了
SH/MDAC1: gainboost
MDAC2/MDAC3: 普通foled cascode可能不一定够,搞不好需要gainboost
MDAC4/MDAC5: folded cascode
*****************************************************************
3. opamp的GBW的要求
计算标准:各级建立误差等效到输入端必须小于0.5LSB
各级建立误差等效到输入为delta=exp(-t/tao)/gain<1/2^(N+1),其中tao=1/omega=1/(2*pi*beta*fu),
t=1/(2*fs)*0.8=0.4/fs
推导得到beta*fu>ln(2^13/(gain)/(0.8*pi)*fs
====================================================
对于MDAC1:gain=4,beta*fu>303MHz
对于MDAC2:gain=4^2,beta*fu>248MHz
对于MDAC3:gain=4^3,beta*fu>193MHz
对于MDAC4:gain=4^4,beta*fu>138MHz
对于MDAC5:gain=4^5,beta*fu>83MHz
=====================================================
计算的时候没有考虑Non-overlap time,slew rate时间20%,具体设计的时候需要根据实际情况微调。
******************************************************************
4. 从Noise的角度确定各级电容的值
LSB=VFS/2^12=1.6/2^12=390uV
量化噪声LSB^2/12=12.7e-9,换算到电压为112uV
对于KT/C noise ,定义1pF电容的KTC噪声为单位噪声,Nu=KT/1pF, 换算成电压是64.5uV
在本设计中电容取值分配如下:
SH------->2.3pF,  等效KTC noise power=Nu/2.3
MDAC1->2.3pF, 等效KTC noise power =Nu/2.3
MDAC2-->0.8pF,等效KTC noise power =1.25*Nu/gain^2=1.25*Nu/4^2=0
MDAC3-->0.5pF,等效KTC noise power =2*Nu/gain^2=2*Nu/16^2=0
MDAC4-->0.5pF,等效KTC noise power =0
MDAC5-->0.5pF,等效KTC noise power =0

Total Noise power for single ended=(1/2.3+1/2.3)*Nu=Nu
Total Noise power for differential ended  = 2*Nu换算成电压,Vn=sqrt(2*Nu)=91uV
这个噪声比量化噪声小一点点,基本可以接受了,就这么定了。
======================================
当然,仅仅考虑KTC噪声就定电容是非常不应该的。至少还有2个东西需要考虑,一个是opamp的噪声,另一个是电容的mismatch
对于12bit的ADC,电容的Mismatch可能更容易成为瓶颈,后面再作分析。另外,由于opamp的等效噪声也是与KT/CL呈正比,增加电容能够客观上增加CL,从而减小opamp的噪声,然而带来的坏处也显而易见,功耗增加。因此,电容的选择可能需要几次重复迭代了。
************************************************************
4 从Mismatch的角度出发确定各级电容的值
===============================================
(1)电容基本信息
TypeMIM
单位容值1fF/um^2 +/-15%
Fringing cap0.075fF/um
TC40ppm/C
VC30ppm/V

================================================

(2)电容的Mismatch参数

电容尺寸mismatch
10um*10um0.0933%
15um*15um0.0646%
20um*20um0.0658%
25um*25um0.0402%
以上数据是从Foundry的design rule中摘抄出来的mismatch参数,可以看到20*20的电容的mismatch反而比15*15的要差,这个基本上要归因于测试误差了,大可不必太过在意。
电容的mismatch与面积均方根呈反比,面积越大,mismatch越小。

对于SH和MDAC1,采样电容分为4个,每个的单位尺寸为24um*24um,则采样电容=2.3pF
假定Foundry给的这个值是1sigma值,则24um*24um的mismath=0.05%,则3sigma=0.15%,先有个感性认知吧。
===================================================
(3) 关于mismatch的几个基本概念假设单位电容Cu对应的相对标准偏差为sigma
1个Cu比上1个Cu,相对标准偏差是sqrt(2)*sigma
4个Cu的相对标准偏差是0.5*sigma
4个Cu比上1个Cu,此时的相对标准偏差为sqrt(1+1/4)*sigma=1.06*sigma
2个Cu比上2个Cu,此时的相对标准偏差为sqrt(1/2+1/2)*sigma=sigma
看官们别小看上面这几个例子,概念不清晰不一定会算的噢。如有算错,还请指点。
===================================================
(4) 多bit MDAC可以提升pipelined adc的线性度
随着pipelined adc的resolution的不断提升,电容的mismatch可能成为线性度的瓶颈。
对于N<10bit时,通常采用1.5bit/stage的流水线结构;
当N〉12bit时,在没有cap mismatch calibration 的情况下,往往提升头1~2级MDAC的位数,这可以降低对cap mismath的要求。
DNL=(Gideal-G)/Gideal*1/2*2^N/Gideal (LSB)
从上式可以看出,对于N=12
对于1.5bit/stage, Gideal=2,(Gideal-G)/Gideal的3sigma值为3*sigma(simga为单位电容的相对标准偏差)
                           DNL=2^10*3*simga (LSB)
                           令DNL<0.5LSB,则要求sigma<1/(3*2^11)这要求也忒高了,基本不可能

对于2.5bit/stage, Gideal=4,(Gideal-G)/Gideal的3sigma值为3*sqrt(2)/2*sigma(simga为单位电容的相对标准偏差)
                           DNL=2^9*3*sqrt(2)/2*simga (LSB)
                           令DNL<0.5LSB,则要求sigma<1/(2^9*3*sqrt(2))=0.046%

呵呵,也就是说对于12bit adc而言,如果采用2.5bit/stage,考虑3个sigma的偏差,则对采样电容的单位电容(4个单位电容组成采样电容)的相对标准偏差的1sigma值的要求是0.046%,刚好落在24*24um^2附近。有木有?
所以,SH和MDAC1单位电容就取24um*24um了,既满足噪声要求,又满足mismatch对线性度的要求,同时又不至于余量太多浪费功耗。
=========================================================
接下来还要考虑MDAC2的采样电容的值,从mismatch的角度,0.8pF的电容是否够?DNL=(Gideal-G)/Gideal*1/2*2^N/Gideal (LSB)
从上式可以看出,对于N=10
对于2.5bit/stage, Gideal=4,(Gideal-G)/Gideal的3sigma值为3*sqrt(2)/2*sigma(simga为单位电容的相对标准偏差)
                           DNL=2^7*3*sqrt(2)/2*simga (LSB)
                           令DNL<0.5LSB,则要求sigma<1/(2^7*3*sqrt(2))=0.18%
也就是说对于10bit adc而言,如果采用2.5bit/stage,考虑3个sigma的偏差,则对采样电容的单位电容(4个单位电容组成采样电容)的相对标准偏差的1sigma值的要求是0.18%,10um*10um的单位电容就足以达到这个匹配精度了。此时总的采样电容为0.4pF,本设计取0.8pF,应该是绰绰有余了。
***********************************************************
后面各级的采样电容就直接取为0.4pF应该就差不多了,具体不再计算
发表于 2012-12-16 21:39:24 | 显示全部楼层
回复 1# mouse
关注下,我们也在用hejian的工艺做东西,不过是0.5um的。
 楼主| 发表于 2012-12-16 21:50:14 | 显示全部楼层
本帖最后由 mouseliu 于 2012-12-18 19:45 编辑

系统设计:
(1)reference的确定
Vrefp=0.9+0.4=1.3V
Vcmo=0.9
Vrefn=0.9-0.4=0.5V
Vrefp-Vrefn=0.8V
VFS=1.6VPP
(2)各级电容的值的确定
LSB=VFS/2^12=1.6/2^12=390uV
量化噪声LSB^2/12=12.7e-9,换算到电压为112uV
对于KT/C noise ,定义1pF电容的KTC噪声为单位噪声,Nu=KT/1pF, 换算成电压是64.5uV
在本设计中电容取值分配如下:
SH------->2.3pF,  等效KTC noise power=Nu/2.3
MDAC1->2.3pF, 等效KTC noise power =Nu/2.3
MDAC2-->0.8pF,等效KTC noise power =1.25*Nu/gain^2=1.25*Nu/4^2=0
MDAC3-->0.5pF,等效KTC noise power =2*Nu/gain^2=2*Nu/16^2=0
MDAC4-->0.5pF,等效KTC noise power =0
MDAC5-->0.5pF,等效KTC noise power =0

Total Noise power for single ended=(1/2.3+1/2.3)*Nu=Nu
Total Noise power for differential ended  = 2*Nu换算成电压,Vn=sqrt(2*Nu)=91uV
这个噪声比量化噪声小一点点,基本可以接受了,就这么定了。

当然,仅仅考虑KTC噪声就定电容是非常不应该的。至少还有2个东西需要考虑,一个是opamp的噪声,另一个是电容的mismatch
对于12bit的ADC,电容的Mismatch可能更容易成为瓶颈,这个笔者明天好好分析分析。另外,由于opamp的等效噪声也是与KT/CL呈正比,增加电容能够客观上增加CL,从而减小opamp的噪声,然而带来的坏处也显而易见,功耗增加。因此,电容的选择可能需要几次重复迭代了。
 楼主| 发表于 2012-12-16 22:11:32 | 显示全部楼层
本帖最后由 mouseliu 于 2012-12-18 23:08 编辑

(3)opamp DC gain的确定
首先我们要明确一个概念,我们需要达到什么样的建立?
***********************************************************************************************
每一级的有限增益误差小于当前级后面所剩位数的1/2LSB,各级的有限增益误差要求是:
MDAC1,后面还有10位精度,delta<1/2^11,等效到输入的误差<delta/4=1/2LSB
MDAC2,后面还有8位精度,delta<1/2^9,等效到输入的误差<delta/4^2=1/2LSB
MDAC3,后面还有6位精度,delta<1/2^7,等效到输入的误差<delta/4^3=1/2LSB
MDAC4,后面还有4位精度,delta<1/2^5,等效到输入的误差<delta/4^4=1/2LSB
MDAC5,后面还有2位精度,delta<1/2^3,等效到输入的误差<delta/4^5=1/2LSB
******************************************
对于MDAC1,忽略opamp的输入寄生电容,beta=0.25,gain=4,
               输出opamp的有限增益误差 delta=1/(beta*A1)=4/A1
               等效到输入,误差为delta/gain=delta/4=1/A1,令1/A1<1/2LSB,得到A1>2/LSB=2^13,故A1>78dB
********************************************
对于MDAC2,考虑到opamp的输入电容,beta=1/5,gain=4^2,
              输出opamp的有限增益误差 delta=1/(beta*A2)=5/A1
              等效到输入,误差为delta/gain=delta/4^2=5/(16*A2),令5/(16*A2)<1/2LSB,得到A2>5/8/LSB=5/8*2^12,故A2>68dB
***********************************************
对于MDAC3,考虑到opamp的输入电容,beta=1/5,gain=4^3,
              输出opamp的有限增益误差 delta=1/(beta*A3)=5/A1
              等效到输入,误差为delta/gain=delta/4^3=5/(48*A3),令5/(64*A3)<1/2LSB,得到A3>5/32/LSB=5/32*2^12,A3>56dB
************************************************
同理,
对于MDAC4,A4>44dB
对于MDAC5,A4>32dB
************************************************************************************************
************************************************************************************************
到此,应该可以估计各级OP的结构了
SH/MDAC1: gainboost
MDAC2/MDAC3: 普通foled cascode可能不一定够,搞不好需要gainboost
MDAC4/MDAC5: folded cascode
 楼主| 发表于 2012-12-16 22:27:20 | 显示全部楼层
本帖最后由 mouseliu 于 2012-12-18 23:06 编辑

(4)opamp的GBW的要求********************************************************
计算标准:各级建立误差等效到输入端必须小于0.5LSB
各级建立误差等效到输入为delta=exp(-t/tao)/gain<1/2^(N+1),其中tao=1/omega=1/(2*pi*beta*fu),
t=1/(2*fs)*0.8=0.4/fs
推导得到beta*fu>ln(2^13/(gain)/(0.8*pi)*fs

对于MDAC1:gain=4,beta*fu>303MHz
对于MDAC2:gain=4^2,beta*fu>248MHz
对于MDAC3:gain=4^3,beta*fu>193MHz
对于MDAC4:gain=4^4,beta*fu>138MHz
对于MDAC5:gain=4^5,beta*fu>83MHz
****************************************************************************
计算的时候没有考虑Non-overlap time,slew rate时间20%,具体设计的时候需要根据实际情况微调。
发表于 2012-12-16 22:56:21 | 显示全部楼层
都是大牛啊,什么时候流片呢?
发表于 2012-12-16 22:56:57 | 显示全部楼层
回复 3# mouseliu
   

   1. 各级电容的选取有些问题,需要考虑各级运放的噪声,尤其要注意SH MDAC1&2 MDAC3&4 三个运放的噪声。
   2. ENOB需要做到多大?选定的电容下,各级的失配能否满足要求?
 楼主| 发表于 2012-12-16 23:21:58 | 显示全部楼层
本帖最后由 mouseliu 于 2012-12-18 19:46 编辑

关于电容的mismatch
(1)电容基本信息
Type MIM
单位容值 1fF/um^2 +/-15%
Fringing cap 0.075fF/um
TC 40ppm/C
VC 30ppm/V



(2)电容的Mismatch参数

电容尺寸 mismatch
10um*10um 0.0933%
15um*15um 0.0646%
20um*20um 0.0658%
25um*25um 0.0402%
以上数据是从Foundry的design rule中摘抄出来的mismatch参数,可以看到20*20的电容的mismatch反而比15*15的要差,这个基本上要归因于测试误差了,大可不必太过在意。
电容的mismatch与面积呈反比,面积越大,mismatch越小。

对于SH和MDAC1,采样电容分为4个,每个的单位尺寸为24um*24um,则采样电容=2.3pF
假定Foundry给的这个值是1sigma值,则24um*24um的mismath=0.05%,则3sigma=0.15%,先有个感性认知吧。

(3) 关于mismatch的几个基本概念假设单位电容Cu对应的相对标准偏差为sigma
1个Cu比上1个Cu,相对标准偏差是sqrt(2)*sigma
4个Cu的相对标准偏差是0.5*sigma
4个Cu比上1个Cu,此时的相对标准偏差为sqrt(1+1/4)*sigma=1.06*sigma
2个Cu比上2个Cu,此时的相对标准偏差为sqrt(1/2+1/2)*sigma=sigma
看官们别小看上面这几个例子,概念不清晰不一定会算的噢。如有算错,还请指点。

(4) 多bit MDAC可以提升pipelined adc的线性度
随着pipelined adc的resolution的不断提升,电容的mismatch可能成为线性度的瓶颈。对于N<10bit时,通常采用1.5bit/stage的流水线结构,当N〉12bit时,在没有cap mismatch calibration 的情况下,往往提升头1~2级MDAC的位数,这可以降低对cap mismath的要求。
DNL=(Gideal-G)/Gideal*1/2*2^N/Gideal (LSB)
从上式可以看出,对于N=12
对于1.5bit/stage, Gideal=2,(Gideal-G)/Gideal的3sigma值为3*sigma(simga为单位电容的相对标准偏差)
                           DNL=2^10*3*simga (LSB)
                           令DNL<0.5LSB,则要求sigma<1/(3*2^11)这要求也忒高了,基本不可能

对于2.5bit/stage, Gideal=4,(Gideal-G)/Gideal的3sigma值为3*sqrt(2)/2*sigma(simga为单位电容的相对标准偏差)
                           DNL=2^9*3*sqrt(2)/2*simga (LSB)
                           令DNL<0.5LSB,则要求sigma<1/(2^9*3*sqrt(2))=0.046%

呵呵,也就是说对于12bit adc而言,如果采用2.5bit/stage,考虑3个sigma的偏差,则对采样电容的单位电容(4个单位电容组成采样电容)的相对标准偏差的1sigma值的要求是0.046%,刚好落在24*24um^2附近。有木有?
所以,SH和MDAC1单位电容就取24um*24um了,既满足噪声要求,又满足mismatch对线性度的要求,同时又不至于余量太多浪费功耗。

接下来还要考虑MDAC2的采样电容的值,从mismatch的角度,0.8pF的电容是否够?
发表于 2012-12-17 00:01:04 | 显示全部楼层


   
老兄,你的noise没有算对啊,你把lsb 和rms noise 混淆了
1.6Vpp/12bit quantization  noise大概110uV左右,和你算出来的therm noise 差不多。这种pipeline  ADC做熟了,一个星期就可以做一个,再花点时间做仿真就差比多了
 楼主| 发表于 2012-12-17 00:07:31 | 显示全部楼层


老兄,你的noise没有算对啊,你把lsb 和rms noise 混淆了
1.6Vpp/12bit quantization  noise大概11 ...
fuyibin 发表于 2012-12-17 00:01



这个哥真是醍醐灌顶啊,大晚上一下昏头了,把噪声能量和LSB去做对比了,好比是拿鸡和鸭比,单位都不对。我改过来了,噪声能量应该和量化噪声比。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-22 21:40 , Processed in 0.024431 second(s), 6 queries , Gzip On, Redis On.

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