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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 637|回复: 6

[原创] C.C.Liu 冗余补偿计算方法问题-0.5

[复制链接]
发表于 2024-8-15 20:17:59 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 jiangst 于 2024-8-15 20:23 编辑

C.C.Liu在2010年在ISSCC上发布了经典论文“A 10b 100MS/s 1.13mW SAR ADC with Binary-ScaledError Compensation”,可以说是设计SAR ADC必读的一篇论文。其中提出了含冗余码的13位转10位数字码的方法,在他的博士学位论文里描述如下:The bit weights of the 13-bit redundant codes are 512,256, 128, 128, 64, 32, 16, 16, 8, 4, 2, 2, 1. The digital output can beexpressed as – (64+8+1) + (512×B1+256×B2+128×B3+128×B3C+…)。很多人都对为什么要减去0.5×冗余码感到不解,我搜索资料也没找到一个合理的解释,只是有些人提出了这种计算方法计算数字码好像有误,我仔细研究了一番,发现这种方法确实存在限制。

首先为了简化问题,我们设置一个单端的3bit的权重为[4C,2C,2C,1C,1C]的电容阵列,其中添加了一个2C的冗余电容和1C的哑电容。因为有一个冗余电容,所以需要将4bit的比较结果转为3bit的实际数字码输出。这里,电容阵列的总电容大小为10C,为了方便计算,我们假设ADC量程为80V,10C的电容(其中单位电容为1C)相当于11根刻度线,把80V划分成了10份,所以步长为8V。而我们要转换为3位的数字码,也就是[0,0,0]…[1,1,1],相当于9根刻度线,把80V划分成了8份,所以步长为10V。看图1画的草图,4位的转换码一共有[0,0,0,0]…[1,1,1,1] 16组数字码,理论上有17根刻度线,但因为这4位转换码的权重分别位4,2,2,1,不是二进制码,所以有几组转换码对应同一根刻度线,比如[1,0,0,0]和[0,1,1,0]。

现在问题来了,因为刻度线都是离散的,那么假设你输入65V,ADC量化出来的4位数字码对应的结果只能是64V这根刻度线,然后64V这根刻度线对应的4位数字码该怎么转换成3位数字码所对应的刻度线?是不是只有60V([1,1,0])这跟刻度线,因为这根线离56V最近。所以4位数字码转为3位数字码只能按图1的里画的箭头所示的方式转换才是正确的。

                               
登录/注册后可看大图
图1


那么把上述整理成表格,X是4位数字码,Y是将X按图1规则转换出的3位数字码。在Liu的论文里说:The amplitude of the input signal swing isVref×(C1to9/Ctotal),所以Liu规定了输入信号范围,这个信号范围量化出的四位数字码如橙色高亮所示,然后最左列是按照Liu的方法计算的结果,将其与Y对照,可以发现黄色高亮的转换结果才是正确的。那么Liu规定ADC的最大输入电压就是因为他的数字码转换方法在高位的时候不适用,所以人为限制了输入摆幅,但其实以论文里的架构,输入摆幅是可以到Vref的,只要数字码转换方法正确就行了。但是在低位的时候,数字码转换方法其实也是有误的。

                               
登录/注册后可看大图

那么正确的数字码准换方式是什么呢?如下式所示,[]表示四舍五入。

                               
登录/注册后可看大图
仍然以权重为[4C,2C,2C,1C,1C]为例,totweight=10C,redundancy=2C,如果X=6,那么Y=[4.8]=5,与表格一致,图1箭头“跃迁”其实就代表了四舍五入的过程。
至于如何用电路实现上述方法,期望能有大佬解答,但毫无疑问电路规模要比Liu的大,Liu用了取巧的方法,但也牺牲了输入摆幅。
所以这也显示出了这种冗余位的弊端。如果加入了冗余电容而使总的电容权重不为2的倍数的话,就会有如图1所示的刻度线对不齐的问题,这就需要四舍五入的方法,导致数字码的转换方式变得异常复杂。
所以Liu在2015年提出的方法,将MSB的电容拆分了并分给低位,这样总的电容权重仍为2的倍数,也有冗余的功能。

Liu的论文放下面了,大家可以看一下。

A_10_bit_320_MS_s_Low-Cost_SAR_ADC_for_IEEE_802.11ac_Applications_in_20_nm_CMOS.pdf

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

A_10b_100MS_s_1.13mW_SAR_ADC_with_binary-scaled_error_compensation.pdf

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

PHD_CCLiu_Design of High-Speed Energy-Efficient SAR ADC.pdf

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

 楼主| 发表于 2024-8-16 09:46:17 | 显示全部楼层
发表于 2024-8-16 15:48:10 | 显示全部楼层
支持一下
发表于 2024-8-18 00:30:11 | 显示全部楼层
thanks
发表于 2024-8-18 12:08:55 | 显示全部楼层
Very interesting thanks
发表于 2024-8-18 22:05:32 | 显示全部楼层
看看
发表于 2024-10-9 21:11:01 | 显示全部楼层
完美的解决了我的疑惑,实际上就是加入冗余后,即使经过数字修正,冗余码对应的模拟量和DEC后对应的模拟量并不是对应的,C C  Liu通过巧妙的减去0.5并限制其输入范围来最大化减小此举带来的误差,妙不可言。希望有大佬说说如何“老老实实”的转换!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-24 20:00 , Processed in 0.032533 second(s), 8 queries , Gzip On, Redis On.

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