Add more spacing to inflated pins to prevent unroutables

This commit is contained in:
Eren Dogan 2023-07-23 10:22:43 -07:00
parent 1c274afa46
commit 7a7ddebcca
1 changed files with 8 additions and 1 deletions

View File

@ -8,6 +8,7 @@ from openram.base.vector import vector
from openram.base.vector3d import vector3d from openram.base.vector3d import vector3d
from openram.gdsMill import gdsMill from openram.gdsMill import gdsMill
from openram.tech import GDS from openram.tech import GDS
from openram.tech import drc
from openram.tech import layer as tech_layer from openram.tech import layer as tech_layer
from openram import OPTS from openram import OPTS
from .router_tech import router_tech from .router_tech import router_tech
@ -90,7 +91,13 @@ class graph_router(router_tech):
# Add vdd and gnd pins as blockages as well # Add vdd and gnd pins as blockages as well
# NOTE: This is done to make vdd and gnd pins DRC-safe # NOTE: This is done to make vdd and gnd pins DRC-safe
for pin in self.all_pins: for pin in self.all_pins:
self.blockages.append(pin.inflated_pin(spacing=self.track_space, xdiff = self.layer_widths[0] - pin.width()
ydiff = self.layer_widths[0] - pin.height()
diff = max(xdiff, ydiff)
spacing = self.track_space + drc["grid"]
if diff > 0:
spacing += diff
self.blockages.append(pin.inflated_pin(spacing=spacing,
extra_spacing=self.offset, extra_spacing=self.offset,
keep_link=True)) keep_link=True))