一、BIST 概述
CCFC3008PCS 芯片包含三类 BIST 功能,均由 STCU2(Self-Test Control Unit 2) 硬件模块统一管理:
|-------------|---------------------------|--------------------------|
| 类型 | 全称 | 测试对象 |
| LBIST | Logic Built-In Self Test | 数字逻辑电路 |
| MBIST | Memory Built-In Self Test | SRAM / ROM 存储器 |
| RC BIST | RC Oscillator BIST | 内部 RC 振荡器(FIRC / SIRC)校准 |
此外,PMCDIG 模块中还有 Power BIST (PBIST) 寄存器(PMCDIG_PBIST),用于电源相关自检。
二、BIST 运行模式
2.1 Off-Line 模式(离线自检)
- 触发时机 :芯片上电复位后,在用户应用程序启动之前自动执行
- 配置来源:通过 SSCM DCF 总线从 Flash 中读取预存的 BIST 调度参数
-
执行流程 :
- 复位事件触发 STCU2 初始化
- 写入 Security Key(Key1/Key2)解锁 STCU2 寄存器
- 编程 MBIST/LBIST Pindex(STCU2_PDR)
- 如需使用 PLL,配置 STCU2_PLL_CFG
- 配置看门狗定时器 STCU2_WDG
- 设置 STCU2_CR 使能 Off-line LBIST / MBIST
- 软件读取 STCU2_STS 状态寄存器检查 pass/fail
2.2 On-Line 模式(在线自检)
- 触发时机:系统正常运行期间,由软件触发
- 配置来源:通过 IPS 总线由 CPU 编程
- 同样支持 LBIST 和 MBIST 的在线执行
2.3 Bypass 模式
- 设置 STCU2_CRBYP 位可跳过自检流程
- 适用于非安全关键型应用场景
- 跳过自检后,核心时钟关闭,系统唤醒进入用户应用
三、BIST 各阶段详细说明
3.1 LBIST(逻辑内建自测试)
测试对象:芯片数字逻辑电路
执行特点:
- 支持并发/顺序执行多个 LBIST 分区
- ⚠️ 不能同时在多个分区上执行 LBIST
- 不能与 MBIST 同时执行
- 每个 NMCUT BIST 在一次会话中只能运行一次
重复策略(STCU2_TE2LBIST_TIMES):
00b:执行 1 次
01b:执行 1 次
10b:执行 1 次
11b:首次失败时再执行 1 次(共最多 2 次)
结果状态(STCU2_STS):
- LB_F:LBIST 通过/失败
- LB_WDTO:LBIST 看门狗超时
- LB_D:LBIST 执行结束
3.2 MBIST(存储器内建自测试)
测试对象:SRAM 和 ROM 存储器
执行特点:
- 支持并发/顺序执行
- 不能与 LBIST 同时执行
- 每个 NMCUT BIST 在一次会话中只能运行一次
- 可通过 PLL 加速执行(设置 STCU2_CRBPLLEN)
重复策略(STCU2_TE2MBIST_TIMES):
- 同 LBIST,
11b时首次失败可重试一次
结果状态(STCU2_STS):
- MB_F:MBIST 通过/失败
- MB_WDTO:MBIST 看门狗超时
- MB_D:MBIST 执行结束
3.3 RC BIST(RC 振荡器校准自检)
测试对象:FIRC(快速内部 RC 振荡器)和 SIRC(慢速内部 RC 振荡器)
关键寄存器(Chapter 31.3):
|--------------|-------------------------------------------|
| 寄存器 | 功能 |
| Rc_bist1 | 设置 BIST 时钟计数器目标值 |
| Rc_bist2 | 设置测试时钟计数器目标值和粗调 margin |
| Rc_bist3 | BIST 控制:启动、模式选择、RC 选择、使能 |
| Rc_bist4_res | 测试时钟计数结果和细调 margin |
| Rc_bist_res | BIST 结果:DONE、PASS、CTRIM/FTRIM/TEMPTRIM 结果 |
工作模式:
- Trim 模式:自动校准振荡器频率
- Trace 模式:跟踪/监测振荡器频率
校准结果写入:
- CTRIM 结果 → FIRC_TRIM / SIRC_TRIM 的 CTRIM 字段
- FTRIM 结果 → FIRC_TRIM / SIRC_TRIM 的 FTRIM 字段
- TEMPTRIM 结果 → FIRC_TRIM / SIRC_TRIM 的 TEMPTRIM 字段
四、对芯片产生的影响
4.1 复位影响
关键影响 :Off-Line 自检结束后,STCU2 会触发全局功能复位(Global Functional Reset)
- 复位行为可通过 STCU2_LBRM 寄存器逐分区配置
-
每个 LBIST 分区有对应的 LBRMx 位:
0:Off-Line LBIST 结束后不触发全局功能复位
1:Off-Line LBIST 结束后触发全局功能复位
- 还有 LBDRCx 位控制复位依赖关系(直接复位 vs. 依赖 BIST 结果)
4.2 故障报告
STCU2 通过 FCCU 接口向系统报告故障:
|-----------------------------|--------|--------------|
| 故障类型 | 含义 | 处理方式 |
| UF(Unrecoverable Fault) | 不可恢复故障 | 严重故障,需要系统级复位 |
| RF(Recoverable Fault) | 可恢复故障 | 可尝试恢复 |
- BIST 失败和 STCU2 内部错误均可配置为 UF 或 RF
- 故障信号连接到 FCCU,进一步触发 IRQ、NMI 或 Reset
- 支持故障注入机制,用于验证 UF/RF 连接线完整性
4.3 时钟影响
- BIST 执行期间,STCU2 可直接控制 PLL
- 通过 PLL 加速 MBIST/LBIST 执行
- PLL 锁定信号被监控,BIST 会等待 PLL 锁定后切换时钟源
- BIST 结束后时钟源恢复到原始配置
4.4 看门狗保护
- 初始化看门狗:硬编码超时,防止 STCU2 初始化阶段卡死
-
BIST 执行看门狗 (STCU2_WDG):可编程超时,监控 LBIST/MBIST 是否在规定时间内完成
- 超时后当前 BIST 被中断,标记失败
- 顺序执行时,超时后后续 BIST 被跳过
4.5 启动时间影响
- Off-Line BIST 会延长芯片启动时间
- 可通过 Bypass 模式跳过,缩短启动时间
- BIST 调度可通过 Pindex 灵活配置,选择需要执行的测试项
4.6 设计限制
- LBIST 和 MBIST 不能同时执行
- 每个 NMCUT BIST 在一次会话中只能运行一次
- 不能同时在多个分区上执行 LBIST
- SSCM 写入的寄存器在 Off-Line 阶段不可被覆盖
五、相关寄存器汇总
|--------|--------------------------|-------------------------------|
| 模块 | 寄存器 | 功能 |
| STCU2 | STCU2_CR | 控制寄存器:BYP、RUN、PLL使能、L/MBIST使能 |
| STCU2 | STCU2_SKC | 安全密钥寄存器 |
| STCU2 | STCU2_PDR | Pindex 调度寄存器 |
| STCU2 | STCU2_PLL_CFG | PLL 配置 |
| STCU2 | STCU2_WDG | 看门狗定时器 |
| STCU2 | STCU2_STS | 状态寄存器:L/MBIST 完成/通过/超时 |
| STCU2 | STCU2_LBRM | LBIST 复位管理 |
| STCU2 | STCU2_TE1/TE2 | 超时配置和重复次数 |
| PMCDIG | PMCDIG_PBIST | Power BIST 寄存器 |
| PMCDIG | PMCDIG_STCU_CR0/CR1 | STCU 配置寄存器 |
| IRCOSC | Rc_bist1~4, Rc_bist_res | RC BIST 控制和结果 |