资讯动态

SAR ADC逐次逼近模数转换器设计:从二分法原理到版图实践

发布时间:2026/10/20 18:37:55 来源:尧图企业网站定制
很多人第一次听到“SAR ADC”这个全称——逐次逼近型模数转换器——时都会先被这串字母组合绕晕。更别提标题里还加了个“数模转换器”明明ADC是模数转换器怎么又扯上DAC了这里其实是一个常见的叫法混淆SAR ADC本身是模数转换器但它的核心工作依赖于内部一个精密的数模转换器DAC配合比较器完成逐次逼近。所以你看到的“SAR ADC逐次逼近数模转换器及其集成电路设计”本质上说的是整个逐次逼近模数转换链路的设计适合正在学习模拟集成电路、准备做项目或者刚入行做芯片设计的读者。这篇内容会从原理底层的二分法逻辑一路拆到比较器、CDAC电容阵列、SAR逻辑、版图与仿真验证把“为什么这么做”讲透也把教程和视频怎么配合看这件事讲清楚。1. 先从应用场景说起为什么SAR ADC是被低估的常青树1.1 从手机到工业控制SAR ADC的主场在哪在ADC家族里SAR ADC经常被拿来和流水线ADC、Sigma-Delta ADC做对比。很多人一听就下意识觉得SAR ADC“精度不够高、速度不够快”好像只配做个低端角色。但实际上当你翻开如今手机、基站、工业传感器、医疗设备、汽车电子的芯片规格书SAR ADC出现的频率高得惊人。它的精度范围通常覆盖8位到18位采样速率从每秒几十K次到几十M次甚至上百M次这个区间正好卡在大量真实应用的核心需求上。举个例子一个电化学传感器需要采集微弱电流信号Sigma-Delta ADC虽然精度高但转换延迟大、功耗高而SAR ADC天然具有采样即出结果的低延迟特性功耗又随采样率线性变化非常适合电池供电的便携设备。再说工业控制系统里的多通道数据采集系统往往需要同步采样多个通道SAR ADC密度高、面积小可以在一个芯片里塞下多路转换这种集成优势是很多其他架构比不了的。更常见的是电机控制里的电流环采样要求数百K到数兆的采样率还要忍受较强共模干扰SAR ADC配合片内比较器就能轻松胜任。1.2 和Sigma-Delta、流水线ADC相比SAR凭什么活到现在这三个ADC架构常被放在一起选型。流水线ADC用多级级联的方式把转换时间摊薄能做到很高的采样率但级间放大器很难做功耗和面积也不小Sigma-Delta ADC通过过采样和噪声整形换精度对时钟要求高而且输出延迟大不适合闭环控制这种实时性强的场景。SAR ADC则走了一条“简单粗暴”的路线一个比较器、一个DAC、一个数字逻辑几样东西反复迭代就能把模拟量一点点“试”出来。从芯片设计成本的角度看SAR ADC最大的优点是几乎没有模拟放大器整个核心电路数字化程度高天然适合先进工艺因为它的精度主要靠电容匹配和电压比较不需要高增益运放堆功耗。这也是为什么在22nm、14nm甚至更小线宽下SAR ADC依然是高能效比的代表。对我个人来说做过几个项目之后越来越觉得SAR ADC不是“将就”的架构而是一个在精度、速度、功耗、面积之间平衡得极其聪明的选择。它的存在本身就是一门取舍的艺术。2. 逐次逼近的底层逻辑二分法搜索背后的“称重”思维2.1 从天平称重讲起逐次逼近的物理直觉理解SAR ADC最好的起点不是电路图而是天平称重。想象你手里有一台天平和一组砝码砝码的面值依次为物体重量的一半、四分之一、八分之一……你要称一个未知物体会怎么做常识告诉你先放最大的砝码如果天平往砝码侧沉说明砝码比物体重那就把砝码拿掉如果往物体侧沉说明砝码不够保留这个砝码继续放下一档砝码再观察天平倾向。如此反复每一轮决策都把不确定区间缩小一半直到最小刻度。SAR ADC干的正是这件事。比较器就是那台“天平”DAC和电容阵列就是那组“砝码”SAR逻辑则是帮你记录每一轮决策“保留/移除”的大脑。每一次比较只回答一个问题当前估计值是比输入电压大还是小这个答案可能是1也可能是0对应二进制位从最高位到最低位依次落下。因此一个N位的SAR ADC恰好需要N次比较每次比较就把搜索范围减半整个转换过程就是一次完整的二分查找。2.2 转换过程拆解采样、比较、逼近、收敛落实到电路行为上一次完整的SAR转换分两大阶段采样阶段和转换阶段。采样阶段采样开关闭合输入信号Vin被记录在采样电容上此时电容阵列里的所有下极板连接到输入信号上极板接共模电压采样开关断开后进入保持状态电容上极板保存了输入信号的信息。转换阶段开始后SAR逻辑先把最高位置1让DAC产生一个Vref/2的电压与采样值比较。如果比较器输出为高说明Vin Vref/2这一位保留为1如果输出为低说明Vin Vref/2这位归零。然后SAR逻辑再控制次高位置1DAC输出变成Vref/2 Vref/4或直接跳到Vref/4继续比较。这样说可能还是有点抽象。我举个具体数字假设参考电压Vref 1V一个4位SAR ADC要转换0.55V的输入。第一轮把最高位置1DAC试探电压0.5V0.55V大于0.5V最高位存1第二轮试探电压0.5 0.25 0.75V0.55V小于0.75V次高位存0第三轮试探电压0.5 0.125 0.625V0.55V小于0.625V第三位存0第四轮试探电压0.5 0.0625 0.5625V0.55V小于0.5625V最低位存0。最终输出1000即0.5V量化误差0.05V。这个例子虽然把某些细节简化了但你已经能看出SAR ADC收敛的完整脉络每一位都在修正前一位的误差让估计电压一步步逼近真实输入。2.3 必须吃透的几个公式LSB、量化误差与有效位数做SAR ADC设计有几组数值你绕不开。首先是LSB——最低有效位对应的电压公式很简单LSB Vref / 2^N这里的N是ADC位数。例如Vref 1V、N 10LSB约等于0.976mV。这个概念是所有量化误差讨论的基石。理想情况下一个N位ADC的最大量化误差是±0.5LSB也就是说转换结果和真实模拟值之间最多差半个最低位。这个误差不是你的电路做得不好而是数字表示本身天生无法完整描述连续模拟量属于原理性误差。接下来是理想信噪比公式。一个满幅正弦输入、不存在其他噪声时N位ADC的理论信噪比SNR 6.02N 1.76dB。别小看这个式子选型、评估指标时天天要用。10位ADC的理论SNR约61.96dB12位约74dB。如果实测的SNR只有60dB说明系统里多余噪声已经吃掉了一部分有效精度这时就用有效位数ENOB来反映真实性能ENOB (SINAD - 1.76) / 6.02其中SINAD是信号与噪声加失真比。设计时我会先把ENOB目标定出来再反推每个模块的噪声预算和失真预算这是很实用的做法。另外还要记住动态范围DR和满量程输入的配合尤其是低增益信号链里信号幅度拉不高时信噪比会被底噪严重限制这些都会在后面的仿真和实测里反复出现。3. 三大核心模块的设计拆解比较器、CDAC与SAR逻辑3.1 比较器SAR ADC的“心脏”失调电压与噪声控制的平衡比较器直接决定了每一次“天平称重”的判断是否正确由于SAR ADC每次转换要串行比较N次任何一次比较错误都会直接污染输出码所以比较器设计必须在速度、失调电压、噪声和功耗之间取平衡。先看失调电压。如果比较器的输入端存在一个固定的失调offset相当于天平一开始就往一边偏了会导致所有比较结果发生系统性偏移。解决失调的思路有三种一是把比较器输入管的尺寸做大靠工艺匹配来降低随机失调但这会增大寄生电容、减慢速度二是用自动调零在每次转换前先对失调采样并反馈抵消三是在系统级做后台校准用数字逻辑把失调估计出来再补偿掉。在低精度设计中第一种做法通常足够10位以上高精度设计我一般会预留校准位。再看噪声。比较器在过零判断时输入等效噪声会叠加到信号上噪声太大时比较器会在临界点附近来回抖动产生不确定的输出。设计上有一个实用经验比较器输入等效噪声要控制在0.5LSB以内甚至更低具体数值可以从整体SNR预算里分配。优化噪声通常需要提高输入管的跨导和尾电流这会带来功耗上升。对速度的要求也值得注意每次比较需要让输出在一个时钟周期内稳定下来动态比较器虽然有零静态功耗的优点但回踢噪声较大需要在输入端加预放大器或隔离级。我在实际项目中会先用行为级模型确定比较器允许的最大延迟和噪声再选择动态比较器还是带前置放大器的结构而不是一上来就凭经验拍板。3.2 电荷重分配DAC电容阵列的匹配与尺寸选择比较器之外最核心的模拟模块就是DAC。SAR ADC中绝大多数采用电荷重分配CDAC结构它利用电容阵列的电荷守恒把参考电压折算成对应的试探电压。与电阻DAC相比电容DAC没有静态功耗而且可以与采样电容共用是一种很优雅的实现方式。常规二进制加权电容阵列的总电容是2^N个单位电容每一位的权重依次减半。采样时所有电容同时采样输入信号转换时逐位投切到Vref或GND在上极板产生一个与数字码对应的电荷量从而改变比较器输入电压。单位电容Cu的选择是一个核心权衡。Cu太小电容总量小、面积小、功耗低但失配和工艺偏差会严重影响线性度Cu太大采样和切换时的动态功耗上升而且前级驱动电路驱动大电容也更吃力。在65nm及以下工艺中MIM电容的密度和匹配性都较好实际项目中通常取单位电容在几十飞法到一两百飞法之间再根据匹配仿真结果微调。还有一点电容阵列越大采样kT/C噪声越小但别只顾着降噪还要关注版图布线的寄生电容。寄生电容会吃掉部分信号电荷导致增益误差通常通过版图对称和加屏蔽来解决。这里有一个新手常犯的错误只关注了DAC的静态匹配忽略了动态建立时间。每次切换电容后比较器输入端电压需要稳定到最终值的误差范围内才能开始比较如果RC时间常数太大前几次比较还能容忍最后几次低位比较时建立误差会淹没在有效位里。所以设计时要估算电容网络的时间常数必要时给CDAC增加底部板极驱动缓冲或者合理选择开关尺寸。3.3 SAR逻辑数字部分最容易被低估的时序约束SAR逻辑虽然叫“数字部分”但在混合信号芯片里它并不简单。传统同步SAR逻辑用一个状态机在时钟节拍下逐位产生控制信号好处是时序清晰但坏处是功耗白白消耗在空闲时钟上而且高速时钟会通过衬底和电源干扰模拟部分。因此现在很多中等以上速度的SAR ADC都倾向异步SAR架构比较器比较完成后自动产生“比较完成”信号再触发下一轮电容切换整个转换链条像多米诺骨牌一样自然推进。异步逻辑的速度不再受固定时钟限制每轮比较时间也能自适应信号幅度——大信号时比较器翻转快小信号时稍慢——总体上能显著提升能效。设计SAR逻辑时最容易翻车的点有三个。第一是毛刺问题逻辑信号切换时会产生瞬态电流尖峰这些尖峰通过寄生电容耦合到比较器输入可能让刚刚稳定的比较结果被二次触发。常用的应对手段是把控制信号尽量做单调翻转并在敏感节点加去耦电容。第二是时序收敛异步环路中有多个反馈路径需要仔细做静态时序分析和动态仿真确认否则会出现某一位逻辑还没建立完下一位就开始切换的竞态问题。第三是输出编码SAR逻辑内部用的可能是温度和二进制混合编码输出给数字后端时要保证同步性好防止毛刺进入后级数字逻辑。4. 从10位1MS/s案例看完整设计流程4.1 指标定义和架构选择为什么先定SNR和功耗理论讲再多最后都得落到具体项目上。这里我以一个10位、1MS/s采样率、电源电压1.2V的SAR ADC为例把从零到版图的设计流程完整走一遍。第一步永远是定指标。做模拟芯片最忌讳“什么都想要”第一步应该把可量化指标列成一张表分辨率定10位采样率1MS/sENOB目标9.2位以上功耗目标尽量低于0.5mW输入信号幅度0.6Vpp参考电压1V。然后反推LSB约为0.976mV理想SNR约61.96dB如果ENOB要9.2位SINAD约57.1dB留给所有非理想因素的总预算只有约5dB这在现实中已经很紧张了。架构选择上10位1MS/s这种指标其实是SAR ADC的最舒适区。不需要流水线那种复杂级间放大也不像Sigma-Delta那样需要高阶调制器一个紧凑的异步SAR结构就能覆盖。我对新项目的习惯是先用行为级Verilog-A模型跑一遍系统级仿真把比较器噪声、失调、DAC失配、建立误差这些非理想因素逐项注入观察哪种组合能满足指标这样能在消耗大量设计精力之前先排除掉不可行的方案。4.2 从理想模型到晶体管级实现五步走具体设计我习惯分五个阶段推进。第一阶段是行为级建模用理想ADC把转换算法跑通产出理想输出码流这个阶段主要验证算法逻辑和时序控制策略也用来生成后面仿真需要的参考数据。第二阶段是确定DAC电容阵列规模根据0.5LSB失配目标估算单位电容10位精度对电容匹配要求并不苛刻单位电容取50fF左右即可总电容约51200fF即51.2pF但这只是粗略估算具体还要结合工艺失配参数来定。第三阶段是比较器电路设计目标是输入等效噪声小于0.5LSB即0.5mV左右延迟控制在20ns以内功耗控制在几十微瓦量级。第四阶段是SAR逻辑和后端数字接口设计这步可以先用Verilog写RTL再综合成门级网表最后与模拟电路做数模混合仿真。第五阶段是版图设计把电容阵列、比较器、逻辑按区域规划好再进行寄生提取和后仿真验证。晶体管级实现时采样开关建议用自举开关bootstrapped switch它能让开关导通电阻和输入电压基本无关从而显著降低采样非线性。比较器我通常选择带前置放大器的锁存比较器前置级提供增益并抑制回踢噪声锁存级负责快速翻转。这里的每个元件参数都需要几轮迭代把比较器噪声调到目标之后还要看功耗是否超标电容阵列投切时的动态电流会不会干扰参考电压如果会就得在旁边加局部去耦电容。4.3 仿真口径DNL、INL、THD、ENOB怎么算才准设计完成后仿真验证是最容易“骗自己”的环节。很多人做ADC仿真只跑一个斜坡输入看看输出码对不对这远远不够。专业一点的流程是先跑斜坡输入用码直方图法计算微分非线性DNL和积分非线性INL。DNL衡量每个码宽与理想1LSB的偏差INL则是DNL的累积。对10位SAR ADCDNL和INL都应在±1LSB以内最好是±0.5LSB以内这样保证单调性没有丢码。再跑正弦输入做FFT频谱分析读出SFDR、THD、SINAD、ENOB。这里有个细节FFT点数要选相干采样即采样点数、信号周期数、采样率之间满足整数关系否则频谱泄漏会让结果虚高或虚低。我一般会花点时间写好测试向量生成脚本让输入信号频率和采样率满足相干条件再取多个不同频点做蒙特卡洛仿真看性能分布。功耗仿真也要单独跑尤其要区分静态功耗、动态功耗和比较器功耗这样后续如果功耗超了能快速定位是哪部分的问题。5. 版图设计模拟精度的“最后一公里”5.1 电容阵列的共质心布局怎么做很多工程师功能仿真做得漂亮一到版图就原形毕露。SAR ADC的精度很大程度由电容匹配决定而匹配的前提是版图对称。二进制加权电容阵列中最高几位电容占比较大它们的失配直接影响线性度。标准做法是采用共质心布局把单位电容排列成正方形或长方形阵列让每个权重位电容围绕中心点对称分布这样无论工艺梯度还是压力梯度都能在空间上被平均掉。同时要给电容阵列加一圈Dummy电容保证边缘电容和内部电容的寄生环境一致否则最外圈电容因为邻近效应会和内部电容有系统性偏差。阵列周围不要走长距离的数字信号线数字翻转时产生的耦合会直接打进电容上极板我有一次后仿真发现INL明显恶化最后排查下来就是一组数字控制线穿过了电容阵列边缘。版图做完之后一定要做寄生提取把提取后的网表再跑一次动态仿真对比前仿真和后仿真的ENOB差距如果损失超过0.5位就要回去找原因。5.2 寄生、串扰与供电噪声的规避混合信号版图里有一句老话模拟设计到最后都是在跟寄生较劲。SAR ADC的高位电容阵列动辄几皮法开关切换时会产生很大的瞬态电流这条电流路径上的任何寄生电感、寄生电阻都会导致电源电压塌陷。所以在版图规划时我会把模拟电源域和数字电源域物理分开走参考电压走专门的宽金属线模拟管子和数字逻辑之间加隔离环。电源网络上比较器电源附近和参考电压节点附近一定要放去耦电容去耦电容不是象征性地放几个而是要根据瞬态电流估算需要的容量。另一个容易被忽视的点是衬底噪声。SAR逻辑翻转速度和边沿陡峭度都比较高数字噪声可以通过衬底耦合到比较器和电容节点。除了加隔离环还可以把比较器的输入端和DAC上极板这些敏感节点用屏蔽层包起来或者干脆把敏感节点布置在远离逻辑区域的角落。如果你所在工艺有深N阱选项给关键模拟模块套一个深N阱隔离往往是值得的。5.3 评审时最常被问的问题芯片版图评审时有经验的工程师通常会盯着几个要害问。第一问你的电容匹配方案是什么共质心怎么摆的Dummy加了没有第二问比较器输入端和CDAC上极板的寄生电容估计过没有这个寄生电容会不会和数据无关如果与数字码相关就会导致比较阈值漂移产生非线性。第三问SAR逻辑的电源和模拟电源分开没有信号线上有没有交叉第四问你做过哪些后仿真验证蒙特卡洛和温度扫描怎么安排的这几个问题背后其实是一个底层逻辑模拟电路设计的成败往往不在原理图阶段而在版图阶段。很多指标的“隐形天花板”比如INL、SFDR、ENOB都是版图画完之后才真正定下来的。所以我自己做项目的习惯是版图阶段至少预留三分之一的总项目时间宁可前面慢一点也不要事后返工。6. 配套教程与视频怎么用一条从入门到独立做项目的路径6.1 理论知识与视频演示怎么搭配标题里特别提到“含教程与视频”这里我就多说一点学习路径的体会。SAR ADC的知识密度其实很高理论书籍和视频各有不可替代的价值。看书能把系统框架和公式推导建立起来比如前面提到的LSB、ENOB、噪声预算这些硬核概念不看文字光看视频很容易被带节奏但只看书不动手那些细枝末节的电路实现又很难真正内化。我的建议是先用文字过一遍整体框架然后跟着视频里的实操演示把每个模块在仿真工具里的调法、参数设置逻辑看清楚再回到书里找对应原理这样一轮下来印象会深很多。视频教程最值得学的是“判断思路”而不仅仅是“操作路径”。比如视频里演示设置比较器噪声时不只是教你填一个参数还会解释为什么这个参数要从系统指标反推、如果填大了会怎么样。看视频时不要像追剧一样从头播到尾最好每看完一个实操片段就暂停自己在工具里复现一遍并尝试改参数。改完发现性能下降再倒回去看视频里的判断逻辑这个过程比单纯看十遍视频都有效。6.2 从仿真到流片教程里不会明说的工程判断教程和视频能覆盖的通常是理想化流程建模、仿真、通过、结束。但真实的工程项目里你几乎一定会遇到教程里没写的情况。比如流片回来后实测性能比仿真差这时候怎么定位是版图寄生没提准还是工艺偏差把电容匹配拉偏了这种问题没有现成答案只能靠系统性的debug思路先测静态参数和动态参数区分是线性度问题还是噪声问题再根据测试结果反过来校准模型参数回到仿真环境复现。视频教程可以作为起点但真正的工程判断力只能从一次次实测数据复盘里积累。另外真正做项目时一定要重视“设计余量”。后仿真性能如果只是勉强压线达标流片后基本都会掉到线以下。我自己的经验是前仿真阶段就要把设计做到比指标好10%-20%余量这样版图寄生、工艺角变化、温度漂移消耗掉一部分之后芯片仍然还有余量。这个经验没有哪个视频会系统讲但经常决定一个项目能否一次成功。6.3 把回测数据当作最好的老师如果你能找到上一代或者同类型芯片的测试数据那绝对是比任何教程都宝贵的资源。看别人的INL曲线能看出电容失配是随机型还是梯度型看ENOB随采样率的变化曲线能判断比较器时间常数是否紧张看功耗-采样率曲线能反推异步SAR逻辑的工作效率。这些数据哪怕只是开卷报告的截图也能带来大量信息。我把这叫做“反向读报告”它和正向学习完全不冲突反而能帮你建立对设计指标的直觉。7. 我在做SAR ADC项目时踩过的坑压轴的部分分享几个我实际经历过的教训。第一个是关于比较器失调的。当时做的是一个12位SAR ADC前仿真结果非常漂亮版图寄生提取后也开始流片了结果实测INL表现出一种非常规律的“梳状”曲线。排查了很久才意识到问题出在比较器的低频噪声和校准算法的交互上校准逻辑只在启动时跑一次但低频噪声在转换过程中持续变化导致不同时刻的失调不一样。后来改成周期性后台校准并增加噪声平均问题才解决。这个案例让我养成了习惯所有校准逻辑都要考虑“校完还能不能保持”而不是只做一次就高枕无忧。第二个坑是电容尺寸过设计。一开始做设计时总担心匹配不够把单位电容取得很大总面积超标功耗也跟着上去了。后来采用更精细的失配模型和蒙特卡洛仿真把单位电容减小了接近一半性能反而因为寄生减小而略有提升。这告诉我模拟设计里“更大”不一定“更好”一切要以模型和数据说话。第三个坑是异步SAR时序的收敛问题。异步逻辑环路里有一个比较器输出到逻辑再到电容切换的闭合环路我当时用理想化模型验证逻辑正确但混合仿真时发现偶尔会出现一位数据错误看起来像随机毛刺。后来加长仿真时间、扫多个输入条件才定位到是一个较长组合逻辑路径上的建立时间违例通过调整门级综合约束才修好。从那以后我对异步SAR逻辑一律要求跑至少10000次转换的统计仿真不再用几十次仿真就草草收工。这些教训今天看起来都挺基础但每一次都让后续项目少走很多弯路。SAR ADC这个领域表面上公式就那么几个结构也相对固定真正拉开差距的恰恰是在这些细节里的判断和经验。希望这篇从原理到实践的内容能帮你把SAR ADC的整个设计地图在脑海里建立起来至少在下一次面对比较器噪声、电容失配或时序收敛问题时能想起来“哦这个问题其实可以从哪个角度切入”。

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

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

免费获取报价 →
↑