diff --git a/docs/user/FlowVariables.md b/docs/user/FlowVariables.md index 221406f855..71a0a824e5 100644 --- a/docs/user/FlowVariables.md +++ b/docs/user/FlowVariables.md @@ -255,6 +255,7 @@ configuration file. | RTLMP_FENCE_LY| Defines the lower left Y coordinate for the global fence bounding box in microns.| 0.0| | RTLMP_FENCE_UX| Defines the upper right X coordinate for the global fence bounding box in microns.| 0.0| | RTLMP_FENCE_UY| Defines the upper right Y coordinate for the global fence bounding box in microns.| 0.0| +| RTLMP_KEEP_CLUSTERING| Set to 1 to store the RTL macro placer's clustering hierarchy in the ODB as nested dbGroups.| 0| | RTLMP_MAX_INST| Maximum number of standard cells in a cluster. If unset, rtl_macro_placer will calculate a value based on the design attributes.| | | RTLMP_MAX_LEVEL| Maximum depth of the physical hierarchy tree.| 2| | RTLMP_MAX_MACRO| Maximum number of macros in a cluster. If unset, rtl_macro_placer will calculate a value based on the design attributes.| | @@ -429,6 +430,7 @@ configuration file. - [RTLMP_FENCE_LY](#RTLMP_FENCE_LY) - [RTLMP_FENCE_UX](#RTLMP_FENCE_UX) - [RTLMP_FENCE_UY](#RTLMP_FENCE_UY) +- [RTLMP_KEEP_CLUSTERING](#RTLMP_KEEP_CLUSTERING) - [RTLMP_MAX_INST](#RTLMP_MAX_INST) - [RTLMP_MAX_LEVEL](#RTLMP_MAX_LEVEL) - [RTLMP_MAX_MACRO](#RTLMP_MAX_MACRO) diff --git a/flow/scripts/macro_place_util.tcl b/flow/scripts/macro_place_util.tcl index 70ac5ea23f..9fb06ff989 100644 --- a/flow/scripts/macro_place_util.tcl +++ b/flow/scripts/macro_place_util.tcl @@ -53,6 +53,8 @@ if { [find_macros] != "" } { append_env_var additional_rtlmp_args RTLMP_BOUNDARY_WT -boundary_weight 1 append_env_var additional_rtlmp_args RTLMP_NOTCH_WT -notch_weight 1 append_env_var additional_rtlmp_args RTLMP_RPT_DIR -report_directory 1 + append_env_var additional_rtlmp_args RTLMP_KEEP_CLUSTERING \ + -keep_clustering_data 0 append_env_var additional_rtlmp_args RTLMP_FENCE_LX -fence_lx 1 append_env_var additional_rtlmp_args RTLMP_FENCE_LY -fence_ly 1 append_env_var additional_rtlmp_args RTLMP_FENCE_UX -fence_ux 1 diff --git a/flow/scripts/variables.json b/flow/scripts/variables.json index d0d8d0dbbf..f6eedeaca3 100644 --- a/flow/scripts/variables.json +++ b/flow/scripts/variables.json @@ -998,6 +998,13 @@ "floorplan" ] }, + "RTLMP_KEEP_CLUSTERING": { + "default": 0, + "description": "Set to 1 to store the RTL macro placer's clustering hierarchy in the ODB as nested dbGroups.\n", + "stages": [ + "floorplan" + ] + }, "RTLMP_MAX_INST": { "description": "Maximum number of standard cells in a cluster. If unset, rtl_macro_placer will calculate a value based on the design attributes.\n", "stages": [ diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml index ae24b8359c..c829d4079e 100644 --- a/flow/scripts/variables.yaml +++ b/flow/scripts/variables.yaml @@ -1448,6 +1448,13 @@ RTLMP_ARGS: Overrides all other RTL macro placer arguments. stages: - floorplan +RTLMP_KEEP_CLUSTERING: + description: > + Set to 1 to store the RTL macro placer's clustering hierarchy in the ODB as + nested dbGroups. + default: 0 + stages: + - floorplan GDS_ALLOW_EMPTY: description: > Single regular expression of module names of macros that have no .gds file