diff options
Diffstat (limited to 'picorv32/scripts/quartus/tabtest.sh')
-rw-r--r-- | picorv32/scripts/quartus/tabtest.sh | 78 |
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 - |