Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/user/FlowVariables.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ configuration file.
| <a name="GLOBAL_ROUTE_USE_CUGR"></a>GLOBAL_ROUTE_USE_CUGR| Passed as -use_cugr to global_route. Uses CUGR as the global routing solver instead of the default FastRoute solver. NOTE: CUGR is not ready for production.| 0|
| <a name="GND_NETS_VOLTAGES"></a>GND_NETS_VOLTAGES| Used for IR Drop calculation.| |
| <a name="GPL_KEEP_OVERFLOW"></a>GPL_KEEP_OVERFLOW| Passed as -keep_resize_below_overflow to global_placement. Only used when GPL_TIMING_DRIVEN is enabled.| |
| <a name="GPL_RANDOM_SEED"></a>GPL_RANDOM_SEED| Specifies a random seed for global placement. Useful for perturbation studies.| |
| <a name="GPL_ROUTABILITY_DRIVEN"></a>GPL_ROUTABILITY_DRIVEN| Specifies whether the placer should use routability driven placement.| 1|
| <a name="GPL_TIMING_DRIVEN"></a>GPL_TIMING_DRIVEN| Specifies whether the placer should use timing driven placement.| 1|
| <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|
Expand Down Expand Up @@ -472,6 +473,7 @@ configuration file.
- [FLOORPLAN_DEF](#FLOORPLAN_DEF)
- [GLOBAL_PLACEMENT_ARGS](#GLOBAL_PLACEMENT_ARGS)
- [GPL_KEEP_OVERFLOW](#GPL_KEEP_OVERFLOW)
- [GPL_RANDOM_SEED](#GPL_RANDOM_SEED)
- [GPL_ROUTABILITY_DRIVEN](#GPL_ROUTABILITY_DRIVEN)
- [GPL_TIMING_DRIVEN](#GPL_TIMING_DRIVEN)
- [IO_PLACER_H](#IO_PLACER_H)
Expand Down
1 change: 1 addition & 0 deletions flow/designs/asap7/swerv_wrapper/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,4 @@ export ROUTING_LAYER_ADJUSTMENT = 0.2
export SWAP_ARITH_OPERATORS = 1
export OPENROAD_HIERARCHICAL = 1

export GPL_RANDOM_SEED = 2
2 changes: 2 additions & 0 deletions flow/designs/nangate45/ariane133/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,5 @@ export RTLMP_MAX_MACRO = 30
export RTLMP_MIN_MACRO = 10
export RTLMP_MAX_INST = 80000
export RTLMP_MIN_INST = 8000

export GPL_RANDOM_SEED = 3
12 changes: 6 additions & 6 deletions flow/designs/nangate45/ariane133/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"synth__canonical_netlist__hash": {
"value": "7af2e5d516717525c8e4b86fbe5c8c0fc7e3e6b0",
"value": "608c7e7060b1b403c0e893101b0bd83a23b7f306",
"compare": "==",
"level": "warning"
},
"synth__netlist__hash": {
"value": "0925e491023b71ddf98d5a9d92664c9607d38b85",
"value": "624023bd257848127135daf0c0d20528d8fb9315",
"compare": "==",
"level": "warning"
},
Expand Down Expand Up @@ -38,11 +38,11 @@
"compare": "<="
},
"cts__timing__setup__ws": {
"value": -0.579,
"value": -0.574,
"compare": ">="
},
"cts__timing__setup__tns": {
"value": -929.0,
"value": -743.0,
"compare": ">="
},
"cts__timing__hold__ws": {
Expand All @@ -62,7 +62,7 @@
"compare": ">="
},
"globalroute__timing__setup__tns": {
"value": -755.0,
"value": -880.0,
"compare": ">="
},
"globalroute__timing__hold__ws": {
Expand Down Expand Up @@ -94,7 +94,7 @@
"compare": ">="
},
"finish__timing__setup__tns": {
"value": -801.0,
"value": -964.0,
"compare": ">="
},
"finish__timing__hold__ws": {
Expand Down
2 changes: 2 additions & 0 deletions flow/scripts/global_place.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ set global_placement_args {}
# Parameters for routability mode in global placement
append_env_var global_placement_args GPL_ROUTABILITY_DRIVEN -routability_driven 0

append_env_var global_placement_args GPL_RANDOM_SEED -random_seed 1

# Parameters for timing driven mode in global placement
if { $::env(GPL_TIMING_DRIVEN) } {
lappend global_placement_args {-timing_driven}
Expand Down
6 changes: 5 additions & 1 deletion flow/scripts/global_place_skip_io.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@ if { [env_var_exists_and_non_empty FLOORPLAN_DEF] } {
} elseif { [all_pins_placed] } {
puts "All pins are placed. Skipping global placement without IOs"
} else {
set global_placement_args {}
append_env_var global_placement_args GPL_RANDOM_SEED -random_seed 1

log_cmd global_placement -skip_io -density [place_density_with_lb_addon] \
-pad_left $::env(CELL_PAD_IN_SITES_GLOBAL_PLACEMENT) \
-pad_right $::env(CELL_PAD_IN_SITES_GLOBAL_PLACEMENT) \
{*}[env_var_or_empty GLOBAL_PLACEMENT_ARGS]
{*}[env_var_or_empty GLOBAL_PLACEMENT_ARGS] \
{*}$global_placement_args
}

source_step_tcl POST GLOBAL_PLACE_SKIP_IO
Expand Down
6 changes: 6 additions & 0 deletions flow/scripts/variables.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions flow/scripts/variables.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -643,6 +643,11 @@ USE_NEGOTIATION:
description: |
Enable using negotiation legalizer for detailed placement.
default: 0
GPL_RANDOM_SEED:
description: |
Specifies a random seed for global placement. Useful for perturbation studies.
stages:
- place
Comment thread
maliberty marked this conversation as resolved.
GPL_TIMING_DRIVEN:
description: |
Specifies whether the placer should use timing driven placement.
Expand Down
2 changes: 1 addition & 1 deletion tools/OpenROAD
Submodule OpenROAD updated 150 files