From c815d4b1a595662c189a192a61ce382fa4395806 Mon Sep 17 00:00:00 2001 From: Rick Altherr Date: Tue, 14 Nov 2017 16:59:39 -0800 Subject: [PATCH] Set tool and script paths project-wide utils/environment.sh determines its absolute path and then creates environment variables to each of the prjxray tools. This allows moving the tools around in the code base without touching every script. Signed-off-by: Rick Altherr Signed-off-by: Tim 'mithro' Ansell --- experiments/clbpips/generate.sh | 5 +++-- experiments/example/generate.sh | 10 ++++++---- experiments/lutbuf/generate.sh | 5 +++-- fuzzers/005-tilegrid/generate.sh | 7 ++++--- fuzzers/010-lutinit/generate.sh | 5 +++-- fuzzers/011-ffconfig/generate.sh | 5 +++-- fuzzers/012-lut5/generate.sh | 5 +++-- fuzzers/013-intpips/generate.sh | 5 +++-- minitests/clbconfigs/runme.sh | 7 +++++-- minitests/ffcfg/runme.sh | 7 +++++-- minitests/lvb_long_mux/runme.sh | 11 +++++++---- minitests/switchboxes/runme.sh | 11 +++++++---- utils/environment.sh | 16 ++++++++++++++++ utils/mergedb.sh | 3 +++ 14 files changed, 71 insertions(+), 31 deletions(-) mode change 100644 => 100755 fuzzers/005-tilegrid/generate.sh create mode 100644 utils/environment.sh diff --git a/experiments/clbpips/generate.sh b/experiments/clbpips/generate.sh index d7436dc8..7ba5ce77 100644 --- a/experiments/clbpips/generate.sh +++ b/experiments/clbpips/generate.sh @@ -1,11 +1,12 @@ #!/bin/bash -. ../../utils/genheader.sh +source ../../utils/environment.sh +source ${XRAY_GENHEADER} echo '`define SEED 32'"'h$(echo $1 | md5sum | cut -c1-8)" > setseed.vh vivado -mode batch -source ../generate.tcl -../../../tools/bitread -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit +${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit python3 ../generate.py diff --git a/experiments/example/generate.sh b/experiments/example/generate.sh index a7e33f58..a0ce0875 100644 --- a/experiments/example/generate.sh +++ b/experiments/example/generate.sh @@ -1,5 +1,7 @@ #!/bin/bash +source ../../utils/environment.sh + set -ex test $# = 1 test ! -e $1 @@ -73,10 +75,10 @@ EOT rm -rf design design.log vivado -nojournal -log design.log -mode batch -source design.tcl -#../../../tools/bitread -o design_roi.bits -z -y design_roi_partial.bit -../../../tools/bitread -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit -../../../tools/bitread -F $XRAY_ROI_FRAMES -o design.pgm -p design.bit +#${XRAY_BITREAD} -o design_roi.bits -z -y design_roi_partial.bit +${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit +${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.pgm -p design.bit python3 ../segdata.py -#../../../tools/segmatch < segdata.txt > database.txt +#${XRAY_SEGMATCH} < segdata.txt > database.txt diff --git a/experiments/lutbuf/generate.sh b/experiments/lutbuf/generate.sh index 1dfb2d44..d78ad3db 100644 --- a/experiments/lutbuf/generate.sh +++ b/experiments/lutbuf/generate.sh @@ -1,13 +1,14 @@ #!/bin/bash -. ../../utils/genheader.sh +source ../../utils/environment.sh +source ${XRAY_GENHEADER} echo '`define SEED 32'"'h$(echo $1 | md5sum | cut -c1-8)" > setseed.vh vivado -mode batch -source ../generate.tcl for x in design*.bit; do - ../../../tools/bitread -F $XRAY_ROI_FRAMES -o ${x}s -z -y $x + ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o ${x}s -z -y $x done python3 ../generate.py diff --git a/fuzzers/005-tilegrid/generate.sh b/fuzzers/005-tilegrid/generate.sh old mode 100644 new mode 100755 index 465f25b2..7b3ad9d4 --- a/fuzzers/005-tilegrid/generate.sh +++ b/fuzzers/005-tilegrid/generate.sh @@ -1,11 +1,12 @@ -#!/bin/bash +#!/bin/bash -x -. ../../utils/genheader.sh +source ../../utils/environment.sh +source ${XRAY_GENHEADER} vivado -mode batch -source ../generate.tcl for x in design*.bit; do - ../../../tools/bitread -F $XRAY_ROI_FRAMES -o ${x}s -z -y $x + ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o ${x}s -z -y $x done for x in design_*.bits; do diff --git a/fuzzers/010-lutinit/generate.sh b/fuzzers/010-lutinit/generate.sh index 2370b66d..522835d5 100644 --- a/fuzzers/010-lutinit/generate.sh +++ b/fuzzers/010-lutinit/generate.sh @@ -1,13 +1,14 @@ #!/bin/bash -. ../../utils/genheader.sh +source ../../utils/environment.sh +source ${XRAY_GENHEADER} echo '`define SEED 32'"'h$(echo $1 | md5sum | cut -c1-8)" > setseed.vh vivado -mode batch -source ../generate.tcl for i in 0 1 2; do - ../../../tools/bitread -F $XRAY_ROI_FRAMES -o design_$i.bits -z -y design_$i.bit + ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design_$i.bits -z -y design_$i.bit done for i in 0 1 2; do diff --git a/fuzzers/011-ffconfig/generate.sh b/fuzzers/011-ffconfig/generate.sh index 8694068f..313a7a27 100644 --- a/fuzzers/011-ffconfig/generate.sh +++ b/fuzzers/011-ffconfig/generate.sh @@ -1,13 +1,14 @@ #!/bin/bash -. ../../utils/genheader.sh +source ../../utils/environment.sh +source ${XRAY_GENHEADER} echo '`define SEED 32'"'h$(echo $1 | md5sum | cut -c1-8)" > setseed.vh vivado -mode batch -source ../generate.tcl for i in {0..9}; do - ../../../tools/bitread -F $XRAY_ROI_FRAMES -o design_$i.bits -z -y design_$i.bit + ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design_$i.bits -z -y design_$i.bit done for i in {0..9}; do diff --git a/fuzzers/012-lut5/generate.sh b/fuzzers/012-lut5/generate.sh index 1dfb2d44..d78ad3db 100644 --- a/fuzzers/012-lut5/generate.sh +++ b/fuzzers/012-lut5/generate.sh @@ -1,13 +1,14 @@ #!/bin/bash -. ../../utils/genheader.sh +source ../../utils/environment.sh +source ${XRAY_GENHEADER} echo '`define SEED 32'"'h$(echo $1 | md5sum | cut -c1-8)" > setseed.vh vivado -mode batch -source ../generate.tcl for x in design*.bit; do - ../../../tools/bitread -F $XRAY_ROI_FRAMES -o ${x}s -z -y $x + ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o ${x}s -z -y $x done python3 ../generate.py diff --git a/fuzzers/013-intpips/generate.sh b/fuzzers/013-intpips/generate.sh index d7436dc8..7ba5ce77 100644 --- a/fuzzers/013-intpips/generate.sh +++ b/fuzzers/013-intpips/generate.sh @@ -1,11 +1,12 @@ #!/bin/bash -. ../../utils/genheader.sh +source ../../utils/environment.sh +source ${XRAY_GENHEADER} echo '`define SEED 32'"'h$(echo $1 | md5sum | cut -c1-8)" > setseed.vh vivado -mode batch -source ../generate.tcl -../../../tools/bitread -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit +${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit python3 ../generate.py diff --git a/minitests/clbconfigs/runme.sh b/minitests/clbconfigs/runme.sh index 684b3ba1..dda3f8d0 100644 --- a/minitests/clbconfigs/runme.sh +++ b/minitests/clbconfigs/runme.sh @@ -1,5 +1,8 @@ #!/bin/bash + +source ../../utils/environment.sh + set -ex vivado -mode batch -source runme.tcl -../../tools/bitread -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit -python3 ../../utils/segprint.py design.bits SLICE_X16Y100 SLICE_X16Y101 SLICE_X16Y102 SLICE_X16Y103 +${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit +${XRAY_SEGPRINT} design.bits SLICE_X16Y100 SLICE_X16Y101 SLICE_X16Y102 SLICE_X16Y103 diff --git a/minitests/ffcfg/runme.sh b/minitests/ffcfg/runme.sh index 684b3ba1..dda3f8d0 100644 --- a/minitests/ffcfg/runme.sh +++ b/minitests/ffcfg/runme.sh @@ -1,5 +1,8 @@ #!/bin/bash + +source ../../utils/environment.sh + set -ex vivado -mode batch -source runme.tcl -../../tools/bitread -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit -python3 ../../utils/segprint.py design.bits SLICE_X16Y100 SLICE_X16Y101 SLICE_X16Y102 SLICE_X16Y103 +${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit +${XRAY_SEGPRINT} design.bits SLICE_X16Y100 SLICE_X16Y101 SLICE_X16Y102 SLICE_X16Y103 diff --git a/minitests/lvb_long_mux/runme.sh b/minitests/lvb_long_mux/runme.sh index 1d1b5f01..1202185d 100644 --- a/minitests/lvb_long_mux/runme.sh +++ b/minitests/lvb_long_mux/runme.sh @@ -1,7 +1,10 @@ #!/bin/bash + +source ../../utils/environment.sh + set -ex vivado -mode batch -source runme.tcl -../../tools/bitread -F $XRAY_ROI_FRAMES -o design_a.bits -z -y design_a.bit -../../tools/bitread -F $XRAY_ROI_FRAMES -o design_b.bits -z -y design_b.bit -python3 ../../utils/segprint.py design_a.bits INT_L_X12Y132 INT_L_X14Y132 INT_L_X16Y132 -python3 ../../utils/segprint.py design_b.bits INT_L_X12Y132 INT_L_X14Y132 INT_L_X16Y132 +${XRAY_BITREAD}-F $XRAY_ROI_FRAMES -o design_a.bits -z -y design_a.bit +${XRAY_BITREAD}-F $XRAY_ROI_FRAMES -o design_b.bits -z -y design_b.bit +${XRAY_SEGPRINT} design_a.bits INT_L_X12Y132 INT_L_X14Y132 INT_L_X16Y132 +${XRAY_SEGPRINT} design_b.bits INT_L_X12Y132 INT_L_X14Y132 INT_L_X16Y132 diff --git a/minitests/switchboxes/runme.sh b/minitests/switchboxes/runme.sh index fa6a6673..07a615ea 100644 --- a/minitests/switchboxes/runme.sh +++ b/minitests/switchboxes/runme.sh @@ -1,6 +1,9 @@ #!/bin/bash + +source ../../utils/environment.sh + vivado -mode batch -source runme.tcl -../../tools/bitread -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit -../../tools/bitread -F $XRAY_ROI_FRAMES -o routes.bits -z -y routes.bit -python3 ../../utils/segprint.py routes.bits INT_L_X12Y119 INT_L_X12Y117 INT_L_X12Y115 -python3 ../../utils/segprint.py routes.bits INT_R_X13Y118 INT_R_X13Y116 INT_R_X13Y114 +${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit +${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o routes.bits -z -y routes.bit +${XRAY_SEGPRINT} routes.bits INT_L_X12Y119 INT_L_X12Y117 INT_L_X12Y115 +${XRAY_SEGPRINT} routes.bits INT_R_X13Y118 INT_R_X13Y116 INT_R_X13Y114 diff --git a/utils/environment.sh b/utils/environment.sh new file mode 100644 index 00000000..3b938e74 --- /dev/null +++ b/utils/environment.sh @@ -0,0 +1,16 @@ +XRAY_ENV_PATH="${BASH_SOURCE[0]}" +while [ -h "$XRAY_ENV_PATH" ]; do # resolve $XRAY_ENV_PATH until the file is no longer a symlink + XRAY_UTILS_DIR="$( cd -P "$( dirname "$XRAY_ENV_PATH" )" && pwd )" + XRAY_ENV_PATH="$(readlink "$XRAY_ENV_PATH")" + [[ $XRAY_ENV_PATH != /* ]] && XRAY_ENV_PATH="$XRAY_UTILS_DIR/$XRAY_ENV_PATH" # if $XRAY_ENV_PATH was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done +XRAY_UTILS_DIR="$( cd -P "$( dirname "$XRAY_ENV_PATH" )" && pwd )" + +XRAY_DIR="$( dirname "$XRAY_UTILS_DIR" )" +XRAY_DATABASE_DIR="${XRAY_DIR}/database" +XRAY_TOOLS_DIR="${XRAY_DIR}/tools" + +XRAY_GENHEADER="${XRAY_UTILS_DIR}/genheader.sh" +XRAY_BITREAD="${XRAY_TOOLS_DIR}/bitread" +XRAY_SEGMATCH="${XRAY_TOOLS_DIR}/segmatch" +XRAY_SEGPRINT="python2 ${XRAY_UTILS_DIR}/segprint.py" diff --git a/utils/mergedb.sh b/utils/mergedb.sh index e70b8ea3..5a7c2ef3 100644 --- a/utils/mergedb.sh +++ b/utils/mergedb.sh @@ -1,4 +1,7 @@ #!/bin/bash + +source environment.sh + set -ex test $# = 2 test -e "$2"