当前位置: 首页 > news >正文

从JSSC经典论文到动手仿真:我是如何用Verilog-A复现1984年那款15位SAR ADC的

从JSSC经典论文到动手仿真:我是如何用Verilog-A复现1984年那款15位SAR ADC的

第一次读到Paul R. Gray团队1984年那篇JSSC论文时,我正在研究生实验室里调试一块12位SAR ADC芯片。当看到论文中那个优雅的自校准电容阵列设计时,我突然意识到——纸上得来终觉浅,绝知此事要躬行。于是,我决定用Verilog-A完整复现这个经典设计,从理论推导到仿真验证,真正吃透每个技术细节。本文将分享这个充满挑战又收获满满的学习历程,特别适合那些已经掌握模拟电路基础,想要深入理解SAR ADC核心原理并提升实践能力的同行。

1. 论文精读:解码35年前的自校准黑科技

在Cadence图书馆里找到那篇泛黄的电子版论文时,首先震撼我的是其惊人的前瞻性。这篇发表于CMOS工艺还停留在3μm时代的论文,竟能实现15位有效精度(ENOB)。其核心创新在于:

  • 动态元件匹配技术:通过伪随机序列轮换电容单元,将工艺失配转化为可校准的固定偏移
  • 电荷注入补偿:在比较器输入端引入镜像开关,抵消采样时刻的电荷注入误差
  • 分段电容阵列:采用5+5+5的三段式结构,大幅降低总面积的同时保持线性度

提示:现代SAR ADC设计仍广泛沿用这些思想,只是实现方式更精细化

我特别绘制了原始DAC阵列的等效电路模型(表1),这对后续Verilog-A建模至关重要:

模块原始设计参数现代优化方向
主DAC阵列15位二进制权重温度计编码分段
单位电容值0.5pF (3μm工艺)0.1fF (FinFET工艺)
开关类型NMOS传输门Bootstrapped开关
校准精度±8LSB±1LSB (后台校准)

2. Verilog-A建模:让古董电路在仿真器中重生

2.1 电容阵列的数学表达

论文中的DAC阵列本质上是一个电荷再分配网络。用Verilog-A描述时,我建立了如下行为模型:

`include "constants.vams" `include "disciplines.vams" module DAC_array (vin, vref, dac_out, clk); input vin, vref, clk; electrical vin, vref, dac_out; parameter real C_unit = 0.5e-12; // 单位电容值 parameter integer bits = 15; real C_total, Vx; analog begin @(initial_step) begin C_total = (1 << bits) * C_unit; // 总电容计算 end // 采样阶段 @(cross(V(clk) - 0.9, +1)) begin Vx = V(vin); end // 转换阶段 @(cross(V(clk) - 0.1, -1)) begin for (int i=bits-1; i>=0; i=i-1) begin Vx = Vx - (code[i] ? Vref/(1<<(i+1)) : 0); end V(dac_out) <+ Vx; end end endmodule

这个模型的关键点在于:

  1. 精确再现了电荷守恒原理:Q = C_total*(Vcm-Vin)
  2. 用时钟事件触发采样和转换阶段
  3. 通过位循环实现逐次逼近

2.2 比较器的非理想性建模

原始论文中的比较器仅有80dB增益,我为其添加了关键的非理想特性:

module comparator (inp, inn, out); input inp, inn; electrical inp, inn, out; parameter real gain = 1e4; // DC增益 parameter real offset = 1e-3; // 输入失调 parameter real bw = 10e6; // 带宽 analog begin V(out) <+ gain*laplace_nd(V(inp)-V(inn)+offset, [0,1], [1/(2*M_PI*bw),1]); end endmodule

特别需要注意:

  • 失调电压:会引入DNL误差
  • 有限带宽:影响转换速度
  • 噪声:决定最终分辨率

3. 仿真验证:当理想遇到现实

搭建完整系统后,我进行了三个关键仿真:

3.1 静态特性测试

采用直流扫描法测量INL/DNL:

  1. 输入从0到Vref以1LSB步进
  2. 记录每个输入对应的输出码
  3. 计算微分非线性:
INL[i] = (V_actual[i] - V_ideal[i]) / LSB DNL[i] = (V_actual[i+1] - V_actual[i]) / LSB - 1

原始论文数据与我的仿真结果对比(表2):

指标论文宣称值我的仿真结果
INL±4LSB±5.2LSB
DNL±0.5LSB±0.8LSB
有效位数15bit14.7bit

差异主要来自:

  • 未完全建模的寄生电容
  • 理想开关假设
  • 工艺角变化

3.2 动态性能测试

用瞬态仿真进行FFT分析时,我发现了有趣的现象:

  1. 输入1kHz正弦波,采样率100kS/s
  2. 进行8192点FFT
  3. 计算关键指标:
