Accellera FS Data Model — FMEDA 跨供应链数据互换
本质与导读
本质:ISO 26262 / IEC 61508 规定了 FMEDA "要做什么",但没规定数据用什么格式互换。Tier-1 给 OEM 的 FMEDA 是 Excel,IP 厂给 IC 厂的是 PDF + 邮件,各家 schema 不同 → 跨层手工对齐 + 重新录入 + 校验,工时大半浪费在格式。Accellera FS Working Group 2023-12 白皮书(138 页)首次给出 跨供应链的 FS 数据模型 + DSL,把 FMEDA 拆成 7 个 Object + 7 个 Process + 4 类 Mapping,让 System / Module / Component / IP 4 层 hand-off 走标准化文件,FM Effects 自动上传、Safety Manual + AoU 自动下传。这是 FS 工具链的"SystemVerilog 时刻"——Accellera 之前标了 SV / UVM,这次标的是 FS 数据。
1. 为什么需要数据模型
ISO 26262 / IEC 61508 是过程标准,告诉你"FMEDA 需要 SPFM/LFM 这些数字、需要 SM、需要追溯到 SG"。但具体数据怎么编码、用什么 schema、怎么跨厂传递——标准沉默。结果:
- Tier-1 给 OEM 交 FMEDA Excel,每家列名都不一样
- IP 厂给 IC 厂的 Safety Manual 是 PDF,集成时人工重打成 FMEDA 行
- IC 厂的 FMEDA 上传到 Module / System 时,FM 重新枚举,SM coverage 重新评估
- 跨厂校验靠邮件 + 电话,不可机器解析
Accellera 数据模型直击此痛 —— SystemVerilog 在 IP 互换的角色,这份白皮书在 FS 互换的角色。
2. FMEDA 7 个 Object 的数据流
FMEDA 是自底向上归纳分析(bottom-up inductive):从 DUA 元件可能的失效模式,推到对系统层的可见后果。Accellera 把这条数据流形式化成 7 个 Object 之间的 Process 链。
| Object | 含义 | 例 |
|---|---|---|
| DUA | Design Under Analysis 设计层次结构 | MPC5744P 完整功能块树 |
| FS Hierarchy | 安全相关子集(从 DUA 切出) | MPC5744P 中影响 SG-EPS-T 的部分 |
| FM Hierarchy | 每元件的失效模式枚举 | "Lockstep CPU stuck-at" "WD logic flip" |
| Tech Element | 失效率的物理来源(库) | digital FF / SRAM bit / analog comparator |
| Safety Mech Library | 可用诊断机制库 | Lockstep / FCCU / SBC WD / BIST |
| FM Effects | 单 FM 在 DUA 边界外的可见后果 | "CPU fault → FCCU error line asserted" |
| FMEDA Metrics | 输出 SPFM / LFM / PMHF | SPFM = 99%, PMHF = 0.9 FIT |
关键洞察:DUA(设计)和 FS Hierarchy(安全切片)两者分离——同一份 DUA 可以做出针对不同 SG 的多份 FS Hierarchy,数据复用。
3. 4 类 Mapping
Object 不是孤立的 —— Mapping 把 Object 串成可计算的图。4 类各连接不同的 Object 对:
| Mapping | 连什么 ↔ 什么 | 工程含义 |
|---|---|---|
| ① Design Mapping(FS + FM) | DUA 组件 ↔ FS / FM 节点 | 把 RTL 模块映到安全分析节点 |
| ② Technology Element | FM ↔ TE | 一个 FM 用什么 TE 表达,定 FIT 来源 |
| ③ Safety Mechanism | SM ↔ FM | 一个 SM 保护哪些 FM,定 DC |
| ④ FM Effects | FM → upstream FME | 一个 FM 在上层看到什么 |
为什么分 4 类:每类是不同的多对多关系,且演化节奏不同(SM 库稳定 / FME 频繁随集成层变),分开维护方便机器同步。
4. 供应链 4 层 hand-off
Accellera 数据模型不只是单层 FMEDA,核心价值是跨层标准化。
4 层(自顶向下):
| 层 | 定义 | 典型产品 | Design Rep |
|---|---|---|---|
| System | 整车 / 驾驶员可见 ECU 行为 | ECU + sensing + automation | System Model |
| Module | SG 一/多个,多 System 共享 | sensor / actuator / processing 模块 + PCB | System Model |
| Component | SF 一/多个,多 Module 共享 | SiP / IC / passive / SoC | Block Diagram / SysML / IP-XACT / RTL / Gate |
| IP | SF 一/多个,多 Component 共享 | Soft IP / Hard IP / foundation lib | 同 Component |
Intra-layer:同层不同 analysis 之间(FMEDA + DFA + FI campaign)。 Inter-layer:跨层 hand-off,FM Effects 上传 + Safety Manual + AoU 下传——AoU(Assumptions of Use)是 IP / Component 厂对 integrator 的契约"我假设你这样用,SM 才有效",必须在 Safety Manual 文档化。
5. Assumption-based vs Calculation-based FMEDA
Accellera 区分两种 FMEDA,并允许在同一 FMEDA 内混用:
- Calculation-based:每个 Technology Element 实际数清楚(SRAM bit 数、FF 数、analog 元件清单),配合 SN29500 / FIDES 库算 FIT。适合 RTL 完成后 + foundation lib 确定。
- Assumption-based:DUA 细节未知或不可见(早期概念 / 黑盒 IP),按经验比例给 TE 分布。适合 IP 厂对 Component 厂(IP 不愿暴露 RTL 细节,但给一个聚合 FIT)。
混用场景:Component FMEDA 里,自家 RTL 走 calculation,采购的第三方 IP 走 assumption(对方 Safety Manual 给定数字)。Accellera DSL 用 add_attribute + attr_expr 表达混合。
6. Annex B — Safety Library Format (SLF) DSL
数据模型只解决了"用什么 schema",还需要"怎么序列化"。Annex B 给出原型 DSL,文件后缀 .slf(Safety Library Format)。20 多个命令,核心如下:
| 类别 | 命令 | 用途 |
|---|---|---|
| 创建 | create_fmeda / create_element / create_fm / create_te / create_sm / create_fme | 实例化 7 类 Object |
| 属性 | add_attribute / add_collection / attr_expr | 给 Object 加 FIT / DC / 自定义字段 |
| 映射 | assign_sm_fm / assign_fm_fme / assign_te_fm / assign_te_element / assign_fmeda_fmeda / assign_fmeda_element | 实例化 4 类 Mapping |
| 失效率 | define_fr_iso26262 / define_fr_iec61508 | 接 ISO 26262 / IEC 61508 失效率定义 |
| 度量 | define_metric_iso26262 / define_metric_iec61508 | SPFM / LFM / PFH_d / PMHF 公式 |
| I/O | load_slf / save_slf / set_scope / add_parameter | 序列化与作用域 |
语义关键:命令是声明式不是过程式 —— assign_sm_fm 描述"这 SM 保护这 FM",怎么算 DC 由后续 metric 命令决定。一份 .slf 可以跨工具读写。
7. 与 ISO 26262 / IEC 61508 的关系
Accellera 数据模型不替代 ISO 26262,而是补充:
| 维度 | ISO 26262 / IEC 61508 | Accellera FS Data Model |
|---|---|---|
| 性质 | 过程标准 | 数据互换格式 |
| 强制力 | 法规级(车规必合规) | 业界推荐(工具厂正在跟进) |
| 关注 | 流程 / 工作产品要求 | schema / DSL / repository |
| 输出 | Safety Case / FMEDA / SM | .slf 文件 + tooling |
| 当前状态 | 第 2 版(2018) | v0.1 white paper(2023) |
实战路径:ISO 26262 必合规 → Accellera 数据模型作为 tooling 选项,逐步迁移 Excel FMEDA 到 .slf——Synopsys / Cadence / OneSpin 等 EDA 厂在 2024–2025 跟进。
8. Worked Design — EPS ECU Component-Layer FMEDA
本节展示如何把一个真实 ASIL D 12V EPS ECU(MPC5744P + MC33907)映射到 Accellera 数据模型,推导出 SPFM / LFM / PMHF,并生成可跨厂交换的 .slf 片段。
8.1 DUA 与 FS Hierarchy 切片
EPS ECU Component-layer DUA 包含 MCU(MPC5744P)+ SBC(MC33907)全部功能块。Safety Goal SG-EPS-T 要求"避免非预期扭矩辅助",只有与转矩计算、PWM 输出、硬件看门狗、电源监控相关的元件进入 FS Hierarchy。
| DUA 元件 | 是否进入 FS Hierarchy | 原因 |
|---|---|---|
| MPC5744P Lockstep CPU 0/1 | ✓ | 直接计算扭矩指令 |
| MPC5744P FCCU | ✓ | 故障收集与传播 |
| MPC5744P DSPI/PWM | ✓ | 影响门极驱动输出 |
| MPC5744P CRC / BIST | ✓ | 诊断机制本体 |
| MPC5744P USB/Ethernet | ✗ | 与 SG-EPS-T 无功能路径 |
| MC33907 FS SM | ✓ | WD / RSTB / FS0b 驱动保护链 |
| MC33907 LIN/CAN PHY | ✗ | 不影响 FS0b 或功率路径 |
切片好处:FS Hierarchy 中的元件数约为 DUA 的 35%,后续 FM 枚举工作量减少 65%,且与 SG 的可追溯路径更短、更清晰。
8.2 FM 枚举与 TE 映射
FS Hierarchy 中每个元件展开 failure mode,再映射到 Technology Element(FIT 来源)。MPC5744P 采用 SN29500 / NXP Safety Manual 给定的聚合 FIT = 100 FIT(assumption-based,NXP 不公开内部 FF 数);MC33907 同理 40 FIT。
| FS 元件 | Failure Mode | Tech Element | 来源 |
|---|---|---|---|
| MPC5744P Lockstep CPU | FM-CPU-StuckAt, FM-CPU-FlipBit | TE_MCU_CMOS_FF | NXP Safety Manual v4.0 |
| MPC5744P FCCU | FM-FCCU-Disabled, FM-FCCU-FalseTrip | TE_MCU_Logic | NXP Safety Manual v4.0 |
| MC33907 FS SM | FM-WD-NoResponse, FM-FS0b-Stuck | TE_SBC_Analog | MC33907 FS Manual Rev 4 |
| MC33907 VREG CORE | FM-VREG-LowVoltage | TE_SBC_Bandgap | MC33907 FS Manual Rev 4 |
注:MPC5744P 走 assumption-based(NXP 给定 100 FIT),无需枚举内部 FF 数。若 NXP 未来开放 calculation-based .slf,可直接 load_slf NXP_MPC5744P_calc.slf 替换。
8.3 SM 分配与 DC 赋值
每个 Safety Mechanism 保护一组 FM,DC 值来自 Safety Manual 或 FI 验证。
| Safety Mechanism | 保护 FM | DC | 验证依据 |
|---|---|---|---|
| SM-Lockstep | FM-CPU-StuckAt, FM-CPU-FlipBit | 99% | MPC5744P LBIST + lockstep 对比 |
| SM-BIST-LBIST | FM-FCCU-Disabled | 97% | 29段 STL / 87ms周期 |
| SM-SBC-WD | FM-CPU-StuckAt (跨器件监控) | 90% | MC33907 WD error counter路径 |
| SM-FCCU-ERR | FM-VREG-LowVoltage | 95% | VREG UVLO → FCCU IO_2/3 路径 |
| SM-SBC-FSM | FM-WD-NoResponse, FM-FS0b-Stuck | 90% | MC33907 FSM FMEDA DC |
| SM-MCU-FSx-monitor | FM-SBC-VREGFault, FM-SBC-FSM-Error | 99% | MCU 周期读取 MC33907 FS0b/RSTB/PGOOD 状态;DC=99% 来自 MC33907 Safety Manual FI 数据 |
跨器件监控折减:SM-SBC-WD 将 MCU SPF 的 DC 贡献折减——MCU 侧 SM-Lockstep 已覆盖 99%,SBC WD 额外监控将剩余 1% SPF 中的 90% 再折减:
同理 MCU 监控 SBC(DC≈99%):,可视为 negligible。
8.4 PMHF 输出
CCF 采用 (异工艺 CMOS 40 nm vs BCD 180 nm + 异供电域,中高分档,对齐 ISO 26262-9 Annex A):
目标 10 FIT(ASIL D),余量 11×,CCF 主导 89%(0.8/0.9)。结论:安全目标 SG-EPS-T 满足 ASIL D PMHF 要求。
8.5 .slf 核心片段
以下是上述分析映射到 SLF DSL 的关键片段(精简,省略 DPF 和 MPF):
# EPS ECU Component-layer FMEDA — MPC5744P + MC33907
create_fmeda EPS_ECU {
standard iso26262
asil D
target_pmhf 10 -- FIT
}
# Load vendor SLF files (assumption-based)
load_slf NXP_MPC5744P_SafetyManual_v4.slf
load_slf FREESCALE_MC33907_FS_Manual_Rev4.slf
# Assign sub-FMEDAs
assign_fmeda_fmeda EPS_ECU NXP_MPC5744P_SafetyManual_v4
assign_fmeda_fmeda EPS_ECU FREESCALE_MC33907_FS_Manual_Rev4
# Cross-monitoring SM (not in vendor SLFs, defined at EPS ECU level)
create_sm SM_SBC_WD_monitors_MCU {
fmeda EPS_ECU
type cross_monitoring
}
add_attribute SM_SBC_WD_monitors_MCU DC_SPF 0.90
# Link cross-monitoring to MCU SPF residual
assign_sm_fm SM_SBC_WD_monitors_MCU FM-CPU-StuckAt
assign_sm_fm SM_SBC_WD_monitors_MCU FM-CPU-FlipBit
# Reverse cross-monitoring: MCU monitors SBC FSx/RSTB/PGOOD (DC=99%)
create_sm SM_MCU_monitors_SBC {
fmeda EPS_ECU
type cross_monitoring
}
add_attribute SM_MCU_monitors_SBC DC_SPF 0.99
assign_sm_fm SM_MCU_monitors_SBC FM-SBC-VREGFault
assign_sm_fm SM_MCU_monitors_SBC FM-SBC-FSM-Error
# FM Effects exported to Module layer
create_fme FME_MCU_ComputeError_at_ECU_boundary {
fmeda EPS_ECU
fm FM-CPU-StuckAt
boundary EPS_ECU
effect "Torque command out of range"
}
assign_fm_fme FM-CPU-StuckAt FME_MCU_ComputeError_at_ECU_boundary
# Compute metrics
define_metric_iso26262 EPS_ECU {
spfm_target 99
lfm_target 90
pmhf_target 10
}
关键:assign_fmeda_fmeda 把供应商 .slf 中的所有 FM、SM、FME 引入 EPS ECU FMEDA,无需在 EPS ECU 层重新枚举。SM_SBC_WD_monitors_MCU 是跨器件 SM,只能在集成层(EPS ECU)定义。
9. 何时该关注
不是所有项目都需要立刻用 Accellera 模型,触发点 3 个:
- 跨厂 FMEDA 经常对不上——同一颗 IC 在 IP / Component / Module / System 层有 N 份 FMEDA,数字不一致。这是手工传递的失败模式。
- EDA 厂已开始支持——Synopsys SLM-Safety / Cadence Midas Safety / OneSpin 360 IP Safety 等工具开始读 .slf。如果项目用这类 EDA,生态拉齐。
- FMEDA 自动化是公司 R&D 路线之一——把 RTL → FMEDA → Safety Case 跑通的自动化管线,数据模型是 schema 基线。
10. 设计陷阱
本节列出 Accellera FS 数据模型实施中最常见的七类失误。
G1 — FM 与 FME 混淆
FM(Failure Mode)是 DUA 内部元件的失效行为,如"CPU0 寄存器 stuck-at";FME(FM Effect)是该 FM 在 DUA 边界处的可见后果,如"EPS ECU 输出错误扭矩指令"。常见错误:把"lockstep 比对器触发"(内部响应)写成 FME,导致上层 FMEDA 误以为 ECU 已经有了自保护输出。正确做法:create_fme 时必须声明 boundary 参数(DUA 对外接口),而非内部中间信号。
G2 — SM 分配前漏写 TE→FM 映射
assign_sm_fm 只表达"这个 SM 保护这个 FM",但 metric 引擎计算 SPFM 时需要知道 FM 的 FIT 贡献(来自 assign_te_fm)。如果 TE→FM 映射缺失,metric 引擎分母为 0,SPFM 无法计算或直接报错——这在早期 FMEDA 工作中非常常见,尤其是 assumption-based 场景下懒于枚举 TE。
G3 — AoU 未随 .slf 传递
当集成商 load_slf NXP_MPC5744P.slf 时,文件内包含 SM 的 DC 数字,但 DC 成立的前提条件(AoU)未序列化进 .slf。例如 SM-Lockstep DC=99% 的 AoU 是"主动检测时钟须在 150ms 内完成 STL"。集成商如果只看数字不看 Safety Manual,会在时序紧张项目中跳过 STL 而 DC 实际归零。Annex B 建议用 add_attribute SM_Lockstep AoU "STL_period_max_ms 150" 内嵌 AoU 文本。
G4 — 在同一 FMEDA 对象内混用不同 ASIL SM
一个 ASIL D FMEDA 若引用了 ASIL B SM(如第三方低等级监控 IC 的 WD),该安全路径 ASIL 降至 B。Accellera 数据模型允许在 SM 上打 ASIL 标签(add_attribute SM_ExtWD asil B),但 metric 引擎不会自动降级 PMHF 目标——工程师必须手动拆分计算路径,或用 ASIL D 等效 SM 替换。
G5 — SM 库版本飘移
IC 供应商升版 Safety Manual 时(如 MC33907 Rev 4 → Rev 5),WD DC 可能从 88% 提升到 90%。如果 EPS ECU 层的 .slf 还在引用旧 load_slf MC33907_Rev4.slf,数字偏保守倒无危险,但若 Rev 4 存在已知的 DC 高估被 Rev 5 修正,则旧版引用隐藏了 Safety Case 风险。建议 .slf 文件名携带版本标识(MC33907_FSManual_Rev4_2023.slf),且 FMEDA 工具链在 load_slf 时记录版本哈希到 Safety Case。
G6 — 跨器件监控重复叠加
MCU 监控 SBC 的 SM(DC=99%)和 SBC 监控 MCU 的 SM(DC=90%)分别作用于对方的失效模式集合——这是正确的。错误做法:对 同一个 FM(如 FM-CPU-StuckAt)同时叠加 SM-Lockstep(DC=99%)+ SM-SBC-WD(DC=90%),不经正确折减直接相乘得 DC=99.9%,造成虚假高 DC。正确模型:assign_fmeda_fmeda 引入供应商 .slf 后,SM-SBC-WD 只作用于供应商 .slf 残余 SPF 部分,而非总 λD。
G7 — FME 与集成层失步
Component-layer FMEDA 更新(如新增 FM-FCCU-FalseTrip,FME 变化)后,Module / System-layer FMEDA 若未重新导入 .slf,其 FM Effects 集合过时。IC 层新增的 FME 在系统层被遗漏 → 系统级 PMHF 低估。Accellera Annex D Repository 模式用版本控制解决此问题:每次 .slf commit 触发上层 FMEDA 重新导入校验。
11. 工作极限
以下三个场景是 Accellera FS 数据模型在实际项目中的边界压力点。
C1 — SEooC + 黑盒 IP 双层不透明
当 MPC5744P 以 SEooC 方式交付时,EPS ECU 层的 .slf 只能走 assumption-based——NXP 不公开内部 FF 拓扑。集成商通过 load_slf NXP_MPC5744P_SEooC.slf 获得聚合 FIT = 100 FIT 和各 SM 的 DC 声明,但无法独立核验 FM 枚举完整性。若 Safety Manual AoU 中有一条"PLL 稳定后再激活 WD"被集成商遗漏,DC 计算仍成立但 SM 实际无效。应对:FI 独立验证(Fault Injection campaign)是 assumption-based .slf 下的必要补充,DC 需通过实际注故障确认而非仅靠 .slf 数字。
C2 — 模拟混信号 IP TE 枚举挑战
数字 IP 用 FF 数 + SRAM bits 归算 FIT 相对机械;模拟混信号 IP(如运放、ADC 模拟前端)的 TE 分类(resistor / capacitor / comparator / bandgap)颗粒度更细、失效率离散度更大。MC33907 SBC 的 VREG CORE 部分走 BCD 180 nm,其 TE 库用 FIDES 而非 SN29500——两库在同一 FMEDA 混用时 FIT 参考温度(SN29500 用 40°C 参考,FIDES 用工作温度)不同,需要在 .slf 的 define_fr_iso26262 中明确声明 转换因子,否则模拟路径 FIT 会系统性偏低或偏高。
C3 — 工具链支持滞后:迁移路径
Synopsys SLM-Safety、Cadence Midas Safety、OneSpin 360 IP Safety 均宣布支持 .slf,但截至 2024–2025 实际版本多为只读解析(可导入 .slf 计算 SPFM),写出完整 .slf 的功能仍在 beta。Excel FMEDA 短期内不可能被完全取代。实用迁移路径:① 维持 Excel 作为 source of truth;② 每次发布时用 Python 脚本(基于 Accellera Annex D 格式规范)自动生成 .slf 导出件;③ 供应商交付以 .slf 为主、Excel 为辅——逐步反转;④ 2026–2027 EDA 工具成熟后切换到以 .slf 为 SSOT。
核心要点
- Accellera FS Data Model 2023-12 是 FMEDA 跨供应链互换的事实标准雏形,与 ISO 26262 互补。
- 7 个 Object:DUA / FS Hierarchy / FM Hierarchy / TE / SM Library / FME / Metrics。
- 4 类 Mapping:Design(FS+FM)/ Technology Element / Safety Mechanism / FM Effects。
- 4 层供应链:System / Module / Component / IP,Inter-layer 走 Safety Manual + AoU + FM Effects。
- 两种 FMEDA 类型:Calculation-based(细节清楚)+ Assumption-based(黑盒 IP),混用 OK。
- Annex B SLF DSL:
create_*/assign_*/define_metric_*命令,文件后缀.slf。 - Worked Design(EPS ECU MPC5744P+MC33907):PMHF = 0.9 FIT,余量 11×,CCF 主导 89%;跨器件 SM 在集成层定义,
assign_fmeda_fmeda避免重新枚举。 - Gotcha 七陷阱:FM/FME 混淆 / TE→FM 映射缺失 / AoU 未序列化 / ASIL 混淆 / SM 版本飘移 / 重复叠加 / FME 失步。
- Corner 三边界:SEooC 黑盒下须用 FI 独立验证 / 模拟 IP TE 库温度口径须统一 / 工具链仍滞后须维持 Excel+.slf 双轨。
- ISO 26262 必合规,Accellera 是工具链选项;EDA 厂 2024–2025 跟进。
Cross-references
- ← 索引
- topic-fmea — FMEA / FMEDA 方法论母章
- topic-dfa-fmeda-fta — 3 种核心分析方法
- topic-iso26262-part11-semiconductors — 半导体 FMEDA 指南
- topic-iso26262-part5-hardware — Part 5 FMEDA 度量(SPFM/LFM/PMHF)
- topic-safety-manual — Safety Manual + AoU
- topic-seooc — SEooC + AoU 契约
- topic-fit-fmeda-calculation — FIT 计算
- topic-safety-case — Accellera 数据模型可作 SC evidence 源
- topic-mpc5744-mc33907-integration — MPC5744P + MC33907 完整集成案例
- topic-mcu-sbc-asil-d-integration — MCU+SBC ASIL D 通用架构