From 0d6e3272296dea7591c0a404b3a816a492fe94f3 Mon Sep 17 00:00:00 2001 From: Felix Held Date: Fri, 28 Dec 2018 18:58:28 +0100 Subject: [PATCH] introduce vivado wrapper This fixes the problem that when sourcing the vivado settings file the library search path is modified resulting in non-vivado binaries not working due to being dynamically linked against the vivado libraries instead of the system ones. Signed-off-by: Felix Held --- README.md | 6 +++--- experiments/clbpips/generate.sh | 2 +- experiments/example/generate.sh | 2 +- experiments/gndvcc/Makefile | 2 +- experiments/gndvcc/generate.sh | 2 +- experiments/pipsroute/Makefile | 2 +- experiments/pipsroute/generate.sh | 2 +- fuzzers/001-part-yaml/Makefile.specimen | 2 +- fuzzers/005-tilegrid/fuzzaddr/generate.sh | 2 +- fuzzers/005-tilegrid/generate.sh | 2 +- fuzzers/007-timing/minitest/test_unique/generate.sh | 2 +- fuzzers/007-timing/projects/oneblinkw/generate.sh | 2 +- fuzzers/007-timing/projects/picorv32/generate.sh | 2 +- fuzzers/007-timing/projects/placelut/generate.sh | 2 +- fuzzers/007-timing/projects/placelut_fb/generate.sh | 2 +- fuzzers/007-timing/projects/placelut_ff_fb/generate.sh | 2 +- fuzzers/007-timing/speed/Makefile | 2 +- fuzzers/007-timing/timgrid/Makefile | 2 +- fuzzers/007-timing/timgrid/generate.sh | 2 +- fuzzers/010-lutinit/generate.sh | 2 +- fuzzers/012-clbn5ffmux/generate.sh | 2 +- fuzzers/015-clbnffmux/generate.sh | 2 +- fuzzers/016-clbnoutmux/generate.sh | 2 +- fuzzers/025-bram-config/minitest/runme.sh | 2 +- fuzzers/026-bram-data/generate.sh | 2 +- fuzzers/026-bram-data/minitest/runme.sh | 2 +- fuzzers/030-iob/minitest/runme.sh | 2 +- fuzzers/030-iob/minitest/runme_tcl.sh | 2 +- fuzzers/050-intpips/Makefile | 2 +- fuzzers/050-intpips/generate.sh | 2 +- fuzzers/051-imuxlout/generate.sh | 2 +- fuzzers/052-clkin/generate.sh | 2 +- fuzzers/053-ctrlin/generate.sh | 2 +- fuzzers/054-gfan/generate.sh | 2 +- fuzzers/056-rempips/generate.sh | 2 +- fuzzers/057-bipips/generate.sh | 2 +- fuzzers/058-hclkpips/generate.sh | 2 +- fuzzers/071-ppips/generate.sh | 2 +- fuzzers/072-ordered_wires/generate.sh | 2 +- fuzzers/073-get_counts/generate.sh | 2 +- fuzzers/074-dump_all/generate.sh | 2 +- fuzzers/100-dsp-mskpat/generate.sh | 2 +- fuzzers/int_loop.mk | 2 +- gridinfo/runme.sh | 2 +- minitests/clbconfigs/runme.sh | 2 +- minitests/clkbuf/runme.sh | 2 +- minitests/eccbits/runme.sh | 2 +- minitests/fixedpnr/runme.sh | 2 +- minitests/lvb_long_mux/runme.sh | 2 +- minitests/partial_reconfig_flow/Makefile | 10 +++++----- minitests/picorv32-v/runme.sh | 2 +- minitests/picorv32-y/runme.sh | 2 +- minitests/roi_harness/runme.sh | 2 +- minitests/switchboxes/runme.sh | 2 +- minitests/tiles_wires_pips/runme.sh | 2 +- minitests/util/runme.sh | 2 +- utils/environment.sh | 2 +- utils/top_generate.sh | 2 +- utils/vivado.sh | 5 +++++ 59 files changed, 69 insertions(+), 64 deletions(-) create mode 100755 utils/vivado.sh diff --git a/README.md b/README.md index 93fbfe3e..394bbd7c 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,10 @@ More documentation can be found published on [prjxray ReadTheDocs site](http://p # Quickstart Guide Install Vivado 2017.2 (2017.3 has a known compatibility issue, see -https://github.com/SymbiFlow/prjxray/issues/14). Then source the settings -script, ie +https://github.com/SymbiFlow/prjxray/issues/14). Then set the environment variable +XRAY_VIVADO_SETTINGS to point to the settings64.sh file of the installed vivado version, ie - source /opt/Xilinx/Vivado/2017.2/settings64.sh + export XRAY_VIVADO_SETTINGS=/opt/Xilinx/Vivado/2017.2/settings64.sh Pull submodules: diff --git a/experiments/clbpips/generate.sh b/experiments/clbpips/generate.sh index 7ba5ce77..7794bfed 100644 --- a/experiments/clbpips/generate.sh +++ b/experiments/clbpips/generate.sh @@ -5,7 +5,7 @@ source ${XRAY_GENHEADER} echo '`define SEED 32'"'h$(echo $1 | md5sum | cut -c1-8)" > setseed.vh -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl ${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 a0ce0875..dc2d5725 100644 --- a/experiments/example/generate.sh +++ b/experiments/example/generate.sh @@ -73,7 +73,7 @@ close \$fp EOT rm -rf design design.log -vivado -nojournal -log design.log -mode batch -source design.tcl +${XRAY_VIVADO} -nojournal -log design.log -mode batch -source design.tcl #${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 diff --git a/experiments/gndvcc/Makefile b/experiments/gndvcc/Makefile index 3edb4f05..2022429e 100644 --- a/experiments/gndvcc/Makefile +++ b/experiments/gndvcc/Makefile @@ -17,7 +17,7 @@ $(SPECIMENS_OK): todo.txt touch $@ todo.txt: - vivado -mode batch -source piplist.tcl + ${XRAY_VIVADO} -mode batch -source piplist.tcl python3 maketodo.py | sort -R | head -n10 > todo.txt clean: diff --git a/experiments/gndvcc/generate.sh b/experiments/gndvcc/generate.sh index 9f904105..d6bf8b49 100644 --- a/experiments/gndvcc/generate.sh +++ b/experiments/gndvcc/generate.sh @@ -2,7 +2,7 @@ source ${XRAY_GENHEADER} -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit python3 ../generate.py diff --git a/experiments/pipsroute/Makefile b/experiments/pipsroute/Makefile index 6ec874e3..076f8607 100644 --- a/experiments/pipsroute/Makefile +++ b/experiments/pipsroute/Makefile @@ -21,7 +21,7 @@ $(SPECIMENS_OK): todo.txt touch $@ todo.txt: - vivado -mode batch -source piplist.tcl + ${XRAY_VIVADO} -mode batch -source piplist.tcl python3 maketodo.py > todo.txt clean: diff --git a/experiments/pipsroute/generate.sh b/experiments/pipsroute/generate.sh index be91b5ef..fb9203a5 100644 --- a/experiments/pipsroute/generate.sh +++ b/experiments/pipsroute/generate.sh @@ -2,7 +2,7 @@ source ${XRAY_GENHEADER} -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl for x in design_[0-9][0-9][0-9].bit; do ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o ${x}s -z -y $x diff --git a/fuzzers/001-part-yaml/Makefile.specimen b/fuzzers/001-part-yaml/Makefile.specimen index 256bcd53..91ea090f 100644 --- a/fuzzers/001-part-yaml/Makefile.specimen +++ b/fuzzers/001-part-yaml/Makefile.specimen @@ -2,4 +2,4 @@ part.yaml: design.perframecrc.bit ${XRAY_TOOLS_DIR}/gen_part_base_yaml $< -f > $@ design.bit design.perframecrc.bit: ../generate.tcl - vivado -mode batch -source ../generate.tcl + ${XRAY_VIVADO} -mode batch -source ../generate.tcl diff --git a/fuzzers/005-tilegrid/fuzzaddr/generate.sh b/fuzzers/005-tilegrid/fuzzaddr/generate.sh index 4b6a8320..76503f6d 100644 --- a/fuzzers/005-tilegrid/fuzzaddr/generate.sh +++ b/fuzzers/005-tilegrid/fuzzaddr/generate.sh @@ -10,7 +10,7 @@ if [ -f $FUZDIR/top.py ] ; then XRAY_DATABASE_ROOT=$FUZDIR/../build/basicdb python3 $FUZDIR/top.py >top.v fi -vivado -mode batch -source $FUZDIR/generate.tcl +${XRAY_VIVADO} -mode batch -source $FUZDIR/generate.tcl test -z "$(fgrep CRITICAL vivado.log)" for x in design*.bit; do diff --git a/fuzzers/005-tilegrid/generate.sh b/fuzzers/005-tilegrid/generate.sh index 0064e89f..c97d6369 100644 --- a/fuzzers/005-tilegrid/generate.sh +++ b/fuzzers/005-tilegrid/generate.sh @@ -5,7 +5,7 @@ PRJ=$2 export FUZDIR=$PWD source ${XRAY_GENHEADER} -vivado -mode batch -source $FUZDIR/generate_$PRJ.tcl +${XRAY_VIVADO} -mode batch -source $FUZDIR/generate_$PRJ.tcl test -z "$(fgrep CRITICAL vivado.log)" if [ $PRJ != "tiles" ] ; then diff --git a/fuzzers/007-timing/minitest/test_unique/generate.sh b/fuzzers/007-timing/minitest/test_unique/generate.sh index 76583ac2..73bd35e1 100755 --- a/fuzzers/007-timing/minitest/test_unique/generate.sh +++ b/fuzzers/007-timing/minitest/test_unique/generate.sh @@ -5,5 +5,5 @@ set -ex source ${XRAY_GENHEADER} TIMFUZ_DIR=$XRAY_DIR/fuzzers/007-timing -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl diff --git a/fuzzers/007-timing/projects/oneblinkw/generate.sh b/fuzzers/007-timing/projects/oneblinkw/generate.sh index 0ba2a7fc..ee551b74 100755 --- a/fuzzers/007-timing/projects/oneblinkw/generate.sh +++ b/fuzzers/007-timing/projects/oneblinkw/generate.sh @@ -3,6 +3,6 @@ set -ex source ../generate.sh -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl timing_txt2csv diff --git a/fuzzers/007-timing/projects/picorv32/generate.sh b/fuzzers/007-timing/projects/picorv32/generate.sh index 0ba2a7fc..ee551b74 100755 --- a/fuzzers/007-timing/projects/picorv32/generate.sh +++ b/fuzzers/007-timing/projects/picorv32/generate.sh @@ -3,6 +3,6 @@ set -ex source ../generate.sh -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl timing_txt2csv diff --git a/fuzzers/007-timing/projects/placelut/generate.sh b/fuzzers/007-timing/projects/placelut/generate.sh index 40bc4550..868d02d9 100755 --- a/fuzzers/007-timing/projects/placelut/generate.sh +++ b/fuzzers/007-timing/projects/placelut/generate.sh @@ -6,6 +6,6 @@ source ${XRAY_GENHEADER} TIMFUZ_DIR=$XRAY_DIR/fuzzers/007-timing python ../generate.py --sdx 4 --sdy 4 >top.v -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl python3 $TIMFUZ_DIR/timing_txt2csv.py --speed-json $TIMFUZ_DIR/speed/build/speed.json --out timing4.csv timing4.txt diff --git a/fuzzers/007-timing/projects/placelut_fb/generate.sh b/fuzzers/007-timing/projects/placelut_fb/generate.sh index 579f2021..17cb6107 100755 --- a/fuzzers/007-timing/projects/placelut_fb/generate.sh +++ b/fuzzers/007-timing/projects/placelut_fb/generate.sh @@ -4,6 +4,6 @@ set -ex source ../generate.sh python ../generate.py --sdx 4 --sdy 4 >top.v -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl timing_txt2csv diff --git a/fuzzers/007-timing/projects/placelut_ff_fb/generate.sh b/fuzzers/007-timing/projects/placelut_ff_fb/generate.sh index 579f2021..17cb6107 100755 --- a/fuzzers/007-timing/projects/placelut_ff_fb/generate.sh +++ b/fuzzers/007-timing/projects/placelut_ff_fb/generate.sh @@ -4,6 +4,6 @@ set -ex source ../generate.sh python ../generate.py --sdx 4 --sdy 4 >top.v -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl timing_txt2csv diff --git a/fuzzers/007-timing/speed/Makefile b/fuzzers/007-timing/speed/Makefile index e2b7a520..bf0b008d 100644 --- a/fuzzers/007-timing/speed/Makefile +++ b/fuzzers/007-timing/speed/Makefile @@ -2,7 +2,7 @@ all: build/speed.json build/node.txt: speed_json.py generate.tcl mkdir -p build - cd build && vivado -mode batch -source ../generate.tcl + cd build && ${XRAY_VIVADO} -mode batch -source ../generate.tcl build/speed.json: build/node.txt cd build && python ../speed_json.py speed_model.txt node.txt speed.json diff --git a/fuzzers/007-timing/timgrid/Makefile b/fuzzers/007-timing/timgrid/Makefile index 30458303..830a741d 100644 --- a/fuzzers/007-timing/timgrid/Makefile +++ b/fuzzers/007-timing/timgrid/Makefile @@ -2,7 +2,7 @@ all: build/timgrid.json build/timgrid.txt: generate.tcl mkdir -p build - cd build && vivado -mode batch -source ../generate.tcl + cd build && ${XRAY_VIVADO} -mode batch -source ../generate.tcl build/timgrid.json: build/timgrid.txt cd build && python3 ../tile_txt2json.py --speed-json ../../speed/build/speed.json timgrid.txt timgrid-s.json diff --git a/fuzzers/007-timing/timgrid/generate.sh b/fuzzers/007-timing/timgrid/generate.sh index 3efa2478..418a0866 100644 --- a/fuzzers/007-timing/timgrid/generate.sh +++ b/fuzzers/007-timing/timgrid/generate.sh @@ -2,7 +2,7 @@ source ${XRAY_GENHEADER} -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl for x in design*.bit; do ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o ${x}s -z -y $x diff --git a/fuzzers/010-lutinit/generate.sh b/fuzzers/010-lutinit/generate.sh index 846dd1ec..2418cba0 100644 --- a/fuzzers/010-lutinit/generate.sh +++ b/fuzzers/010-lutinit/generate.sh @@ -5,7 +5,7 @@ source ${XRAY_GENHEADER} echo '`define SEED 32'"'h$(echo $1 | md5sum | cut -c1-8)" > setseed.vh -vivado -mode batch -source $FUZDIR/generate.tcl +${XRAY_VIVADO} -mode batch -source $FUZDIR/generate.tcl for i in 0 1 2; do ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design_$i.bits -z -y design_$i.bit diff --git a/fuzzers/012-clbn5ffmux/generate.sh b/fuzzers/012-clbn5ffmux/generate.sh index 50e0e763..86af6c5d 100644 --- a/fuzzers/012-clbn5ffmux/generate.sh +++ b/fuzzers/012-clbn5ffmux/generate.sh @@ -1,6 +1,6 @@ #!/bin/bash set -ex -if [ $(vivado -h |grep Vivado |cut -d\ -f 2) != "v2017.2" ] ; then echo "FIXME: requires Vivado 2017.2. See https://github.com/SymbiFlow/prjxray/issues/14"; exit 1; fi +if [ $(${XRAY_VIVADO} -h |grep Vivado |cut -d\ -f 2) != "v2017.2" ] ; then echo "FIXME: requires Vivado 2017.2. See https://github.com/SymbiFlow/prjxray/issues/14"; exit 1; fi source ${XRAY_DIR}/utils/top_generate.sh diff --git a/fuzzers/015-clbnffmux/generate.sh b/fuzzers/015-clbnffmux/generate.sh index 50e0e763..86af6c5d 100644 --- a/fuzzers/015-clbnffmux/generate.sh +++ b/fuzzers/015-clbnffmux/generate.sh @@ -1,6 +1,6 @@ #!/bin/bash set -ex -if [ $(vivado -h |grep Vivado |cut -d\ -f 2) != "v2017.2" ] ; then echo "FIXME: requires Vivado 2017.2. See https://github.com/SymbiFlow/prjxray/issues/14"; exit 1; fi +if [ $(${XRAY_VIVADO} -h |grep Vivado |cut -d\ -f 2) != "v2017.2" ] ; then echo "FIXME: requires Vivado 2017.2. See https://github.com/SymbiFlow/prjxray/issues/14"; exit 1; fi source ${XRAY_DIR}/utils/top_generate.sh diff --git a/fuzzers/016-clbnoutmux/generate.sh b/fuzzers/016-clbnoutmux/generate.sh index 50e0e763..86af6c5d 100644 --- a/fuzzers/016-clbnoutmux/generate.sh +++ b/fuzzers/016-clbnoutmux/generate.sh @@ -1,6 +1,6 @@ #!/bin/bash set -ex -if [ $(vivado -h |grep Vivado |cut -d\ -f 2) != "v2017.2" ] ; then echo "FIXME: requires Vivado 2017.2. See https://github.com/SymbiFlow/prjxray/issues/14"; exit 1; fi +if [ $(${XRAY_VIVADO} -h |grep Vivado |cut -d\ -f 2) != "v2017.2" ] ; then echo "FIXME: requires Vivado 2017.2. See https://github.com/SymbiFlow/prjxray/issues/14"; exit 1; fi source ${XRAY_DIR}/utils/top_generate.sh diff --git a/fuzzers/025-bram-config/minitest/runme.sh b/fuzzers/025-bram-config/minitest/runme.sh index 9390d5ff..e552f4e0 100644 --- a/fuzzers/025-bram-config/minitest/runme.sh +++ b/fuzzers/025-bram-config/minitest/runme.sh @@ -12,7 +12,7 @@ cd $BUILD_DIR export TOP_V=$SRC_DIR/top.v -vivado -mode batch -source $SRC_DIR/runme.tcl +${XRAY_VIVADO} -mode batch -source $SRC_DIR/runme.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit test -z "$(fgrep CRITICAL vivado.log)" diff --git a/fuzzers/026-bram-data/generate.sh b/fuzzers/026-bram-data/generate.sh index 0ca0c994..292674b2 100644 --- a/fuzzers/026-bram-data/generate.sh +++ b/fuzzers/026-bram-data/generate.sh @@ -6,7 +6,7 @@ FUZDIR=$PWD source ${XRAY_GENHEADER} python3 $FUZDIR/top.py >top.v -vivado -mode batch -source $FUZDIR/generate.tcl +${XRAY_VIVADO} -mode batch -source $FUZDIR/generate.tcl test -z "$(fgrep CRITICAL vivado.log)" for x in design*.bit; do diff --git a/fuzzers/026-bram-data/minitest/runme.sh b/fuzzers/026-bram-data/minitest/runme.sh index 9390d5ff..e552f4e0 100644 --- a/fuzzers/026-bram-data/minitest/runme.sh +++ b/fuzzers/026-bram-data/minitest/runme.sh @@ -12,7 +12,7 @@ cd $BUILD_DIR export TOP_V=$SRC_DIR/top.v -vivado -mode batch -source $SRC_DIR/runme.tcl +${XRAY_VIVADO} -mode batch -source $SRC_DIR/runme.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit test -z "$(fgrep CRITICAL vivado.log)" diff --git a/fuzzers/030-iob/minitest/runme.sh b/fuzzers/030-iob/minitest/runme.sh index 9390d5ff..e552f4e0 100644 --- a/fuzzers/030-iob/minitest/runme.sh +++ b/fuzzers/030-iob/minitest/runme.sh @@ -12,7 +12,7 @@ cd $BUILD_DIR export TOP_V=$SRC_DIR/top.v -vivado -mode batch -source $SRC_DIR/runme.tcl +${XRAY_VIVADO} -mode batch -source $SRC_DIR/runme.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit test -z "$(fgrep CRITICAL vivado.log)" diff --git a/fuzzers/030-iob/minitest/runme_tcl.sh b/fuzzers/030-iob/minitest/runme_tcl.sh index 143dfdbf..5e35950e 100644 --- a/fuzzers/030-iob/minitest/runme_tcl.sh +++ b/fuzzers/030-iob/minitest/runme_tcl.sh @@ -12,7 +12,7 @@ cd $BUILD_DIR export TOP_V=$SRC_DIR/tcl.v -vivado -mode batch -source $SRC_DIR/$PROJECT.tcl +${XRAY_VIVADO} -mode batch -source $SRC_DIR/$PROJECT.tcl for x in design*.bit; do ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o ${x}s -z -y $x done diff --git a/fuzzers/050-intpips/Makefile b/fuzzers/050-intpips/Makefile index d81fe753..72de3993 100644 --- a/fuzzers/050-intpips/Makefile +++ b/fuzzers/050-intpips/Makefile @@ -65,7 +65,7 @@ $(SPECIMENS_OK): build/todo.txt build/pips_int_l.txt: $(XRAY_DIR)/fuzzers/piplist.tcl mkdir -p build/$(ITER) - cd build && vivado -mode batch -source $(XRAY_DIR)/fuzzers/piplist.tcl + cd build && ${XRAY_VIVADO} -mode batch -source $(XRAY_DIR)/fuzzers/piplist.tcl build/todo.txt: build/pips_int_l.txt $(XRAY_DIR)/fuzzers/int_maketodo.py # Doesn't pushdb until very end. Compare against db so far diff --git a/fuzzers/050-intpips/generate.sh b/fuzzers/050-intpips/generate.sh index 1f6a06d4..e89adcdb 100644 --- a/fuzzers/050-intpips/generate.sh +++ b/fuzzers/050-intpips/generate.sh @@ -7,7 +7,7 @@ source ${XRAY_GENHEADER} echo '`define SEED 32'"'h$(echo $1 | md5sum | cut -c1-8)" > setseed.vh -vivado -mode batch -source $FUZDIR/generate.tcl +${XRAY_VIVADO} -mode batch -source $FUZDIR/generate.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit python3 $FUZDIR/generate.py diff --git a/fuzzers/051-imuxlout/generate.sh b/fuzzers/051-imuxlout/generate.sh index 9f904105..d6bf8b49 100644 --- a/fuzzers/051-imuxlout/generate.sh +++ b/fuzzers/051-imuxlout/generate.sh @@ -2,7 +2,7 @@ source ${XRAY_GENHEADER} -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit python3 ../generate.py diff --git a/fuzzers/052-clkin/generate.sh b/fuzzers/052-clkin/generate.sh index 9f904105..d6bf8b49 100644 --- a/fuzzers/052-clkin/generate.sh +++ b/fuzzers/052-clkin/generate.sh @@ -2,7 +2,7 @@ source ${XRAY_GENHEADER} -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit python3 ../generate.py diff --git a/fuzzers/053-ctrlin/generate.sh b/fuzzers/053-ctrlin/generate.sh index 9f904105..d6bf8b49 100644 --- a/fuzzers/053-ctrlin/generate.sh +++ b/fuzzers/053-ctrlin/generate.sh @@ -2,7 +2,7 @@ source ${XRAY_GENHEADER} -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit python3 ../generate.py diff --git a/fuzzers/054-gfan/generate.sh b/fuzzers/054-gfan/generate.sh index d7640d94..0a59c051 100644 --- a/fuzzers/054-gfan/generate.sh +++ b/fuzzers/054-gfan/generate.sh @@ -4,7 +4,7 @@ echo "test: $PWD" FUZDIR=$PWD source ${XRAY_GENHEADER} -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit python3 ../generate.py diff --git a/fuzzers/056-rempips/generate.sh b/fuzzers/056-rempips/generate.sh index ec525cf8..83dbeca4 100644 --- a/fuzzers/056-rempips/generate.sh +++ b/fuzzers/056-rempips/generate.sh @@ -3,7 +3,7 @@ FUZDIR=$PWD source ${XRAY_GENHEADER} -vivado -mode batch -source $FUZDIR/generate.tcl +${XRAY_VIVADO} -mode batch -source $FUZDIR/generate.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit python3 $FUZDIR/generate.py diff --git a/fuzzers/057-bipips/generate.sh b/fuzzers/057-bipips/generate.sh index 0b99ad99..08385103 100644 --- a/fuzzers/057-bipips/generate.sh +++ b/fuzzers/057-bipips/generate.sh @@ -2,7 +2,7 @@ source ${XRAY_GENHEADER} -while ! vivado -mode batch -source ../generate.tcl; do +while ! ${XRAY_VIVADO} -mode batch -source ../generate.tcl; do rm -rf design* done diff --git a/fuzzers/058-hclkpips/generate.sh b/fuzzers/058-hclkpips/generate.sh index 34a820fe..9ac33692 100644 --- a/fuzzers/058-hclkpips/generate.sh +++ b/fuzzers/058-hclkpips/generate.sh @@ -2,7 +2,7 @@ source ${XRAY_GENHEADER} -vivado -mode batch -source $FUZDIR/generate.tcl +${XRAY_VIVADO} -mode batch -source $FUZDIR/generate.tcl for x in design_*.bit; do ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o ${x}s -z -y ${x} diff --git a/fuzzers/071-ppips/generate.sh b/fuzzers/071-ppips/generate.sh index de2efcbd..ccc5a065 100644 --- a/fuzzers/071-ppips/generate.sh +++ b/fuzzers/071-ppips/generate.sh @@ -2,5 +2,5 @@ source ${XRAY_GENHEADER} -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl diff --git a/fuzzers/072-ordered_wires/generate.sh b/fuzzers/072-ordered_wires/generate.sh index 41f7366f..e86001fc 100644 --- a/fuzzers/072-ordered_wires/generate.sh +++ b/fuzzers/072-ordered_wires/generate.sh @@ -2,4 +2,4 @@ source ${XRAY_GENHEADER} -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl diff --git a/fuzzers/073-get_counts/generate.sh b/fuzzers/073-get_counts/generate.sh index 41f7366f..e86001fc 100644 --- a/fuzzers/073-get_counts/generate.sh +++ b/fuzzers/073-get_counts/generate.sh @@ -2,4 +2,4 @@ source ${XRAY_GENHEADER} -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl diff --git a/fuzzers/074-dump_all/generate.sh b/fuzzers/074-dump_all/generate.sh index 9dbd8f3c..71912e54 100644 --- a/fuzzers/074-dump_all/generate.sh +++ b/fuzzers/074-dump_all/generate.sh @@ -2,6 +2,6 @@ source ${XRAY_GENHEADER} -vivado -mode batch -source ../generate.tcl +${XRAY_VIVADO} -mode batch -source ../generate.tcl cd .. && ./generate_after_dump.sh diff --git a/fuzzers/100-dsp-mskpat/generate.sh b/fuzzers/100-dsp-mskpat/generate.sh index 6470bcb1..1d101ea4 100644 --- a/fuzzers/100-dsp-mskpat/generate.sh +++ b/fuzzers/100-dsp-mskpat/generate.sh @@ -4,7 +4,7 @@ set -ex source ${XRAY_GENHEADER} -vivado -mode batch -source $FUZDIR/generate.tcl +${XRAY_VIVADO} -mode batch -source $FUZDIR/generate.tcl for i in {10..29}; do ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design_${i}.bits -z -y design_${i}.bit diff --git a/fuzzers/int_loop.mk b/fuzzers/int_loop.mk index ad7f482e..f4cdfcb4 100644 --- a/fuzzers/int_loop.mk +++ b/fuzzers/int_loop.mk @@ -62,7 +62,7 @@ $(SPECIMENS_OK): build/todo.txt build/$(PIP_TYPE)_l.txt: $(XRAY_DIR)/fuzzers/piplist.tcl mkdir -p build/$(ITER) - cd build && vivado -mode batch -source $(PIPLIST_TCL) + cd build && ${XRAY_VIVADO} -mode batch -source $(PIPLIST_TCL) # Used 1) to see if we are done 2) pips to try in generate.tcl build/todo.txt: build/$(PIP_TYPE)_l.txt $(XRAY_DIR)/fuzzers/int_maketodo.py build/database/seeded diff --git a/gridinfo/runme.sh b/gridinfo/runme.sh index ac3a906c..302a3d09 100755 --- a/gridinfo/runme.sh +++ b/gridinfo/runme.sh @@ -50,7 +50,7 @@ source tiledata.tcl EOT rm -f design.log -vivado -nojournal -log design.log -mode batch -source design.tcl +${XRAY_VIVADO} -nojournal -log design.log -mode batch -source design.tcl { sed -e '/^--tiledata--/ { s/[^ ]* //; p; }; d;' design.log diff --git a/minitests/clbconfigs/runme.sh b/minitests/clbconfigs/runme.sh index 0f016127..a3194ba3 100755 --- a/minitests/clbconfigs/runme.sh +++ b/minitests/clbconfigs/runme.sh @@ -1,6 +1,6 @@ #!/bin/bash set -ex -vivado -mode batch -source runme.tcl +${XRAY_VIVADO} -mode batch -source runme.tcl ${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/clkbuf/runme.sh b/minitests/clkbuf/runme.sh index 9cd52c81..1e8c5fc9 100755 --- a/minitests/clkbuf/runme.sh +++ b/minitests/clkbuf/runme.sh @@ -1,7 +1,7 @@ #!/bin/bash set -ex -vivado -mode batch -source runme.tcl +${XRAY_VIVADO} -mode batch -source runme.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit ${XRAY_SEGPRINT} -bzd design.bits > design.segs diff --git a/minitests/eccbits/runme.sh b/minitests/eccbits/runme.sh index d5883a92..bfccea97 100755 --- a/minitests/eccbits/runme.sh +++ b/minitests/eccbits/runme.sh @@ -1,6 +1,6 @@ #!/bin/bash set -ex -vivado -mode batch -source runme.tcl +${XRAY_VIVADO} -mode batch -source runme.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -z -y -C -o design.bits design.bit grep -h _050_ design.bits | cut -f4 -d_ | sort | uniq -c diff --git a/minitests/fixedpnr/runme.sh b/minitests/fixedpnr/runme.sh index 54e8e623..277e03d2 100755 --- a/minitests/fixedpnr/runme.sh +++ b/minitests/fixedpnr/runme.sh @@ -1,7 +1,7 @@ #!/bin/bash set -ex -vivado -mode batch -source runme.tcl +${XRAY_VIVADO} -mode batch -source runme.tcl for ff in fdre fdse fdce fdce_inv fdpe ldce ldpe; do ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design_$ff.bits -z -y design_$ff.bit ${XRAY_SEGPRINT} -z design_$ff.bits >design_$ff.seg diff --git a/minitests/lvb_long_mux/runme.sh b/minitests/lvb_long_mux/runme.sh index 189e6359..09796fe2 100755 --- a/minitests/lvb_long_mux/runme.sh +++ b/minitests/lvb_long_mux/runme.sh @@ -1,7 +1,7 @@ #!/bin/bash set -ex -vivado -mode batch -source runme.tcl +${XRAY_VIVADO} -mode batch -source runme.tcl ${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 diff --git a/minitests/partial_reconfig_flow/Makefile b/minitests/partial_reconfig_flow/Makefile index 239cac4f..54f9014d 100644 --- a/minitests/partial_reconfig_flow/Makefile +++ b/minitests/partial_reconfig_flow/Makefile @@ -18,25 +18,25 @@ # feature. inv.v is used as a sample reconfiguration design as one is # required to generate a partial reconfiguration design. harness_synth.dcp: harness_synthesize.tcl harness.v - vivado -mode batch -source harness_synthesize.tcl + ${XRAY_VIVADO} -mode batch -source harness_synthesize.tcl harness_impl.dcp: harness_synth.dcp inv_synth.dcp harness_implement.tcl - vivado -mode batch -source harness_implement.tcl + ${XRAY_VIVADO} -mode batch -source harness_implement.tcl # Synthesize an ROI design %_synth.dcp: %.v roi_synthesize.tcl - vivado -mode batch -source roi_synthesize.tcl -tclargs $< $@ + ${XRAY_VIVADO} -mode batch -source roi_synthesize.tcl -tclargs $< $@ # Implement an ROI design %_impl.dcp: %_synth.dcp harness_impl.dcp roi_implement.tcl - vivado -mode batch -source roi_implement.tcl -tclargs $< $@ + ${XRAY_VIVADO} -mode batch -source roi_implement.tcl -tclargs $< $@ # Generate bitstreams from an implemented design. Two bitstreams are # generated: one containing a complete design including the harness (.bit) and # one that only contains the frames that implement the ROI design # (_roi_partial.bit). %.bit: %_impl.dcp write_bitstream.tcl - vivado -mode batch -source write_bitstream.tcl -tclargs $< $@ + ${XRAY_VIVADO} -mode batch -source write_bitstream.tcl -tclargs $< $@ %_roi_partial.bit: %.bit ; # Conversions between various formats. diff --git a/minitests/picorv32-v/runme.sh b/minitests/picorv32-v/runme.sh index 059093d1..60c45cde 100644 --- a/minitests/picorv32-v/runme.sh +++ b/minitests/picorv32-v/runme.sh @@ -1,7 +1,7 @@ #!/bin/bash set -ex -vivado -mode batch -source runme.tcl +${XRAY_VIVADO} -mode batch -source runme.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit test -z "$(fgrep CRITICAL vivado.log)" ${XRAY_SEGPRINT} -z -D design.bits >design.txt diff --git a/minitests/picorv32-y/runme.sh b/minitests/picorv32-y/runme.sh index 8de51ec8..9ff4912f 100755 --- a/minitests/picorv32-y/runme.sh +++ b/minitests/picorv32-y/runme.sh @@ -2,7 +2,7 @@ set -ex yosys run_yosys.ys -vivado -mode batch -source runme.tcl +${XRAY_VIVADO} -mode batch -source runme.tcl ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit test -z "$(fgrep CRITICAL vivado.log)" ${XRAY_SEGPRINT} -z -D design.bits >design.txt diff --git a/minitests/roi_harness/runme.sh b/minitests/roi_harness/runme.sh index 8df1f02c..c69a230f 100755 --- a/minitests/roi_harness/runme.sh +++ b/minitests/roi_harness/runme.sh @@ -52,7 +52,7 @@ cat >defines.v <design.txt diff --git a/utils/environment.sh b/utils/environment.sh index 61f1afb2..6706ed57 100644 --- a/utils/environment.sh +++ b/utils/environment.sh @@ -32,4 +32,4 @@ export XRAY_BITTOOL="${XRAY_TOOLS_DIR}/bittool" export XRAY_BLOCKWIDTH="python3 ${XRAY_UTILS_DIR}/blockwidth.py" export XRAY_PARSEDB="python3 ${XRAY_UTILS_DIR}/parsedb.py" export XRAY_TCL_REFORMAT="${XRAY_UTILS_DIR}/tcl-reformat.sh" - +export XRAY_VIVADO="${XRAY_UTILS_DIR}/vivado.sh" diff --git a/utils/top_generate.sh b/utils/top_generate.sh index 3a52965c..af0409fd 100644 --- a/utils/top_generate.sh +++ b/utils/top_generate.sh @@ -12,7 +12,7 @@ if [ -f $FUZDIR/top.py ] ; then python3 $FUZDIR/top.py >top.v fi -vivado -mode batch -source $FUZDIR/generate.tcl +${XRAY_VIVADO} -mode batch -source $FUZDIR/generate.tcl test -z "$(fgrep CRITICAL vivado.log)" for x in design*.bit; do diff --git a/utils/vivado.sh b/utils/vivado.sh new file mode 100755 index 00000000..810314e3 --- /dev/null +++ b/utils/vivado.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +source "${XRAY_VIVADO_SETTINGS:-/opt/Xilinx/Vivado/2017.2/settings64.sh}" + +vivado "$@"