3. BIST架构与分类:逻辑BIST与存储器BIST的区别、BIST的基本组成、在线与离线BIST

内建自测试(Built-In Self-Test, BIST)是ASIC设计中实现可测试性设计(DFT)的核心技术之一。它的本质是将测试激励生成、测试响应分析和测试控制逻辑“内建”到芯片内部,使芯片能够在不依赖外部自动测试设备(ATE)的情况下,对自身逻辑电路或存储器阵列进行功能与结构测试。本章将系统阐述BIST的架构分类、基本组成模块,以及在线与离线两种工作模式,帮助读者建立从概念到工程实现的完整认知框架。

BIST 架构总览:逻辑BIST vs 存储器BIST BIST 控制器 (BC) 状态机 + 测试调度 + 故障标志 逻辑BIST (LBIST) 测试模式生成器 PRPG / LFSR / 伪随机 被测逻辑 组合/时序电路 激励 响应分析器 MISR / 特征压缩 响应 特征比较器 与黄金特征比对 故障指示: PASS / FAIL + 诊断数据 扫描链移位输出 / 故障字典 存储器BIST (MBIST) 算法生成器 March C / March C- / SMarch 存储器阵列 SRAM / DRAM / ROM 地址/数据/控制 响应分析器 读数据比较 / 校验 修复/冗余逻辑 行/列替换 (Repair) 故障地址 + 故障类型 + 修复签名 用于激光修复 / eFuse 编程 在线BIST (并发/非并发) | 离线BIST (功能测试/上电自检) | 测试接口: IEEE 1149.1 JTAG / IEEE 1500 CTAG

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),能够在测试过程中直接计算最优修复方案。

工程经验:在混合信号SoC中,通常将逻辑BIST和存储器BIST分开设计,但共享同一个BIST控制器和JTAG接口。这样可以在不增加太多硬件开销的前提下,实现统一的测试调度和诊断管理。例如,一个包含2个CPU核、1个GPU和4MB SRAM的SoC,可以设计一个主BIST控制器,分别调度逻辑BIST(覆盖CPU和GPU逻辑)和存储器BIST(覆盖SRAM阵列),测试结果通过JTAG端口串行输出。

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的架构设计面临更严格的约束:

  1. 时钟域隔离:测试时钟必须与功能时钟严格隔离,避免测试操作干扰功能时序。
  2. 数据保护:并发BIST不能破坏存储器中已有的用户数据,因此需要额外的数据备份或影子寄存器。
  3. 功耗控制:在线BIST的功耗不能超过芯片热设计功耗(TDP),否则可能引起局部过热。
  4. 故障响应:在线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)的任务调度协同设计,避免优先级反转。

常见误区:许多设计者认为BIST可以完全替代ATE测试。实际上,BIST的故障覆盖率通常无法达到100%(特别是逻辑BIST),且无法检测所有参数性故障(如时序裕量不足)。在量产测试中,BIST应作为ATE测试的补充而非替代,用于降低测试成本和提高故障诊断效率。

3.5 总结与设计选型建议

选择BIST架构时,应遵循以下决策路径:

  1. 明确测试目标:是生产测试、上电自检还是在线监控?不同目标对应不同的BIST类型。
  2. 评估故障模型:被测对象是逻辑还是存储器?分别选择LFSR/MISR或March算法。
  3. 计算硬件预算:BIST硬件开销通常控制在芯片面积的1%~5%,超过5%需要重新评估方案。
  4. 验证测试时间:使用门级仿真和故障注入工具(如Tessent、Modus)验证覆盖率与测试时间是否满足规格。
  5. 考虑诊断需求:如果需要精确定位故障(如存储器修复),必须选择支持故障地址记录的BIST架构。

BIST架构设计没有“一刀切”的解决方案,优秀的工程师需要根据产品定位、可靠性要求和成本约束,灵活组合逻辑BIST、存储器BIST、在线与离线模式,构建最适合的测试策略。