模拟集成电路设计系列博客——7.5.5 折叠型ADC
7.5.5 折叠型ADC
我们刚了解完输入放大器的数量如何通过插值型架构来减少。但是对于一个N bit的ADC来说,仍然需要\(2^N\)个锁存比较器。这个大量的比较器数量可以通过折叠型ADC架构来减少。折叠型ADC架构类似于两步型ADC,一组LSB分离于一组MSB进行独立的查找。但是,相比两步型ADC需要一个精确的DAC,折叠型ADC通过模拟预处理可以更直接的确定LSB,同时MSB也可以同时确定。
例如,考虑如下图所示的4 bit折叠型ADC。定义折叠率为对于\(V_{in}\)扫描于其输入范围时单个折叠块的输出转换次数,我们可以看到此处的折叠率为4。折叠率决定了MSB转换器需要多少比特。

这个ADC的工作流程如下:MSB ADC决定了决定了输入信号在四个输入区间中的哪一个(0到\(1/4\),\(1/4\)到\(1/2\),\(1/2\)到\(3/4\),\(3/4\)到1)。及暖MSB ADC看上去是独立的,但这些需要在折叠块内与合适的信号组合来决定。为了确定两位LSB,\(V_1\)到\(V_4\)在四个MSB区间内都会产生一个温度计码。注意,四个LSB锁存器也被用于不同的MSB区间,当\(V_{in}\)处于\(1/4\)到\(1/2\)或\(3/4\)到1时,温度计码会被取反。例如,随着\(V_{in}\)从0增加到\(1/4\),温度计码依次为:0000,0001,0011,0111,1111.但是,随着\(V_{in}\)继续增加到\(1/2\),温度计码依次为1110,1100,1000,0000。同时,注意锁存比较器可以直接用于确定LSB,因为转换点都被折叠块进行了放大。总体来说,相比Flash ADC,折叠降低了锁存比较器的数量。例如,在4 bit转换器中,Flash ADC需要16个锁存器,而折叠型ADC只需要8个。具体来说,4个锁存器被用于MSB ADC,而其他的则如杀个图所示。并且推而广之,实际上锁存器可以得到进一步的节省。
折叠块可以通过交叉耦合差分对来实现,下图展示了一个简化的双极型电路,此处四组差分对晶体管通过如是连接形成下图(b)中的输入-输出响应曲线。输出信号\(V_{out}\)对电压\(V_a\)和\(V_b\)形成了一个或逻辑。换而言之,如果\(V_a\)和\(V_b\)均为低,那么\(V_{out}\)为低,否则\(V_{out}\)为高。关于\(V_a\)和\(V_b\)的行为,当\(V_{in}\)小于\(V_{r3}\)或者大于\(V_{r4}\)时\(V_b\)为低;而\(V_{in}\)大于\(V_{r2}\)或者小于\(V_{r1}\)时\(V_a\)为低。同时,相邻差分对的交叉耦合会使得\(V_{in}\)在\(V_{r1}\)和\(V_{r2}\)之间时\(V_a\)升高,\(V_{in}\)处于\(V_{r3}\)和\(V_{r4}\)之间时\(V_b\)身高。\(V_a\)和\(V_b\)的升高行为可以产生\(V_{out}\)的折叠输出。

一些值得说明的问题是,对于全范围输入信号,折叠块的输出信号的频率是远高于输入信号的。事实上,折叠块的输出频率等于输入信号频率与折叠率的乘积。这个乘法关系限制了高速ADC中实际折叠率的使用。同时,尽管这里展示的是一个单端电路,但在实际应用中基本上都使用的是差分电路。
另一个值得一提的点是,尽管折叠架构降低了锁存比较器的数量,在Flash ADC中出现的大输入电容问题仍然会出现在上面展示的折叠型ADC中。事实上,Flash ADC的每个比较器有着相似的差分对晶体管输入级,只不过它们不是交叉耦合的。由于每个折叠块中的差分对的数量等于折叠率,且输入信号需要输入到每个差分对的一侧,可以看到输入信号要驱动的晶体管数量等于\(2^N\),和Flash ADC相同。为了减小这个巨大的输入电容,折叠型ADC也需要利用插值架构。通过对上面的4 bit例子使用二插值技术,我们可以得到下面的架构图:

