4、布线资源模型:金属层与通孔资源、布线轨道与网格、资源利用率计算、资源竞争模型
各位好,我是老李。在版图设计这行摸爬滚打了十几年,今天咱们来聊聊布线资源模型。说实话,很多新手工程师觉得这玩意儿太理论,不如直接跑工具来得实在。但我告诉你,不理解资源模型,你永远搞不懂为什么有些设计就是布不通,为什么有些地方就是绕不开。
布线资源模型,说白了就是搞清楚芯片里到底有多少「路」可以走。你想想看,一个芯片上千万个晶体管,它们之间要连起来,靠的就是金属线和通孔。这些资源是有限的,怎么分配、怎么计算、怎么避免抢路,这就是我们今天要聊的核心。
4.1 金属层与通孔资源
先说说金属层。现在的先进工艺,动辄十几层金属。从最底层的M1到顶层的厚金属,每一层的特性都不一样。我个人习惯把金属层分成三类:
- 底层金属(M1-M3):线宽细、间距小,适合做局部互连。但电阻大,不能走长线。
- 中间层金属(M4-M7):厚度适中,电阻率中等。这是布线的「主力军」,大部分信号线都走这里。
- 顶层金属(M8及以上):厚金属,电阻小,适合走电源、时钟这些对延迟敏感的信号。但线宽大,占地方。
我在项目中遇到过一件事:有个同事为了省事,把所有信号都往顶层金属上堆。结果呢?顶层金属资源被占满,电源线没地方走了,最后不得不重新改版。嗯,这里要注意:不同金属层有不同的用途,别把鸡蛋都放在一个篮子里。
通孔资源呢?通孔就是连接不同金属层的「楼梯」。每个通孔都有电阻,而且通孔本身也占面积。我记得有一次做低功耗设计,为了减小电阻,我在电源网络上堆了密密麻麻的通孔阵列。结果DRC报了一大堆通孔间距违例——通孔之间也要留够空间,不然制造时容易短路。
关键点:通孔资源不是无限的。每个通孔都有最小间距要求,而且通孔本身也会阻挡其他层的走线。所以,通孔不是越多越好,够用就行。
4.2 布线轨道与网格
布线轨道是什么?你可以把它想象成城市里的车道。每条金属层上,都有固定的走线方向。比如M1走水平方向,M2走垂直方向,M3又走水平方向……这样交替排列。
轨道就是这些方向上预先划分好的「车道线」。每条轨道有固定的宽度和间距。工具布线时,就是把线放在这些轨道上。为什么?因为这样制造工艺最简单,一致性最好。
网格呢?网格就是轨道交叉形成的格子。每个格点就是一个潜在的布线位置。工具在布线时,实际上是在网格上找路径。我建议你记住一个概念:网格密度。网格密度越高,可用的布线位置就越多,布线就越容易。
但这里有个坑:网格密度不是越高越好。网格太密,意味着轨道间距小,线宽就细,电阻就大。对于高速信号来说,这可不是什么好事。我曾经在一个28nm的项目里,为了追求高密度布线,把M2的间距压到了最小。结果呢?信号延迟超标,时序收敛不了。最后不得不放宽间距,牺牲一些面积来换性能。
我的经验:对于普通信号线,用标准间距就够了。对于时钟、复位这些关键信号,我通常会留出两倍间距,减少串扰风险。
4.3 资源利用率计算
资源利用率,说白了就是「用了多少,还剩多少」。计算公式很简单:
资源利用率 = 已用资源 / 总可用资源 × 100%
但具体到版图布线,这个「资源」怎么定义?我一般看三个维度:
- 轨道利用率:某层金属上,已经布线的轨道数占总轨道数的比例。超过70%就要小心了,后面可能很难绕开。
- 通孔利用率:某个区域内的通孔数量占允许的最大通孔数量的比例。这个值超过50%时,通孔附近的走线就会变得很拥挤。
- 区域利用率:把芯片分成若干个网格,每个网格内的布线密度。这个指标最直观——哪个网格红了,哪个网格就是瓶颈。
我记得有一次做后端设计,工具跑了一整天还没布完。我一看报告,某个区域的轨道利用率已经到85%了。工具在那里反复尝试绕线,就是绕不过去。后来我手动调整了几个宏单元的位置,把那个区域的利用率降到了65%,工具一下子就跑通了。
注意:资源利用率不是越高越好。我个人建议,全局利用率控制在60%-70%比较合理。超过80%,你就要做好手动干预的准备了。
4.4 资源竞争模型
资源竞争,就是多个信号线都想走同一条路。这就像早高峰的地铁,大家都想挤上去,但车厢就那么大。
在EDA工具里,资源竞争模型是怎么处理的?我简单说一下:
- 全局布线阶段:工具先把芯片分成一个个小格子(GCell),然后估算每个格子里的走线需求。如果某个格子的需求超过了容量,就标记为「拥塞」。
- 详细布线阶段:工具在拥塞区域尝试绕线。如果绕不过去,就通过「拆线重布」的方式,把之前已经布好的线拆掉,重新找路径。
- 迭代优化:这个过程会反复进行,直到所有线都布通,或者达到最大迭代次数。
你可能会问:为什么工具有时候就是布不通?其实原因很简单——资源竞争太激烈了。比如某个区域有100条轨道,但需要走120条线,那无论如何都布不通。这时候就需要回到布局阶段,把一些单元挪开,释放出更多的布线资源。
我曾经遇到过一个极端案例:一个模块里,M3层的轨道利用率已经到95%了,但还有几十条线没布通。我检查了一下,发现很多线其实可以走M4层,但M4层被电源网络占满了。后来我调整了电源网络的走线策略,把M4层释放出一部分给信号线,问题就解决了。
核心思想:资源竞争的本质是「供需不平衡」。要么增加供给(释放更多轨道),要么减少需求(优化走线路径)。没有第三种办法。
知识体系图
下面这张图是我自己画的,把布线资源模型的核心逻辑串起来了。你看一眼就能明白:
好了,关于布线资源模型,我就讲这么多。说白了,这就是一个「有多少资源、怎么用、用多少、抢不抢」的问题。你只要把这四个问题想清楚了,布线拥塞对你来说就不是什么难事。
可可精品资料库