diff --git a/nix/openroad.nix b/nix/openroad.nix index dfe50029..8bff0cdf 100644 --- a/nix/openroad.nix +++ b/nix/openroad.nix @@ -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; @@ -65,7 +64,6 @@ "-DTCL_HEADER=${tcl}/include/tcl.h" "-DUSE_SYSTEM_BOOST:BOOL=ON" "-DENABLE_TESTS:BOOL=OFF" - "-DVERBOSE=1" ]; cmakeFlags = diff --git a/openlane/steps/openroad.py b/openlane/steps/openroad.py index 83cdfc91..19c33d6b 100644 --- a/openlane/steps/openroad.py +++ b/openlane/steps/openroad.py @@ -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. """ @@ -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" @@ -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"