# Routability Features

## Macro Region ①

The region on the layout covered by macro which shows the relative routing resource distribution. Region covered and uncovered by macro denoted as different grey scale, 1 and 0, respectively.

## Cell Density ②

Density distribution of cells, which is equivalent to the cell counts in each tile.

## Congestion ③ ~ ⑩

name computation
apporach
stage direction used task
congestion_eGR_horizontal_overflow ③

overflow

early global routing
horizontal

Congestion/DRC
congestion_eGR_vertical_overflow ④ vertical
congestion_GR_horizontal_overflow ⑤
global routing
horizontal
congestion_GR_vertical_overflow ⑥ vertical
congestion_eGR_horizontal_util ⑦

utilization

early global routing
horizontal

none
congestion_eGR_vertical_util ⑧ vertical
congestion_GR_horizontal_util ⑨
global routing
horizontal
congestion_GR_vertical_util ⑩ vertical
• Computation method:

Congestion is computed based on the routing resources reported by Innovus, and there are 2 computation method, overflow based and utilization based. The report basically contains 3 information: total tracks, remain tracks and overflow, based on each GCell, aka tile. Wires have to be routed on tracks, thus tracks are equivalent to routing resources.

Overflow based congestion is computed as $\frac{overflow}{total tracks}$. Overflow is the extra demand over total tracks and reflects where congestion occurs.

Utilization based congestion is computed as $\frac{remain tracks}{total tracks}$. Utilization reflects the distribution of routing resources.

• Stage: Congestion is reported by Innovus in 2 different stage, eGR and GR. eGR is early global routing, aka trial routing. It is done after placement as a quick and early estimation for congestion. GR is global routing, and the congestion is more accurate than eGR in this stage.

• Direction: The tech lef we use is of type HVH, which meaning that the wires on M1 is horizontal, the ones on M2 is vertical and so on. In this way, the congestion is divided into 2 directions, horizontal and vertical.

## RUDY ⑪ ~ ⑮

RUDY refers to Rectangular Uniform wire DensitY which works as a early routing demand estimation after placement. There are several derivatives:

• RUDY ⑪
• RUDY long ⑫
• RUDY short ⑬
• RUDY pin ⑭
• RUDY pin long ⑮

(1) For the $k$th net with bounding box $(x_{k,min}$, $x_{k,max}$, $y_{k,min}$, $y_{k,max})$, its RUDY at tile $(i,j)$ with bounding box $(x_{i,min}$, $x_{i,max}$, $y_{j,min}$, $_{j,max})$ is defined as

$w_k = x_{k,max}-x_{k,min}$
$h_k = y_{k,max}-y_{k,min}$
$s_k = (min(x_{k,max}, x_{i,max})-max(x_{k,min}, x_{i,min})) \times (min(y_{k,max}, y_{j,max})-max(y_{k,min}, y_{j,min}))$
$s_{ij} = (x_{i,max}-x_{i,min})\times (y_{j,max}-y_{j,min})$
$RUDY_k(i,j) = \frac{w_k + h_k}{w_k \times h_k} \frac{s_ij}{s_k}$

where min()/max() return the smaller/larger value among 2 inputs, $s_{ij}$ is the area of tile $(i,j)$ and $s_k$ denotes the area of tile $(i,j)$ covered by net k.

(2) RUDY long and RUDY short are the decomposition of RUDY, concerning the length of net k. If net k covers more than 1 tile, it contributes to RUDY long. Otherwise, net k covers only 1 tile, then it contributes to RUDY short.

(3) RUDY pin is calculated on the basis of each pin and the net connected the pin, and it is in analog for pin density. For tile $(i,j)$, RUDY pin of a pin belonging to net k is calculated as

$RUDY pin(i,j) = \frac{w_k + h_k}{w_k \times h_k}$

RUDY pin long is defined in symmetry with RUDY long as the decomposition of RUDY pin , i.e., if net k covers more than 1 tile, its pins contributes to RUDY pin long.

## DRC ⑯

Design rule check violations counted in each tile. Different types of DRC are both saved together in one map and seperately saved.