Accellera FS Data Model — FMEDA 跨供应链数据互换

功能安全L3别名 Accellera FS Data Model · FS Working Group · FMEDA Data Model · 功能安全数据模型 · Accellera SLF · Safety Library Format · 更新

本质与导读

本质: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 链。

Accellera FMEDA 数据流

Object含义
DUADesign 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 / PMHFSPFM = 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 ElementFM ↔ TE一个 FM 用什么 TE 表达,定 FIT 来源
③ Safety MechanismSM ↔ FM一个 SM 保护哪些 FM,定 DC
④ FM EffectsFM → upstream FME一个 FM 在上层看到什么

为什么分 4 类:每类是不同的多对多关系,且演化节奏不同(SM 库稳定 / FME 频繁随集成层变),分开维护方便机器同步。

4. 供应链 4 层 hand-off

Accellera 数据模型不只是单层 FMEDA,核心价值是跨层标准化

供应链 4 层

4 层(自顶向下):

定义典型产品Design Rep
System整车 / 驾驶员可见 ECU 行为ECU + sensing + automationSystem Model
ModuleSG 一/多个,多 System 共享sensor / actuator / processing 模块 + PCBSystem Model
ComponentSF 一/多个,多 Module 共享SiP / IC / passive / SoCBlock Diagram / SysML / IP-XACT / RTL / Gate
IPSF 一/多个,多 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_iec61508SPFM / LFM / PFH_d / PMHF 公式
I/Oload_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 61508Accellera 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 SMWD / 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 ModeTech Element来源
MPC5744P Lockstep CPUFM-CPU-StuckAt, FM-CPU-FlipBitTE_MCU_CMOS_FFNXP Safety Manual v4.0
MPC5744P FCCUFM-FCCU-Disabled, FM-FCCU-FalseTripTE_MCU_LogicNXP Safety Manual v4.0
MC33907 FS SMFM-WD-NoResponse, FM-FS0b-StuckTE_SBC_AnalogMC33907 FS Manual Rev 4
MC33907 VREG COREFM-VREG-LowVoltageTE_SBC_BandgapMC33907 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保护 FMDC验证依据
SM-LockstepFM-CPU-StuckAt, FM-CPU-FlipBit99%MPC5744P LBIST + lockstep 对比
SM-BIST-LBISTFM-FCCU-Disabled97%29段 STL / 87ms周期
SM-SBC-WDFM-CPU-StuckAt (跨器件监控)90%MC33907 WD error counter路径
SM-FCCU-ERRFM-VREG-LowVoltage95%VREG UVLO → FCCU IO_2/3 路径
SM-SBC-FSMFM-WD-NoResponse, FM-FS0b-Stuck90%MC33907 FSM FMEDA DC
SM-MCU-FSx-monitorFM-SBC-VREGFault, FM-SBC-FSM-Error99%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