想象你管理着一片山坡上的水田。山顶的泉水被分成几百条细流,沿着一层层梯田蜿蜒而下,最终汇入山脚的主水渠。你要根据主水渠的水位高度判断今年的收成——但问题来了:水位是连续的,一会儿涨一会儿跌,你的账本却只能记整数。于是你在水渠尽头立了一把水位标尺,把「多高」翻译成「第几格」。这把标尺,就是存内计算世界里的模数转换器(ADC)。SRAM/RRAM 存内计算阵列以电流汇聚的方式完成乘累加,输出的是一股「模拟水位」;ADC 就是那把把连续水位翻译成数字刻度的标尺。本文不讲 ADC 内部晶体管怎么搭,而是带你看懂:为什么 ADC 是存内计算芯片里面积和功耗最大的一笔开销,它如何决定芯片的整体能效,以及工程师在设计时如何权衡精度、速度和功耗——就像你最终要回答「标尺刻多细、多久读一次、花多少水费才划算」。
学懂 CIM 中 ADC 的设计权衡,你就握住了存内计算芯片能效的核心密码——这是从芯片架构师到 AI 推理部署工程师都绕不开的硬核素养。
可视化演示
展示ADC架构选型、量化误差传播与功耗优化,支持敏感度调节。
本节配有交互动效(进入视口后自动加载,约 3KB)。
ADC架构选型对比 红色Flash速度快但面积随位宽指数增长 蓝色SAR面积小但速度受限 Area_Flash ∝ 2^N - 1 Flash架构比较器数量随精度指数增长
ADC 角色定位
你是水田的主人,最关心的就是主水渠那个「水位读数」。在存内计算芯片里,SRAM/RRAM 阵列的每一行输入电压会驱动存储单元产生电流,同一列上几十上百个单元的电流在一条位线上自然叠加——这就是乘累加运算的物理实现。然而叠加的结果是一条连续的模拟电流/电压,就像不断变化的水位线,数字处理器根本读不懂它。ADC 站在阵列与数字电路之间,负责把这条位线上的「水位」翻译成一个二进制数字码,完成从模拟世界到数字世界的翻译。
这个翻译环节有多重要?在典型的 CIM 芯片中,ADC 的面积和功耗往往占据整个芯片的 30% 到 60%,是名副其实的「大户」。根源在于阵列是高度并行的——每一列输出都需要一个 ADC 通道,一个 256×256 的阵列可能同时对上百万个模拟量做转换。想象一下,如果每一条田垄出口都要立一把标尺,这把标尺的成本就决定了整个灌溉系统的造价。
因此,ADC 的角色不再是「一个外围电路」,而是 CIM 能效的天花板。它决定了阵列能以多快的速度、多高的精度把模拟计算结果送出,也决定了整颗芯片能效的上限。量化一个模拟电压的基本关系如下:
回到水田的场景:没有 ADC,你的账本永远只能写「水很多」这种模糊描述;有了 ADC,每一列计算都能精确记成「第 137 格刻度」。这把标尺的位置——紧贴着阵列、数量与列数一致、速度跟得上阵列出数——决定了整片水田的自动化程度。
- 模拟输入电压V_in 是阵列位线上汇聚出的连续电压值,对应主水渠的实时水位高度。
- 量化间隔Δ 是最小刻度对应的电压宽度,由 ADC 的位数决定,相当于标尺上两格之间的间距。
- 向下取整除法算出的商往往不是整数,向下取整表示「取水位落在的第几个刻度格里」,这也是量化误差的来源。
典型 ADC 架构
要测量主水渠的水位,工程师发明了三种典型的「标尺」:Flash、SAR 和流水线。它们各有各的读数哲学。
Flash ADC 是「大户人家」的做法:直接派 2^N 个测量员并排站在水渠边,每个人负责一个固定刻度,水位一到,所有测量员同时报数,瞬间完成转换。它速度最快,但代价是精度每增加一位,测量员数量翻倍——4 位需要 15 人,8 位需要 255 人。在 CIM 这种需要成百上千个 ADC 并排工作的场景,Flash 的面积代价高得让人心疼。
SAR ADC 则是「单人精读」:只派一个测量员,手持一根可伸缩的标尺,先假设水位在中间刻度,用二分法反复试探——「水位在上半段吗?在下半段吗?」每次试探缩小一半范围,N 位精度只需要 N 次试探。它面积小、功耗低,是当前 CIM 芯片中最主流的 ADC 架构。
流水线 ADC 像是组织的接力队:把一整条水渠分成若干段,每一段由一个小型子 ADC 快速读出粗刻度,余下的「残差水高」交给下一级继续精读。3 个人各读完一段,比 1 个人从头量到尾更高效。它吞吐率高,但单次延迟更长。三种架构的规模与速度特征可以通过比较器数量直观对比:
选哪种标尺,本质上是成本与效率的权衡。CIM 芯片通常追求「多快好省」:SAR 以最低的面积功耗完成足够的精度,因此最受青睐;速度要求极高的场景会让流水线上场,而 Flash 则少见地出现在超高速、低精度的特定位置。
- 位数 NADC 的数字输出位数,每增加一位,可区分的刻度数翻倍。
- 指数膨胀2^N 是可区分的刻度数量,Flash 需要为每个刻度准备一个比较器。
- 减一修正最高刻度无需比较器,因为剩下那个值就是倒数第二个刻度以上,所以总数减 1。
ADC 精度需求
标尺上的刻度刻多细,才配得上这片水田?这是 ADC 设计的第一问。ADC 位数直接决定刻度密度:4 位把满量程分成 16 格,8 位分成 256 格。听起来位数越多越好,但每多一位,面积约翻倍、功耗约翻倍、转换时间也要拉长——这就像把标尺刻得越细,标尺本身越贵越娇气。
更关键的是,CIM 阵列本身不是一台理想仪器。存储单元的工艺偏差导致电流有随机波动,位线上的寄生电容带来噪声,输入 DAC 的精度也有限——这些非理想因素叠加起来,给阵列的「真实水位」蒙上了一层雾。此时就算 ADC 有 12 位的精度,读出来的也只是一层被噪声污染的细刻度,多花的钱全打了水漂。因此工程师更关注有效位数 ENOB——排除了噪声和失真之后,ADC 实际能提供的可靠位数。
CIM 设计有一个经验法则:ADC 的有效位数与阵列计算的信噪比匹配即可。阵列本身信噪比只有 6 位,ADC 做到 6~7 位就是最优解;继续堆位数,精度收益会被阵列噪声淹没,功耗和面积却实打实地恶化。有效位数 ENOB 从实测信噪比反推:
刻度细到能看清雾里的水位就足够了。优秀的 CIM 设计师会把 ADC 位数调到与阵列固有噪声匹配的点上,把省下的面积和功耗预算留给更多计算单元——这才是「好钢用在刀刃上」。
- 实测信噪比SNR_actual 是 ADC 实际输出信号与噪声功率之比,单位 dB,噪声包括量化噪声、热噪声和失真。
- 减去常数1.76 dB 是理想量化噪声的固定功率,先从总信噪比中扣除。
- 除以增益每增加一位有效位数,信噪比提升约 6.02 dB,所以反除得到真实的位数。
量化误差分析
无论标尺刻得多细,读数与真实水位之间永远有一道缝——这就是量化误差。它是 ADC 最本源的误差来源:一个连续变化的水位,硬要归入有限个离散刻度,注定要被「舍入」。好在这种误差是有界的:只要读数策略是四舍五入,误差最大不超过半个刻度宽度。
量化误差最迷人的地方在于它的统计规律。当输入信号在标尺上快速变化时,量化误差近似均匀分布在一个量化间隔内,表现得像一层叠加在信号上的噪声——即量化噪声。它的功率可以精确计算,并且与位数有简洁的关系:位数每增加 1,量化噪声功率降低到原来的四分之一,信噪比提升约 6 dB。这就是经典 SNR 公式的来历:
在一层层的神经网络中,量化误差还会像涟漪一样向前传递。第一层卷积输出的量化误差混入特征图,第二层再来一次量化,误差不断累计、放大,最终可能在深层网络中造成分类错误。这就像水位读数的一点点偏差,在梯田逐级灌溉中被放大成下游旱涝的差异。因此,量化误差分析是 CIM 芯片验证阶段必须反复推演的功课。
- 位数增益6.02N 表示每增加 1 位,信噪比线性提升约 6.02 dB,来源于量化噪声功率减半再减半。
- 固定偏置1.76 dB 来自信号满幅正弦波条件下量化噪声的统计平均功率,与位数无关,是一个常数。
- 求和把两者的贡献相加,就得到了理想 ADC 的理论信噪比上限。
采样速率设计
标尺立好了、刻度也够细了,下一个问题是:你每隔多久读一次水位?这就是采样速率设计。在 CIM 芯片中,ADC 的转换时间直接决定了数据的出厂速度:每一次乘累加完成后,列线上的模拟结果必须在下一个计算周期开始前完成数字化,否则就会拖慢整个阵列的节奏。
这里的核心矛盾是「阵列太快,ADC 跟不上」。想象一个大型阵列一眨眼就完成了一次乘累加,而 ADC 还在慢悠悠地逐位逼近——ADC 就成了水渠的瓶颈。为了匹配阵列的吞吐,CIM 通常采用列并行结构:每列配一个 ADC 同时工作,用数量换速度。但 ADC 数量一多,面积功耗就上去了,鱼与熊掌不可兼得。
由此引出吞吐量的基本公式——转换时间越短,单位时间内能处理的模拟结果越多:
最后还要考虑数据率匹配:ADC 输出的数字码要喂给后级的数字累积器和激活函数模块,如果 ADC 出数太快而数字电路消费不过来,就会在接口处堆积「数据洪水」。所以采样速率设计是从阵列到 ADC 再到数字后端的一整条流水线的节奏协调,任何一个环节慢了,整个系统的吞吐就只能按最慢的算。
- 并行 ADC 数量N_ADC 是同时工作的 ADC 通道数,CIM 中通常等于阵列的列数。
- 转换时间T_conv 是单个 ADC 完成一次量化所需的时间,包含采样、比较和输出三个阶段。
- 求倒数单位时间内每个 ADC 能完成的转换次数是 1/T_conv,乘以总通道数即总吞吐。
流水线架构
当 SAR 的速度撑不起高吞吐场景,流水线 ADC 便登场了。它的思想像田径场上的接力赛:与其让一个人从起点跑到终点,不如分成几棒,每人只跑一段,整体却可以同时有多段在跑。具体到 ADC 上,每一级先对本级的模拟输入做一次低精度的粗量化,然后算出「我还没读准的残差」,把残差放大后交给下一级继续处理。
级间残差放大是流水线的灵魂。每一级测完一部分后,剩余的残差往往很小,必须放大到满量程再交给下一级,下一级才能分辨出细节。这个放大倍率与级数设计密切相关,通常每级取 1.5 位或 2.5 位,并留出冗余位用于校准级间失配。残差的计算可以抽象为:
流水线的代价是时钟对齐。各级必须精密同步:当三级流水线同时处理三个不同的样本时,任何一个时钟抖动都会让各级数据错位,产生难以修复的误差。此外,单次转换的延迟比 SAR 更长——第一棒跑完要等最后一棒冲线才能得到完整结果。但吞吐率反而更高,因为流水线一旦填满,每一拍都有一个样本输出。在需要持续高速处理图像的 CIM 加速器中,这种「慢启动、高吞吐」的接力模式极具吸引力。
- 输入翻倍2 × V_in 把残差放大到满量程附近,让下一级能充分发挥自己的分辨率。
- 扣除已量化部分V_DAC 是本级粗量化结果对应的模拟电压,把它从翻倍后的信号中减去,剩下的才是未读出的残差。
- 残差输出V_res 即残差电压,传递给下一级作为新的输入,接力棒就此交接。
低功耗优化
水费是灌溉系统的日常开支,ADC 的功耗则是 CIM 芯片的「水费账单」。在数以千计的 ADC 列通道面前,哪怕每个 ADC 省 0.1 微瓦,汇总起来都是可观的节约。低功耗优化因此成为 CIM 设计中的显学,主要有三板斧。
第一板斧是动态比较器。传统比较器是常开的「电灯」,无论有没有信号都在耗电;动态比较器只在时钟触发的那一瞬间上电比较,平时处于复位状态,相当于「人走灯灭」。在 SAR ADC 中,比较器是最活跃的电路,动态化之后静态功耗趋近于零,是省电效果最明显的一招。
第二板斧是非二进制搜索。标准 SAR 的每一次比较都严格折半搜索,但模拟域的死区——接近阈值附近时比较器分辨不出的区域——会让某些比较变得毫无信息量。非二进制搜索算法在冗余刻度上多做一次校验,用额外的比较换取容错性,反而可以减少因误判导致的重复转换。这就像量水位时如果刻度太密看不清,聪明的测量员会先大步量一边,再回头验证关键位置。
第三板斧是电源门控。阵列计算并不是每时每刻都在进行,空闲的 ADC 列通道完全可以在一个操作周期内断电休息,等到下一轮计算开始时再恢复供电。动态功耗与电源电压的平方成正比:
这三板斧组合使用,能把 ADC 的功耗压到令人惊讶的水平。动态比较器负责日常节能,非二进制算法负责减少无效动作,电源门控则让空闲通道彻底「断水断电」。对于电池供电的边缘 AI 芯片来说,这些优化直接决定了设备能用一周还是一天。
- 开关活动因子α 表示电路节点在一个时钟周期内平均翻转的次数,0 到 1 之间,与输入数据的统计特性有关。
- 负载电容C 是 ADC 内部节点充放电的等效电容,由晶体管尺寸和布线决定。
- 电压平方项V_DD^2 说明电压对功耗影响最大,采用低电压供电是省电的最优先手段。
- 工作频率f 是时钟频率,频率越低单位时间充放电次数越少,功耗越低。
能效与方案对比
最后回到全局:这片水田到底值不值得装上这套测量系统?衡量 ADC 在 CIM 中是否划算,行业通用的指标是能效——用 TOPS/W 表示每瓦功耗能完成多少万亿次运算。ADC 的功耗和面积直接拉低这个数字,因此 ADC 选型本质上是在做一笔投资回报计算。
常见的对比维度有三个。第一是能效指标 TOPS/W:SAR 以最低功耗完成中等精度转换,通常能效最高;流水线吞吐大但功耗也大,适合追求极致算力的云端场景;Flash 能效最低,除非速度要求极端否则很少入选。第二是面积成本:ADC 阵列要占用芯片大量面积,面积越小越能塞下更多计算单元。第三是部署难度:SAR 设计简单、鲁棒性强,对工艺偏差不敏感,最容易落地;流水线要处理级间校准和时钟对齐,设计和验证成本更高。
工程上常用 Walden 品质因数来统一比较不同 ADC 方案的效率:
没有绝对的赢家,只有合适的方案。一位经验丰富的设计师会先问三个问题:阵列的信噪比是几位?目标吞吐是多少?功耗预算是多少?然后在这张「精度-速度-功耗」的三角图中描出一个点,选中最接近那个点的 ADC 架构。水田的主人也一样:不是标尺越精细越好,而是让你的测量系统与整片田地的实际水位波动相匹配,才是大智慧。
- 总功耗P 是 ADC 的整体功耗,包括静态和动态两部分。
- 有效转换次数2^{ENOB} 表示有效位数对应的可区分状态数,乘上采样频率 f_s 得到每秒完成的等效转换次数。
- 比值功耗除以每秒转换次数,就是单次有效转换消耗的能量,FoM 越小效率越高。
AI 应用场景
边缘端语音唤醒芯片
阶段:模型部署与硬件加速
解决的问题:智能音箱、可穿戴设备上的语音唤醒模型需要在毫瓦级功耗下持续运行。传统方案用数字电路做矩阵运算,访存开销大、功耗高。存内计算把权重存在 SRAM 中直接完成乘累加,但模拟输出必须靠 ADC 转换后才能进入后级数字分类器。低功耗 SAR ADC 列并行方案完美契合「小面积、低功耗、中等精度」的需求。
具体案例:一颗用于关键词唤醒的 CIM 芯片采用 256 列 SAR ADC,每列 6 位精度,整体功耗控制在 1 mW 以内,在「你好,小度」这一级唤醒场景中实现了 99% 以上的唤醒准确率,电池续航比纯数字方案提升 3 倍。
云端高吞吐推理加速器
阶段:数据中心推理优化
解决的问题:云端大模型推理要求极高的吞吐量,CIM 加速器需要流水线 ADC 来保证矩阵乘的每一拍都能出数。流水线架构虽然单次转换延迟略高,但填充后的持续吞吐率远超 SAR,且能通过级间校准达到较高有效位数,匹配大模型的精度需求。
具体案例:某互联网公司的 RRAM 存内计算加速器采用 10 位流水线 ADC,每列转换速率达到 1 GS/s,配合 512×512 的阵列,实现单芯片 100 TOPS 的整数算力,在以 BERT 为代表的中等规模模型推理中比传统 GPU 方案能效提升 5 倍。
Python 演示
"""模拟存内计算中 SAR ADC 的量化过程"""import math def sar_adc(analog, bits=4, vref=1.0): """SAR ADC 逐次逼近量化:模拟电压 -> 数字码""" analog = max(0.0, min(vref, analog)) lo, hi = 0.0, vref code = [] for _ in range(bits): mid = (lo + hi) / 2.0 if analog >= mid: code.append(1) lo = mid else: code.append(0) hi = mid value = (lo + hi) / 2.0 return code, value, analog - value def cim_mac_with_adc(weights, inputs, bits=4): """模拟存内计算乘累加后经 ADC 量化的完整链路""" mac = sum(w * x for w, x in zip(weights, inputs)) v_in = 1.0 / (1.0 + math.exp(-mac)) code, value, err = sar_adc(v_in, bits) return v_in, value, err, code if __name__ == "__main__": weights = [0.8, -0.3, 0.5, 0.2] inputs = [1.0, 0.5, -0.2, 0.7] raw, quantized, err, code = cim_mac_with_adc(weights, inputs, bits=4) print("模拟 MAC 结果(归一化): {:.4f}".format(raw)) print("ADC 量化输出: {:.4f}".format(quantized)) print("量化误差: {:.4f}".format(err)) print("4-bit 数字码: {}".format(code)) print("量化精度损失: {:.2f}%".format(abs(err) / raw * 100))
lo, hi = 0.0, vref初始化 SAR 搜索区间为整个电压范围,对应标尺的最高和最低刻度for _ in range(bits):每一位数字码对应一次二分试探,4 位就是 4 次比较mid = (lo + hi) / 2.0取当前区间中点作为本次试探的参考电压if analog >= mid:比较器判断:输入电压在中点之上置 1,否则置 0value = (lo + hi) / 2.0用最终区间中点作为量化代表值,即标尺读数v_in = 1.0 / (1.0 + math.exp(-mac))用 sigmoid 把 MAC 结果归一化到 0~1V 模拟电压范围,模拟列电流到电压的映射
常见误区
误区ADC 位数当然是越高越精准,12 位一定比 8 位好,设计时直接选最高位数不就完事了?
正解CIM 阵列本身有存储单元工艺偏差、位线噪声和 DAC 误差,整体信噪比通常只有 6~8 位。ADC 位数超出阵列噪声水平后,精度收益趋近于零,功耗和面积却按指数增长。就像给一辆轰鸣的拖拉机装赛车级精密仪表,仪表再准也被发动机噪音盖住。正确做法是让 ADC 的有效位数略高于阵列信噪比即可。
为何常见:芯片手册上动辄 12 位、16 位的标称参数给人「越高越好」的直觉,忽略了系统级噪声才是真正的精度天花板。
误区量化误差既然是「噪声」,那多做几次采样取平均不就能消掉吗?
正解量化误差是有界的、确定的舍入误差,它与输入信号强相关——同一个输入永远落在同一个刻度格里,平均多少次都不会变。只有当输入信号在刻度间快速变化时,量化误差的统计表现才接近均匀分布的白噪声。这就像标尺读数:你盯着同一格看十遍也还是同一格,而不是在真实值和刻度之间随机跳动。
为何常见:很多人套用热噪声「多次平均降噪」的经验,把量化误差误当成随机过程。
误区Flash 是最快的 ADC 架构,CIM 要追求高吞吐,每个列通道都放一个 Flash 不就行了?
正解Flash 的快是以比较器数量指数级膨胀为代价的。8 位 Flash 需要 255 个比较器,在 CIM 动辄几百列阵列的并行场景下,面积和功耗会爆炸。SAR 虽然单次转换慢一些,但面积小功耗低,可以在同样面积预算下铺更多并行通道,总量反而更高。CIM 追求的是「面积功耗约束下的总吞吐」,不是单通道的极限速度。
为何常见:孤立比较单个 ADC 的速度指标,忽略了 CIM 列并行结构下的面积换吞吐策略。
误区芯片手册上写了 10 位,那它输出的精度就是 10 位,直接用就行。
正解标称位数是理想条件下的分辨率,实际电路中比较器失调、时钟抖动、参考电压噪声都会侵蚀精度。ENOB 是根据实测 SNR 反推出的真实位数,往往比标称低 1~3 位。设计系统时若按标称位数做精度预算,最终部署时精度可能不达标。就像标尺上虽然印了 100 格刻度,但印刷模糊、刻度歪斜,实际能可靠读出的只有 70 格。
为何常见:芯片厂商的标称参数最容易查到,实测的 ENOB 需要搭建测试平台才能获得,很多工程师图省事直接用标称值。
误区把 ADC 的功耗和速度优化好,整个 CIM 芯片的能效自然就上去了。
正解CIM 是阵列、DAC、ADC、数字后端的整体系统。ADC 的输入信号质量、阵列的电流稳定性、数字接口的数据率匹配都会影响最终能效。有时降低 ADC 精度、把省下的预算用于增大阵列规模,反而能获得更高的整体能效。孤立的 ADC 优化就像只校准标尺却不管水渠本身的淤堵,读数是准了,水流却不畅。
为何常见:ADC 占芯片面积功耗比例最大,容易让人产生「抓住主要矛盾就万事大吉」的错觉。
面试题
Q1. 在存内计算芯片中,ADC 的核心作用是什么?
- A.把数字权重转换为模拟电压
- B.把模拟计算结果转换为数字码← 正确答案
- C.把数字信号放大后存储起来
- D.把存储单元的数据永久保存
答案:B。CIM 阵列以电流叠加方式完成乘累加,输出模拟电压/电流,ADC 负责把这个模拟结果量化为数字码,供后级数字电路处理。选项 A 是 DAC 的功能,C 和 D与 ADC 无关。这就像水渠尽头的水位标尺,把连续水位翻译成刻度读数。
Q2. 一个 N 位 ADC 可以区分的量化电平数是多少?
- A.N 个电平
- B.2N 个电平
- C.2^N 个电平← 正确答案
- D.N^2 个电平
答案:C。N 位二进制码共有 2^N 种组合,对应 2^N 个量化电平。例如 4 位 ADC 可将满量程分成 16 格,8 位分成 256 格。选项 C 正确,其他选项都低估了位数带来的电平数增长。这与标尺上刻度的总格数是一样的道理。
Q3. 关于 SAR ADC 的工作过程,下列说法正确的是?
- A.所有位并行比较,一次完成转换
- B.从最高位开始逐位二分逼近输入电压← 正确答案
- C.不需要比较器,直接输出数字码
- D.只能用于低频信号,速度最慢
答案:B。SAR ADC 的核心是逐次逼近:从最高位开始,每次用参考电压与输入比较,根据比较结果锁定当前位的值,再进入下一位,N 位共需 N 次比较。选项 A 描述的是 Flash ADC,C 和 D 均不成立。这就像一个测量员用二分法反复试探水位。
Q4. 满量程 1V 的 4 位 ADC,量化间隔 Δ 是多少?
- A.1/16 V← 正确答案
- B.1/8 V
- C.1/4 V
- D.1/2 V
答案:A。量化间隔等于满量程除以电平数:Δ = 1V / 2^4 = 1/16 V。4 位 ADC 将 0~1V 的范围分成 16 个均匀刻度,每个刻度宽 1/16 V。这是量化误差分析的基础,也是理解标尺刻度密度的起点。
Q5. 理想 8 位 ADC 的信噪比 SNR 约为多少?
- A.约 25.8 dB
- B.约 49.9 dB← 正确答案
- C.约 100.2 dB
- D.约 16.0 dB
答案:B。根据 SNR = 6.02N + 1.76 dB,代入 N=8 得:6.02×8 + 1.76 = 49.92 dB,约 49.9 dB。选项 A 是 4 位的结果,C 约等于 16 位的结果,D 没有对应关系。每增加一位,信噪比提升约 6 dB。
Q6. 流水线 ADC 相比 SAR ADC 的主要优势是什么?
- A.单次转换的延迟更低
- B.持续输出数据的吞吐率更高← 正确答案
- C.有效位数一定更高
- D.芯片面积一定更小
答案:B。流水线 ADC 把转换分成多级接力,虽然单次转换的延迟比 SAR 更长,但流水线一旦填满,每个时钟周期都能输出一个完整样本,持续吞吐率显著更高。选项 A 恰好说反,C 和 D 并不必然成立。这就像接力赛跑,第一棒到终点虽然慢,但整体节奏很快。
Q7. 在 CIM 中决定 ADC 精度选择的主要因素有哪些?
- A.阵列计算固有的模拟噪声← 正确答案
- B.存储单元的工艺偏差← 正确答案
- C.功耗与面积的预算约束← 正确答案
- D.操作系统中的线程调度
答案:ABC。CIM 的 ADC 精度应匹配系统的整体信噪比:阵列噪声和工艺偏差决定了精度的天花板,功耗面积预算决定了可持续的位数上限。选项 D 是纯软件层概念,与硬件 ADC 精度无关。精度的本质是「与系统噪声匹配」,而不是越高越好。
Q8. 以下哪些措施属于 CIM 中 ADC 的低功耗优化手段?
- A.采用动态比较器减少静态功耗← 正确答案
- B.使用非二进制搜索算法减少冗余比较← 正确答案
- C.对空闲 ADC 通道实施电源门控← 正确答案
- D.提高参考电压来增强信号幅度
答案:ABC。动态比较器只在时钟触发瞬间耗电,非二进制搜索通过冗余校验减少误判导致的重复转换,电源门控让空闲通道断电——这些都是 ADC 低功耗的经典手段。选项 D 提高参考电压反而会增加功耗,不是优化手段。
Q9. 关于量化误差,下列说法正确的有哪些?
- A.量化误差的最大值不超过半个量化间隔← 正确答案
- B.增大 ADC 位数可以减小量化误差← 正确答案
- C.量化误差是满足白噪声特性的随机噪声
- D.量化误差与输入信号的取值无关
答案:AB。四舍五入策略下量化误差有界,最大为 Δ/2,位数增大使 Δ 变小,误差随之减小。选项 C 错误:量化误差是确定性且与输入强相关的,仅在信号快速变化时才近似均匀分布;D 错误:不同输入电压的量化误差完全不同。它更像标尺读数的固定偏差,而不是随机抖动。
Q10. 3 位 SAR ADC,参考电压 1V,输入 0.72V,第二次比较使用的参考电压是多少?
- A.0.250 V
- B.0.500 V
- C.0.750 V← 正确答案
- D.1.000 V
答案:C。SAR 第一次比较参考电压为中间值 0.500V,0.72V > 0.5V,因此锁定高位为 1,搜索区间变为 [0.5, 1.0]V。第二次比较取该区间中点,即 (0.5 + 1.0)/2 = 0.750V。这正是动画中逐位逼近的二分搜索过程,理解 SAR 的核心逻辑即可推出答案。