Skip to content

Commit

Permalink
Add OpenROAD.CutRows step after Manual macro placement to ensure that…
Browse files Browse the repository at this point in the history
… rows has been cut where the marcos are placed
  • Loading branch information
kareefardi committed Nov 20, 2023
1 parent f173cb4 commit f8a676a
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
1 change: 1 addition & 0 deletions openlane/flows/classic.py
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,7 @@ class Classic(SequentialFlow):
OpenROAD.Floorplan,
Odb.SetPowerConnections,
Odb.ManualMacroPlacement,
OpenROAD.CutRows,
OpenROAD.GlobalPlacementSkipIO,
OpenROAD.IOPlacement,
Odb.ApplyDEFTemplate,
Expand Down
32 changes: 32 additions & 0 deletions openlane/steps/openroad.py
Original file line number Diff line number Diff line change
Expand Up @@ -1328,6 +1328,38 @@ def run(self, state_in: State, **kwargs) -> Tuple[ViewsUpdate, MetricsUpdate]:
return views_updates, metrics_updates


@Step.factory.register()
class CutRows(OpenROADStep):
id = "OpenROAD.CutRows"
name = "CutRows"

inputs = [DesignFormat.ODB]
outputs = [
DesignFormat.ODB,
DesignFormat.DEF,
]

config_vars = OpenROADStep.config_vars + [
Variable(
"FP_TAP_HORIZONTAL_HALO",
Decimal,
"Specify the horizontal halo size around macros during tap insertion.",
default=10,
units="µm",
),
Variable(
"FP_TAP_VERTICAL_HALO",
Decimal,
"Specify the vertical halo size around macros during tap insertion.",
default=10,
units="µm",
),
]

def get_script_path(self):
return os.path.join(get_script_dir(), "openroad", "cutrows.tcl")


# Resizer Steps


Expand Down

0 comments on commit f8a676a

Please sign in to comment.