物理综合的一大目标是优化congestion, 衡量congestion 的指标有:
1 Overflow
2 Hotspots
Overflow 跟Hotspots 是如何计算的,是用什么来表征的?Congestion 分析基于一个基本『单元』称为GCELL: Routing Grid cell. Gcell 是工具自己定义的一个单位格子,通常是一个ROW 的高度的小正方形,用户可以根据自己的需求在工具里设置Gcell 的大小。当Gcell 定义好之后,每个Gcell 包含固定的绕线资源,如一个Gcell 有5 个track, 如果有7 条线要经过该Gcell 那该Gcell 的overflow 就是2.
在Ispatial flow 或Innovus 中分析Congestion 时常会看到以下两个关键词,其具体含义是:
eGR: Early Global Router - It is the router used by the timing and optimization engine at pre-route stages.
NR-GR: NanoRoute Global Router - It is a global router which does global routing before the detail routing engine of NanoRoute kicks in.
Ispaital flow 使用同Innovus 相同的Early Global Routing 引擎,所以Overflow 的计算方式也一样。Innovus 在Early Global Route 跟Global Route 时Overflow的计算公式有所差别。
Early Global Route Congestion Formula:
Global Route Congestion Formula:
计算公式中 “unblocked GCells” 指未被完全blocked 住的Gcell, 比如hardmacro 占住的routing 资源,routing blockage 占住的routing 资源。
在分析Congestion 时,对于面积大density 低的设计,只看overflow 并不能确定congestion 是否有问题,此时Hotspot 更能反应真实情况。
Hotspot: Adjacent G-Cells which have overflow.
在Innovus 的log 中有两张重要的表,可以得到routing 资源信息:
该表中每一项的意义:
Avail Track= Number of routing tracks in the design for each layer.
Track Blocked= Number of routing tracks blocked by a large blockage. A large blockage is a blockage that is greater than 2x2 Gcells. Small objects, such as pins or wires on a track, do not count here. The reason is that even if a pin is on a track, the track is still usable by the net to the pin.
Total Gcell= Total number of Gcells in the design for each layer.
%Gcell Blocked= Percentage of Gcells in which all the routing tracks inside the Gcell are blocked by a large or small blockage. When all the tracks are blocked, a wire cannot pass through that Gcell for the specific layer.
该表中每一项的意义:
Max overcon= The highest difference between the needed number of routing tracks for a Gcell and the number of available tracks.
Total overcon= Percentage of Gcells whose needed number of tracks exceeds the number of tracks available.
Worst layer Gcell overcon rate= Percentage for the layer with the highest percentage of overcongested Gcells.
The worst congested Gcell overcon =the Gcell with the highest difference between the number of tracks needed and the number of tracks available. In the above example, the worst congested Gcell requires six more routing tracks than it has available.
除此之外, 最直接明了的方式是打开congestion map, 黄红白的区域就是congestion 严重的区域,通常如果congestion 在macro 周围多是floorplan 不合理造成的,如果congestion 在逻辑中间多是设计本身或综合没做好造成的。