-
Notifications
You must be signed in to change notification settings - Fork 519
gpl: Expose PDK-aware GPL parameters through variables.yaml #4418
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
oharboe
wants to merge
5
commits into
The-OpenROAD-Project:master
Choose a base branch
from
oharboe:gpl-heuristics-orfs
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
62f5166
bazel: Autotuning framework for GPL heuristics
oharboe a7ee19f
WIP: Infrastructure and scripts for PDK-specific GPL autotuning
oharboe 24643d4
Fix SDC_FILE copy in Bazel builds
oharboe 246f65f
Fix asap7/gcd build under Bazel by disabling SYNTH_USE_SYN
oharboe 107b46a
Update variables.yaml global defaults and pdk-specific config.jsons w…
oharboe File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -16,4 +16,3 @@ export PLACE_DENSITY = 0.35 | |
| # few last gasp iterations | ||
| export SKIP_LAST_GASP ?= 1 | ||
|
|
||
| export SYNTH_USE_SYN = 1 | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| { | ||
| "GPL_TIMING_SPAN_CLOCK_PERCENT": 0.22968514538823603, | ||
| "GPL_WIRELENGTH_PENALTY": 0.06456297861599444, | ||
| "TIGHTEN_CLOCK_PERIOD": 0.018604621846273695 | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| { | ||
| "GPL_TIMING_SPAN_CLOCK_PERCENT": 0.188034183753787, | ||
| "GPL_WIRELENGTH_PENALTY": 0.028702330955746383, | ||
| "TIGHTEN_CLOCK_PERIOD": 0.04743068706084326 | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| # Runs OpenROAD flow up to placement and evaluates minimum achievable clock period. | ||
|
|
||
| set ::env(KEEP_VARS) 1 | ||
| set ::env(WRITE_ODB_AND_SDC_EACH_STAGE) 0 | ||
|
|
||
| if { [info exists ::env(ODB_FILE)] } { | ||
| set odb_path $::env(ODB_FILE) | ||
| set sdc_path [file rootname $odb_path].sdc | ||
| file copy -force $odb_path $::env(RESULTS_DIR)/1_synth.odb | ||
| file copy -force $sdc_path $::env(RESULTS_DIR)/1_synth.sdc | ||
| } | ||
|
|
||
| # The synth_odb stage already canonicalized constraints into 1_synth.sdc. | ||
| # Unset SDC_FILE so floorplan.tcl doesn't try to read the original file path | ||
| # which might fail inside the bazel sandbox. | ||
| unset -nocomplain ::env(SDC_FILE) | ||
|
|
||
| set ::flow_expected [glob -nocomplain -directory $::env(RESULTS_DIR) *.odb *.sdc] | ||
|
|
||
| proc flow_source { script } { | ||
| uplevel #0 [list source $::env(SCRIPTS_DIR)/$script] | ||
| foreach f [glob -nocomplain -directory $::env(RESULTS_DIR) *.odb *.sdc] { | ||
| if { [lsearch -exact $::flow_expected $f] == -1 } { | ||
| error "$script wrote $f: with WRITE_ODB_AND_SDC_EACH_STAGE=0 stage scripts must not write .odb/.sdc files" | ||
| } | ||
| } | ||
| } | ||
|
|
||
| # Run the flow up to place | ||
|
|
||
| flow_source floorplan.tcl | ||
| flow_source macro_place.tcl | ||
| flow_source tapcell.tcl | ||
| flow_source pdn.tcl | ||
| flow_source global_place_skip_io.tcl | ||
| flow_source io_placement.tcl | ||
| flow_source global_place.tcl | ||
| flow_source resize.tcl | ||
| flow_source detail_place.tcl | ||
|
|
||
| # Evaluate target function (measures clock / WNS) | ||
| flow_source target-function.tcl |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| # Evaluate placement by tightening clocks and measuring WNS | ||
|
|
||
| if { [info exists ::env(TIGHTEN_CLOCK_PERIOD)] } { | ||
| foreach clk [all_clocks] { | ||
| set period [get_property $clk period] | ||
| set uncertainty [expr {$period * $::env(TIGHTEN_CLOCK_PERIOD)}] | ||
| set_clock_uncertainty -setup $uncertainty $clk | ||
| puts "TIGHTEN_CLOCK_PERIOD: Set setup uncertainty for clock [get_property $clk name] to $uncertainty" | ||
| } | ||
| } | ||
|
|
||
| estimate_parasitics -placement | ||
| set wns [sta::time_sta_ui [sta::worst_slack_cmd "max"]] | ||
| puts "Target Function WNS: $wns" | ||
|
|
||
| set f [open [file join $::env(RESULTS_DIR) "target_function.txt"] w] | ||
| puts $f $wns | ||
| close $f |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove iffy code default values are guaranteed so env vars here are always set.