SAR ADC设计——SAR Logic原理

本文详细解析了SARADC中的SARLogic模块,包括TSPC触发器、SC_Gen控制生成和LATCH_Dynamic锁存机制。重点阐述了时序控制逻辑,涉及SW和DO信号的产生,以及GT信号如何控制转换流程。适合深入了解SARADC设计的工程师阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SAR ADC设计——SAR Logic原理

参考:集成电路设计实践 SAR ADC 清华大学 李福乐

一. Overview

输入:CKC,CompB,SAMPLEB
输出:SW<3:1>,DO<3:1>,GT
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二. TSPC(True Single Phase Clock)

在这里插入图片描述
在这里插入图片描述
TSPC简单来看就是一个异步低电平复位,时钟下降沿触发的触发器。

三. SC_Gen(Sequential Control Generator)

在这里插入图片描述
在这里插入图片描述
SC_Gen的理解:
f1为复位信号。f1为低电平时,输出为低电平;f1为高电平时,输出与S反相(SC_gen形成一个输入为S的反相器)。
产生了一个脉宽为f1与S上升沿差的脉冲。

四. LATCH_Dynamic

在这里插入图片描述
LATCH_Dynamic理解:
f1为复位信号。
当f1为低电平时,输出为高电平。
当f1为高电平时,则看选通信号SC1。当SC1高电平,则输出与Q反向;当SC1低电平,则输出被锁存,保持不变。
实现了一个异步复位锁存器。
在这里插入图片描述
图中可以看到,SC1高电平时,CompB存在一个脉冲,使得输出反向拉低,并在SC1低电平时此输出被锁存。
在这里插入图片描述
图中可以看到,SC1高电平时,CompB没有脉冲,高电平输出则被锁存。

五. 时序控制逻辑总结

SAR_Logic的时序控制是由TSPC,SC_Gen,LATCH_Dynamic三部分构成。时序控制逻辑的时序图如下所示:
在这里插入图片描述
时序逻辑控制理解:
f1即SAMPLEB,其低电平代表采样跟踪区间,高电平代表转换区间,所以时序控制逻辑主要关注高电平。
CKC信号由MPCG产生,是比较器的时钟。
S1-S3为在f1高电平下CKC的下降沿触发的信号,三个脉冲打了三拍,产生S1-S3。
SC1-SC3为f1与S1,S1与S2,S2与S3上升沿差为脉宽的脉冲。
CompB为比较器的比较结果。
Q1-Q3为锁存的比较器的输出信号,Q1为SC1高电平时反相锁存的CompB,Q2为SC2高电平时反相锁存的CompB,Q3为SC3高电平时反相锁存的CompB。

六. SW产生

SW信号就是CDAC的选择控制信号,它是由S,Q,SC信号通过一定的逻辑产生。
产生逻辑是:SW = S & Q | SC
SW产生的时序图如下所示:
在这里插入图片描述

七. DO产生

DO为ADC量化所得到的数字输出,它由S<3>对SW采样所得。
经过延迟的S<3>采样SW<3>得到DO<3>,采样SW<2>得到DO<2>,采样SW<1>得到DO<1>。
DO产生的时序如下图所示:
在这里插入图片描述

八. GT产生

GT产生的逻辑可以化简为:GT = f1_Delay & f1 & ~S3
GT产生的时序如下图所示:
在这里插入图片描述
GT用于触发MPCG产生第一个脉冲,此第一个脉冲可以自动持续生成多相脉冲,进一步产生CKC。

九. SAR Logic模块总结

在这里插入图片描述
SAR Logic理解:
SAMPLEB为高电平时,即转换时间开始。

  1. 由GT = f1_Delay & f1 & ~S3可知,SAMPLEB拉高触发GT拉高。
  2. GT拉高触发MPCG产生多相CKC。
  3. 多相CKC的负边沿触发拉高S<1:3>。
  4. SAMPLEB与S<1>,S<1>与S<2>,S<2>与S<3>的上升边沿差产生SC<1:3>。
  5. 在SC<1:3>选通下Q<1:3>反相锁存CompB的信号,有CompB脉冲则拉低,否则不拉低。
  6. 通过锁存的Q<1:3>高低电平与SW = S & Q | SC,得到CDAC控制信号SW。
  7. 使用S<3>的延迟信号采样SW得到ADC量化输出DO。
  8. 根据GT = f1_Delay & f1 & ~S3,S3的拉高使得GT拉低。
  9. 本次转换结束,等待下一个SAMPLEB上升沿触发GT拉高从而进入下一次转换。
### PyCharm 打开文件显示不全的解决方案 当遇到PyCharm打开文件显示不全的情况时,可以尝试以下几种方法来解决问题。 #### 方法一:清理缓存并重启IDE 有时IDE内部缓存可能导致文件加载异常。通过清除缓存再启动程序能够有效改善此状况。具体操作路径为`File -> Invalidate Caches / Restart...`,之后按照提示完成相应动作即可[^1]。 #### 方法二:调整编辑器字体设置 如果是因为字体原因造成的内容显示问题,则可以通过修改编辑区内的文字样式来进行修复。进入`Settings/Preferences | Editor | Font`选项卡内更改合适的字号大小以及启用抗锯齿功能等参数配置[^2]。 #### 方法三:检查项目结构配置 对于某些特定场景下的源码视图缺失现象,可能是由于当前工作空间未能正确识别全部模块所引起。此时应该核查Project Structure里的Content Roots设定项是否涵盖了整个工程根目录;必要时可手动添加遗漏部分,并保存变更生效[^3]。 ```python # 示例代码用于展示如何获取当前项目的根路径,在实际应用中可根据需求调用该函数辅助排查问题 import os def get_project_root(): current_file = os.path.abspath(__file__) project_dir = os.path.dirname(current_file) while not os.path.exists(os.path.join(project_dir, '.idea')): parent_dir = os.path.dirname(project_dir) if parent_dir == project_dir: break project_dir = parent_dir return project_dir print(f"Current Project Root Directory is {get_project_root()}") ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值