Skip to content

Commit 3f0aa26

Browse files
committed
synthesis: use fast coarse module size estimate to drive flattening policy
Turns out that the improvement in quality of results is roughly linear or the user can make explicit choices about which modules to flatten, so no point in anything but a very rough fast module size estimate. Signed-off-by: Øyvind Harboe <[email protected]>
1 parent fa7672b commit 3f0aa26

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

flow/scripts/synth.tcl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,15 @@ if {![env_var_equals SYNTH_HIERARCHICAL 1]} {
1313
# (-flatten part of $synth_args per default)
1414
synth -run :fine {*}$::env(SYNTH_FULL_ARGS)
1515
} else {
16-
# Perform standard coarse-level synthesis script,
17-
# defer flattening until we have decided what hierarchy to keep
18-
synth -run :fine
16+
# Get a quick estimate of module sizes. Since we're only using
17+
# this to decide which modules to flatten and which to keep,
18+
# actual quality of results doesn't matter, so no point in running
19+
# any optimizations of a coarse synthesis. the user has the
20+
# option to tweak MAX_UNGROUP_SIZE or use an explicit list of
21+
# modules to flatten if they have a better policy than this
22+
# default policy on what to keep and what to flatten.
23+
procs
24+
memory -nomap
1925

2026
if {[env_var_exists_and_non_empty MAX_UNGROUP_SIZE]} {
2127
set ungroup_threshold $::env(MAX_UNGROUP_SIZE)

0 commit comments

Comments
 (0)