Skip to content

Commit

Permalink
Update OpenROAD again + docs
Browse files Browse the repository at this point in the history
  • Loading branch information
donn committed Aug 27, 2024
1 parent 29b3424 commit a6fa5e6
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
6 changes: 2 additions & 4 deletions nix/openroad.nix
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,11 @@
flex,
bison,
clang-tools_14,
ioplace-parser,
buildEnv,
makeBinaryWrapper,
buildPythonEnvForInterpreter,
rev ? "49a497abf0011b2631ce7caab8b78bd1f9d67662",
sha256 ? "sha256-3o+iT+9X8/EIf4c/+FLp6GRxPGmM5kWMwK7beyICRL0=",
rev ? "6b5937db431d2fa1023d3865f21ccd9b65781492",
sha256 ? "sha256-rpv3WkOahFFkW4g+8tRiPBfBFcLwJIqK/hTgWv2tkow=",
}: let self = clangStdenv.mkDerivation (finalAttrs: {
name = "openroad";
inherit rev;
Expand All @@ -65,7 +64,6 @@
"-DTCL_HEADER=${tcl}/include/tcl.h"
"-DUSE_SYSTEM_BOOST:BOOL=ON"
"-DENABLE_TESTS:BOOL=OFF"
"-DVERBOSE=1"
];

cmakeFlags =
Expand Down
23 changes: 22 additions & 1 deletion openlane/steps/openroad.py
Original file line number Diff line number Diff line change
Expand Up @@ -1071,7 +1071,7 @@ def run(self, state_in: State, **kwargs) -> Tuple[ViewsUpdate, MetricsUpdate]:
@Step.factory.register()
class TapEndcapInsertion(OpenROADStep):
"""
Places well TAP cells across a floorplan, as well as end-cap cells at the
Places welltap cells across a floorplan, as well as endcap cells at the
edges of the floorplan.
"""

Expand Down Expand Up @@ -1103,6 +1103,13 @@ def get_script_path(self):

@Step.factory.register()
class UnplaceAll(OpenROADStep):
"""
Sets placement status of *all* instances to NONE.
Useful in flows where a preliminary placement is needed as a pre-requisite
to something else but that placement must be discarded.
"""

id = "OpenROAD.UnplaceAll"
name = "Unplace All"

Expand Down Expand Up @@ -1333,6 +1340,20 @@ def run(self, state_in: State, **kwargs) -> Tuple[ViewsUpdate, MetricsUpdate]:

@Step.factory.register()
class HierarchicalMacroPlacer(OpenROADStep):
"""
Uses the *Hier-RTLMP* automatic macro placer in OpenROAD to place any
unplaced macros.
This placer is aimed at complex top-level IP integrations where hierarchy
information from the register-transfer level could be leveraged.
This requires the netlist to keep hierarchy information. OpenLane 2's
Classic flow does not do so by default, see ``Yosys.Synthesis``'s
documentation on how to alter that.
See this paper for more info: https://arxiv.org/pdf/2304.11761
"""

id = "OpenROAD.HierarchicalMacroPlacer"
name = "Hierarchical Macro Placement"

Expand Down

0 comments on commit a6fa5e6

Please sign in to comment.