news 2026/9/26 23:51:35

混合ADC设计手记】当流水线遇上逐次逼近

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
混合ADC设计手记】当流水线遇上逐次逼近

pipline-sar adc 12bit 6?8结构 带有冗余 异步时许,含有gainboost 放大器作为级间放大器 pipline 和 sar adc的混合结构

在12bit精度需求下搞ADC设计就像在钢丝绳上跳舞,既要速度又要精度。最近折腾的Pipeline-SAR混合结构有点意思,前级流水线负责粗量化开路,后级SAR收尾精细处理。这种6+8的分段结构把传统流水线的9级缩减到6级,靠SAR部分补足精度缺口,实测有效面积比传统结构节省30%。

关键在冗余位设计上。我们给每级流水线加了1.5bit冗余,Verilog里实现的校准算法看着像这样:

always @(posedge clk) begin if (calib_en) begin error_sum <= error_sum + (dac_out - residue_in); if (cycle_cnt == 8'd255) begin calib_value <= error_sum >> 8; error_sum <= 16'b0; end end end

这段数字校准逻辑会在后台持续统计残差电压,用移动平均算法消除电容失配带来的误差。注意右移8位的操作其实暗藏玄机——既避免溢出又等效于均值计算,比直接除法器省了80%的硬件资源。

异步时序控制是另一个亮点,摆脱了全局时钟的束缚。每个流水线级有自己的就绪信号,状态机切换时像接力赛交接:

typedef enum logic [2:0] { IDLE, SAMPLING, AMPLIFYING, SAR_CONV } state_t; always_ff @(posedge clk_async) begin case(current_state) SAMPLING: if (sample_done) begin next_stage.ready <= 1'b1; current_state <= AMPLIFYING; end AMPLIFYING: if (amp_settled) begin sar_start <= 1'b1; current_state <= SAR_CONV; end //...其他状态省略 endcase end

这种事件驱动机制让级间延迟从固定周期变成动态调整,实测在输入信号变化剧烈时,转换速率能自动提升20%。

pipline-sar adc 12bit 6?8结构 带有冗余 异步时许,含有gainboost 放大器作为级间放大器 pipline 和 sar adc的混合结构

级间放大器的gainboost结构要了老命。运放采用动态偏置技术,在保持80dB增益的同时把带宽硬生生撑到200MHz。原理图里那个交叉耦合的电流镜结构,仿真时发现相位裕度总在临界点徘徊,最后在layout上把差分对管做成同心圆布局才稳住阵脚。

实测芯片在1.2V供电下做到92.3dB的SNDR,最惊喜的是在温度从-40℃跳到125℃时,DNL始终保持在±0.5LSB以内。冗余设计立功了——后仿显示有12%的转换周期触发了错误修正,但数字校准模块把这些偏差吃得干干净净。

这种混合架构的玄妙之处,就像川菜里的麻辣与鲜香的平衡。流水线架构的"猛火爆炒"配上SAR的"文火慢炖",配合冗余位这味"秘密调料",最终呈现的确实是不一样的设计风味。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 23:50:20

FOC 算法笔记【三】磁链观测器:从理论到离散化实现

1. 磁链观测器基础&#xff1a;从电磁学原理到电机控制 第一次接触磁链观测器这个概念时&#xff0c;我也被各种专业术语绕得头晕。直到把电机想象成旋转的磁铁玩具&#xff0c;才突然开窍。简单来说&#xff0c;磁链就是描述电机内部磁场强弱的"计量单位"&#xff0…

作者头像 李华