summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Edwards <tim@opencircuitdesign.com>2015-10-11 11:25:55 -0400
committerTim Edwards <tim@opencircuitdesign.com>2015-10-11 11:25:55 -0400
commit98e3b3935c90b917c592a2c93f6736922d2d43a3 (patch)
tree8c18141483098540092dc35f86cd64bf8af90488
parent9a234e96c531b4bb46b0c88cbc160dc130bdc2f5 (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.log239
-rwxr-xr-xconfig.status1
-rwxr-xr-xconfigure3
-rw-r--r--configure.in2
-rw-r--r--scripts/Makefile2
-rw-r--r--scripts/Makefile.in2
-rwxr-xr-xscripts/decongest.tcl.in17
-rw-r--r--scripts/qflow.sh.in2
8 files changed, 140 insertions, 128 deletions
diff --git a/config.log b/config.log
index 086d8e9..5adce36 100644
--- a/config.log
+++ b/config.log
@@ -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"
diff --git a/configure b/configure
index 2311cdc..f3daeb8 100755
--- a/configure
+++ b/configure
@@ -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