简介:一份面向模拟集成电路设计者与ADC研究者的CMOS比较器设计文档,聚焦SAR ADC中前置预放与锁存器级联结构的提速与精度优化。文档基于0.18μm工艺,提出带时钟控制的可再生比较器,通过交叉耦合负载、复位、钳位及两相非交叠时钟技术,将两级前置放大器增益分别做到14.75和11.8,-3dB带宽约50MHz,实现最小分辨率0.8mV、功耗低于0.6mW、输出摆幅3.3V,并附有版图与仿真参数结果。资源共1个PDF文件,压缩包约208KB,属于论文式设计讲解型资料,适合正在学习SAR ADC、比较器电路或数据转换器设计的工程师参考,也可作为模拟IC课程设计、毕业设计的选题素材。已有836人学习下载,内容虽短但涵盖结构原理、正反馈分析、复位/钳位机制和锁存器设计等关键环节,便于快速建立从原理到实现的知识框架。
1. 为什么适合SAR ADC的CMOS比较器更看重时序与噪声预算
在SAR ADC里,比较器看起来是整个信号链中最简单的功能块:把DAC输出与输入采样电压比大小,输出一个逻辑位。但逐次逼近的本质是把一次模拟量转换拆成N次二值判决,任何一次比较结果错误都会直接改变最终数字码。比较器既要在一个位周期内完成预放大、锁存再生和输出锁定,还要让输入参考噪声、失调和回踢噪声都不去破坏DAC已经建立起来的模拟电平。所以在实际项目中,真正适合SAR ADC的CMOS比较器不是放大倍数越高越好,而是把时间预算切给预放大级和动态锁存级,让它们配合出一个低失调、低回踢、能在LSB量级过驱动下仍然稳定判决的环路。这套设计思路在12bit、10MSPS以及更低功耗的SAR方案里普遍适用,下面按可复现的流程展开。
2. 先算比较器时间预算和噪声预算再动手搭电路
2.1 在一个位周期里比较器能分到多少时间
同步SAR ADC的每个位周期有固定时钟时间,异步SAR则用比较器输出作为内部ready信号去推进下一级,比较时间并不固定。以12bit、10MSPS的同步方案为例,一个转换需要约13个时钟周期,时钟周期100ns。常见拆分是:DAC建立40ns,比较器判定20ns,SAR逻辑和余量40ns。比较器延迟由预放大响应时间和锁存再生时间组成:
t_cmp = t_preamp + τ_latch * ln(VDD / ΔV_in)
当输入差分接近1LSB时,对数项最大。假设VDD为1.2V、1LSB约300μV,ln(4000)约8.3,所以锁存时间常数τ_latch如果做到0.6ns,仅再生就需要约5ns,再加上预放大级建立时间和输出级反相器翻转时间,20ns预算已经紧巴巴。若再分配到异步SAR中“比较器自时钟”场景,还要把时钟路径上反相器链的抖动也算进这部分,不能只按理想时钟计算。
实际项目中我更习惯先用行为级Verilog-AMS搭一个理想比较器,把SAR算法和DAC建立时间验证完,再替换成晶体管级比较器。这样如果整体转换E_NOB掉下来,能快速判断是决策时序问题,还是比较器噪声与失配问题。
2.2 比较器噪声与失配的分配表
12bit、参考电压1.2V时,LSB约为293μV。总噪声预算一般取LSB/6作为保守值,这样量化噪声、比较器噪声、DAC毛刺和参考源噪声合起来不会吃掉有效位数。比较器本身只能分到其中一部分,剩余要留给采样保持电容kT/C噪声和外部路径。下面是一组可以作为起点的指标:
| 指标 | 目标值 | 说明 |
|---|---|---|
| 比较器输入参考噪声 | <50μV rms | 总噪声取LSB/6,比较器占一半 |
| 采样保持电容 | >2pF | 按kT/C噪声折算并留余量 |
| 比较器失调 | <0.5LSB | 通过自动校零或斩波消除 |
| 最坏判决时间 | <20ns | 1LSB过驱动下包含预放大与锁存 |
用下面这段Python可以快速估算电容下限:
# cmp_noise_budget.py
vref = 1.2
N = 12
lsb = vref / 2**N
noise_budget = lsb / 6 # 总噪声预算取 LSB/6
kT = 1.38e-23 * 300
cmin = kT / noise_budget**2 # 单个kT/C噪声对应的最小等效电容
print(f"LSB = {lsb*1e6:.1f} uV")
print(f"比较器rms噪声预算 = {noise_budget*1e6:.1f} uV")
print(f"最小等效采样电容 = {cmin*1e15:.1f} fF")
代码输出会显示,若比较器噪声要压到约50μV rms,对应kT/C极限电容约1.7pF。实际不能只看kT/C,因为输入对管沟道热噪声和预放大级带宽内噪声也会折算到输入端,所以电容取值通常按计算值的两倍以上考虑。片内CMOS比较器的输入管宽度也会因此受到约束:太窄则噪声大,太宽则输入电容大、回踢噪声变大,需要在噪声预算和速度之间折中。
2.3 失调为什么会破坏SAR逐次逼近
静态失调主要由输入管阈值电压失配和几何失配引起,动态失调则来自复位开关的电荷注入和时钟馈通。静态失调进入SAR环路后,会让比较器在某个权重位上提前或滞后翻转,转换曲线出现台阶甚至漏码。动态失调严重时表现为“上一次比较结果影响下一次比较”,这比固定失调更难处理。
迟滞比较器在这里需要特别小心。滞回比较器把翻转阈值变成上下两个,对抑制噪声和振铃有效,但SAR ADC的判决是单调逼近过程,比较器一旦在有效位附近出现比LSB大的迟滞窗口,输入落进该窗口时输出会保持旧状态,这个误差在后续位周期中无法被修正。所以绝大多数SAR ADC内部不会主动设计迟滞,而是用服从比较器或自动校零电路把失调先消掉,再靠冗余位做最后的确定性修正。
3. 用预放大加动态锁存搭出CMOS比较器核心电路
3.1 为什么选择预放大加锁存而不是单级动态比较器
单纯动态锁存比较器速度快、静态功耗为零,看起来非常适合SAR ADC。但它的输入失调偏大,回踢噪声也明显,因为锁存器再生时会把输出节点的电压突变通过栅漏电容耦合回输入端。前端DAC电容阵列输出阻抗并不低,回踢电荷会干扰已经建立的DAC电平,产生比较器记忆效应。
常见做法是在锁存器前插入一个低增益预放大级。预放大级作用是:小信号先被线性放大2到4倍,锁存器输入端看到的等效输入差分更大,再生时间更短;同时预放大级本身作为隔离级,把锁存器产生的大摆幅回踢与DAC节点隔开。为了不占用过多时间预算,预放大级主极点带宽必须足够,通常取值在数百MHz到GHz量级。增益不需要高,高了反而让输入对管的输出阻抗和寄生电容拖慢速度,噪声非线性也会变大。
3.2 一个可直接放进LTSpice验证的比较器子电路
下面是一个预放大加动态锁存的CMOS比较器SPICE子电路,结构上足够跑通瞬态和失调分析。180nm工艺下这个尺寸组合能给出约10MSPS SAR ADC可用的判决速度。
* cmos comparator: preamp + dynamic latch
.subckt cmp_pre_latch vip vim voutp voutm clk vdd vss
* preamp input pair M1, M2 and reset MP M3, M4
M1 na vip nt vss nch w=5u l=0.18u
M2 nb vim nt vss nch w=5u l=0.18u
M3 na clk vdd vdd pch w=1u l=0.18u
M4 nb clk vdd vdd pch w=1u l=0.18u
Mnt nt clk vss vss nch w=8u l=0.18u
* dynamic latch with cross-coupled PMOS M7, M8
M5 voutp na nl vss nch w=2u l=0.18u
M6 voutm nb nl vss nch w=2u l=0.18u
Mnl nl clk vss vss nch w=4u l=0.18u
M7 voutp voutm vdd vdd pch w=0.5u l=0.18u
M8 voutm voutp vdd vdd pch w=0.5u l=0.18u
.ends cmp_pre_latch
把网表复制到LTSpice时,还需要在文件开头加上工艺模型库,比如 .include model180n.lib 。CLK为低时,M3、M4把na、nb拉到VDD,M5、M6关断,输出由交叉耦合PMOS保持为高,这个阶段对应比较器复位。CLK拉高后,Mnt和Mnl同时导通,输入差分电流在na、nb上形成不同的放电速度;放电较快一侧通过M5或M6把对应输出节点拉低,交叉耦合PMOS再把另一侧推高,输出很快锁定到数字电平。
参数说明:输入管M1、M2宽度取5μm,是为了在噪声、失配和输入电容之间折中;宽度加到8μm能降低失调和噪声,但输入电容增大,回踢噪声也会上升。Mtail宽度8μm决定预放大级尾电流,尾电流越大,预放大级带宽越高,但动态功耗也线性增长。交叉耦合PMOS M7、M8宽度只有0.5μm,它控制锁存再生速度和复位阶段的漏电,太窄正反馈弱,太宽则复位不彻底。
3.3 迟滞比较器与SAR ADC使用场景的差异
单独拿LM393这类片外电压比较器对比,能更清楚为什么SAR ADC里的CMOS比较器不能照搬滞回思路。LM393工作原理是差分输入加开集电极输出,外部上拉电阻决定逻辑电平,可以通过正反馈电阻设置滞回窗口。CMOS动态比较器则完全不同,它没有稳定的线性工作区,直接通过再生正反馈把差分信号放大到满摆幅。
在一般电压比较器电路中,迟滞是抗噪声利器,输入信号在阈值附近来回抖动时输出不会反复翻转。但SAR ADC的输入是采样保持后的准静态电平,比较器只在一个时间点做一次判决,不存在连续抖动问题。此时滞回窗口只会让处于窗口内的输入电压判决成上一个状态,直接造成ADC转移特性非线性。所以在SAR ADC设计里,如果看到比较器前仿出现明显迟滞,应该优先检查复位开关是否把锁存器节点彻底复位,而不是想办法把迟滞调大。
3.4 比较器主链路的关键参数边界
设计过程中需要盯住下面几个量:
| 参数 | 典型范围 | 调节方向 |
|---|---|---|
| 预放大级电流 | 20~100μA | 越大带宽越高,但功耗上升 |
| 输入对过驱动电压 | 100~200mV | 越大线性范围越好,但噪声和失配变大 |
| 锁存再生时间常数 | 0.3~0.8ns | 由交叉耦合PMOS宽长比和负载电容决定 |
| 复位开关导通电阻 | <1kΩ | 保证1ns内完成复位,过大会残留记忆 |
这些参数不是独立存在的。调大输入管宽度会同时增大输入电容,进而影响预放大级带宽和回踢噪声;调大复位开关又会在复位瞬间引入更多电荷注入,转化为动态失调。所以比较器设计前端必须先用蒙特卡洛和PVT跑一遍边界,再回来调尺寸。
4. 把比较器延迟、失调和版图效应闭环到仿真中
4.1 用蒙特卡洛和PVT把比较器延迟逼出来
原理图搭好后,最直接的做法是在输入端加一个跨过阈值的小差分电压,然后测量从CLK上升沿到输出越过0.6V的延迟。下面这组Spectre/HSPICE测量语句可以直接套用:
.param vdd=1.2 tclk=100n
.tran 1p 200n
.measure tran tdelay trig v(clk) val=0.6 rise=1 targ v(voutp) val=0.6 rise=1
.measure tran vout_low avg v(voutp) from=160n to=180n
逻辑说明:tdelay测量的是比较器从使能到输出真正完成判决的时间;vout_low用来检查输出是否在这一位周期内掉到接近0V,如果vout_low仍然大于0.3V,说明锁存器没有再生完全。蒙特卡洛仿真至少要跑200个点,观察tdelay分布的3σ值,因为输入对管阈值失配会直接改变有效判决时刻。PVT角仿真则要看ss角、高温、低电源电压三个组合下tdelay是否仍然小于20ns。如果ss角超了,优先加宽输入管或增大预放大级尾电流,而不是单独加大交叉耦合PMOS,因为那会恶化复位速度。
4.2 比较器版图布局与截面图检查
CMOS比较器版图里最容易出问题的是输入差分对的对称性和衬底噪声耦合。输入对要画成共质心结构,周围加一层虚拟管用来匹配边界效应;预放大级的PMOS电流镜负载也要做同样的匹配处理。在衬底耦合方面,比较器输入管通常离数字SAR逻辑和时钟反相器链远一些,必要时在版图周围放双圈保护环。
从工艺截面图上看,NMOS输入对直接落在P型衬底上,而PMOS锁存器落在N阱里,两者之间可能出现闩锁路径。常见做法是把比较器整体包在一个内部N阱环里,再在外围加一圈P+衬底接触,形成“内N阱、外P+地环”的结构。CMOS图像传感器里常见的列并行比较器版图还会把多个输入管共用同一个深N阱,进一步隔离衬底噪声。版图完成之后要做寄生提取,把提取出的电容电阻回注到原网表再跑一次延迟和后仿真,回踢噪声和时钟馈通在这一步会明显改变比较器翻转点。
4.3 时钟反相器链的抖动分配
比较器时钟通常由SAR逻辑产生,标准数字信号经过CMOS反相器链逐级放大后接到比较器。常见做法是取3到5级反相器,每级尺寸递增2到3倍。这个cmos反相器电路图看起来简单,但它直接影响比较器的判决时刻:电源地噪声会通过反相器链变成时钟抖动,时钟抖动又会被当成比较器的等效输入噪声。
在异步SAR ADC里,比较器输出一旦翻转就立刻开始下一位,时钟抖动会直接叠加到比较器判决延迟中。更危险的是比较器输入端差分电压接近零时,锁存器处于亚稳态,输出翻转时刻对噪声极其敏感,这时反相器链引入的任何抖动都会被放大。解决方向有两个:一是给比较器时钟路径单独用干净电源域,二是对比较器输出增加一级D触发器采样,把亚稳态持续时间限制在一个时钟周期内。
4.4 用LTSpice测量传输延迟和回踢噪声
LTSpice中搭比较器testbench时,建议用理想脉冲源作为时钟,输入电压用小直流差,再叠加一个缓慢斜坡来观察翻转阈值。测量命令可以写成:
VCLK clk 0 pulse(0 1.2 0 1n 1n 50n 100n)
VIN vip 0 dc 0.600025
VIN vim 0 dc 0.6
.tran 0.2n 300n
.meas tran tpd TRIG v(clk)=0.6 RISE=1 TARG v(voutp)=0.6 RISE=1
.meas tran kickback AVG v(vip) FROM=70n TO=75n
把vip设为0.600025V、vim设为0.6V,输入差分25μV,这比12bit ADC的1LSB略小,用来验证比较器在最小差分下能否按时翻转。kickback测量是在CLK上升沿之后观察vip节点平均电压变化,如果vip被下拉或上抬超过几十微伏,说明回踢噪声已经干扰到输入节点。实际测试时我会在vip、vim节点各挂一个5fF电容,模拟DAC电容阵列的实际负载,否则回踢测量结果会偏乐观。
5. 比较器链路失效的快速自查与一个验证技巧
5.1 三个最容易被忽略的失效来源
第一点是复位不彻底。CLK低电平时间不足时,锁存器输出节点没有完全复位到相同电位,下一次比较会带着上一次的记忆,表现为转换码出现规律性毛刺。检查方法很直接:把CLK高电平宽度固定,不断缩短低电平宽度,观察比较器翻转点是否漂移。
第二点是回踢噪声影响DAC建立。比较器在CLK边沿处会通过输入管栅漏电容把输出摆幅耦合回采样节点。如果SAR ADC的DAC电容较小,比如总采样电容只有1pF,回踢电荷甚至能产生超过1LSB的误差。此时需要在比较器输入端串一个很小的电阻或增加预放大级隔离,而不是试图把锁存器做慢。
第三点是时钟路径上的抖动。异步SAR中比较器输出直接作为下一个位周期的触发信号,反相器链上的电源毛刺会被时间量化成比较器噪声。可以用同一条CLK驱动两个相同的比较器,分别输入略微不同的直流电压,观察两路输出翻转时刻的差值分布,这个差值里包含了时钟抖动和比较器噪声。
5.2 用固定码型回归验证比较器的等效噪声窗口
一个实用的最后步骤是把比较器噪声窗口测量做成可回归的测试码型。在输入端加一个步进扫描的直流电平,从负过驱到正过驱,每个电平重复比较1000次,记录比较器输出为1的概率。理想情况下这个概率应该是一条从0到1的陡峭S曲线,曲线中段10%到90%对应的输入电压范围就是比较器等效噪声窗口。
对SAR ADC来说,比较器噪声窗口不能超过LSB/2。如果实测曲线上出现平台段,说明比较器存在周期性记忆效应,多半是复位时间不够或回踢噪声耦合;如果曲线左右不对称,则说明存在固定失调,需要检查输入差分对版图是否对称。这个验证既可以放在前仿做蒙特卡洛,也可以流片后在ATE上跑,两种方式共用同一套数据判据,能直接把设计目标与量产测试标准对齐。
312



被折叠的 条评论
为什么被折叠?



