最近有一些同学问congestion map怎么看。这里详细介绍一下。
congestion map可以非常直观的看到,绕线有问题的区域。
另外congestion map对于及早发现floorplan的问题有非常重要的意义,有经验的工程师都是在place阶段发现floorplan存在的问题。可以说90%的问题,是在place阶段解决的。到绕线阶段,在解决剩下的10%的问题。为什么还有10%的绕线问题?这是因为congestion map和最终的绕线有一定的偏差。
以ICCII为例,工具在进行global route时,会将floorplan划分为多个矩形区域(矩形区域叫GRC,Global route cell的缩写)。你可以把这些GRC想象成你家里的瓷砖。
对于ICCII来说,GRC是边长等于row的高度的正方形。
global route是做什么呢? 其实就是为每一根绕线分配好所要走的GRC。比如你想从卧室走到客厅,global route就是给你指定要走哪几块瓷砖。
![](https://i-blog.csdnimg.cn/blog_migrate/38e00b792bfab156e0c1e47974908cf1.png)
如图,Global Route相当于指定了一个由GRC组成的通道,而detail route就在这个通道中的详细的路线。
以下图中的congestion map为例:
![](https://i-blog.csdnimg.cn/blog_migrate/a4917ac9a223b77e02a4415bc82540ba.png)
这里把右下角区域放大:
![](https://i-blog.csdnimg.cn/blog_migrate/634c2cfcf077a173ac62cd8c17a57ee9.png)
图中,左侧数字表示的是overflow,右侧的数字表示GRC的个数。
关于overflow的计算有两种方式可选:
![](https://i-blog.csdnimg.cn/blog_migrate/217e755fcf53881ef465bc2eff4b3c5f.png)
图中第一种要比第二种悲观。比如,可能对于某一个GRC的M5,overflow为1,但是在M4层,可能还有空余的track。如果按照第一种的计算方法,overflow为1,但是按照第二种,overflow则为0或者是负值. 比如,对于同样的design,采用第二种方法,overflow就会变成这样
![](https://i-blog.csdnimg.cn/blog_migrate/9af0de421afd97e581cfb4337ecff600.png)
结果看起来要比第一种好很多。
我们把congestion map放大
![](https://i-blog.csdnimg.cn/blog_migrate/7d4869561ecf94f05a949e5ab5d7c3a6.png)
我们会看到长度等于row高度的短线,并且上面标有一些数字。其实,这些短线是GRC的一个边。GRC是个正方形,由于我们只显示了overflow大于1的边,所以,这里我们只能看到一条。
我们可以把所有的边都显示出来。
![](https://i-blog.csdnimg.cn/blog_migrate/b1bf2760cdf768821c1cb919900fc23e.png)
这样我们就能清楚的看到GRC的所有的边了。
而里面所有的数字是个分数,分子表示的是对于这条GRC的边,overflow是多少,分母表示的是这条边总共能通过的net的条数。
因此,对于分子来说,依据这两种不同的算法,值会有所不同。但是分母不会变。