资讯动态

【汽车芯片功能安全分析与故障注入实践 10】Failure Mode Library:如何把系统级失效模式落到模块级?

发布时间:2026/8/20 0:17:59 来源:尧图企业网站定制
作者Darren H. Chen方向汽车芯片功能安全分析与故障注入实践DemoD10_failure_mode_library标签汽车芯片功能安全Failure ModeFMEDA失效模式库Safety MechanismDemo 说明D10_failure_mode_library的目标是建立一个可维护、可检查、可复用的 Failure Mode Library。对应的通用工具名称为safeic-fmlib这个 Demo 的作用是把系统级安全目标逐步落到模块级、子模块级和结构级对象Safety Goal - Functional Failure - Module Failure Mode - Sub-part Failure Mode - Endpoint / Safety Mechanism Mapping如果没有 failure mode libraryFMEDA 很容易变成临时表格如果建立了库功能安全分析就可以形成可复用的方法资产。1. Failure Mode 是什么Failure Mode 可以理解为某个功能、模块或结构对象以什么方式失效。它不是具体某个 bit 翻转也不是某个 fault injection case。它描述的是故障造成的功能后果。例如输出数据错误 控制状态错误 传输过早或过晚 未请求时发生传输 请求后没有响应 计数器停止或跳变 错误中断上报 安全报警未触发随机硬件故障是原因Failure Mode 是后果。可以这样理解Fault - Error - Failure Mode - Safety Goal Violation2. 为什么需要 Failure Mode Library在实际项目中failure mode 经常分散在不同文档里安全计划 系统 FMEA IP safety manual 模块规格书 设计评审记录 验证计划 FMEDA 表格如果没有统一库会出现几个问题不同模块使用不同命名 同一个 failure mode 被重复定义 安全机制映射不一致 报告难以汇总 后续复用困难Failure Mode Library 的作用是统一语言。它应该回答这个 failure mode 叫什么 它描述什么失效后果 适用于哪些模块或接口 它和哪些 safety mechanism 相关 它是否 safety-related 它是否影响 SPFM/LFM/PMHF3. 系统级到模块级的映射功能安全分析不能只停留在系统级。例如系统级安全目标制动控制输出不能产生危险错误值落到芯片内部可能对应多个模块 failure mode层级示例系统级wrong actuator output芯片级wrong output from control IC模块级CPU generated wrong control command子模块级ALU computation result wrong结构级register input captured wrong value这个过程不是简单翻译而是从系统安全目标向硬件结构逐步分解。Failure Mode Library 应该支持这种分层。4. 常见 Failure Mode 分类在汽车芯片实践中可以先建立几类通用 failure mode。4.1 数据类wrong_data stale_data out_of_range_data corrupted_message wrong_address wrong_id适用模块ALU DMA Bus Memory Sensor Interface Communication Controller4.2 控制类wrong_control_state illegal_state unexpected_transition missing_transition wrong_enable wrong_grant适用模块FSM Bus Arbiter Timer Interrupt Controller Power Controller4.3 时序类too_early too_late timeout_missing unexpected_timeout wrong_sequence适用模块Timer Protocol Controller Communication Interface Watchdog4.4 传输类message_not_sent message_sent_when_not_requested message_duplicated message_lost wrong_response适用模块CAN/LIN/Ethernet Controller Bus Fabric DMA Peripheral Bridge4.5 安全机制类alarm_not_triggered false_alarm checker_disabled diagnostic_timeout latent_fault_not_detected适用对象Safety Mechanism Error Handler Alarm Aggregator Safety Monitor5. Failure Mode Library 的数据结构推荐用 YAML 或 CSV。YAML 更适合表达层级和描述。示例failure_modes.yamlfailure_modes:WRONG_DATA:description:Data value is different from the intended correct value.category:datasafety_related:truetypical_modules:-alu-bus-memorycandidate_safety_mechanisms:-parity-ecc-duplication-range_checkWRONG_CONTROL_STATE:description:Control FSM enters an incorrect or illegal state.category:controlsafety_related:truetypical_modules:-fsm-bus_arbiter-interrupt_controllercandidate_safety_mechanisms:-state_parity-illegal_state_checker-control_flow_monitorTOO_LATE:description:Required action or message is generated later than allowed.category:timingsafety_related:truetypical_modules:-timer-communication_controllercandidate_safety_mechanisms:-watchdog-timeout_monitor这样一个库不仅供文章 Demo 使用也可以作为后续 FMEDA、SM selection 和报告生成的输入。6. Failure Mode 与 Safety Mechanism 的关系Failure Mode 描述“会错成什么样”。Safety Mechanism 描述“如何发现或缓解这种错误”。两者之间不是一对一关系。例如Failure Mode可能安全机制wrong_dataparity、ECC、duplication、range checkwrong_control_statestate parity、illegal state checker、locksteptoo_latewatchdog、timeout monitorwrong_sequenceprotocol checker、sequence monitoralarm_not_triggeredalarm self-test、diagnostic monitor同一个 safety mechanism 也可能覆盖多个 failure modeECC 可以覆盖 wrong_data、corrupted_memory_data watchdog 可以覆盖 too_late、missing_response protocol checker 可以覆盖 wrong_sequence、unexpected_message因此Failure Mode Library 和 Safety Mechanism Library 应该独立维护再通过 map 连接。7. 工具架构设计safeic-fmlib的核心职责是管理和检查 failure mode library。工具流程Read Failure Mode LibrarySchema CheckDuplicate Name CheckCategory CheckSafety Related CheckLink to Candidate SMGenerate Normalized LibraryGenerate Report主要检查项failure mode ID 是否唯一 description 是否为空 category 是否属于允许范围 是否标注 safety_related candidate safety mechanisms 是否存在于 SM library 是否有未使用的 failure mode 是否有模块引用了不存在的 failure mode8. 输出文件设计fmlib_check.rpt示例[PASS] Failure mode ID uniqueness check [PASS] Required fields check [PASS] Category check [WARN] Failure mode ALARM_FALSE has no candidate safety mechanism [ERROR] Failure mode WRONG_BUS_RESP referenced by module bus_fabric but not definednormalized_fmlib.json示例{failure_modes:[{id:WRONG_DATA,category:data,safety_related:true,candidate_safety_mechanisms:[parity,ecc,duplication,range_check]}]}failure_mode_matrix.csv示例failure_mode,category,safety_related,candidate_sm_count,typical_module_count WRONG_DATA,data,true,4,3 WRONG_CONTROL_STATE,control,true,3,3 TOO_LATE,timing,true,2,29. 与 FMEDA 的关系FMEDA 需要把以下对象连接起来Part / Sub-part Instance Failure Mode Safety Mechanism Diagnostic Coverage Failure Rate Residual FaultFailure Mode Library 是其中的中间层。一个典型映射关系是Part: CPU Sub-part: Control FSM Instance: top.u_cpu.u_ctrl Failure Mode: WRONG_CONTROL_STATE Safety Mechanism: STATE_PARITY Diagnostic Coverage: 90%如果 failure mode 没有统一库FMEDA 表格很难长期维护。如果有统一库就可以做到同类模块复用同一 failure mode 同类 failure mode 推荐相似 safety mechanism 报告中统一分类统计 跨项目复用安全分析经验10. D10 Demo 的目录建议D10_failure_mode_library/ README.md run_demo.csh run_demo.sh inputs/ failure_modes.yaml sm_library.yaml module_failure_map.csv outputs/ fmlib_check.rpt normalized_fmlib.json failure_mode_matrix.csv failure_mode_report.md scripts/ safeic_fmlib.py运行命令示例python3 scripts/safeic_fmlib.py\--failure-modes inputs/failure_modes.yaml\--sm-lib inputs/sm_library.yaml\--module-map inputs/module_failure_map.csv\--outoutputscsh 版本python3 scripts/safeic_fmlib.py \ --failure-modes inputs/failure_modes.yaml \ --sm-lib inputs/sm_library.yaml \ --module-map inputs/module_failure_map.csv \ --out outputs11. 方法论总结Failure Mode Library 的价值是统一语言。它把系统级安全目标、模块级失效后果、安全机制选择和 FMEDA 表格连接起来Safety Goal - Failure Mode - Safety Mechanism - DC Calculation - Fault Campaign - Final MetricD10_failure_mode_library的目标不是做复杂 GUI而是先把 failure mode 变成可检查、可复用、可映射的数据资产。有了这个库后续 EP-to-Safety Mechanism Map、FMEDA Part/Sub-part 建模、DCE roll-up 和 fault campaign report 都会更容易组织。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价