From 9dbc96e3302db5b45cbcf4b14dc54d53b5b46aa6 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Thu, 20 Jul 2017 09:56:30 +0200 Subject: Update vivado evaluations --- scripts/vivado/Makefile | 16 ++++++++++------ scripts/vivado/table.sh | 2 ++ scripts/vivado/tabtest.sh | 33 ++++++++++++++++++++++----------- 3 files changed, 34 insertions(+), 17 deletions(-) (limited to 'scripts') diff --git a/scripts/vivado/Makefile b/scripts/vivado/Makefile index 4e109d2..ecade93 100644 --- a/scripts/vivado/Makefile +++ b/scripts/vivado/Makefile @@ -1,5 +1,5 @@ -VIVADO_BASE = /opt/Xilinx/Vivado/2016.1 +VIVADO_BASE = /opt/Xilinx/Vivado/2017.2 VIVADO = $(VIVADO_BASE)/bin/vivado XVLOG = $(VIVADO_BASE)/bin/xvlog XELAB = $(VIVADO_BASE)/bin/xelab @@ -8,6 +8,9 @@ TOOLCHAIN_PREFIX = riscv64-unknown-elf- export VIVADO +# work-around for http://svn.clifford.at/handicraft/2016/vivadosig11 +export RDI_VERBOSE = False + help: @echo "" @echo "Simple synthesis tests:" @@ -49,11 +52,12 @@ tab_%/results.txt: area: synth_area_small synth_area_regular synth_area_large -grep -B4 -A10 'Slice LUTs' synth_area_small.log synth_area_regular.log synth_area_large.log -table.txt: tab_small_xc7a_1/results.txt tab_small_xc7a_2/results.txt tab_small_xc7a_3/results.txt -table.txt: tab_small_xc7k_1/results.txt tab_small_xc7k_2/results.txt tab_small_xc7k_3/results.txt -table.txt: tab_small_xc7v_1/results.txt tab_small_xc7v_2/results.txt tab_small_xc7v_3/results.txt -table.txt: tab_small_xcku_1/results.txt tab_small_xcku_2/results.txt tab_small_xcku_3/results.txt -table.txt: tab_small_xcvu_1/results.txt tab_small_xcvu_2/results.txt tab_small_xcvu_3/results.txt +table.txt: tab_small_xc7k_2/results.txt tab_small_xc7k_3/results.txt +table.txt: tab_small_xc7v_2/results.txt tab_small_xc7v_3/results.txt +table.txt: tab_small_xcku_2/results.txt tab_small_xcku_3/results.txt +table.txt: tab_small_xcvu_2/results.txt tab_small_xcvu_3/results.txt +table.txt: tab_small_xckup_2/results.txt tab_small_xckup_3/results.txt +table.txt: tab_small_xcvup_2/results.txt tab_small_xcvup_3/results.txt table.txt: bash table.sh > table.txt diff --git a/scripts/vivado/table.sh b/scripts/vivado/table.sh index f81f586..81e2cf4 100644 --- a/scripts/vivado/table.sh +++ b/scripts/vivado/table.sh @@ -13,6 +13,8 @@ do xc7v) d="Xilinx Virtex-7T" ;; xcku) d="Xilinx Kintex UltraScale" ;; xcvu) d="Xilinx Virtex UltraScale" ;; + xckup) d="Xilinx Kintex UltraScale+" ;; + xcvup) d="Xilinx Virtex UltraScale+" ;; esac speedtxt=$( printf '%s.%s ns (%d MHz)' ${speed%?} ${speed#?} $((10000 / speed)) ) printf '| %-25s | %-10s | %20s |\n' "$d" "-$grade" "$speedtxt" diff --git a/scripts/vivado/tabtest.sh b/scripts/vivado/tabtest.sh index fa43fc3..bc3d840 100644 --- a/scripts/vivado/tabtest.sh +++ b/scripts/vivado/tabtest.sh @@ -8,7 +8,7 @@ mkdir -p tab_${ip}_${dev}_${grade} cd tab_${ip}_${dev}_${grade} best_speed=99 -speed=30 +speed=20 step=16 synth_case() { @@ -18,17 +18,12 @@ synth_case() { fi case "${dev}" in - xc7a) xl_device="xc7a15t-fgg484-${grade}" ;; xc7k) xl_device="xc7k70t-fbg676-${grade}" ;; xc7v) xl_device="xc7v585t-ffg1761-${grade}" ;; - xcku) xl_device="xcku035-fbva676-${grade}" ;; - xcvu) xl_device="xcvu065-ffvc1517-${grade}" ;; - esac - - case "${dev}-${grade}" in - xcku-1) xl_device="${xl_device}-c" ;; - xcvu-1) xl_device="${xl_device}-i" ;; - xcku-?|xcvu-?) xl_device="${xl_device}-e" ;; + xcku) xl_device="xcku035-fbva676-${grade}-e" ;; + xcvu) xl_device="xcvu065-ffvc1517-${grade}-e" ;; + xckup) xl_device="xcku3p-ffva676-${grade}-e" ;; + xcvup) xl_device="xcvu3p-ffvc1517-${grade}-e" ;; esac cat > test_${1}.tcl <<- EOT @@ -60,19 +55,24 @@ synth_case() { mv test_${1}.log test_${1}.txt } +got_violated=false +got_met=false + countdown=2 while [ $countdown -gt 0 ]; do synth_case $speed if grep -q '^Slack.*(VIOLATED)' test_${speed}.txt; then echo " tab_${ip}_${dev}_${grade}/test_${speed} VIOLATED" - [ $speed -eq 38 ] || step=$((step / 2)) + step=$((step / 2)) speed=$((speed + step)) + got_violated=true elif grep -q '^Slack.*(MET)' test_${speed}.txt; then echo " tab_${ip}_${dev}_${grade}/test_${speed} MET" [ $speed -lt $best_speed ] && best_speed=$speed step=$((step / 2)) speed=$((speed - step)) + got_met=true else echo "ERROR: No slack line found in $PWD/test_${speed}.txt!" exit 1 @@ -85,6 +85,17 @@ while [ $countdown -gt 0 ]; do fi done +if ! $got_violated; then + echo "ERROR: No timing violated in $PWD!" + exit 1 +fi + +if ! $got_met; then + echo "ERROR: No timing met in $PWD!" + exit 1 +fi + + echo "-----------------------" echo "Best speed for tab_${ip}_${dev}_${grade}: $best_speed" echo "-----------------------" -- cgit