低成本PMU电路设计:三维闪存DC测试中的量程、精度与校准策略
简介面向三维闪存测试场景的PMU电路设计方案详细阐述了基于FPGA的低成本精密测量单元PMU如何在3D NAND Flash直流参数测试中实现-10~30V电压范围与1mV精度、6nA电流测量精度。文档从测试需求出发分析了3D NAND Flash的CTF结构、编程/擦除机制对比现有测量芯片的不足并给出了完整的PMU模块原理图、16通道供电架构、DAC/ADC选型、继电器控制逻辑及模拟仿真方式内容覆盖电路设计到控制验证关键环节。压缩包内为单个docx文档约400KB已有70人学习适合集成电路测试、存储芯片验证相关工程师及研究人员快速了解低成本测试平台的构建思路也可作为PMU电路开发的参考。1. 低成本PMU电路省的是三维闪存测试里的通道成本不是精度三维闪存的层数逐年往上顶测试要覆盖的字线、位线和存储单元数量也在成倍增加。芯片测试里最贵的往往不是测试项本身而是测试设备上“能力电压、能测电流”的通道数量——ATE里一个带完整SMU功能的通道动辄数千美元如果每个被测引脚都配一个三维闪存的测试位成本会直接失控。PMU是ATE里负责参数测量与施加的最小单元它的低成本版思路很直接把高精度源表才用得上的动态特性砍掉换成多通道共享测量电路的估算方案换来通道密度的提升。这篇文章面向的是ATE硬件设计、测试板卡开发和做芯片测试方案选型的工程师讲清楚这件事怎么做才不踩坑。2. 三维闪存DC测试项与PMU电路的量程、精度和带宽边界2.1 三维闪存芯片测试中的PMU任务清单3D NAND和平面NAND有个显著差异存储单元垂直堆叠之后字线和位线的总长度变长层与层之间的寄生电容耦合变大漏电通道也明显增多。这直接改变了DC测试的重点——除了常规的引脚开短路、输入漏电、待机电流还必须对字线漏电和位线漏电做细测否则写读擦的窗口会随温度和使用时间漂移。这些测试项绝大多数是稳态测量。PMU要做的事情就是把电压给准、把电流读稳而不是像高速数字化仪那样捕捉纳秒级的波形。以老化测试为例DUT在高温下长时间加偏置测试系统只需要每隔一段时间读一次电流观察是否有退化趋势。这种“慢工细活”恰恰是低成本PMU电路最擅长覆盖的场景。2.2 用2个力电压档加1个漏电流档覆盖大部分DC测试项量程设计上我比较倾向只保留三个档位而不是像通用SMU那样做成七档甚至十档自动量程。档位越多切换用的继电器和模拟开关越多成本和故障率都跟着涨。对三维闪存测试来说真正频繁用到的其实就下面这几个测试项施加条件测量目标需要的量程精度要求引脚开短路0.7V / 1mA 力电流判断二极管结压是否正常±1mA±10%输入漏电0V 到 VCC引脚漏电流±100µA±1%待机电流VCC 供电整体电流水平±10mA±2%字线漏电20V 高压偏置层间漏电流±1µA±1%输出电压 VOH/VOL1mA 负载输出驱动能力0V 5V±0.5%对应到PMU量程上就是三档0V5V / ±10mA 常规档0V20V / ±1mA 高压小电流档以及 0V5V / ±1µA 微漏电流档。第一档覆盖 IDD、VOH/VOL 这些常规参数第二档专门处理写读擦高压偏置下的漏电第三档才是三维闪存测试最看重的那部分——单元漏电的细测。2.3 与ATE内置SMU的分界线牺牲带宽不牺牲设定分辨率低成本PMU和高端的集成SMU相比必须清楚自己砍掉了什么。测量带宽是第一个牺牲掉的SMU可以做几十kHz到MHz级的波形数字化而这里有10kHz级别的采样能力就足够了。电流分辨率是第二个牺牲点SMU能到pA级这里能做到nA级已经合格。但有一样不能省——电压设定分辨率。3D NAND对字线电压步进的要求很具体读写电压的偏移哪怕几十毫伏都会影响读窗口的判断。16bit DAC在20V满量程下的步进约0.3mV这个分辨率必须保留。选型时最容易犯的错就是为了降成本把DAC位数从16bit降到12bit省了几块钱却把整个PMU的量测可信度搭了进去。提示低成本设计的本质是在带宽和分辨率之间做取舍不要在“能不能测准”上妥协。3. 共享测量单元的低成本PMU电路架构4通道只配1个ADC3.1 力电压测电流回路的通道内结构与闭环思路每个通道的模拟部分其实不复杂核心就是一个带反馈的电压源加上一个电流采样电阻。DAC输出的目标电压送入高压运放的同相输入端运放输出经过量程电阻R_sense后接到DUT。DUT电流流过R_sense产生压差这个压差被差动放大器取出就是当前通道的电流值。这里有一个关键的细节反馈采样点必须接在DUT端而不是运放输出端。如果反馈点取在运放输出端R_sense上的压降会被直接忽略DUT 实际得到的电压会比设定值低尤其在10mA大电流档位下10Ω的R_sense上就有100mV压降这个误差完全不可接受。常见做法是用开尔文连接把DUT端的电压单独引回运放反相端形成四线制闭环DUT端的电压才真正被稳住。三维闪存的DUT引脚等效电容不小一条字线在测试座上可能呈现数百pF到1nF的负载。运放直接驱动这样的容性负载很容易振荡必须在输出级和DUT之间加一个隔离电阻把容性极点推到环路带宽之外代价是牺牲一点建立时间。3.2 采样保持与多路复用C_H取10nF的时序估算通道共享的核心是采样保持。每个通道的差动放大器输出端接一个采样开关开关后面挂一个保持电容C_H。测量时先闭合第0通道的采样开关让C_H充电到当前电流对应的电压值然后断开开关把这一份“快照”交给共用的ADC去转换。趁ADC转换的时间系统已经可以打开下一个通道的采样开关了。关键参数估算如下C_H 10nF R_on 50Ω # 模拟开关导通电阻 t_s 10 × R_on × C_H 5µs # 采样充电时间 t_h 4 × 100µs 400µs # 4通道轮流保持的总时长 dV I_leak × t_h / C_H 0.08mV # 保持期间的电压跌落保持期间的电压跌落取决于电容漏电2nA的漏电流在400µs内只造成0.08mV的跌落对整体噪声预算影响很小。但前提是C_H必须选C0G陶瓷电容或薄膜电容普通X7R在高温下漏电会大一到两个数量级老化测试环境里这个问题会被放大。3.3 单通道BOM成本拆解把账算清楚共享之后成本还剩下多少按单款测试板100片以上的典型量产条件估算16通道PMU板卡的器件成本大概是这样器件每通道用量摊薄后成本16bit DAC1约 $2.5高压运放1约 $3.824bit ADC0.254通道共享约 $2.0模拟开关0.062516通道共享约 $1.5量程电阻 0.1%2约 $0.6保持电容 C0G1约 $0.3输出保护与驱动若干约 $1.5合计每通道约 $12整个16通道板卡的BOM控制在$200以内测试座和结构件另算。这个量级比ATE槽位内的任何一款SMU模块都低一到两个数量级。成本大头在DAC和高压运放这两颗芯片上它们决定力电压的设定精度和输出稳定度不能省真正被共享电路省下来的是原本每通道一个的高精度ADC和配套模拟前端。4. 低成本PMU电路的建立时间、校准流程与数据处理脚本4.1 建立时间与量程电阻的选型计算测试时间直接决定三维闪存的制造成本而建立时间是其中看不见的大头。PMU建立时间主要由两部分组成环路自身的建立时间和DUT电容的充电时间。按前文的隔离电阻1kΩ、负载电容500pF到1nF估算内部极点大约在160kHz环路单位增益带宽取100kHz时实测从设定电压到稳定到0.1%大约需要50µs到200µs。对CP测试来说单个DC测试项通常给几百µs到几ms的时间预算这个建立时间完全可接受。量程电阻的选型要结合运放失调电压一起看。1µA微电流档位对应的R_sense取10kΩ如果前置放大器的失调电压是0.3mV零点误差就有30nA占满度的3%这个误差靠校准都不好压。常见做法是选自动调零运放Vos在5µV以内零点误差直接降到0.5nA剩下的残差再交给校准流程处理。4.2 三点校准流程零点、半量程与满量程每块板都要过校准是低成本PMU电路能不能用的关键工序。没有校准的16bit DAC和离散运放实际精度能做到5%就算不错而三维闪存测试要求字线电压误差在±0.5%以内。校准的步骤如下断开DUT把PMU输出通道接到外部6.5位万用表和精密电流计。对每个力电压档位依次设定零点、半量程、满量程三个电压点。记录外部万用表的实际电压读数和板上ADC返回的原始码值。对每个电流档位用精密电流源灌入已知电流同样记录ADC码值。全部数据导出为CSV上位机计算出每个通道的斜率和截距写回板载EEPROM。校准数据必须以外接万用表的读数为基准不能直接用DAC的设定值因为DAC的参考源本身就可能带误差。三点校准的好处是能同时修正增益误差和失调误差如果环境温度变化大还需要按温度点各做一遍在固件里查表插值。4.3 Python批量生成校准系数16个通道、3个量程每个量程做3个电压点总共144条记录。手工处理不现实固件导出CSV后用脚本批量拟合是常规操作。# pmu_cal.py # 输入: cal_raw.csv, 列为 channel, force_v, adc_raw # 输出: pmu_cal.json, 每个通道一组 scale/offset import csv import json import numpy as np CHANNELS 16 points {ch: [] for ch in range(CHANNELS)} with open(cal_raw.csv) as f: for row in csv.DictReader(f): ch int(row[channel]) # force_v 是外部万用表实测电压, 不是 DAC 设定值 points[ch].append((float(row[force_v]), float(row[adc_raw]))) coeffs {} for ch, pts in points.items(): y np.array([p[0] for p in pts]) # 实际电压, 单位 V x np.array([p[1] for p in pts]) # ADC 原始码, 无量纲 k, b np.polyfit(x, y, 1) # V k * code b coeffs[ch] {scale: round(k, 9), offset: round(b, 6)} with open(pmu_cal.json, w) as f: json.dump(coeffs, f, indent2)脚本的逻辑很直接按通道分组把ADC原始码作为自变量、实测电压作为因变量做一阶线性回归。这里要注意坐标方向——校准的目的是从ADC码反算真实电压所以拟合时x必须是ADC码。用最小二乘而不是简单的两点求斜率是因为实际采回来的数据点总带噪声多点拟合能把这些噪声平均掉比强行过两点更稳。固件读取pmu_cal.json后每次上报测量值前先做一次乘加运算即可。加上之前的模拟校准整条链路的电压误差可以控制在±0.1%以内电流误差在±0.5%以内这个水平对三维闪存DC参数测试已经足够。5. 整板验证与量产排查金样比对和GRR决定这块PMU能不能上产线5.1 金样比对差值分布比均值更关键校准完成后第一件事不是直接上产线而是做金样比对。找一颗测试特性稳定的三维闪存样品作为基准先在参考SMU上完整测一遍关键电压点的电流再切换到低成本PMU板卡上重测同一组电压点。两次结果的差值才是真正有用的数据。差值直方图的均值如果明显偏离零说明校准还有系统性偏差通常是量程电阻的阻值标定不对或者参考电压有偏移。标准差如果偏大重点查保持电容的漏电和电源纹波。我一般把合格线定在均值偏移小于0.3%、标准差小于0.5%对满量程归一化达不到就先别往下走。5.2 GRR分析与测试座接触电阻的干扰金样比对通过之后还要回答一个更实际的问题不同操作员、不同次装夹之间数据稳不稳。简化版GRR的做法是选10颗样品、2个操作员、每颗测3次对测量结果做方差分解。以下是三维闪存测试场景下的一组有代表性结果方差来源标准差方差贡献占比器件间差异0.50mV约98%测试系统本身0.05mV约1%测试座接触与装夹0.04mV约0.6%这个例子里总标准差约0.504mV测试系统GRR约0.064mVGRR%约12.7%在可接受范围内。如果GRR%超过30%优先怀疑测试座接触电阻——非开尔文连接下20V/1mA档位里1Ω的接触电阻波动就能折算成1mV的测量误差重复性必然恶化。三维闪存测试座的弹簧针用久了氧化接触电阻会缓慢爬升这问题在老化测试中尤其常见。5.3 板级参考电阻自检把老化漂移监控脚本化低成本PMU电路用的都是常规器件长时间运行后阻值漂移和运放参数退化不可避免。我一般会在测试板卡上预留三个高精度参考电阻1kΩ、10kΩ、100kΩ各一只精度0.1%。固件每天自动触发一次自检依次测这三个电阻的阻值算出与出厂标定值的偏差写进日志。这个自检功能可以直接挂到老化测试的自动执行脚本里测试工程师每天早上看一眼趋势图就行。阻值偏差超过0.2%就触发告警提示该通道需要重新校准或者检查排线连接。比等到DUT测试结果异常再回头排查效率高得多。本文还有配套的精品资源点击获取