summaryrefslogtreecommitdiffstats
path: root/picorv32/scripts/quartus/tabtest.sh
diff options
context:
space:
mode:
Diffstat (limited to 'picorv32/scripts/quartus/tabtest.sh')
-rw-r--r--picorv32/scripts/quartus/tabtest.sh78
1 files changed, 0 insertions, 78 deletions
diff --git a/picorv32/scripts/quartus/tabtest.sh b/picorv32/scripts/quartus/tabtest.sh
deleted file mode 100644
index 2fd1b40..0000000
--- a/picorv32/scripts/quartus/tabtest.sh
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/bash
-
-set -e
-read _ ip dev grade _ < <( echo $* | tr '_/' ' '; )
-
-# rm -rf tab_${ip}_${dev}_${grade}
-mkdir -p tab_${ip}_${dev}_${grade}
-cd tab_${ip}_${dev}_${grade}
-
-max_speed=99
-min_speed=01
-best_speed=99
-
-synth_case() {
- if [ -f test_${1}.txt ]; then
- echo "Reusing cached tab_${ip}_${dev}_${grade}/test_${1}."
- return
- fi
-
- case "${dev}" in
- ep4ce) al_device="ep4ce30f23${grade}" ;;
- ep4cgx) al_device="ep4cgx50df27${grade}" ;;
- 5cgx) al_device="5cgxbc9c6f23${grade}" ;;
- esac
-
- cat > test_${1}.qsf <<- EOT
-set_global_assignment -name DEVICE ${al_device}
-set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
-set_global_assignment -name TOP_LEVEL_ENTITY top
-set_global_assignment -name VERILOG_FILE ../tabtest.v
-set_global_assignment -name VERILOG_FILE ../../../picorv32.v
-set_global_assignment -name SDC_FILE test_${1}.sdc
- EOT
-
- cat > test_${1}.sdc <<- EOT
- create_clock -period ${speed%?}.${speed#?} [get_ports clk]
- EOT
-
- echo "Running tab_${ip}_${dev}_${grade}/test_${1}.."
-
- if ! $QUARTUS_BIN/quartus_map test_${1}; then
- exit 1
- fi
- if ! $QUARTUS_BIN/quartus_fit --read_settings_files=off --write_settings_files=off test_${1} -c test_${1}; then
- exit 1
- fi
- if ! $QUARTUS_BIN/quartus_sta test_${1} -c test_${1}; then
- exit 1
- fi
-
- cp output_files/test_${1}.sta.summary test_${1}.txt
-}
-
-countdown=7
-while [ $countdown -gt 0 ]; do
- speed=$(((max_speed+min_speed)/2))
- synth_case $speed
-
- if grep -q '^Slack : -' test_${speed}.txt; then
- echo " tab_${ip}_${dev}_${grade}/test_${speed} VIOLATED"
- min_speed=$((speed))
- elif grep -q '^Slack : [^-]' test_${speed}.txt; then
- echo " tab_${ip}_${dev}_${grade}/test_${speed} MET"
- [ $speed -lt $best_speed ] && best_speed=$speed
- max_speed=$((speed))
- else
- echo "ERROR: No slack line found in $PWD/test_${speed}.txt!"
- exit 1
- fi
-
- countdown=$((countdown-1))
-done
-
-echo "-----------------------"
-echo "Best speed for tab_${ip}_${dev}_${grade}: $best_speed"
-echo "-----------------------"
-echo $best_speed > results.txt
-