从Column MUX到冗余替换:手把手拆解SoC中Memory Repair的硬件实现细节

张开发
2026/4/20 5:00:25 15 分钟阅读

分享文章

从Column MUX到冗余替换:手把手拆解SoC中Memory Repair的硬件实现细节
从Column MUX到冗余替换手把手拆解SoC中Memory Repair的硬件实现细节在现代SoC设计中存储器阵列的可靠性直接关系到芯片的整体良率。当MBIST测试检测到存储单元故障时硬件工程师面临的关键挑战是如何在不影响功能完整性的前提下实现物理层修复。本文将深入探讨从Column MUX技术到冗余替换的完整硬件实现路径揭示那些在RTL背后起作用的电路设计智慧。1. 存储器阵列的物理重构艺术1.1 Column MUX的硬件实现机制逻辑上的1Kx32存储器在实际物理实现时往往采用256x128的阵列结构这种形态转换的核心在于Column MUX电路的精妙设计。每个32位数据字的物理存储实际上分布在四个独立的子阵列中// 典型的Column MUX选择逻辑示例 assign data_out[31:0] { sub_array_3[addr[1:0]], sub_array_2[addr[1:0]], sub_array_1[addr[1:0]], sub_array_0[addr[1:0]] };这种结构带来三个显著的硬件特征地址解码优化将10位行地址转换为8位物理行地址2位列选择信号时序平衡128列结构使位线负载更均衡相比原生32列结构降低30%的存取延迟面积效率实际布线面积比逻辑尺寸减少约15%1.2 冗余单元的空间布局策略当引入冗余列时物理布局需要考虑以下关键因素冗余类型新增晶体管数布线增量时序影响单冗余列256个存储单元8条金属线1%延迟增加冗余IO组1024个存储单元32条金属线2-3%延迟增加冗余行128个存储单元全局字线扩展1.5%功耗增加提示在28nm工艺下每增加1%的冗余面积可提升约5%的存储器良率这个trade-off在大多数设计中是可接受的2. 修复电路的硬件实现细节2.1 列替换的移位器设计当检测到c0列故障时硬件需要实现数据路径的整体右移。这需要三个关键电路模块协同工作失效标志寄存器组每个物理列对应1bit寄存器级联移位控制逻辑always (*) begin for (i0; iCOL_NUM; ii1) begin if (fail_flag[i]) col_sel[i] col_sel_orig[i1]; else col_sel[i] col_sel_orig[i]; end end边界处理电路将最后一列数据路由到冗余列2.2 行修复的特殊考量行替换面临独特的硬件挑战字线驱动增强冗余行需要额外的驱动buffer时序匹配新增的行解码路径必须与原有时序严格对齐动态功耗控制未被启用的冗余行需保持断电状态实际项目中曾遇到冗余行启用后导致周边逻辑时序违例的情况最终通过插入额外的延迟单元解决了这个问题。3. 修复控制系统的硬件架构3.1 BISR链的物理实现典型的BISR链包含以下硬件组件扫描触发器阵列每个repair bit对应1个扫描触发器并行加载接口50-100MHz的时钟域交叉处理熔丝接口控制器高压编程电路~3.3V3.2 硬修复与软修复的电路差异两种修复方式在晶体管级实现上有显著区别特性硬修复软修复存储单元eFuse (1T1R)SRAM (6T)编程电压需高压泵电路标准逻辑电压上电时序100us级加载时间1ms级BIRA执行时间面积开销每位约50μm²每位约80μm²4. 实际工程中的优化技巧4.1 修复电路的时序收敛在物理实现阶段需要特别关注BISR链的时钟树综合保证scan shift时序修复信号布线采用shielded routing避免串扰跨电压域设计eFuse编程电压与逻辑电压隔离4.2 面积优化实践通过以下方法可减少修复电路面积共享BIRA逻辑多个存储器共用分析电路压缩修复信息利用地址编码而非one-hot动态修复启用仅在被测存储器使能修复电路某次流片经验表明通过优化修复信息编码方式成功将BISR寄存器面积减少了40%。

更多文章