注意一个新的反相信号\(\bar{V_4}\)需要连接顶部折叠块和底部折叠块。对于单端版本电路需要加入这个反相信号,但是在全差分版本中并不需要额外的电路,因为可以通过简单的交叉耦合差分输出线来实现。
在[van Valburg, 1992]中,为了实现了一个非常高速的8 bit ADC,使用了四个折叠块,每个使用了8的折叠率。假定\(V_{ref}=1V\),那么一个折叠块内相邻参考电压输入的差值为\(1/8V\)。每个相邻的折叠块偏移了\(1/32V\),使得每过\(1/32V\)就会触发一次过零点。通过在相邻的折叠块之间使用四个8头电阻串,可以实现每\(1/256V\)的过零点(一个有着32个锁存比较器的8 bit转换器连接到插值电阻串)。MSB通过从选定的差分对中选择合适的输出,并将其独立相加来实现额外的折叠放大器,而不进一步增大折叠率。这个ADC同时也包含了防止冒泡错误的电路。另一些折叠型ADC的例子是[van de Grift, 1987; Colleran, 1993]。此外,折叠型ADC已经被用于两步型ADC的中间环节[Vorenkamp, 1992]。
例题:
假设使用本节最开始提出的折叠型ADC架构,研究两位MSB如何使用折叠块内部的信号进行驱动。
解答:
MSB中的\(b_1\)通过判断输入信号是否高于或低于\(V_{ref}/2\)来确定。我们可以看到在顶部折叠块中,输入信号与合适的电压\((8/16) V_{ref}\)进行了比较,从而产生\(V_1\)。因此我们可以在顶部折叠块中,直接通过连接到\(V_{r2}\)的晶体管的集极电流来获得MSB。类似的,顶部折叠块使用了\(4/16\)和\(12/16\)的参考,可以用于确定第二个比特\(b_2\)。事实上,信号\(V_1\)可以直接用于确定第二个比特\(b_2\)。因此,两位MSB的\(b_1\)和\(b_2\)可以直接通过折叠块来确定,电路如下图所示:

