Skip to content

Commit 6cb2a21

Browse files
authored
Merge pull request #2581 from jeffng-or/rtlmp-var-addition
added RTLMP* variables and cleaned up per yamllint
2 parents 515a851 + 2de9186 commit 6cb2a21

File tree

3 files changed

+242
-57
lines changed

3 files changed

+242
-57
lines changed

docs/user/FlowVariables.md

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ configuration file.
7272
| <a name="CORE_ASPECT_RATIO"></a>CORE_ASPECT_RATIO| The core aspect ratio (height / width). This value is ignored if `CORE_UTILIZATION` is undefined.| | |
7373
| <a name="CORE_MARGIN"></a>CORE_MARGIN| The margin between the core area and die area, specified in microns. Allowed values are either one value for all margins or a set of four values, one for each margin. The order of the four values are: `{bottom top left right}`. This variable is ignored if `CORE_UTILIZATION` is undefined.| | |
7474
| <a name="CORE_UTILIZATION"></a>CORE_UTILIZATION| The core utilization percentage (0-100).| | |
75-
| <a name="CORNER"></a>CORNER| PVT corner library selection. Only available for ASAP7 and GF180 PDK.| | |
75+
| <a name="CORNER"></a>CORNER| PVT corner library selection. Only available for ASAP7 and GF180 PDKs.| | |
7676
| <a name="CTS_ARGS"></a>CTS_ARGS| Override `clock_tree_synthesis` arguments.| | |
7777
| <a name="CTS_BUF_DISTANCE"></a>CTS_BUF_DISTANCE| Distance (in microns) between buffers.| | |
7878
| <a name="CTS_CLUSTER_DIAMETER"></a>CTS_CLUSTER_DIAMETER| Maximum diameter (in microns) of sink cluster.| 20| |
@@ -102,7 +102,7 @@ configuration file.
102102
| <a name="GPL_ROUTABILITY_DRIVEN"></a>GPL_ROUTABILITY_DRIVEN| Specifies whether the placer should use routability driven placement.| 1| |
103103
| <a name="GPL_TIMING_DRIVEN"></a>GPL_TIMING_DRIVEN| Specifies whether the placer should use timing driven placement.| 1| |
104104
| <a name="GUI_TIMING"></a>GUI_TIMING| Load timing information when opening GUI. For large designs, this can be quite time consuming. Useful to disable when investigating non-timing aspects like floorplan, placement, routing, etc.| 1| |
105-
| <a name="HOLD_SLACK_MARGIN"></a>HOLD_SLACK_MARGIN| Specifies a time margin for the slack when fixing hold violations. This option allows you to overfix or underfix(negative value, terminate retiming before 0 or positive slack). Use min of HOLD_SLACK_MARGIN and 0(default hold slack margin) in floorplan. This avoids overrepair in floorplan for hold by default, but allows skipping hold repair using a negative HOLD_SLACK_MARGIN. Exiting timing repair early is useful in exploration where the .sdc has a fixed clock period at designs target clock period and where HOLD/SETUP_SLACK_MARGIN is used to avoid overrepair(extremelly long running times) when exploring different parameter settings.| 0| |
105+
| <a name="HOLD_SLACK_MARGIN"></a>HOLD_SLACK_MARGIN| Specifies a time margin for the slack when fixing hold violations. This option allows you to overfix or underfix(negative value, terminate retiming before 0 or positive slack). Use min of HOLD_SLACK_MARGIN and 0(default hold slack margin) in floorplan. This avoids overrepair in floorplan for hold by default, but allows skipping hold repair using a negative HOLD_SLACK_MARGIN. Exiting timing repair early is useful in exploration where the .sdc has a fixed clock period at designs target clock period and where HOLD/SETUP_SLACK_MARGIN is used to avoid overrepair(extremely long running times) when exploring different parameter settings.| 0| |
106106
| <a name="IO_CONSTRAINTS"></a>IO_CONSTRAINTS| File path to the IO constraints .tcl file.| | |
107107
| <a name="IO_PLACER_H"></a>IO_PLACER_H| The metal layer on which to place the I/O pins horizontally (top and bottom of the die).| | |
108108
| <a name="IO_PLACER_V"></a>IO_PLACER_V| The metal layer on which to place the I/O pins vertically (sides of the die).| | |
@@ -144,6 +144,25 @@ configuration file.
144144
| <a name="RESYNTH_AREA_RECOVER"></a>RESYNTH_AREA_RECOVER| Enable re-synthesis for area reclaim.| 0| |
145145
| <a name="RESYNTH_TIMING_RECOVER"></a>RESYNTH_TIMING_RECOVER| Enable re-synthesis for timing optimization.| 0| |
146146
| <a name="ROUTING_LAYER_ADJUSTMENT"></a>ROUTING_LAYER_ADJUSTMENT| Default routing layer adjustment| 0.5| |
147+
| <a name="RTLMP_AREA_WT"></a>RTLMP_AREA_WT| Weight for the area of the current floorplan.| 0.1| |
148+
| <a name="RTLMP_ARGS"></a>RTLMP_ARGS| Overrides all other RTL macro placer arguments.| | |
149+
| <a name="RTLMP_BOUNDARY_WT"></a>RTLMP_BOUNDARY_WT| Weight for the boundary or how far the hard macro clusters are from boundaries.| 50.0| |
150+
| <a name="RTLMP_DEAD_SPACE"></a>RTLMP_DEAD_SPACE| Specifies the target dead space percentage, which influences the utilization of a cluster.| 0.05| |
151+
| <a name="RTLMP_FENCE_LX"></a>RTLMP_FENCE_LX| Defines the lower left X coordinate for the global fence bounding box in microns.| 0.0| |
152+
| <a name="RTLMP_FENCE_LY"></a>RTLMP_FENCE_LY| Defines the lower left Y coordinate for the global fence bounding box in microns.| 0.0| |
153+
| <a name="RTLMP_FENCE_UX"></a>RTLMP_FENCE_UX| Defines the upper right X coordinate for the global fence bounding box in microns.| 100000000.0| |
154+
| <a name="RTLMP_FENCE_UY"></a>RTLMP_FENCE_UY| Defines the upper right Y coordinate for the global fence bounding box in microns.| 100000000.0| |
155+
| <a name="RTLMP_MAX_INST"></a>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.| | |
156+
| <a name="RTLMP_MAX_LEVEL"></a>RTLMP_MAX_LEVEL| Maximum depth of the physical hierarchy tree.| 2| |
157+
| <a name="RTLMP_MAX_MACRO"></a>RTLMP_MAX_MACRO| Maximum number of macros in a cluster. If unset, rtl_macro_placer will calculate a value based on the design attributes.| | |
158+
| <a name="RTLMP_MIN_AR"></a>RTLMP_MIN_AR| Specifies the minimum aspect ratio (height/width).| 0.33| |
159+
| <a name="RTLMP_MIN_INST"></a>RTLMP_MIN_INST| Minimum number of standard cells in a cluster. If unset, rtl_macro_placer will calculate a value based on the design attributes.| | |
160+
| <a name="RTLMP_MIN_MACRO"></a>RTLMP_MIN_MACRO| Minimum number of macros in a cluster. If unset, rtl_macro_placer will calculate a value based on the design attributes.| | |
161+
| <a name="RTLMP_NOTCH_WT"></a>RTLMP_NOTCH_WT| Weight for the notch, or the existence of dead space that cannot be used for placement and routing.| 10.0| |
162+
| <a name="RTLMP_OUTLINE_WT"></a>RTLMP_OUTLINE_WT| Weight for violating the fixed outline constraint, meaning that all clusters should be placed within the shape of their parent cluster.| 100.0| |
163+
| <a name="RTLMP_RPT_DIR"></a>RTLMP_RPT_DIR| Path to the directory where reports are saved.| | |
164+
| <a name="RTLMP_SIGNATURE_NET_THRESHOLD"></a>RTLMP_SIGNATURE_NET_THRESHOLD| Minimum number of connections between two clusters to be identified as connected.| 50| |
165+
| <a name="RTLMP_WIRELENGTH_WT"></a>RTLMP_WIRELENGTH_WT| Weight for half-perimiter wirelength.| 100.0| |
147166
| <a name="SC_LEF"></a>SC_LEF| Path to technology standard cell LEF file.| | |
148167
| <a name="SDC_FILE"></a>SDC_FILE| The path to design constraint (SDC) file.| | |
149168
| <a name="SDC_GUT"></a>SDC_GUT| Load design and remove all internal logic before doing synthesis. This is useful when creating a mock .lef abstract that has a smaller area than the amount of logic would allow. bazel-orfs uses this to mock SRAMs, for instance.| | |
@@ -221,6 +240,25 @@ configuration file.
221240
- [PLACE_PINS_ARGS](#PLACE_PINS_ARGS)
222241
- [PLACE_SITE](#PLACE_SITE)
223242
- [REMOVE_ABC_BUFFERS](#REMOVE_ABC_BUFFERS)
243+
- [RTLMP_AREA_WT](#RTLMP_AREA_WT)
244+
- [RTLMP_ARGS](#RTLMP_ARGS)
245+
- [RTLMP_BOUNDARY_WT](#RTLMP_BOUNDARY_WT)
246+
- [RTLMP_DEAD_SPACE](#RTLMP_DEAD_SPACE)
247+
- [RTLMP_FENCE_LX](#RTLMP_FENCE_LX)
248+
- [RTLMP_FENCE_LY](#RTLMP_FENCE_LY)
249+
- [RTLMP_FENCE_UX](#RTLMP_FENCE_UX)
250+
- [RTLMP_FENCE_UY](#RTLMP_FENCE_UY)
251+
- [RTLMP_MAX_INST](#RTLMP_MAX_INST)
252+
- [RTLMP_MAX_LEVEL](#RTLMP_MAX_LEVEL)
253+
- [RTLMP_MAX_MACRO](#RTLMP_MAX_MACRO)
254+
- [RTLMP_MIN_AR](#RTLMP_MIN_AR)
255+
- [RTLMP_MIN_INST](#RTLMP_MIN_INST)
256+
- [RTLMP_MIN_MACRO](#RTLMP_MIN_MACRO)
257+
- [RTLMP_NOTCH_WT](#RTLMP_NOTCH_WT)
258+
- [RTLMP_OUTLINE_WT](#RTLMP_OUTLINE_WT)
259+
- [RTLMP_RPT_DIR](#RTLMP_RPT_DIR)
260+
- [RTLMP_SIGNATURE_NET_THRESHOLD](#RTLMP_SIGNATURE_NET_THRESHOLD)
261+
- [RTLMP_WIRELENGTH_WT](#RTLMP_WIRELENGTH_WT)
224262
- [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN)
225263
- [SKIP_GATE_CLONING](#SKIP_GATE_CLONING)
226264
- [SKIP_LAST_GASP](#SKIP_LAST_GASP)

flow/scripts/macro_place_util.tcl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,7 @@ if {[find_macros] != ""} {
4949
append_env_var additional_rtlmp_args RTLMP_OUTLINE_WT -outline_weight 1
5050
append_env_var additional_rtlmp_args RTLMP_BOUNDARY_WT -boundary_weight 1
5151
append_env_var additional_rtlmp_args RTLMP_NOTCH_WT -notch_weight 1
52-
append_env_var additional_rtlmp_args RTLMP_DEAD_SPACE -dead_space 1
53-
append_env_var additional_rtlmp_args RTLMP_CONFIG_FILE -config_file 1
52+
append_env_var additional_rtlmp_args RTLMP_DEAD_SPACE -target_dead_space 1
5453
append_env_var additional_rtlmp_args RTLMP_RPT_DIR -report_directory 1
5554
append_env_var additional_rtlmp_args RTLMP_FENCE_LX -fence_lx 1
5655
append_env_var additional_rtlmp_args RTLMP_FENCE_LY -fence_ly 1

0 commit comments

Comments
 (0)