第二讲:静态失真的根源
各位同学,今天我们聊聊静态失真。说白了,就是那些不随信号频率变化、一直存在的误差。我做了这么多年DAC设计,发现很多新手容易忽略这部分,结果流片回来性能惨不忍睹。
静态失真,本质上就是你的DAC在「静止」状态下就不够准。你给它一个直流输入,它输出的电压却不在理想位置上。为什么会这样?嗯,我们一个个来看。
2.1 电阻失配:最基础的误差源
先讲电阻。无论是R-2R梯形网络还是电流舵结构,电阻的精度直接决定了DAC的线性度。我在项目中遇到过一批晶圆,电阻失配达到了0.5%,结果12位DAC的有效位数只有9位。
电阻失配的来源主要有三个:
- 工艺偏差:光刻、刻蚀过程中的随机波动
- 温度梯度:芯片不同区域温度不同,电阻温度系数不一致
- 应力效应:封装时产生的机械应力改变了电阻值
你想想看,一个12位的DAC,LSB对应的精度是1/4096 ≈ 0.024%。如果电阻失配超过这个值,那INL肯定超标。我个人的习惯是,在设计阶段就把电阻失配的蒙特卡洛仿真跑够1000次,看看3σ分布能不能覆盖目标。
2.2 电流源失配:电流舵DAC的命门
电流舵结构是高速DAC的主流。每个电流源单元理论上应该输出完全相同的电流,但现实很骨感。我记得有一次调试一个14位、1GSPS的DAC,测出来的SFDR只有55dB,查了半天发现是电流源阵列的匹配出了问题。
电流源失配的典型表现:
- 随机失配:晶体管尺寸、掺杂浓度的随机波动
- 梯度失配:芯片上的工艺梯度导致不同位置的电流源偏差
- 输出阻抗有限:电流源的输出阻抗不是无穷大,导致输出电压变化时电流变化
这里有个避坑指南:我曾经在设计一个16位DAC时,只关注了电流源的匹配,忽略了输出阻抗。结果在输出摆幅较大时,电流源的实际电流随输出电压变化,产生了严重的INL。后来我加了一级共源共栅结构,才把问题解决。
2.3 开关非理想性:被忽视的失真源
开关非理想性,说白了就是开关不是完美的。导通时有电阻,关断时有漏电流,切换时有电荷注入。这些都会造成静态误差。
常见的开关非理想性包括:
- 导通电阻:不同开关的导通电阻不一致,导致分压比变化
- 电荷注入:开关管栅极的电荷在切换时注入到信号路径
- 时钟馈通:时钟信号通过寄生电容耦合到输出
- 有限开关速度:开关切换不够快,导致建立时间不足
我见过一个案例,某团队设计的DAC在低频时性能很好,但到了高频段SFDR急剧下降。查到最后,发现是开关的电荷注入效应在高速切换时产生了非线性。他们用了互补开关结构,把NMOS和PMOS的电荷注入相互抵消,效果立竿见影。
2.4 静态参数INL/DNL与失真的关系
INL(积分非线性)和DNL(差分非线性)是衡量静态失真的核心指标。它们和失真之间是什么关系?
简单来说:
- DNL 反映的是相邻码之间的跳变是否均匀。如果某个码的DNL超过1LSB,那就可能出现「丢码」——有些输出值永远达不到。
- INL 反映的是整体传输曲线偏离理想直线的程度。INL直接决定了无杂散动态范围(SFDR)的底限。
我给大家一个经验公式:对于正弦波输入,INL引起的谐波失真大致为:
HD2 ≈ 20 * log10(π * INL / 2^N) [dBc]
HD3 ≈ 20 * log10(π² * INL / 4 * 2^N) [dBc]
其中N是位数,INL以LSB为单位。你算算看,一个12位DAC,INL为2LSB时,二次谐波大约在-55dBc左右。这个值在很多应用中是不够的。
好了,这一讲的内容就到这里。下一讲我们会深入讨论动态失真——那些和信号频率相关的误差源。到时候我会分享一个我踩过的坑,关于时钟抖动如何毁掉一个高速DAC的性能。敬请期待。