【汽车芯片功能安全分析与故障注入实践 07】Endpoint FIT Contribution:如何找到最值得保护的节点?

作者: Darren H. Chen
方向: 汽车芯片功能安全分析与故障注入实践
Demo: D07_ep_contribution
标签: 汽车芯片 功能安全 FIT Contribution Endpoint 安全机制选择 风险排序


Demo 说明

D07_ep_contribution 的目标是基于第 6 篇提取出的 SP/EP/Cone 结构,进一步计算每个 Endpoint 对整体 FIT/DC 风险的贡献度。

对应的通用工具名称为:

text 复制代码
safeic-epcont

这个 Demo 的作用是回答一个非常工程化的问题:

设计里有很多寄存器输入、输出端口和黑盒边界,应该优先保护哪些 endpoint?

如果没有贡献度排序,安全机制选择很容易变成平均用力:

text 复制代码
所有寄存器都想保护
所有模块都想加 checker
所有 memory 都想加 ECC
所有路径都想做 duplication

这会导致面积、功耗、时序和验证成本迅速失控。Endpoint FIT Contribution 的作用,就是先找到最值得保护的地方。


1. 为什么不能平均保护所有节点

汽车芯片中,安全机制不是免费的。

任何安全机制都会带来成本:

text 复制代码
面积增加
功耗增加
时序压力增加
验证复杂度增加
故障注入 campaign 规模增加
软件诊断配合成本增加

例如:

安全机制 成本特点
parity 成本较低,但覆盖范围有限
ECC 对 memory 有效,但编码/解码逻辑有代价
duplication 覆盖更强,但面积接近翻倍
lockstep 覆盖很强,但系统代价高
end-to-end protection 跨模块保护有效,但协议设计复杂

因此,功能安全设计的目标不是"把所有地方都保护起来",而是:

text 复制代码
用有限的安全机制覆盖最大风险贡献点

这就需要 Endpoint Contribution。


2. Endpoint 为什么适合作为贡献度分析对象

在结构分析中,Endpoint 是故障传播的关键收敛点。

它可能是:

text 复制代码
寄存器 D 端
latch 输入
memory 输入
blackbox 输入
顶层输出

Endpoint 的重要性来自三个方面:

text 复制代码
它可能捕获错误
它可能影响后续状态
它可能直接影响安全相关输出

一个 endpoint 的贡献度通常与下面因素有关:

text 复制代码
endpoint 自身结构规模
连接到它的 cone 规模
上游 startpoint 数量
fan-in/fan-out 关系
是否位于 safety-related path
是否连接 alarm/checker 或 safety output

因此,Endpoint FIT Contribution 可以理解为:

某个 endpoint 对整体随机硬件失效风险的相对贡献。


3. 一个简单例子

假设有两个 endpoint:

text 复制代码
EP_A:一个局部控制寄存器输入
EP_B:一个 bus fabric 仲裁状态寄存器输入

它们的基本信息如下:

Endpoint 上游 SP 数量 Cone gate 数量 下游影响范围 安全相关
EP_A 1 8 单个局部状态
EP_B 6 120 多个 master/slave 通路

虽然 EP_A 和 EP_B 都是寄存器输入,但 EP_B 显然更值得优先分析。

因为 EP_B 的故障可能影响:

text 复制代码
总线授权
访问顺序
数据返回路径
错误响应
多个外设访问

这类 endpoint 的贡献度通常更高。


4. Contribution 的基本计算思路

第一版 Demo 不需要追求完整标准模型,可以先建立可解释的工程评分模型。

一种简化计算方式:

text 复制代码
EP_Contribution = EP_Weight + Cone_Weight + Fanin_Weight + Fanout_Weight + Safety_Weight

每个部分含义如下:

权重 含义
EP_Weight endpoint 自身寄存器、输出、memory bit 权重
Cone_Weight 上游组合逻辑规模
Fanin_Weight 影响该 EP 的 startpoint 数量
Fanout_Weight 该 EP 后续影响范围
Safety_Weight 是否属于安全相关功能路径

实际工具中可以把它拆成可配置参数:

yaml 复制代码
weights:
  ep_base: 1.0
  cone_gate: 0.02
  fanin_sp: 0.5
  fanout_ep: 0.5
  safety_related_bonus: 2.0

这样不同项目可以根据场景调整策略。


5. 从结构数据到贡献度报告

safeic-epcont 的输入来自第 6 篇的结构分析输出:

text 复制代码
sp.csv
ep.csv
cone.csv
structure_graph.json

工具内部流程可以设计为:
Read SP/EP/Cone
Build Connectivity Index
Compute EP Base Weight
Compute Cone Weight
Compute Fanin/Fanout Weight
Merge Scores
Rank Endpoints
Generate Contribution Reports

输出核心文件:

text 复制代码
ep_contribution.csv
top_ep.md
contribution_summary.json

6. 输出文件示例

ep_contribution.csv 可以设计为:

csv 复制代码
ep_id,node,module,ep_type,cone_count,total_cone_gates,fanin_sp_count,fanout_count,safety_related,score,rank
EP_0001,top.u_bus.arb_state.D,top.u_bus,reg_d,4,120,6,8,true,18.40,1
EP_0002,top.u_cpu.ctrl_state.D,top.u_cpu,reg_d,2,70,3,5,true,11.90,2
EP_0003,top.u_timer.cnt_en.D,top.u_timer,reg_d,1,18,1,1,true,4.20,3

