第二章:设计规则基础

各位同学,今天我们来聊聊设计规则。说实话,这可能是整个课程里最“枯燥”但又最要命的部分。我见过太多新手,甚至一些老手,因为不重视设计规则,最后流片回来芯片直接报废。

设计规则是什么?说白了,就是晶圆厂给你画的一条“红线”。你跨过去,芯片就可能出问题。我刚开始做设计时,总觉得这些规则是厂里故意刁难人。直到有一次,我为了省面积,把金属线间距压到了规则允许的极限以下...结果呢?流片回来,那几条线直接短路了。从那以后,我再也不敢挑战规则了。

2.1 设计规则的核心概念

设计规则,本质上是一组几何约束。它告诉你在版图上,什么东西能画,什么东西不能画。为什么要有这些规则?因为制造工艺有物理极限。

你想想看,光刻机在晶圆上成像,就像用喷墨打印机打印极细的线条。墨水会扩散,光也会衍射。如果两条线靠得太近,光刻时就会“糊”在一起。这就是设计规则存在的根本原因。

我个人习惯把设计规则分成三类:

  • 最小宽度规则:线不能太细,否则会断
  • 最小间距规则:线不能太近,否则会短
  • 通孔规则:孔不能太小,否则电阻大甚至不通

嗯,这里要注意:不同工艺节点的规则完全不同。比如7nm和28nm,规则能差好几倍。我建议你拿到新工艺时,先把设计规则手册从头到尾翻一遍,哪怕看不懂也要翻。

2.2 最小宽度规则

最小宽度,就是版图上能画的最细线条。为什么要有这个限制?

我举个例子。你在纸上画一条极细的线,铅笔稍微一抖,线就断了。制造工艺也一样。光刻胶在曝光时,细线条的边缘会变得粗糙。如果线太细,最窄的地方可能直接断开。

在台积电的工艺中,不同层的宽度规则不同:

层次 最小宽度 (nm) 典型应用
Poly (多晶硅) 40 栅极
Metal 1 (第一层金属) 60 局部互连
Metal 2 (第二层金属) 70 全局互连
Via (通孔) 50 层间连接

我曾经遇到过一个案例:某团队为了节省面积,把Poly栅极宽度从40nm缩到了35nm。仿真时一切正常,但流片回来后,芯片良率直接掉了30%。为什么?因为栅极太细,多晶硅在刻蚀时出现了断裂。这就是血的教训。

⚠️ 重要提醒: 最小宽度不是“建议值”,而是“绝对下限”。不要试图挑战它。哪怕仿真结果再好,制造工艺的波动也会让你翻车。

2.3 最小间距规则

间距规则,说白了就是两条线之间必须留多少空。为什么要有间距?因为光刻时,相邻线条的光会互相干扰。如果间距太小,两条线可能“粘”在一起。

我记得有一次,一个同事为了在狭小空间里布线,把两条金属线的间距压到了规则允许的极限。结果呢?流片回来后,那两条线之间的介质层出现了裂纹,导致漏电。嗯,从那以后,他再也不敢省间距了。

间距规则通常分为两种:

  • 同层间距:同一层金属线之间的距离
  • 异层间距:不同层金属线之间的垂直距离

同层间距比较好理解。异层间距呢?其实也重要。比如Metal 1和Metal 2之间如果太近,寄生电容会变大,影响信号速度。

这里有个小技巧:在布线时,尽量让同层金属线平行走,不要交叉。交叉会增加寄生电容,而且容易违反间距规则。

💡 个人经验: 我习惯在布线完成后,用DRC工具跑一遍间距检查。别偷懒,这一步能帮你省下至少一次流片迭代。

2.4 通孔规则

通孔,就是连接不同金属层的“桥梁”。通孔规则主要涉及三个方面:

  1. 通孔尺寸:孔不能太小,否则电阻大
  2. 通孔间距:孔之间不能太近,否则会短路
  3. 通孔覆盖:孔必须被上下层金属完全覆盖

