如何验证ReRAM存储阵列的读写操作?
解读
面试官抛出该问题,核心想考察三点:
- 是否理解ReRAM(阻变存储器)“写→形成导电细丝→读→复位”这一物理机制带来的特殊行为;
- 能否把“特殊行为”翻译成可量化的验证功能点,并映射到SystemVerilog/UVM的测试结构;
- 是否具备“质量守门员”意识:除了功能,还要覆盖可靠性、良率、寿命、性能、功耗等多维度,最终给出可sign-off的量化结论。
国内一线IC公司(华为海思、兆易、长鑫、长江存储、平头哥、寒武纪等)的验证团队普遍把ReRAM阵列验证拆成“单元级→阵列级→系统级”三档,每档都要回片前闭环。回答时必须体现出“三档闭环”思维,否则会被认为只做过SRAM/DRAM的“移植式验证”,深度不够。
知识点
-
ReRAM物理特性
- 写操作:SET(低阻态LRS)、RESET(高阻态HRS)需不同极性/脉宽;存在Forming一次性激活;有写次数上限(~1M)及数据保持力(~10年@85℃)。
- 读操作:非破坏性读,但读电压窗口窄(0.2~0.4 V),过读会导致误写(read disturb)。
- 阵列结构:1T1R、1S1R、Cross-point;存在sneak path电流,需SL/BL偏置方案及IR-Drop补偿。
-
验证维度
- 功能:写验证、读验证、写后读、写失败回退、写前擦除、坏块替换。
- 时序:写脉冲宽度±5 ns、上升/下降沿<2 ns;读访问时间tRCD/tAA;阵列唤醒时间。
- 模拟-混合信号:Ron/Roff分布(3σ)、读电流灵敏放大器offset、位线漏电<1 nA。
- 可靠性:Endurance、Retention、Read-Disturb、温度循环-40~125℃。
- 良率/修复:冗余列、ECC(BCH/LDPC)、内建自测试BIST、自修复ISR。
- 性能-功耗:写能量pJ/bit、读电流mA、待机功耗μW;并需与Spec对比给出margin。
-
UVM验证结构
- 专用ReRAM VIP:产生BL/SL/WL模拟级真实波形,支持分布模型(Ron均值3 kΩ,σ 300 Ω)。
- 参考模型:行为级RRAM_model,用SystemVerilog DPI-C耦合SPICE级分布,实现cycle-accurate。
- Scoreboard:双向对比RTL与参考模型的阻态、电流、功耗;自动计算BER、SNM。
- FC:covergroup写脉宽、读电压、温度、地址跳变、endurance计数;要求覆盖100% cross。
- 断言:写脉冲宽度范围、读窗口电压、BL预充电完成、ECC纠正上限。
-
形式验证与加速
- Formal:用Synopsys VC Formal证明“任何地址在写后读必返回写入值”,穷举sneak path。
- FPGA原型:将阵列控制器+ECC+DMA放进Xilinx VU19P,跑Linux文件系统级压力;同步dump功耗波形。
- 硬件加速器(Zebu、Palladium):跑>100M cycle的Retention+Disturb混合场景,回注波形到UVM。
-
Sign-off标准(国内主流)
- 功能bug清零,FC 100%,断言无fire;
- 可靠性闭环:Endurance 2×Spec,Retention 1000 h@125℃等效,Read-Disturb 1×10^10次无fail;
- 性能功耗margin>10%;
- 良率模型预测>99.5%,冗余列修复后bitmap零缺陷。
答案
“我会把ReRAM阵列读写验证拆成五步闭环,确保回片前风险清零。
第一步,拆解特殊行为并量化功能点。写侧覆盖Forming、SET、RESET三种阻态切换,脉宽范围250 ns,电压±0.1 V精度;读侧覆盖0.20.4 V窗口,电流判别阈值±5 μA。同时定义误写概率<1 ppm,读错误率<1e-12。
第二步,搭建混合信号UVM环境。VIP用Wreal模型驱动BL/SL,内部调用DPI-C耦合的SPICE分布,实时输出Ron/Roff;参考模型在同一仿真域更新阻态,scoreboard对比RTL的sense amp输出。FC对写脉宽、地址gray跳变、温度-电压交叉全覆盖;断言检查sneak path电流<500 nA。
第三步,可靠性专项。用UVM序列循环跑Endurance 2×10^6次,每1×10^4次回读并做Retention Bake(125℃/0.5 h等效),同步统计Ron/Roff漂移。Read-Disturb采用背靠背读,地址滑动hammer,目标1×10^10次。所有fail自动dump阻态分布,定位到具体1T1R单元。
第四步,形式+加速兜底。VC Formal证明‘写→读一致性’与‘sneak path无旁路’;FPGA原型跑Linux FIO压力,对比功耗仪实测与PowerArtist估算,误差<5%。Palladium跑100M cycle的随机扰动,回注波形到UVM,确保无新corner。
第五步,量化sign-off。汇总功能、可靠、性能、良率四张表,给出margin:写能量pJ/bit低于Spec 15%,读电流margin 12%,ECC纠正后误码率零,预测良率99.7%。评审通过后归档,版本锁定。”
拓展思考
-
若阵列采用2D 1S1R无Selector结构,sneak path电流增大一个量级,验证如何收紧?
提示:需在VIP里引入非线性selector IV曲线,scoreboard增加“半选漏电积分”检查,FC增加半选/全选交叉覆盖,formal约束增加“半选单元阻态不变”断言。 -
国内ReRAM产品常做“存内计算”MAC阵列,验证如何证明“乘加结果误差<1%”?
提示:参考模型需把阻态映射为权重,阵列电流向量映射为输入,用SystemVerilog实数向量累加;scoreboard对比RTL输出的ADC编码与浮点黄金结果,统计INL/DNL。 -
回片后发现Retention早期失效,如何复现并定位到工艺缺陷?
提示:在ATE加高温Bake同时,通过MBIST循环扫描bitmap;把失效地址反标到GDS,用Calibre PERC做IR-Drop+热耦合分析,验证团队需提供“失效-阻态漂移”关联脚本,闭环到工艺。