diff options
Diffstat (limited to 'qrouter.tcl.in')
-rw-r--r-- | qrouter.tcl.in | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/qrouter.tcl.in b/qrouter.tcl.in index 5db9faa..192ac33 100644 --- a/qrouter.tcl.in +++ b/qrouter.tcl.in @@ -94,7 +94,7 @@ proc qrouter::write_congested {filename} { # Standard routing script #------------------------------------------------------ -proc qrouter::standard_route {{filename ""} {doquit true}} { +proc qrouter::standard_route {{filename ""} {doquit true} {nocleanup false}} { puts stdout "*** Running stage1 routing with defaults" # Pull root name from filename set rootname [file root $filename] @@ -111,8 +111,9 @@ proc qrouter::standard_route {{filename ""} {doquit true}} { if {!$result} {break} if {$result > $lastresult} { puts -nonewline stdout "*** Running stage2 routing" - puts stdout " with options mask none, effort 20" - set result [stage2 mask none effort 20] + set tempmsize [expr $msize + 80] + puts stdout " with options mask $tempmsize, effort 20" + set result [stage2 mask $tempmsize effort 20] if {!$result} {break} if {$result < 5} { puts -nonewline stdout "*** Running stage2 routing" @@ -124,21 +125,24 @@ proc qrouter::standard_route {{filename ""} {doquit true}} { incr msize 10 } } - # Attempt a couple of runs at "mask none" if not solved yet + # Attempt a few runs at "mask none" if not solved yet if {$result > 0} { - puts -nonewline stdout "*** Running stage2 routing" - puts stdout " with options mask none, effort 30" - set result [stage2 mask none effort 30] - } - if {$result > 0} { - puts -nonewline stdout "*** Running stage2 routing" - puts stdout " with options mask none, effort 40" - set result [stage2 mask none effort 40] + set esize 20 + while {$esize <= 100} { + puts -nonewline stdout "*** Running stage2 routing" + puts stdout " with options mask none, effort $esize" + set result [stage2 mask none effort $esize] + + if {!$result} {break} + incr esize 20 + } } # There is no point in running a cleanup stage if there are lots of # unrouted nets. - if {$result < 10} { + if {$nocleanup == true} { + puts stdout "*** Cleanup stage (stage3) bypassed" + } elseif {$result < 10} { puts stdout "*** Running stage3 routing with defaults, 1st round" set result [stage3] if {$result > 0} { |