diff options
author | Tim Edwards <tim@opencircuitdesign.com> | 2015-10-11 11:25:55 -0400 |
---|---|---|
committer | Tim Edwards <tim@opencircuitdesign.com> | 2015-10-11 11:25:55 -0400 |
commit | 98e3b3935c90b917c592a2c93f6736922d2d43a3 (patch) | |
tree | 8c18141483098540092dc35f86cd64bf8af90488 | |
parent | 9a234e96c531b4bb46b0c88cbc160dc130bdc2f5 (diff) |
Corrected two errors with the decongestion routine. One error
was an incorrect computation of the number of fill cells to make
up the total density, resulting in fill cells being added even
if the density was set to 1. The other was a round-off error
resulting in an incorrect width value, which tends to cause bad
route failures.
-rw-r--r-- | config.log | 239 | ||||
-rwxr-xr-x | config.status | 1 | ||||
-rwxr-xr-x | configure | 3 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | scripts/Makefile | 2 | ||||
-rw-r--r-- | scripts/Makefile.in | 2 | ||||
-rwxr-xr-x | scripts/decongest.tcl.in | 17 | ||||
-rw-r--r-- | scripts/qflow.sh.in | 2 |
8 files changed, 140 insertions, 128 deletions
@@ -39,22 +39,22 @@ PATH: /usr/local/bin ## Core tests. ## ## ----------- ## -configure:2015: checking build system type -configure:2029: result: x86_64-unknown-linux-gnu -configure:2049: checking host system type -configure:2062: result: x86_64-unknown-linux-gnu -configure:2148: checking for gcc -configure:2164: found /bin/gcc -configure:2175: result: gcc -configure:2404: checking for C compiler version -configure:2413: gcc --version >&5 +configure:2016: checking build system type +configure:2030: result: x86_64-unknown-linux-gnu +configure:2050: checking host system type +configure:2063: result: x86_64-unknown-linux-gnu +configure:2151: checking for gcc +configure:2167: found /bin/gcc +configure:2178: result: gcc +configure:2407: checking for C compiler version +configure:2416: gcc --version >&5 gcc (GCC) 4.9.2 20141101 (Red Hat 4.9.2-1) Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -configure:2424: $? = 0 -configure:2413: gcc -v >&5 +configure:2427: $? = 0 +configure:2416: gcc -v >&5 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper @@ -62,58 +62,58 @@ Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.9.2-20141101/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.9.2-20141101/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 4.9.2 20141101 (Red Hat 4.9.2-1) (GCC) -configure:2424: $? = 0 -configure:2413: gcc -V >&5 +configure:2427: $? = 0 +configure:2416: gcc -V >&5 gcc: error: unrecognized command line option '-V' gcc: fatal error: no input files compilation terminated. -configure:2424: $? = 4 -configure:2413: gcc -qversion >&5 +configure:2427: $? = 4 +configure:2416: gcc -qversion >&5 gcc: error: unrecognized command line option '-qversion' gcc: fatal error: no input files compilation terminated. -configure:2424: $? = 4 -configure:2444: checking whether the C compiler works -configure:2466: gcc conftest.c >&5 -configure:2470: $? = 0 -configure:2518: result: yes -configure:2521: checking for C compiler default output file name -configure:2523: result: a.out -configure:2529: checking for suffix of executables -configure:2536: gcc -o conftest conftest.c >&5 -configure:2540: $? = 0 -configure:2562: result: -configure:2584: checking whether we are cross compiling -configure:2592: gcc -o conftest conftest.c >&5 -configure:2596: $? = 0 -configure:2603: ./conftest -configure:2607: $? = 0 -configure:2622: result: no -configure:2627: checking for suffix of object files -configure:2649: gcc -c conftest.c >&5 -configure:2653: $? = 0 -configure:2674: result: o -configure:2678: checking whether we are using the GNU C compiler -configure:2697: gcc -c conftest.c >&5 -configure:2697: $? = 0 -configure:2706: result: yes -configure:2715: checking whether gcc accepts -g -configure:2735: gcc -c -g conftest.c >&5 -configure:2735: $? = 0 -configure:2776: result: yes -configure:2793: checking for gcc option to accept ISO C89 -configure:2856: gcc -c -g -O2 conftest.c >&5 -configure:2856: $? = 0 -configure:2869: result: none needed -configure:2894: checking how to run the C preprocessor -configure:2925: gcc -E conftest.c -configure:2925: $? = 0 -configure:2939: gcc -E conftest.c +configure:2427: $? = 4 +configure:2447: checking whether the C compiler works +configure:2469: gcc conftest.c >&5 +configure:2473: $? = 0 +configure:2521: result: yes +configure:2524: checking for C compiler default output file name +configure:2526: result: a.out +configure:2532: checking for suffix of executables +configure:2539: gcc -o conftest conftest.c >&5 +configure:2543: $? = 0 +configure:2565: result: +configure:2587: checking whether we are cross compiling +configure:2595: gcc -o conftest conftest.c >&5 +configure:2599: $? = 0 +configure:2606: ./conftest +configure:2610: $? = 0 +configure:2625: result: no +configure:2630: checking for suffix of object files +configure:2652: gcc -c conftest.c >&5 +configure:2656: $? = 0 +configure:2677: result: o +configure:2681: checking whether we are using the GNU C compiler +configure:2700: gcc -c conftest.c >&5 +configure:2700: $? = 0 +configure:2709: result: yes +configure:2718: checking whether gcc accepts -g +configure:2738: gcc -c -g conftest.c >&5 +configure:2738: $? = 0 +configure:2779: result: yes +configure:2796: checking for gcc option to accept ISO C89 +configure:2859: gcc -c -g -O2 conftest.c >&5 +configure:2859: $? = 0 +configure:2872: result: none needed +configure:2897: checking how to run the C preprocessor +configure:2928: gcc -E conftest.c +configure:2928: $? = 0 +configure:2942: gcc -E conftest.c conftest.c:9:28: fatal error: ac_nonexistent.h: No such file or directory #include <ac_nonexistent.h> ^ compilation terminated. -configure:2939: $? = 1 +configure:2942: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" @@ -124,15 +124,15 @@ configure: failed program was: | #define PACKAGE_URL "" | /* end confdefs.h. */ | #include <ac_nonexistent.h> -configure:2964: result: gcc -E -configure:2984: gcc -E conftest.c -configure:2984: $? = 0 -configure:2998: gcc -E conftest.c +configure:2967: result: gcc -E +configure:2987: gcc -E conftest.c +configure:2987: $? = 0 +configure:3001: gcc -E conftest.c conftest.c:9:28: fatal error: ac_nonexistent.h: No such file or directory #include <ac_nonexistent.h> ^ compilation terminated. -configure:2998: $? = 1 +configure:3001: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" @@ -143,60 +143,60 @@ configure: failed program was: | #define PACKAGE_URL "" | /* end confdefs.h. */ | #include <ac_nonexistent.h> -configure:3027: checking for library containing strerror -configure:3058: gcc -o conftest -g -O2 conftest.c >&5 -configure:3058: $? = 0 -configure:3075: result: none required -configure:3100: checking for a BSD-compatible install -configure:3168: result: /bin/install -c -configure:3222: checking for ranlib -configure:3238: found /bin/ranlib -configure:3249: result: ranlib -configure:3273: checking for autoconf -configure:3289: found /bin/autoconf -configure:3301: result: autoconf -configure:3311: checking for cp -configure:3327: found /bin/cp -configure:3339: result: cp -configure:3349: checking for rm -configure:3365: found /bin/rm -configure:3377: result: rm -configure:3393: checking for grep that handles long lines and -e -configure:3451: result: /bin/grep -configure:3456: checking for egrep -configure:3518: result: /bin/grep -E -configure:3523: checking for ANSI C header files -configure:3543: gcc -c -g -O2 conftest.c >&5 -configure:3543: $? = 0 -configure:3616: gcc -o conftest -g -O2 conftest.c >&5 -configure:3616: $? = 0 -configure:3616: ./conftest -configure:3616: $? = 0 -configure:3627: result: yes -configure:3638: checking for setenv -configure:3638: gcc -o conftest -g -O2 conftest.c >&5 -configure:3638: $? = 0 -configure:3638: result: yes -configure:3638: checking for putenv -configure:3638: gcc -o conftest -g -O2 conftest.c >&5 -configure:3638: $? = 0 -configure:3638: result: yes -configure:3710: checking for tclsh -configure:3728: found /bin/tclsh -configure:3741: result: /bin/tclsh -configure:3814: checking for magic -configure:3832: found /usr/local/bin/magic -configure:3844: result: /usr/local/bin/magic -configure:3917: checking for qrouter -configure:3935: found /usr/local/bin/qrouter -configure:3947: result: /usr/local/bin/qrouter -configure:4020: checking for graywolf -configure:4038: found /usr/local/bin/graywolf -configure:4050: result: /usr/local/bin/graywolf -configure:4123: checking for yosys -configure:4141: found /usr/local/bin/yosys -configure:4153: result: /usr/local/bin/yosys -configure:4370: creating ./config.status +configure:3030: checking for library containing strerror +configure:3061: gcc -o conftest -g -O2 conftest.c >&5 +configure:3061: $? = 0 +configure:3078: result: none required +configure:3103: checking for a BSD-compatible install +configure:3171: result: /bin/install -c +configure:3225: checking for ranlib +configure:3241: found /bin/ranlib +configure:3252: result: ranlib +configure:3276: checking for autoconf +configure:3292: found /bin/autoconf +configure:3304: result: autoconf +configure:3314: checking for cp +configure:3330: found /bin/cp +configure:3342: result: cp +configure:3352: checking for rm +configure:3368: found /bin/rm +configure:3380: result: rm +configure:3396: checking for grep that handles long lines and -e +configure:3454: result: /bin/grep +configure:3459: checking for egrep +configure:3521: result: /bin/grep -E +configure:3526: checking for ANSI C header files +configure:3546: gcc -c -g -O2 conftest.c >&5 +configure:3546: $? = 0 +configure:3619: gcc -o conftest -g -O2 conftest.c >&5 +configure:3619: $? = 0 +configure:3619: ./conftest +configure:3619: $? = 0 +configure:3630: result: yes +configure:3641: checking for setenv +configure:3641: gcc -o conftest -g -O2 conftest.c >&5 +configure:3641: $? = 0 +configure:3641: result: yes +configure:3641: checking for putenv +configure:3641: gcc -o conftest -g -O2 conftest.c >&5 +configure:3641: $? = 0 +configure:3641: result: yes +configure:3713: checking for tclsh +configure:3731: found /bin/tclsh +configure:3744: result: /bin/tclsh +configure:3817: checking for magic +configure:3835: found /usr/local/bin/magic +configure:3847: result: /usr/local/bin/magic +configure:3920: checking for qrouter +configure:3938: found /usr/local/bin/qrouter +configure:3950: result: /usr/local/bin/qrouter +configure:4023: checking for graywolf +configure:4041: found /usr/local/bin/graywolf +configure:4053: result: /usr/local/bin/graywolf +configure:4126: checking for yosys +configure:4144: found /usr/local/bin/yosys +configure:4156: result: /usr/local/bin/yosys +configure:4373: creating ./config.status ## ---------------------- ## ## Running config.status. ## @@ -213,13 +213,13 @@ generated by GNU Autoconf 2.69. Invocation command line was on stravinsky -config.status:756: creating Makefile -config.status:756: creating scripts/Makefile -config.status:756: creating src/Makefile -config.status:756: creating tech/Makefile -config.status:756: creating tech/osu050/Makefile -config.status:756: creating tech/osu035/Makefile -config.status:756: creating tech/osu018/Makefile +config.status:757: creating Makefile +config.status:757: creating scripts/Makefile +config.status:757: creating src/Makefile +config.status:757: creating tech/Makefile +config.status:757: creating tech/osu050/Makefile +config.status:757: creating tech/osu035/Makefile +config.status:757: creating tech/osu018/Makefile ## ---------------- ## ## Cache variables. ## @@ -309,6 +309,7 @@ QFLOW_MAGIC_PATH='/usr/local/bin/magic' QFLOW_QROUTER_PATH='/usr/local/bin/qrouter' QFLOW_YOSYS_PATH='/usr/local/bin/yosys' RANLIB='ranlib' +REVISION='12' RM='rm' SHELL='/bin/sh' STDLIBS='' diff --git a/config.status b/config.status index 99edcb4..5fca6c1 100755 --- a/config.status +++ b/config.status @@ -617,6 +617,7 @@ S["CPPFLAGS"]="" S["LDFLAGS"]="" S["CFLAGS"]="-g -O2" S["CC"]="gcc" +S["REVISION"]="12" S["VERSION"]="1.1" S["host_os"]="linux-gnu" S["host_vendor"]="unknown" @@ -613,6 +613,7 @@ CPPFLAGS LDFLAGS CFLAGS CC +REVISION VERSION host_os host_vendor @@ -2082,6 +2083,8 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac PACKAGE=qflow VERSION=`cat ./VERSION | cut -d. -f1-2` +REVISION=`cat ./VERSION | cut -d. -f3` + test "$program_prefix" != NONE && diff --git a/configure.in b/configure.in index 6a5b62b..cfa8da1 100644 --- a/configure.in +++ b/configure.in @@ -10,8 +10,10 @@ AC_CANONICAL_HOST PACKAGE=qflow VERSION=`cat ./VERSION | cut -d. -f1-2` +REVISION=`cat ./VERSION | cut -d. -f3` AC_SUBST(VERSION) +AC_SUBST(REVISION) AC_ARG_PROGRAM # Required programs diff --git a/scripts/Makefile b/scripts/Makefile index 61357cd..803f13e 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -10,6 +10,7 @@ LDFLAGS = INSTALL = /bin/install -c VERSION = 1.1 +REVISION = 12 QFLOW_LIB_DIR = /usr/local/share/qflow QFLOW_BIN_DIR = /usr/local/bin @@ -47,6 +48,7 @@ checkdirs.sh: checkdirs.sh.in qflow.sh: qflow.sh.in sed -e '/QFLOW_SCRIPT_DIR/s#QFLOW_SCRIPT_DIR#$(SCRIPTINSTALL)#' \ -e '/QFLOW_DEFAULT_PARSER/s#QFLOW_DEFAULT_PARSER#$(DEFAULTPARSER)#' \ + -e '/QFLOW_REVISION/s#QFLOW_REVISION#$(REVISION)#' \ -e '/QFLOW_VERSION/s#QFLOW_VERSION#$(VERSION)#' \ qflow.sh.in > qflow.sh diff --git a/scripts/Makefile.in b/scripts/Makefile.in index 9df7062..2569f9c 100644 --- a/scripts/Makefile.in +++ b/scripts/Makefile.in @@ -10,6 +10,7 @@ LDFLAGS = @LDFLAGS@ INSTALL = @INSTALL@ VERSION = @VERSION@ +REVISION = @REVISION@ QFLOW_LIB_DIR = @QFLOW_LIB_DIR@ QFLOW_BIN_DIR = @QFLOW_BIN_DIR@ @@ -47,6 +48,7 @@ checkdirs.sh: checkdirs.sh.in qflow.sh: qflow.sh.in sed -e '/QFLOW_SCRIPT_DIR/s#QFLOW_SCRIPT_DIR#$(SCRIPTINSTALL)#' \ -e '/QFLOW_DEFAULT_PARSER/s#QFLOW_DEFAULT_PARSER#$(DEFAULTPARSER)#' \ + -e '/QFLOW_REVISION/s#QFLOW_REVISION#$(REVISION)#' \ -e '/QFLOW_VERSION/s#QFLOW_VERSION#$(VERSION)#' \ qflow.sh.in > qflow.sh diff --git a/scripts/decongest.tcl.in b/scripts/decongest.tcl.in index aa7fc4b..dabd6d2 100755 --- a/scripts/decongest.tcl.in +++ b/scripts/decongest.tcl.in @@ -123,14 +123,14 @@ proc parse_macro {leffile macroname} { if [regexp {[ \t]*SYMMETRY[ \t]+(.+)[ \t]*;} $line lmatch symmetry] { set ${macroname}(symmetry) $symmetry } elseif [regexp {[ \t]*ORIGIN[ \t]+(.+)[ \t]+(.+)[ \t]*;} $line lmatch x y] { - set x [expr {int($x * $units)}] - set y [expr {int($y * $units)}] + set x [expr {int($x * $units + 0.5)}] + set y [expr {int($y * $units + 0.5)}] set ${macroname}(x) $x set ${macroname}(y) $y } elseif [regexp {[ \t]*SIZE[ \t]+(.+)[ \t]+BY[ \t]+(.+)[ \t]*;} \ $line lmatch w h] { - set w [expr {int($w * $units)}] - set h [expr {int($h * $units)}] + set w [expr {int($w * $units + 0.5)}] + set h [expr {int($h * $units + 0.5)}] set ${macroname}(w) $w set ${macroname}(h) $h @@ -265,7 +265,7 @@ if {$scale > 0.0} { set filllist {} while {[gets $finf line] >= 0} { if [regexp {[ \t]*([^ \t]+)[ \t]+([^ \t]+)} $line lmatch instname congest] { - set numfill [expr {int(($congest - $offset) * $scale)}] + set numfill [expr {int(($congest - $offset) * $scale + 0.5)}] if {$numfill > 0} { lappend instlist $instname lappend filllist $numfill @@ -299,7 +299,7 @@ if {$scale > 0.0} { } set filltotal [expr {$totalwidth * ((1.0 / $density) - 1.0)}] - set numfills [expr {int($filltotal / $fillvalue)}] + set numfills [expr {int($filltotal / $fillvalue + 0.5)}] set numcells [llength $instlist] set basefills 0 @@ -313,7 +313,7 @@ if {$scale > 0.0} { foreach fillinfo $fillwidths { set fillmacro [lindex $fillinfo 0] set fillvalue [lindex $fillinfo 1] - set numfills [expr {int($filltotal / $fillvalue)}] + set numfills [expr {int($filltotal / $fillvalue + 0.5)}] set numcells [llength $instlist] set halfvalue [expr {$fillvalue / 2}] if {$numfills > $numcells} {break} @@ -335,10 +335,11 @@ if {$scale > 0.0} { } set numfills [expr {$numcells - $numfills}] } + incr basefills 1 for {set i 0} {$i < $numfills} {incr i} { lappend filllist $basefills } - incr basefills 1 + incr basefills -1 for {} {$i < $numcells} {incr i} { lappend filllist $basefills } diff --git a/scripts/qflow.sh.in b/scripts/qflow.sh.in index 93ca713..ae999c1 100644 --- a/scripts/qflow.sh.in +++ b/scripts/qflow.sh.in @@ -140,7 +140,7 @@ while ($#argv > 0) end if ($doversion == 1 || $dohelp == 1) then - echo "Qflow version QFLOW_VERSION" + echo "Qflow version QFLOW_VERSION revision QFLOW_REVISION" echo "" if ($doversion == 1) then |