4. 主动屏蔽层设计:网格结构、互连线间距、通孔布局,抗FIB攻击策略
主动屏蔽层,说白了就是给芯片最上层盖一层「防盗网」。攻击者想用FIB(聚焦离子束)切开钝化层、探内部信号?先得过这层网。我早年做第一版屏蔽层时,以为随便铺点金属就行了,结果被FA(失效分析)同事一眼看穿——那网眼大得能跑火车。嗯,从那以后我才真正开始认真研究网格结构。
4.1 网格结构:不是越密越好
屏蔽层通常用顶层金属(比如M6或M7)来做。常见结构有两种:
- 矩形网格:横竖交叉,工艺友好,寄生参数好算。
- 菱形/六边形网格:覆盖更均匀,但DRC(设计规则检查)容易报错。
我个人习惯用矩形网格起步。为什么?因为后仿真好收敛。你想想看,菱形网格的拐角处电流密度不均匀,IR drop(电压降)分析时容易出幺蛾子。
关键参数:
- 线宽:建议 2-5 µm(太细容易被FIB切断,太粗浪费面积)
- 网格间距:10-30 µm(取决于你要保护的敏感区域大小)
- 金属层:至少用两层,上下交错,形成「三明治」
我在一个安全芯片项目里遇到过这种情况:客户要求网格间距必须小于FIB的最小切割精度(约5 µm)。但工艺厂说5 µm间距会导致顶层金属密度超标,CMP(化学机械抛光)会出问题。最后我们折中到8 µm,配合随机化通孔布局,才过了DFM(可制造性设计)检查。
4.2 互连线间距:防桥接的底线
互连线间距,说白了就是两条屏蔽线之间的空气隙。这个值太小,FIB可以沉积金属把两条线「焊」在一起,形成桥接,然后绕过你的检测逻辑。
| 工艺节点 | 推荐最小间距 | FIB桥接风险 |
|---|---|---|
| 180 nm | ≥ 3 µm | 低 |
| 130 nm | ≥ 2.5 µm | 中 |
| 90 nm | ≥ 2 µm | 高 |
| 65 nm 及以下 | ≥ 1.5 µm | 极高 |
注意,上表只是参考值。实际项目中,我建议你跑一遍FIB攻击模拟——用TCAD(技术计算机辅助设计)工具仿真一下,看看攻击者能不能在两条线之间沉积出可靠的导电桥。我曾经吃过这个亏:按工艺厂推荐的最小间距画了,结果攻击者用钨沉积轻松桥接,屏蔽层形同虚设。
避坑指南:
我曾经在65 nm项目里把间距设到1.2 µm,想着「反正工艺能力强」。结果FIB攻击测试时,攻击者用5 keV的低能离子束,在两条线之间沉积了一层薄钨,电阻只有几十欧姆。从那以后,我定了个死规矩:间距至少是FIB沉积精度的3倍。
4.3 通孔布局:随机化是关键
通孔(via)是屏蔽层的薄弱环节。攻击者可以用FIB切断通孔,然后从侧面探入信号。所以通孔布局不能太规律。
我常用的策略是:
- 伪随机分布:用LFSR(线性反馈移位寄存器)生成通孔位置,避免周期性。
- 冗余通孔:每个连接点至少放2个通孔,防止单点失效。
- 通孔尺寸微调:在工艺允许范围内,让通孔大小有±10%的随机变化。
你可能会问:「随机化会不会增加后仿真的工作量?」会,但值得。我记得有个项目,攻击者用FIB切断了屏蔽层上的一排通孔,然后从断点处注入故障信号。因为我们的通孔是随机分布的,他切了十几个通孔才发现一条完整的通路——这时候检测电路早就报警了。
实用技巧:
通孔随机化可以用脚本自动生成。我习惯在布线完成后,写一个Tcl脚本扫描所有屏蔽层通孔,然后按种子值重新分配位置。注意,随机化不能违反DRC规则,所以脚本里要加一步DRC检查。
4.4 抗FIB攻击策略:多层防御
单靠屏蔽层挡不住所有FIB攻击。你需要组合使用以下策略:
- 主动检测:屏蔽层上跑动态信号(比如伪随机码),一旦信号被干扰就触发报警。
- 被动防御:在屏蔽层下方加一层吸收层(比如高掺杂硅),让FIB的二次电子信号变弱。
- 混淆:把真正的敏感信号藏在屏蔽层下面,用假信号线做诱饵。
我参与过一个银行卡芯片项目,攻击者用FIB从芯片背面打孔,绕过了正面屏蔽层。后来我们在背面也加了屏蔽层,并且让正背面的网格错开45度角——这样即使从背面打穿,也要同时切断两层网格才能接触到核心电路。
抗FIB攻击检查清单:
- 屏蔽层网格间距 ≤ FIB最小切割精度 × 2
- 互连线间距 ≥ FIB桥接能力 × 3
- 通孔随机化,冗余度 ≥ 2
- 屏蔽层覆盖所有敏感区域(包括电源域边界)
- 屏蔽层信号与地/电源之间有ESD保护
4.5 知识体系总览
下面这张图把主动屏蔽层设计的核心逻辑串起来了。你可以把它当作设计时的检查地图。
这张图把四个核心模块串起来了。你设计时可以从中心节点出发,逐个检查每个分支的细节。记住,屏蔽层不是「铺上去就完事」的东西——它需要和检测电路、电源网络、ESD结构一起协同工作。
最后说一句:
主动屏蔽层设计,说白了就是和攻击者玩「猫捉老鼠」的游戏。你每增加一层随机化、每加一个冗余通孔,攻击者的成本就翻一倍。我见过最极端的案例,攻击者花了三个月才绕过屏蔽层——而芯片的生命周期只有两个月。嗯,那就是我们想要的效果。