3. BIST架构与分类:逻辑BIST与存储器BIST的区别、BIST的基本组成、在线与离线BIST
内建自测试(Built-In Self-Test, BIST)是ASIC设计中实现可测试性设计(DFT)的核心技术之一。它的本质是将测试激励生成、测试响应分析和测试控制逻辑“内建”到芯片内部,使芯片能够在不依赖外部自动测试设备(ATE)的情况下,对自身逻辑电路或存储器阵列进行功能与结构测试。本章将系统阐述BIST的架构分类、基本组成模块,以及在线与离线两种工作模式,帮助读者建立从概念到工程实现的完整认知框架。
3.1 BIST的基本组成:三大核心模块
无论逻辑BIST还是存储器BIST,其硬件架构都围绕三个核心模块构建:测试模式生成器(TPG)、响应分析器(RA)和BIST控制器(BC)。这三个模块协同工作,构成完整的自测试闭环。
3.1.1 测试模式生成器(TPG)
TPG负责产生施加到被测电路(CUT)的测试激励。在逻辑BIST中,最常用的TPG是伪随机模式生成器(PRPG),通常基于线性反馈移位寄存器(LFSR)实现。LFSR通过特征多项式产生周期性的伪随机序列,其优点是硬件开销小、速度高,且无需存储大量测试向量。对于时序逻辑,TPG还需要配合相位偏移器(Phase Shifter)来降低相邻扫描链之间的相关性,避免测试向量退化。
在存储器BIST中,TPG的角色由算法生成器承担。它不再产生随机向量,而是按照预定的测试算法(如March C、March C-、SMarch等)生成地址序列、数据背景和读写控制信号。例如March C算法包含6个March元素,每个元素对存储器所有单元执行特定的读写操作序列,能够覆盖固定故障、转换故障、耦合故障等多种存储器缺陷模型。
3.1.2 响应分析器(RA)
RA负责采集被测电路的输出响应,并与期望值进行比较。逻辑BIST中最常用的RA是多输入特征寄存器(MISR)。MISR将多个扫描链的输出信号压缩为一个特征签名(Signature),测试结束时只需比对最终签名即可判断电路是否存在故障。这种压缩技术大幅减少了需要存储的期望响应数据量,但存在混淆(Aliasing)风险——即不同故障产生相同签名的概率。工程上通过选择合适的多项式和增加签名位宽来将混淆概率控制在2-n以下(n为MISR位宽)。
存储器BIST的RA则相对简单,通常采用逐位比较器或奇偶校验器。由于存储器的输出是确定性的,RA可以直接将读出的数据与写入的期望数据逐位比较,一旦发现不匹配立即记录故障地址和故障类型。对于带ECC的存储器,RA还可以与ECC校验逻辑结合,实现单比特纠错和多比特检错。
3.1.3 BIST控制器(BC)
BC是整个BIST架构的“大脑”,通常实现为一个有限状态机(FSM)。它负责:
- 测试调度:决定何时启动BIST、执行哪组测试向量、何时终止测试。
- 时钟管理:在测试模式下切换时钟源,确保TPG、CUT和RA同步工作。
- 结果判定:读取RA的最终签名或比较结果,产生PASS/FAIL信号。
- 诊断接口:通过JTAG或IEEE 1500接口与外部测试设备通信,导出故障信息。
BC的设计需要特别注意测试时钟的建立与保持时间,以及异步信号的同步处理,避免在测试过程中产生亚稳态问题。
| 模块 | 逻辑BIST实现 | 存储器BIST实现 | 关键设计指标 |
|---|---|---|---|
| TPG | LFSR + 相位偏移器 | March算法状态机 | 覆盖率、硬件开销、测试时间 |
| RA | MISR(特征压缩) | 逐位比较器 + 故障地址锁存 | 混淆概率、诊断分辨率 |
| BC | FSM + 扫描链控制 | FSM + 地址计数器 + 修复逻辑 | 状态复杂度、测试时间、功耗 |
3.2 逻辑BIST与存储器BIST的核心区别
虽然逻辑BIST和存储器BIST共享相同的三大模块框架,但它们在测试目标、算法复杂度、硬件开销和诊断能力上存在显著差异。理解这些差异对于选择合适的BIST方案至关重要。
3.2.1 测试目标与故障模型
逻辑BIST针对的是标准单元逻辑(组合逻辑和时序逻辑),其故障模型基于单固定故障(SAF)、转换故障(TF)和路径延迟故障。这些故障模型需要大量的随机或确定性测试向量来达到高覆盖率,通常要求达到95%以上的SAF覆盖率。
存储器BIST针对的是存储器阵列,其故障模型包括地址译码故障、单元固定故障、转换故障、耦合故障(如相邻单元干扰)和数据保持故障。March算法能够以极短的测试序列覆盖这些故障,例如March C-算法仅需10N次读写操作(N为存储单元数),即可覆盖绝大多数单单元和双单元故障。
3.2.2 测试时间与覆盖率
逻辑BIST的测试时间取决于LFSR的种子和测试向量的数量。一个典型的逻辑BIST可能需要数千到数百万个伪随机向量才能达到目标覆盖率,测试时间从毫秒到秒级不等。相比之下,存储器BIST的测试时间与存储容量呈线性关系,一个1Mb的SRAM使用March C-算法仅需约10ms(假设100MHz测试时钟)。
在覆盖率方面,逻辑BIST的伪随机向量往往存在覆盖率饱和现象——即随着向量数量增加,覆盖率提升越来越缓慢。此时需要插入确定性测试向量或使用加权伪随机技术来突破瓶颈。而存储器BIST的March算法是确定性的,只要算法选择正确,覆盖率可以精确计算,不存在随机性问题。
3.2.3 硬件开销与诊断能力
逻辑BIST的硬件开销通常占芯片总面积的1%~5%,主要包括LFSR、MISR、相位偏移器和控制器逻辑。其诊断能力相对有限,只能提供签名比对结果,定位故障需要额外的扫描链诊断技术。
存储器BIST的硬件开销更低,通常小于1%,因为算法生成器和比较器逻辑非常简单。但其诊断能力更强,可以精确记录故障地址、故障类型和故障数据,这对于后续的冗余修复(如行/列替换)至关重要。许多存储器BIST还支持内建修复分析(BIRA),能够在测试过程中直接计算最优修复方案。
3.3 在线BIST与离线BIST
根据BIST的运行时机和应用场景,可以将其分为在线BIST和离线BIST两大类。这一分类直接决定了BIST架构的设计约束和实现方式。
3.3.1 离线BIST(Off-line BIST)
离线BIST在芯片正常工作之前或之后运行,此时被测电路不执行用户功能。典型的应用场景包括:
- 上电自检(POST):芯片上电后、进入用户模式前,执行一次完整的BIST测试,确保硬件无故障。
- 生产测试:在晶圆测试或封装测试阶段,通过ATE触发BIST,减少对ATE向量存储的依赖。
- 维修诊断:设备返修时,通过JTAG强制进入BIST模式,快速定位故障模块。
离线BIST的优点是测试时间灵活,可以使用较长的测试序列来追求高覆盖率;缺点是无法检测运行时的瞬态故障(如电磁干扰引起的软错误)。
3.3.2 在线BIST(On-line BIST)
在线BIST在芯片正常工作期间运行,又细分为并发BIST(Concurrent BIST)和非并发BIST(Non-concurrent BIST)。
并发BIST利用电路的空闲周期或冗余资源执行测试,不影响正常功能。例如,在双端口SRAM中,一个端口用于正常读写,另一个端口在空闲时执行March测试。并发BIST的硬件复杂度较高,需要额外的仲裁逻辑和资源隔离,但能够实现实时故障检测,适用于高可靠性场景(如汽车电子、航空航天)。
非并发BIST在功能运行期间暂停用户操作,切换到测试模式执行BIST,完成后恢复功能。这种方式实现简单,但会造成功能中断,通常用于周期性自检(如每100ms执行一次1ms的BIST)。
3.3.3 在线与离线BIST的架构差异
在线BIST的架构设计面临更严格的约束:
- 时钟域隔离:测试时钟必须与功能时钟严格隔离,避免测试操作干扰功能时序。
- 数据保护:并发BIST不能破坏存储器中已有的用户数据,因此需要额外的数据备份或影子寄存器。
- 功耗控制:在线BIST的功耗不能超过芯片热设计功耗(TDP),否则可能引起局部过热。
- 故障响应:在线BIST检测到故障后,需要立即触发中断或降级模式,而不是简单地输出FAIL信号。
| 对比维度 | 离线BIST | 在线BIST(并发) | 在线BIST(非并发) |
|---|---|---|---|
| 运行时机 | 上电/生产/维修 | 功能运行期间 | 功能暂停期间 |
| 功能影响 | 无(非运行状态) | 无(利用空闲资源) | 有(短暂中断) |
| 故障检测能力 | 永久故障 | 永久+瞬态故障 | 永久+部分瞬态 |
| 硬件开销 | 低 | 高(需仲裁/备份) | 中 |
| 典型应用 | 消费电子、ATE测试 | 汽车安全、医疗设备 | 通信基站、服务器 |
3.4 案例拆解:汽车MCU的混合BIST架构设计
以一款面向汽车功能安全(ISO 26262 ASIL-D)的MCU为例,该芯片包含一个ARM Cortex-R5F内核、2MB Flash、512KB SRAM以及CAN/FlexRay通信控制器。设计目标是实现99%以上的单点故障覆盖率和90%以上的潜在故障覆盖率,同时满足10ms的上电自检时间约束。
3.4.1 初始方案与约束
初步方案采用全离线BIST:上电后依次执行Flash BIST(March C-算法)、SRAM BIST(March C-算法)和逻辑BIST(LFSR伪随机)。然而仿真发现,逻辑BIST需要200万个伪随机向量才能达到95%的SAF覆盖率,在100MHz测试时钟下需要20ms,超出10ms的预算。
3.4.2 优化分析与决策
经过分析,团队决定采用分层混合BIST架构:
- 存储器BIST:保持离线模式,但将Flash和SRAM的测试并行执行(两个独立的MBIST控制器),将测试时间从6ms压缩到3ms。
- 逻辑BIST:改为分段执行——上电时只执行覆盖关键安全路径的快速BIST(约50万向量,5ms),剩余覆盖率在系统运行期间通过非并发在线BIST补充(每10ms执行一次1ms的测试段)。
- 并发BIST:在CAN通信控制器的FIFO中实现并发BIST,利用FIFO空闲周期执行March测试,检测瞬态故障。
3.4.3 实施结果与复盘
最终方案将上电自检时间控制在9.5ms,满足ASIL-D要求。逻辑BIST的总覆盖率提升至97.2%(离线+在线累计),存储器BIST覆盖率保持100%。硬件开销增加约2.3%,主要来自在线BIST的仲裁逻辑和影子寄存器。
复盘经验:(1)离线BIST和在线BIST不是互斥的,而是互补的——离线追求覆盖率,在线追求实时性;(2)存储器BIST的并行化是缩短测试时间的有效手段,但要注意多个MBIST控制器同时运行时的功耗峰值;(3)在线BIST的调度策略需要与操作系统(如AUTOSAR)的任务调度协同设计,避免优先级反转。
3.5 总结与设计选型建议
选择BIST架构时,应遵循以下决策路径:
- 明确测试目标:是生产测试、上电自检还是在线监控?不同目标对应不同的BIST类型。
- 评估故障模型:被测对象是逻辑还是存储器?分别选择LFSR/MISR或March算法。
- 计算硬件预算:BIST硬件开销通常控制在芯片面积的1%~5%,超过5%需要重新评估方案。
- 验证测试时间:使用门级仿真和故障注入工具(如Tessent、Modus)验证覆盖率与测试时间是否满足规格。
- 考虑诊断需求:如果需要精确定位故障(如存储器修复),必须选择支持故障地址记录的BIST架构。
BIST架构设计没有“一刀切”的解决方案,优秀的工程师需要根据产品定位、可靠性要求和成本约束,灵活组合逻辑BIST、存储器BIST、在线与离线模式,构建最适合的测试策略。