模拟集成电路设计系列博客——7.5.5 折叠型ADC的更多相关文章
- Flutter 即学即用系列博客——03 在旧有项目引入 Flutter
前言 其实如果打算在实际项目中引入 Flutter,完全将旧有项目改造成纯 Flutter 项目的可能性比较小,更多的是在旧有项目引入 Flutter. 因此本篇我们就说一说如何在旧有项目引入 Flu ...
- Django 系列博客(七)
Django 系列博客(七) 前言 本篇博客介绍 Django 中的视图层中的相关参数,HttpRequest 对象.HttpResponse 对象.JsonResponse,以及视图层的两种响应方式 ...
- Django 系列博客(一)
Django 系列博客(一) 前言 学习了 python 这么久,终于到了Django 框架.这可以说是 python 名气最大的web 框架了,那么从今天开始会开始从 Django框架的安装到使用一 ...
- ARM的体系结构与编程系列博客——ARM处理器系列介绍
ARM处理器系列介绍 现在到了3月,过年过得过于舒服了.系列博客也停更了近半月,我果然是个慢(lan)性(gui)子,那么趁着到校的第一天晚上,就写一篇博客来继续我的系列博客了!众所周知,ARM处理器 ...
- 窥探Swift系列博客说明及其Swift版本间更新
Swift到目前为止仍在更新,每次更新都会推陈出新,一些Swift旧版本中的东西在新Swift中并不适用,而且新版本的Swift会添加新的功能.到目前为止,Swift为2.1版本.去年翻译的Swift ...
- Flutter 即学即用系列博客——05 StatelessWidget vs StatefulWidget
前言 上一篇我们对 Flutter UI 有了一个基本的了解. 这一篇我们通过自定义 Widget 来了解下如何写一个 Widget? 然而 Widget 有两个,StatelessWidget 和 ...
- Flutter 即学即用系列博客——04 Flutter UI 初窥
前面三篇可以算是一个小小的里程碑. 主要是介绍了 Flutter 环境的搭建.如何创建 Flutter 项目以及如何在旧有 Android 项目引入 Flutter. 这一篇我们来学习下 Flutte ...
- Flutter 即学即用系列博客——09 MethodChannel 实现原生与 Flutter 通信(二)
前言 上一篇我们讲解了如何通过 EventChannel 实现 Android -> Flutter 的通信. 并且也看到了 Flutter 内部 EventChannel 源码也是对 Meth ...
- Flutter 即学即用系列博客——09 EventChannel 实现原生与 Flutter 通信(一)
前言 紧接着上一篇,这一篇我们讲一下原生怎么给 Flutter 发信号,即原生-> Flutter 还是通过 Flutter 官网的 Example 来讲解. 案例 接着上一次,这一次我们让原生 ...
- Flutter 即学即用系列博客——08 MethodChannel 实现 Flutter 与原生通信
背景 前面我们讲了很多 Flutter 相关的知识点,但是我们并没有介绍怎样实现 Flutter 与原生的通信. 比如我在 Flutter UI 上面点击了一个按钮,我希望原生做一些处理,那么原生怎么 ...
随机推荐
- java 接口sort comparable
简介 java 没有对于多继承的实现,为了间接实现多继承,采用了接口的概念 code package cn; import java.util.Arrays; public class Employe ...
- OGSM 从上到下逐级分解策略:从战略目标到部门计划的标准化落地路径
商界大战如火如荼,想要在竞争激烈.变幻莫测的市场环境中脱颖而出,战略规划和经营计划绝对必不可少! 别慌,OGSM(Objective, Goals, Strategies, Measures)就是从战 ...
- SciTech-BigDataAIML-NLP-TensorFlow-KerasNLP-预处理: tensorflow.keras.preprocess.{text, sequence}
KerasNLP API reference The easiest way to get started processing text in TensorFlow is to use KerasN ...
- SciTech-EECS-PCB电路板设计-深思熟虑方可行动 :使用KiCad进行PCB设计的基本流程
聚焦人生的社交网.时间.精力.资源:人生方有成. 明确需求与产品设计: 大体的ideal开始,到深思熟虑,联系各方都通过,制定完好的计划方可行动. 是否已有成熟商品:直接采购即可? 目标用户群: 市场 ...
- 一次完整的通话过程SIP报文分析
场景: 主叫方(1004,Yate客户端,端口号:52110) -> 通过FreeSWITCH(端口号:5070)呼叫 -> 被叫方(1000,ZoIPer客户端,端口号:5070) 被叫 ...
- win11系统出现内部错误2203的问题
有不少深度系统的win11专业版用户,在电脑上安装软件时提示2203的内部错误的问题,导致软件安装失败,这该如何解决呢?如果您也遇到这个问题不知道如何解决.就来看看深度技术小编整理的解决方案,希望有所 ...
- win11纯净版没有桌面图标的问题
一些雨林木风官网的朋友发现在win11纯净版系统桌面上的常用的图标都消失不见了,这样小伙伴们很不知所措.怎么说,桌面图标是我们日常使用计算机时的一个重要打开途径,它们使我们能够快速访问和启动应用程序, ...
- echarts 的日常(教学篇)
目前市面上主流的数据可视化插件有echarts.js,hightcharts.js,chart.js, d3.js等等.做项目当中用得比较多的echarts,所以今天就和大家分享下使用echarts的 ...
- FastAPI后台任务:异步魔法还是同步噩梦?
扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长 发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/ 1. 后台任务基础概念与快速入门 ...
- 即视角|元宇宙社交:新瓶旧酒 or 老树新芽?
即视角Insight共享即构新洞察,共建行业新动能--ZEGO即构科技基于音视频技术领域的多年深耕,综合面向各行业的服务经验,在[即视角]栏目发布即构对行业的洞察.近期我们将聚焦于#元宇宙商业化#话题 ...