SNR = 20*log10(signal_rms/noise_rms) ENOB = (SNR - 1.76)/6.02

仿真结果显示在低频段与论文吻合良好,但在Nyquist频率附近性能下降约2dB,这揭示了:

  • 采样开关的导通电阻被忽略
  • 电荷注入效应在高频更显著
  • 比较器响应时间成为瓶颈

4. 现代视角的反思与改进

经过完整复现后,我总结出几个可以优化的方向:

4.1 校准算法的硬件实现

原始论文用外部RAM存储校准系数,现代设计更倾向于:

  • 片上OTP存储器
  • 后台背景校准
  • 基于统计的算法优化

4.2 开关时序优化

通过Verilog-A的transition()函数可以更精确建模开关行为:

// 改进的开关模型 switch (ctrl) { case 1: V(out) <+ transition(V(in), t_rise, t_fall); default: V(out) <+ 0; }

4.3 工艺迁移考量

若将该设计移植到28nm工艺:

  1. 电容匹配性提升,可减小单位电容
  2. 金属层数增加,优化布线寄生
  3. 但薄栅氧限制了输入范围

最终我的仿真结果显示,在相同架构下,现代工艺可实现:

  • 转换速度提升100倍
  • 功耗降低至1/50
  • 面积缩小为1/200

这次复现经历让我深刻体会到,经典论文的价值不仅在于具体电路实现,更在于其蕴含的设计思想。当我调试到第三个版本终于使ENOB突破15位时,那种穿越时空与前辈设计师对话的成就感,远胜过任何现成的仿真结果。建议每个想深耕模拟IC的同行,都找一篇经典论文完整复现——这可能是突破技术瓶颈的最快路径。

http://www.jsqmd.com/news/690828/

相关文章:

  • 开发者数字分身:AI职业代理
  • 【优化求解】不同发动机和燃料对GA应用进行价格调整建模Matlab实现
  • 为什么你的C++ MCP网关CPU利用率超85%却只跑出1/3理论吞吐?——揭秘LLVM 18.1向量化编译器未启用的3个关键开关
  • Flutter项目编译报502?手把手教你用阿里云镜像替换jcenter,5分钟搞定依赖下载
  • 如何在5分钟内用League-Toolkit打造终极英雄联盟智能助手
  • Ubuntu 16.04下搞定SPDK安装:从Python版本冲突到HugePages配置的完整避坑实录
  • 【中等】出现次数的TOPK问题-Java:原问题
  • BEVFusion复现实战:从环境搭建到模型训练的关键报错与解决
  • node-imap 与 OAuth 认证集成:安全连接的最佳实现方案
  • STM8S项目创建后,除了main.c你还应该关注什么?详解stm8_interrupt_vector.c
  • 从《最终幻想》到你的项目:用Unity URP+面片方案,低成本搞定游戏角色头发渲染
  • Linux运维实战:命令行高效管理OSS对象存储
  • Raspberry Pi 5与Intel N100迷你PC全面对比:2023年硬件选型指南
  • React-Bootstrap-Table远程模式详解:与后端API的完美集成
  • 别再对着手册发愁了!手把手教你用IBERT搞定A7 FPGA光口自测(附TX_disable避坑点)
  • 【C++26合约编程权威指南】:20年专家亲授插件下载、环境配置与首个可运行合约Demo(含VS2025/Clang-19双平台实测)
  • 微积分极限与连续性在工程中的实战应用
  • 差分晶振四大接口模式(LVDS/LVPECL/HCSL/CML)的实战选型与电路匹配指南
  • PPO算法深度解析:从Lunar Lander到LLM微调的完整实现
  • 10分钟上手PPTAgent:从文档到精美幻灯片的完整教程
  • PLX SDK实战:手把手教你用自动化脚本搞定驱动编译与DMA性能测试
  • 【困难】出现次数的TOPK问题-Java:进阶问题
  • 免费开源质谱数据分析工具MZmine:从零开始快速掌握代谢组学研究利器
  • 腾讯云国际站实名账号LingduCloud零度云:腾讯云国际站实名账号认证教程!!!
  • ComfyUI-Impact-Pack终极指南:三步解锁AI图像增强的完整功能
  • CentOS7服务器维护:除了reboot,这几种安全重启和关机命令你用过吗?
  • 手把手教你用MSP430G2553的TA0定时器实现PWM信号分析仪(含1Hz到50kHz实测数据对比)
  • 2026年推荐几家黑龙江胶带/哈尔滨透明胶带厂家精选合集 - 品牌宣传支持者
  • 如何快速上手radian:R语言开发者的终极控制台解决方案
  • 云原生内存管理优化:Vmem架构设计与实践