资讯动态

SAR ADC单位电容下限:切换单调性如何决定你的设计裕量

发布时间:2026/10/27 18:06:33 来源:尧图企业网站定制
1. 从“切换单调性”说起为什么这五个字能卡住你的单位电容刚接触逐次逼近型SARADC里电容阵列设计的时候我一度以为单位电容的取值只受两类东西约束一类是制造工艺给的下限另一类是匹配精度给的上限。前者好理解版图规则说最小能画多大就是多大后者也好理解失配太大DNL和INL就压不住。真正让我栽跟头的是藏在中间的一个不起眼却极其致命的要求——切换单调性。它既不直接写在工艺文档里也不会在matlab理想模型里暴露它只在你的开关策略和电容权重同时确定之后以“某一位切换时输出方向反转”的方式跳出来给你看。先说清楚什么是切换单调性。SAR ADC的核心工作方式是二分搜索先让最高位MSB试1比较器给出结果然后决定下一位试0还是试1。所谓单调就是每一次比较结果确定后下一次测试的模拟电压与上一次相比方向只朝一个固定方向走。比如输入电压比当前猜测值大那么下一步的猜测值必须比当前更大反之必须更小。绝对不允许出现“比较器说大了但下一步却把电压调小了”这种反复横跳的情况。一旦发生SAR逻辑层要么进入死循环要么直接误判转换结果全盘作废。这个要求和电容阵列有什么关系关系太大了。因为在SAR里比较器看到的输入电压是输入信号与电容阵列权重电压之差的变化量。而每一次切换本质上是在改写给某几位电容下极板的参考电压。不同位电容的权重不一样切换动作产生的电压跳变幅度也就不一样。如果这些跳变之间不能保证大小和方向的正确配合单调性就会崩。而在所有触发单调性问题的因素里单位电容取值偏小导致的高位寄生电容扰动和切换策略中特定权重组合的“回跳”是最常见的两个坑。这篇文章就把我实测和复盘过程中积累的东西拆开讲。适合已经在做SAR ADC架构级仿真、或者准备流片但还没彻底想清楚开关时序的工程师参考。如果你是刚入门的学生我也尽量把原理讲透让你避免在第一个版图阶段就埋下后期根本无法弥补的雷。2. 单调性失效的底层机制寄生、权重与回跳三角2.1 为什么小单位电容会让单调性变差单位电容做小最直接的后果是每一位的绝对电荷量变小。假设单位电容 Cu 取 5 fF阵列总电容14位分段可能也就一两百 fF。这时候版图上任意一段走线、任意一个开关管的源漏结电容哪怕只有 0.1 fF相对单位电容来说都不是可以忽略的“小量”。而比较器正负输入端口的寄生电容、栅极电容、DAC输出节点的寄生更是直接与阵列并联相当于在电容网络上偷偷加了一堆不可控的固定权重。这些寄生电容叠加到阵列上会改变实际权重比例。理想情况下从二进制权重看第 k 位电容是 2^k 个 Cu。但因为寄生实际从最高位往下看相邻两位的真实权重比不再是严格的 2:1。切换单调性要求权重比至少满足一个条件高位的真实权重必须大于低位的真实权重之和。当单位电容小到一定程度、寄生大到不可忽略时高位权重会被寄生“稀释”导致高位比低位大不了多少甚至出现低位权重之和反超高位的情形。结果就是你给高位加一个“1”的切换动作产生的电压增量反而小于给低两位同时加“1”的增量在二分搜索过程中就出现区域性回跳单调性失效。这里可以类比一个日常场景你把一大一小两个砝码放在天平上小砝码本身只有1克但你托盘的边角料沾了0.2克灰。于是你以为的“小砝码1克”实际变成了1.2克而另一个标称2克的砝码实际只有2.0克两个砝码之间的分辨能力就变得很模糊。SAR里的比较器就是这个天平它无法区分“两个1.2克”和“一个2.0克”之间到底谁大。反映在性能上就是转换曲线出现非单调的台阶。2.2 切换策略里的“回跳”陷阱电容阵列的切换方式五花八门传统二进制权重、Vcm-based、单调开关、split-cap等。很多看似省功耗、省面积的切换策略恰恰容易制造单调性问题。我实际踩过的一个典型场景是上极板采样 MSB先试探的结构。这种结构里采样阶段比较器输入端的共模电压被设置为 Vcm采样结束后首先对最高位进行判断。最高位对应的操作是将最高位电容的下极板从 Vcm 切换到 Vref 或 GND。问题在于如果最高位的权重正好等于或非常接近剩余所有位的总权重那么这一步切换产生的电压变化在理想情况下恰好是满幅的一半左右。但当单位电容偏小、寄生偏大时最高位的实际权重会偏离理想值。若高位实际权重偏小最高位切换后的DAC输出变化量小于剩余位总权重的一半就会出现最典型的“MSB试1失败回到0但剩余位最大也只能到稍小于1/2的位置”的局部非单调。更隐蔽的是某些动态切换策略比如在逐位逼近过程中同时操作多个电容以缩短建立时间或降低参考电压扰动。这种多电容同切会引入老练的、方向相反的电压叠加叠加后的总变化方向有时会变得不明确。如果权重设计没有保留足够的“单调裕量”这种同切就会直接把曲线推过临界点。2.3 关键的数学判据用公式把单调性的条件说清楚。设第 k 位从 MSB 到 LSB 编号依次减小的标称权重为 W_k 2^k * Cu。实际权重为 W_k 2^k * Cu δ_k其中 δ_k 是寄生和失配引入的偏差。对于逐次逼近的二分算法要保证所有比较节点上决策单调需要满足W_k (W_{k-1} W_{k-2} ... W_0) margin也就是说每一位除LSB外的权重严格大于所有低位权重之和还必须留出一定裕量。这就是“冗余权重”概念的来源。SAR里常见的冗余电容redundant capacitor就是为了人为制造这个裕量。如果你不加冗余那么 δ_k 只要稍微为负单调性就开始摇摆。而单位电容越小δ_k 相对于 W_k 的比例越大你被迫要么加更多冗余要么放弃更小的单位电容。所以“限制最小单位电容取值”的本质不是在工艺最小尺寸那边设限而是在“保证权重单调的统计边界”那边反推一个下限。这个下限通常比工艺最小尺寸大得多也更具有设计指导意义。3. 实际推算从失配模型反推单位电容下限3.1 失配模型与方差公式工程上常用 Pelgrom 模型描述电容失配同一阵列里两个单位电容之间的相对标准差近似为σ(ΔC/C) A_C / sqrt(W * L)其中 A_C 是工艺相关的失配系数单位通常是 %·μm。W 和 L 是电容的物理尺寸。这个公式说明一个残酷的现实单位电容的面积越大相对失配越小面积越小相对失配越大而且是平方根关系不是线性关系。也就是说你想把失配降一半面积得扩大四倍。这就是“最小单位电容不能太小”的第一个物理来源。假设一个12位SAR采用全二进制权重最高位与最低位权重比4096:1。LSB电容的相对失配对整体DNL的影响最大因为LSB权重最小、绝对失配虽然小但相对噪声占比高。为了满足DNL 0.5 LSB这是常见要求需要对所有位的失配进行统计叠加。最常用的办法是做一个蒙特卡洛仿真但在预研阶段可以用平方和根估算σ_DNL ≈ sqrt( sum_{i1}^{N} (σ_i)^2 )其中 σ_i 是每一位电容失配导致的输出码误差单位是LSB。假设每一位的相对失配都是 σ则第 i 位权重 Wi 造成的码误差约为 σ * Wi / Cu。把所有位加起来约等于 σ * sqrt( (2^N)^2 / 3 )简化来看单位电容失配系数直接决定了DNL的统计边界。用具体数字算一下。12位SAR要求DNL0.5 LSB3σ则单次误差标准差要控制在0.167 LSB左右。假设工艺失配系数 A_C 为 1%·μm实际先进工艺可能优于这个值但老工艺或特殊结构会差一些单位电容10 fF时若用普通MIM电容面积假设为 5 μm × 5 μm25 μm²σ ≈ 1%/5 0.2%。这看起来很小但换到LSB端的绝对电荷误差时还需要乘以权重。实测下来10 fF单位电容在不少工艺里已经接近DNL极限了。若把单位电容降到2 fF面积缩到 3 μm × 3 μm9 μm²σ ≈ 1%/3 0.33%DNL的统计预算立刻紧张起来。这就是为什么很多人做到8~10位时敢用5 fF以下但做到12位以上时普遍会把单位电容抬到20 fF以上的原因之一。3.2 单调性裕量与冗余的关系除了失配单调性本身也是一个统计条件。前面说了每位权重必须大于所有低位权重之和加裕量。在理想工艺下权重比正好是2:1高位减去所有低位之和恰好等于一个LSB的权重——也就是说裕量只有1 LSB。而失配和寄生让这个裕量可正可负。一旦为负单调性失效。设计上应对方式有两种一是把单位电容做大减少失配保住那“1 LSB的脆弱裕量”二是加入冗余电容人为把裕量扩大到8、16或者32 LSB这样即使失配和寄生吃掉一部分剩下来的裕量还能保证单调。但冗余的本质是用面积和功耗换鲁棒性。加了冗余后转换周期变长、逻辑复杂度上升有时候你发现与其加复杂冗余不如老老实实把单位电容做大一点。从我个人的工程实践看如果项目目标是“一次流片成功性能稳定”我宁愿把单位电容往大里取而不是依赖复杂的数字校准或冗余逻辑。原因无他SAR里的模拟前端它最可爱的地方就是简单。一旦你在电容阵列里塞太多花活调试时间会指数级增加。而单位电容做大说白了就是多花点面积功耗多一点但模拟风险大幅下降。3.3 一个简单的反推流程在没有完整工艺PDK做蒙特卡洛时可以用这样一个流程快速预估计单位电容下限确定ADC位数N和DNL/INL指标。比如12位要求INL1 LSBDNL0.5 LSB。从工艺文档或foundry推荐值里查到电容失配系数 A_C。假定单位电容Cu计算对应物理尺寸根据电容密度例如MIM电容密度 2 fF/μm²则Cu5 fF对应2.5 μm²。用Pelgrom公式算出 σ。用平方和根估算整体INL/DNL的σ并按3σ或4σ对指标做预算。如果预算超标增大Cu回到第3步直到达标为止。这个流程虽然粗糙但在架构选型阶段足够用。真正流片前一定要用工艺厂提供的蒙特卡洛模型跑一遍全阵列的行为级仿真而不是只跑理想模型。因为理想模型的switch永远单调而真实版图的寄生永远不讲情面。4. 实操过程我如何定位单调性失效并调整设计4.1 一次实际失败的定位过程说一个我自己调过的14位SAR设计。起始方案选的是单位电容Cu4 fF分段结构高7位用二进制加权低7位用C-2C或split结构。目的是省面积整体电容阵列大约100 fF左右。架构仿真在理想模型下DNL/INL都很好切换策略用的单调上极板采样方案仿真跑出来的有效位数接近13.5 bit看起来很有希望。第一次版图后仿真时问题来了。在特定输入电压区间大约在满幅的1/4、1/2、3/4附近转换曲线出现明显的非单调台阶换算成DNL达到-1.2 LSB。这不是失配导致的随机误差因为多次蒙特卡洛仿真里同样的位置反复出现。我首先怀疑是寄生电容不对称。检查高7位开关管源漏电容发现高位开关管为了降低导通电阻尺寸做得偏大源漏结电容达到0.5~1 fF级别。这些电容在切换瞬间会耦合到DAC输出节点。对4 fF的单位电容来说0.5 fF相当于12.5%的额外权重偏移完全足以吃掉那1 LSB的单调性裕量。定位步骤第一步提取版图寄生参数RCCC跑后仿确认非单调的具体码位。第二步把后仿DAC输出节点电压变化轨迹打出来看每一次比较器判断后DAC输出是否出现了“反方向跨越”。第三步用分段开关的策略排查分别只让最高位切换、只让第二位切换观察DAC输出节点的电压变化量和理想权重对比。第四步确认问题集中在开关管寄生而不是电容本体失配后回看单位电容取值。最终调整是把Cu从4 fF提到12 fF同时把高位开关管拆成多级尺寸阶梯降低源漏寄生。改动之后同样的版图寄生下单调性裕量恢复到了接近8 LSB部分得益于冗余后仿真DNL降到-0.3 LSB以内。代价是阵列面积增大了近三倍但换来的是稳定性和可预测性我认为完全值得。4.2 切换策略调整的细节在Cu放大后我同时简化了切换策略放弃了一个“两段式动态开关”的节能方案改成传统的Vcm-based切换。为什么放弃因为这个节能方案在低单位电容时可以靠理想模型算出很漂亮的功耗数字但它对寄生非常敏感它依赖两位电容的电压变化方向相反、叠加后得到较小总跳变。一旦寄生让某一方的权重偏移总跳变方向就容易反转单调性就崩。而传统Vcm-based切换每一步只操作一位或少数位方向清晰单调性判断简单调试成本低。这里我要强调一个很多资料里不提的细节切换策略的“理论功耗优势”和“实际鲁棒性”是两个维度。如果你做的是可穿戴设备里的超低功耗SAR你也许愿意花大量时间调动态开关来榨干每纳安电流但如果你做的是工业测量或医疗设备里的精密ADC功耗多一点无所谓稳定压倒一切。我的原则是功耗和面积可以在其他模块里省不要在电容阵列的单调性上赌。4.3 参数计算示例拿我常用的设计指标做一个完整计算示例。要求14位SARDNL0.5 LSB3σ工艺失配系数 A_C 0.5%·μm较为先进的模拟工艺MIM电容密度 2 fF/μm²。尝试 Cu 4 fF面积 2 μm²对应尺寸约 1.4 μm × 1.4 μm。σ(ΔC/C) 0.5% / 1.4 ≈ 0.357%。14位满量程对应 16384 个LSB最大权重位相对误差导致的DNL贡献粗略按 σ * 2^14 / sqrt(3) ≈ 0.357% * 16384 / 1.732 ≈ 33.8 LSB这显然不可接受。但这是“全阵列全相关”的极端估算实际蒙特卡洛结果不会这么糟但这个数量级提醒我们4 fF对14位来说太危险。尝试 Cu 32 fF面积 16 μm²尺寸 4 μm × 4 μm。σ 0.5% / 4 0.125%。粗略估算 DNL σ ≈ 0.125% * 16384 / 1.732 ≈ 11.8 LSB。依然偏大这说明对14位高精度而言3σ 0.5LSB 的要求本来就意味着需要校准或者分段结构而不是单纯把Cu拉到某个体积就能解决。但如果采用分段结构比如高7位和低7位分离段间用衰减电容低位阵列的权重不再是全二进制扫描DNL主要由段内匹配决定统计难度大幅下降。此时Cu32 fF对7位分段来说σ ≈ 0.125%乘以128 / 1.732 ≈ 0.92 LSB再配合冗余勉强够用。这个例子说明一个关键点单位电容下限不是一个孤立的数字它和你选择的分段结构强相关。全二进制14位阵列的匹配难度是地狱级分段后低位部分的匹配要求大幅降低单位电容可以取小一些高位部分因为电容个数少反而可以用更大的单位电容。整体最优解往往是一个“高位大Cu、低位小Cu”的分布而不是全网一个值。5. 常见问题与排查技巧实录5.1 问题速查表现象可能原因排查方法对应调整转换曲线在特定码位出现-1 LSB的台阶高位实际权重小于低位权重之和后仿提取寄生单独切换每位观察电压跳变加大单位电容或增加冗余位多次蒙特卡洛仿真中同一位置反复出现非单调开关管寄生不对称或者采样开关电荷注入对比不同开关尺寸下的后仿结果优化开关尺寸阶梯降低源漏寄生只有某些温度/电压角下出现非单调寄生电容随偏压变化导致权重漂移跑PVT角度的寄生提取增大单调性裕量或改用对寄生不敏感的切换策略理想模型完全正常后仿崩版图寄生或耦合提取RCCC逐段对比理想模型按寄生分布优化布局权重加了冗余后仍然非单调冗余位切换时序不对或冗余位本身的寄生过大检查冗余位的开关时序和负载调整时序或增大冗余位电容这个表是我反复用过很多次的排查框架。核心思想是不要一上来就怀疑电容失配。在实际工程中开关管寄生、走线耦合、参考电压扰动引起的单调性问题远比纯随机失配更常见。因为随机失配是平滑的、统计的它不会让曲线在某几个孤立的码位出现“垂直”的非单调台阶。只要你看到台阶十有八九是系统性偏差比如寄生权重偏移、开关时序错误、比较器失调突变等。5.2 几个我踩过的隐蔽坑第一个坑比较器输入对管的寄生电容也会随输入共模变化而改变。在SAR转换过程中比较器输入端的共模电压不是恒定的它随每次切换而移动。如果输入对管工作在弱反型区Cgs会随Vgs变化明显这个变化的电容直接挂在DAC输出节点上相当于一个随共模漂移的额外权重。这个权重在某个输入区间可能会突然让单调性裕量变负。排查时如果发现非单调台阶的位置和输入共模的某个特定值重合就要重点检查比较器输入管的Cgs-Vgs曲线。第二个坑参考电压源的高频阻抗不够低。SAR切换瞬间DAC会从参考电压抽取大电流脉冲。如果参考电压源的高频阻抗偏高切换瞬间Vref会塌陷导致实际跳变幅度小于理论值。这个“电压塌陷”在低位切换时影响小在高位切换时影响大造成一种“看起来像权重失配”的假象。我遇到过一版设计怎么调电容尺寸都无法消除非单调最后发现是片外参考电压的PCB走线寄生电感过大。在参考电压引脚旁边多放几个100 nF和1 nF的陶瓷电容问题直接消失。第三个坑分段阵列的段间耦合电容attenuation capacitor取值不精确。分段结构里段间电容通常不是整数个单位电容而是小数倍比如 0.5 Cu 甚至更复杂。这个电容如果受到版图边缘效应影响偏差一点点就会破坏低位段对高位段的权重关系。而段间电容往往位于布局中心四周环境复杂极易受到周围金属层密度影响。建议在版图中给段间电容做 dummy 包围并且在仿真时把它单独提出来做蒙特卡洛而不是依赖整体阵列的统计结果。5.3 经验心得先保单调再抠性能我做ADC这几年一个很深的体会是单调性比INL/DNL数字更重要。为什么因为非单调的转换曲线不仅意味着精度指标超差还可能导致系统级算法直接失锁。比如在反馈控制系统里ADC的非单调会让环路出现错误的极性和正反馈系统直接振荡。这种故障是灾难性的不是“精度差一点”那么容易接受。所以我在设计评审时首先看的就是后仿真里的转换曲线是否全程单调其次才是INL/DNL的统计结果。也就是说单位电容的取值下限不应该只按“满足INL指标”来选而应该按“在最坏PVT和寄生下仍能保证单调”来选。这个下限通常比满足INL的下限更大一些尤其是在使用复杂切换策略时。如果你发现你的单位电容已经压到很小、面积很省但你必须依赖精确的时序、复杂的校准才能保证单调那我建议你认真评估一下把单位电容放大30%~50%省掉这些复杂逻辑整体风险是不是更低以我个人的项目经验答案是几乎总是更低。6. 后续拓展从单位电容下限到系统级冗余设计6.1 冗余设计如何放宽单调性约束如果你确实想用更小的单位电容一个有效的手段是引入冗余电容。冗余的思路很简单不要求每一位严格满足权重大于低位之和而是设计成“前一位权重大于低位之和 冗余量”。冗余量的存在让即使出现一定的失配或寄生偏差单调性依然能保持。以经典的三进制冗余为例假设正常二进制权重为 1、2、4、8改成 1、2、3、8这个“3”就是一个冗余权重——它不是2的幂但它是12之和加1刚好保留了1个LSB的裕量。把“3”替换掉原来的“4”会损失一点动态范围但SAR算法可以通过“非二进制搜索”来修正最终不损失有效位数。单位电容越小、失配越大你需要保留的冗余量就越大。冗余量设计好之后最低可用的单位电容可以明显减小有时甚至能缩小到原来的一半。但冗余不是白拿的它增加了比较周期数因为非二进制搜索需要额外的时钟周期来收敛它还增加了数字逻辑的复杂度需要专门的SAR控制状态机。如果你做的是极高速SAR比如几百MS/s每增加一个周期都是沉重的代价如果你做的是中低速高精度SAR冗余几乎是无脑收益。6.2 如何在版图层面配合单位电容取值单位电容取定后版图布局直接影响“实际有效单位电容”的准确性。我强烈建议为电容阵列四周加上一圈dummy电容。原因很简单边缘电容的电场泄漏和周围环境不一致会让边缘单位电容的有效值偏离中心位置造成系统性的梯度误差。这种梯度误差在单位电容较小时尤为严重因为边缘效应占比更大。另一个版图细节是开关管的沟道长度和宽度要和单位电容尺寸一起画进同一个“单元”里。很多设计把电容和开关分开布局导致开关到电容的走线长短不一寄生也长短不一。更好的做法是设计一个“unit cell”里面同时放一个单位电容和它对应的开关管然后阵列由这些unit cell复制而成。这样每个单元的寄生基本一致系统性的权重偏差被降到最低。6.3 未来设计趋势对单位电容取值的影响在先进工艺节点金属电容MOM的密度越来越高单位电容做到了1 fF甚至0.5 fF。但要注意工艺变先进不代表单调性问题消失反而因为单位电容更小、绝对电荷更少寄生和漏电的影响变得更加尖锐。另一方面许多新架构如噪声整形SAR、两步SAR通过引入有源放大或数字滤波部分缓解了匹配和单调性压力但对功耗和面积的代价也不小。从我观察到的趋势看中等精度10~14位的SAR并不会无脑追求最小单位电容反而是很多产品在满足面积约束的前提下愿意用比工艺极限大得多的单位电容来换取鲁棒性。毕竟芯片设计最终是工程权衡不是极限挑战。单位电容取值怎么平衡性能指标、面积、功耗和设计风险永远没有一个绝对正确的答案但“保证单调性”永远是必须守住的底线。我个人现在做新设计时第一步不是翻工艺文档找最小尺寸而是先在行为级模型里把切换策略定下来然后用一个“最坏寄生估算”反推单位电容下限。等这个下限确定后再去评估是否需要冗余、是否需要逻辑校准。这样一来后面的版图阶段基本不会因为单调性问题返工。希望这个方法也能帮你少踩几个我曾经踩过的坑。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