-
Notifications
You must be signed in to change notification settings - Fork 496
Opt in first 8 designs to use 'syn' #4270
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
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -18,4 +18,4 @@ export ASAP7_USE_VT = LVT | |
|
|
||
| export RECOVER_POWER = 100 | ||
|
|
||
|
|
||
| export SYNTH_USE_SYN = 1 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -16,3 +16,4 @@ export PLACE_DENSITY = 0.35 | |
| # few last gasp iterations | ||
| export SKIP_LAST_GASP ?= 1 | ||
|
|
||
| export SYNTH_USE_SYN = 1 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -15,3 +15,4 @@ export PLACE_DENSITY = 0.75 | |
|
|
||
| export TNS_END_PERCENT = 100 | ||
|
|
||
| export SYNTH_USE_SYN = 1 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -18,3 +18,4 @@ export RECOVER_POWER = 100 | |
|
|
||
| export ASAP7_USE_VT = LVT | ||
|
|
||
| export SYNTH_USE_SYN = 1 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -14,3 +14,5 @@ export TNS_END_PERCENT = 100 | |
| export USE_FILL = 1 | ||
|
|
||
| export REMOVE_ABC_BUFFERS = 1 | ||
|
|
||
| export SYNTH_USE_SYN = 1 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,76 @@ | ||
| utl::set_metrics_stage "synth__{}" | ||
| source $::env(SCRIPTS_DIR)/load.tcl | ||
| erase_non_stage_variables synth | ||
|
|
||
| source_env_var_if_exists PLATFORM_TCL | ||
| source $::env(SCRIPTS_DIR)/read_liberty.tcl | ||
|
|
||
| read_lef $::env(TECH_LEF) | ||
| read_lef $::env(SC_LEF) | ||
| if { [env_var_exists_and_non_empty ADDITIONAL_LEFS] } { | ||
| foreach lef $::env(ADDITIONAL_LEFS) { | ||
| read_lef $lef | ||
| } | ||
| } | ||
| if { [env_var_exists_and_non_empty DONT_USE_CELLS] } { | ||
| set_dont_use $::env(DONT_USE_CELLS) | ||
| } | ||
|
|
||
| # Setup verilog include directories | ||
| set vIdirsArgs "" | ||
| if { [env_var_exists_and_non_empty VERILOG_INCLUDE_DIRS] } { | ||
| foreach dir $::env(VERILOG_INCLUDE_DIRS) { | ||
| lappend vIdirsArgs "-I$dir" | ||
| } | ||
| set vIdirsArgs [join $vIdirsArgs] | ||
| } | ||
|
Comment on lines
+20
to
+26
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Instead of joining the |
||
|
|
||
| set elaborate_args [list \ | ||
| -D SYNTHESIS --compat=vcs --ignore-assertions --no-implicit-memories --top $::env(DESIGN_NAME) \ | ||
| {*}$vIdirsArgs {*}[env_var_or_empty VERILOG_DEFINES]] | ||
|
|
||
| lappend elaborate_args {*}$::env(VERILOG_FILES) | ||
|
|
||
| # Apply top-level parameters | ||
| dict for {key value} [env_var_or_empty VERILOG_TOP_PARAMS] { | ||
| lappend elaborate_args -G "$key=$value" | ||
| } | ||
|
|
||
| # Apply module blackboxing based on module names as they appear | ||
| # in the input, that is before any module name mangling done | ||
| # by elaboration and synthesis | ||
| if { [env_var_exists_and_non_empty SYNTH_BLACKBOXES] } { | ||
| foreach m $::env(SYNTH_BLACKBOXES) { | ||
| lappend elaborate_args --blackboxed-module "$m" | ||
| } | ||
| } | ||
|
|
||
| lappend elaborate_args {*}$::env(SYNTH_SLANG_ARGS) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
|
|
||
| # If the sources are solely .v files, enable Verilog compatibility | ||
| set has_non_v_files false | ||
| foreach fn $::env(VERILOG_FILES) { | ||
| if { [file extension [string trim $fn]] != ".v" } { | ||
| set has_non_v_files true | ||
| } | ||
| } | ||
| if { !$has_non_v_files } { | ||
| lappend elaborate_args --std=1364-2005 | ||
| } | ||
|
|
||
| sv_elaborate {*}$elaborate_args | ||
| syn::stats | ||
|
|
||
| synthesize | ||
|
|
||
| read_sdc $::env(SDC_FILE) | ||
| repair_design -pre_placement | ||
|
|
||
| report_metrics 1 "synth" false false | ||
|
|
||
| orfs_write_db $::env(RESULTS_DIR)/1_synth.odb | ||
| # Canonicalize 1_synth.sdc. The original SDC_FILE provided by | ||
| # the user could have dependencies, such as sourcing util.tcl, | ||
| # which are read in here and a canonicalized version is written | ||
| # out by OpenSTA that has no dependencies. | ||
| orfs_write_sdc $::env(RESULTS_DIR)/1_synth.sdc | ||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
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.
In the new
synsynthesis flow (SYNTH_USE_SYN=1), the1_synthtarget does not list$(VERILOG_FILES)or$(SDC_FILE)as dependencies. This breaks incremental builds, as modifying any Verilog source files or timing constraints will not trigger a re-synthesis of the design. Please add them to the dependency list.