为什么通孔尺寸这么重要?你想想看,通孔是垂直结构,制造时需要在介质层上刻蚀出一个洞,然后填充金属。如果洞太小,金属填充不进去,就会形成空洞。空洞会导致电阻增大,甚至完全断路。

我曾经在项目中遇到过通孔覆盖的问题。当时为了节省面积,我把通孔放在了金属线的边缘。结果DRC报错,说通孔覆盖不足。我一开始还不信,觉得差一点没关系。后来查了工艺文档才知道,通孔边缘如果没被金属覆盖,刻蚀时会把旁边的介质也刻掉,导致漏电。

台积电对通孔的要求很严格:

通孔类型 最小尺寸 (nm) 最小间距 (nm) 覆盖要求
Via 0 (接触孔) 50 100 上下各延伸10nm
Via 1 (通孔1) 60 120 上下各延伸15nm
Via 2 (通孔2) 70 140 上下各延伸20nm
🔑 关键点: 通孔不是越多越好。虽然并联多个通孔可以降低电阻,但也会增加寄生电容。我建议在关键信号路径上使用双通孔,普通路径用单通孔就够了。

2.5 金属层规则

金属层规则,是设计规则里最复杂的一部分。为什么?因为现代工艺有十几层金属,每层的规则都不一样。

一般来说,低层金属(Metal 1~3)线宽细、间距小,适合局部布线。高层金属(Metal 6以上)线宽粗、间距大,适合电源和时钟布线。为什么这样设计?因为高层金属离衬底远,寄生电容小,适合传输高速信号。

我记得有一次,一个团队把时钟信号放在了Metal 1上。结果呢?时钟信号被衬底噪声干扰,导致整个芯片时序混乱。后来他们改到Metal 6上,问题就解决了。

金属层规则主要包括:

  • 最小线宽:每层金属的最小宽度
  • 最小间距:同层金属之间的最小距离
  • 密度规则:金属覆盖率必须在某个范围内(比如30%~70%)
  • 天线规则:长金属线不能直接连到栅极,否则会积累电荷损坏器件

密度规则是个坑。我见过有人为了省面积,把金属覆盖率压到了20%。结果流片回来后,那片区域的介质层因为应力不均出现了裂纹。嗯,从那以后,我每次布完线都会用密度检查工具跑一遍。

⚠️ 天线规则特别提醒: 如果你有一条很长的金属线直接连到MOS管的栅极,这根线在刻蚀时会像天线一样收集电荷,可能把栅氧化层击穿。解决办法是加一个二极管或者换层跳线。

2.6 实战中的设计规则检查

好了,理论讲完了。我们来看看实战中怎么用这些规则。

在EDA工具中,设计规则检查(DRC)是自动完成的。你只需要在版图设计完成后,跑一遍DRC。工具会告诉你哪里违反了规则。

但我要提醒你:DRC不是万能的。它只能检查几何规则,不能检查电气性能。比如两条线间距符合规则,但寄生电容太大,DRC是查不出来的。这就需要你结合仿真和经验来判断。

我个人习惯的做法是:

  1. 先跑一遍DRC,修掉所有几何错误
  2. 再跑一遍LVS(版图与电路一致性检查),确保版图和电路一致
  3. 最后做后仿真,验证电气性能

这三步缺一不可。我曾经跳过LVS,结果版图上少画了一条线,流片回来整个模块都不工作。嗯,那次教训让我多花了三个月改版。

💡 避坑指南: 我曾经在项目中遇到一个奇怪的问题:DRC通过了,LVS也通过了,但芯片就是工作不正常。后来发现是金属密度不均匀,导致CMP(化学机械抛光)时出现了凹陷。从那以后,我每次布完线都会检查金属密度,确保在40%~60%之间。

最后,我想说:设计规则不是束缚,而是保护。它保护你的芯片能正常制造,保护你的设计能正常工作。尊重规则,就是尊重自己的时间和金钱。

下一章,我们会深入讨论DRC工具的使用技巧。到时候我会分享一些我自己的脚本和自动化方法,帮你提高效率。