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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
楼主: alex_zheng

[求助] 10bitSARADC,带2位冗余仿真后,与原有的电荷分配型相比ENOB还下降了

[复制链接]
发表于 2025-8-14 14:14:47 | 显示全部楼层
本帖最后由 LyuChipo 于 2025-8-14 14:18 编辑


   
alex_zheng 发表于 2025-8-14 14:09
好的,感谢,我再试试看,另外这个输出幅值1.63,有点增益误差老哥您怎么看
...


这个我建议你输入幅值给个1.8V看看还能不能正确比出来,你CDAC里面的电压设的1.8V
不过应该不影响你的动态性能

还有就是你这个窗函数换个别的看看,你这FFT看着有点费劲,Y轴Kdb
回复

使用道具 举报

发表于 2025-8-14 17:43:46 | 显示全部楼层


   
alex_zheng 发表于 2025-8-14 13:20
我是差分结构,加冗余前电容是6+3,冗余后是6+5,因为桥接电容Cs是2Cu(单位电容),所以低位要补偿Cd=3C ...


基于VCM的LSB端的cd电容要接地吧,6+3结构的差分LSB端电容在桥接为2倍Cu时,cd应该为1+2+4=7Cu吧
回复

使用道具 举报

发表于 2025-8-14 18:38:39 | 显示全部楼层


   
xxcj1015 发表于 2025-8-14 17:43
基于VCM的LSB端的cd电容要接地吧,6+3结构的差分LSB端电容在桥接为2倍Cu时,cd应该为1+2+4=7Cu吧
...


差分结构确实需要N-1吗,我的差分直接就是N个电容,如果不减1会有什么影响呢
回复

使用道具 举报

发表于 2025-8-14 18:49:20 | 显示全部楼层
我觉得大概率是理想dac权重设置不对。我建议你先把12bit转化成10bit,再用理想10bit dac做dft吧,,,还有就是你要确定你加的冗余是正确的
回复

使用道具 举报

发表于 2025-8-14 20:03:37 | 显示全部楼层


   
LyuChipo 发表于 2025-8-14 18:38
差分结构确实需要N-1吗,我的差分直接就是N个电容,如果不减1会有什么影响呢
...


是的,基于VCM开关上极板采样结构的工作原理好像最高位是直接比较的,10bitADC就只需要9位的DAC就好,bit0直接不接,下极板采样的才需要10位DAC
以上是我了解到的一些,可能不全对

回复

使用道具 举报

 楼主| 发表于 2025-8-15 09:12:41 | 显示全部楼层


   
大叔想学ADC 发表于 2025-8-14 18:49
我觉得大概率是理想dac权重设置不对。我建议你先把12bit转化成10bit,再用理想10bit dac做dft吧,,,还有 ...


好的,我再加个译码试试,因为其实整个过程确实是就改了理想DAC和电容权重,其他模块都是调试好了的
但是我还是蛮想知道如果要按我这样设置权重应该是什么样的
回复

使用道具 举报

 楼主| 发表于 2025-8-15 09:14:26 | 显示全部楼层


   
xxcj1015 发表于 2025-8-14 20:03
是的,基于VCM开关上极板采样结构的工作原理好像最高位是直接比较的,10bitADC就只需要9位的DAC就好,bit ...


学习到了,那是只有基于VCM结构的差分只需要n-1吗,像其他单调算法之类的呢
回复

使用道具 举报

 楼主| 发表于 2025-8-15 09:21:06 | 显示全部楼层


   
大叔想学ADC 发表于 2025-8-14 18:49
我觉得大概率是理想dac权重设置不对。我建议你先把12bit转化成10bit,再用理想10bit dac做dft吧,,,还有 ...


还有就是冗余的总电容权重和要和十进制的一样吗,我看的那篇论文差分12bit我算了下他的CADC权重和并不是2的11次方-1
回复

使用道具 举报

发表于 2025-8-15 09:43:07 | 显示全部楼层


   
alex_zheng 发表于 2025-8-15 09:12
好的,我再加个译码试试,因为其实整个过程确实是就改了理想DAC和电容权重,其他模块都是调试好了的
但是 ...


一般不会用加冗余去做dft的。都是转化为没有冗余去做dft;注意给的输入信号电平范围,不要上削顶和下削顶
回复

使用道具 举报

发表于 2025-8-15 09:50:08 | 显示全部楼层
ChatGpt's reply: 我看了你的三张图和对话记录,问题核心很可能就在DAC权重配置、Verilog-A建模分母定标,以及数字解码(DEC)没跟上非二进制冗余的权重表这三块。

结合你给的论文表4.7权重(取整后 1800、1010、568、318、178、99、56、30、16、10、5、3、2、1…),以及你 Verilog-A 代码里写死的分母 1024,我觉得现在的 ENOB 下降现象很容易解释:

主要原因

分母没匹配权重总和
你 Verilog-A 模型末尾 V(vout) <+ transition(vref * out_scaled / 1024, …) 是按二进制 10bit(1024 LSB)去标定的。
可是你冗余权重总和并不是 1024,而是论文表格对应的 Σ(weights),差别可能有几个 LSB,导致全码域增益错配 → DNL/INL 出现系统性偏差 → ENOB 掉。

数字解码逻辑没用冗余权重表
你自己说“暂时没有用 11位非二进制译码转 9位”。这等于:DAC 是非二进制权重,但数字部分还在用二进制解码 → 每一步比较结果在数值映射上全错。
冗余设计必须在 SAR logic 最后做一次“按非二进制权重表求和 → 裁剪到目标位宽”的数字错误更正,否则性能直接掉。

位权表和实际电容阵列可能不一致
从 LyuChipo 的质疑来看,你 DAC 的最低几位电容(3、1、2、3、5、8)跟论文/理论位权不完全对齐,可能导致模拟域本身的量化步长不均匀。
非二进制设计要求每一步“可容错区间”必须能被后续位权覆盖,这个比例错了,DEC 也救不回来。

建议验证与修正路径

1. 先用纯理想 DAC + 理想比较器
- 权重表用论文取整后的数值(或你实际电容阵列算出的精确值)
- Verilog-A 里分母改成 WSUM = Σ(weights)
- 用匹配的数字加权求和(简单 DEC)直接输出 10bit 码
→ 如果 ENOB 回到 ~9.8bit,说明根本原因就是 scale/DEC 没对上。

2. 确认电容阵列权重
- 用仿真测每一位单独置位时 DAC 输出差分电压 → 算出实际 LSB 权重表
- 对比 Verilog-A 代码中的硬编码权重,保证一致。

3. 实现简单 DEC(先不考虑速度优化)
- 每一步决策 × 对应权重累加 → 裁剪到 [0, 2¹⁰−1]
- 这样就算有冗余位,也能正确映射到目标输出码。

4. 确认模拟输出摆幅
- 你说全码输出在 1.63V 左右,不到满幅(Vref=1.8V),可能也是 scale mismatch 或桥接电容补偿没算进 Verilog-A 权重导致的。

点评

膜拜!学习了  发表于 2025-8-15 10:07
回复

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-9-5 11:15 , Processed in 0.019604 second(s), 5 queries , Gzip On, Redis On.

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