summaryrefslogtreecommitdiff
path: root/qrouter.tcl.in
diff options
context:
space:
mode:
Diffstat (limited to 'qrouter.tcl.in')
-rw-r--r--qrouter.tcl.in30
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} {