top_ep.md 可以输出人能读懂的解释:

md 复制代码
# Top Endpoint Contribution

## Rank 1: top.u_bus.arb_state.D

Reason:
- Connected to 6 upstream startpoints
- Accumulates 120 cone gates
- Affects 8 downstream endpoints
- Marked as safety-related

Suggested safety mechanism candidates:
- arbitration state parity
- duplicated grant checker
- protocol consistency monitor

这样的报告比单纯的数字更有工程价值。


7. Contribution 与安全机制选择的关系

Endpoint Contribution 的直接用途是指导 Safety Mechanism Selection。

例如:

Endpoint 特征 推荐安全机制方向
控制状态寄存器贡献高 parity、control-flow monitor、illegal state checker
数据路径 cone 贡献高 duplication、data path checker、end-to-end protection
memory endpoint 贡献高 ECC、parity、scrubbing
bus fabric endpoint 贡献高 protocol checker、response monitor、timeout monitor
safety output endpoint 贡献高 output compare、range check、redundant output

这背后的方法论是:

text 复制代码
先找到高贡献 endpoint
再分析其结构类型和功能语义
最后选择合适的 safety mechanism

而不是先随意选择一个安全机制,再去证明它有效。


8. Contribution 与 Fault List 的关系

Endpoint Contribution 还可以用来指导 fault list 生成。

完整芯片 fault 数量可能非常大,如果盲目生成所有 fault,会导致 fault campaign 过重。

更实际的方式是:

text 复制代码
优先对 high-contribution endpoint 相关节点生成 fault
对低贡献节点采用抽样
对非安全相关节点做降权或排除

例如:

text 复制代码
Top 10% endpoint:完整 stuck-at + transient fault
Middle 40% endpoint:stuck-at fault
Low contribution endpoint:sampling fault
Non-safety-related endpoint:可排除或单独统计

这能显著降低后续故障注入压力。


9. D07 Demo 的目录建议

text 复制代码
D07_ep_contribution/
  README.md
  run_demo.csh
  run_demo.sh
  inputs/
    sp.csv
    ep.csv
    cone.csv
    structure_graph.json
    contribution_weights.yaml
  outputs/
    ep_contribution.csv
    top_ep.md
    contribution_summary.json
  scripts/
    safeic_epcont.py

运行命令示例:

bash 复制代码
python3 scripts/safeic_epcont.py \
  --sp inputs/sp.csv \
  --ep inputs/ep.csv \
  --cone inputs/cone.csv \
  --weights inputs/contribution_weights.yaml \
  --out outputs

csh 版本:

csh 复制代码
python3 scripts/safeic_epcont.py \
  --sp inputs/sp.csv \
  --ep inputs/ep.csv \
  --cone inputs/cone.csv \
  --weights inputs/contribution_weights.yaml \
  --out outputs

10. 方法论总结

Endpoint FIT Contribution 的核心价值是排序。

它帮助我们回答:

text 复制代码
哪些 endpoint 最值得保护?
哪些模块贡献最大?
哪些 cone 可能造成风险集中?
哪些安全机制应该优先投入?
后续 fault campaign 应该优先覆盖哪些节点?

功能安全工程不是单纯"多加保护",而是"基于结构贡献度做保护优先级决策"。

D07_ep_contribution 的意义就在于把这种决策过程数据化、报告化、可复现化。

相关推荐
DarrenHChen_EDA19 小时前
【汽车芯片功能安全分析与故障注入实践 05】Architectural、RTL、Netlist 三个阶段的安全分析差异
安全·汽车·功能安全·rtl·architecture·汽车芯片·netlist
DarrenHChen_EDA1 天前
【汽车芯片功能安全分析与故障注入实践 02】一个功能安全验证项目需要哪些输入文件?
功能安全·汽车芯片
DarrenHChen_EDA1 天前
【汽车芯片功能安全分析与故障注入实践 03】从 Base FIT Rate 开始:为什么安全分析要先做 BFR?
功能安全·fit·汽车芯片·bfr·随机硬件故障
DarrenHChen_EDA1 天前
【汽车芯片功能安全分析与故障注入实践 04】IEC 62380 与 SN29500:FIT 模型如何工程化落地?
功能安全·sn29500·汽车芯片·fit模型·iec62380
DarrenHChen_EDA1 天前
【汽车芯片功能安全分析与故障注入实践 01】汽车芯片功能安全验证到底验证什么?
功能安全·故障注入·汽车芯片·safeic·fit/dc·fmeda·vcd
Electron-er3 个月前
汽车ECU重编程中的Bootloader设计原理:如何实现安全回滚?
autosar·uds·汽车电子·bootloader·功能安全·ecu刷写
坏孩子的诺亚方舟5 个月前
FPGA系统架构设计实践12_FPGA系统ECM0
fpga开发·系统架构·ecm·功能安全
谈思汽车5 个月前
索尼撬动SerDes市场,汽车芯片进入“集成化”赛段!
汽车·serdes·传感器·汽车芯片
NewCarRen5 个月前
车载雷达的模块化多Chiplet eWLB封装方案
汽车芯片