aboutsummaryrefslogtreecommitdiffstats
path: root/benchmarks/polybench-syn
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/polybench-syn')
-rw-r--r--benchmarks/polybench-syn/benchmark-list-master1
-rwxr-xr-xbenchmarks/polybench-syn/setup-syn-vivado.sh25
-rwxr-xr-xbenchmarks/polybench-syn/syn-quartus.sh (renamed from benchmarks/polybench-syn/syn-remote.sh)0
-rw-r--r--benchmarks/polybench-syn/syn-quartus.tcl (renamed from benchmarks/polybench-syn/quartus_synth.tcl)0
-rwxr-xr-xbenchmarks/polybench-syn/syn-vivado.sh56
-rw-r--r--benchmarks/polybench-syn/syn-vivado.tcl6
6 files changed, 87 insertions, 1 deletions
diff --git a/benchmarks/polybench-syn/benchmark-list-master b/benchmarks/polybench-syn/benchmark-list-master
index ef0d0d0..142c7c6 100644
--- a/benchmarks/polybench-syn/benchmark-list-master
+++ b/benchmarks/polybench-syn/benchmark-list-master
@@ -1,4 +1,3 @@
-stencils/adi
stencils/heat-3d
stencils/fdtd-2d
stencils/jacobi-1d
diff --git a/benchmarks/polybench-syn/setup-syn-vivado.sh b/benchmarks/polybench-syn/setup-syn-vivado.sh
new file mode 100755
index 0000000..3441c0f
--- /dev/null
+++ b/benchmarks/polybench-syn/setup-syn-vivado.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+#set up
+sshhost="$1"
+basedir=${2:-"poly-syn-vivado"}
+
+echo "Setting up in $sshhost:$basedir"
+
+echo "Creating directory"
+ssh -q "$sshhost" "cd ~; rm -r $basedir; mkdir $basedir"
+
+echo "Copying scripts over"
+scp -q syn-vivado.tcl "$sshhost:$basedir"
+scp -q syn-vivado.sh "$sshhost:$basedir"
+rm syn-list
+
+while read -r benchmark; do
+echo "Copying $benchmark over"
+name=$(echo "$benchmark" | awk -v FS="/" '{print $NF}')
+scp -q "$benchmark.v" "$sshhost:~/$basedir"
+echo "$name" >> syn-list
+done < benchmark-list-master
+
+echo "Copying syn-list"
+scp -q syn-list "$sshhost:$basedir"
diff --git a/benchmarks/polybench-syn/syn-remote.sh b/benchmarks/polybench-syn/syn-quartus.sh
index 879db2e..879db2e 100755
--- a/benchmarks/polybench-syn/syn-remote.sh
+++ b/benchmarks/polybench-syn/syn-quartus.sh
diff --git a/benchmarks/polybench-syn/quartus_synth.tcl b/benchmarks/polybench-syn/syn-quartus.tcl
index 6edbf0c..6edbf0c 100644
--- a/benchmarks/polybench-syn/quartus_synth.tcl
+++ b/benchmarks/polybench-syn/syn-quartus.tcl
diff --git a/benchmarks/polybench-syn/syn-vivado.sh b/benchmarks/polybench-syn/syn-vivado.sh
new file mode 100755
index 0000000..2b310cb
--- /dev/null
+++ b/benchmarks/polybench-syn/syn-vivado.sh
@@ -0,0 +1,56 @@
+#! /bin/bash
+
+#setup
+while read -r benchmark; do
+ echo "Setting up $benchmark"
+ rm -r "$benchmark-vivado"
+ mkdir "$benchmark-vivado"
+ cp "$benchmark.v" "$benchmark-vivado/top.v"
+done < syn-list
+
+#synthesis
+count=0
+while read -r benchmark; do
+ echo "Synthesising $benchmark"
+
+ cd "$benchmark-vivado" || {
+ echo "$benchmark dir does not exist"
+ continue
+ }
+ vivado -mode batch -source ../syn-vivado.tcl
+ cd ..
+ (( count=count+1 ))
+
+ if [ "$count" -eq 4 ]; then
+ echo "I am here"
+ wait
+ count=0
+ fi
+done < syn-list
+
+if [ $count -lt 4 ]; then
+wait
+fi
+
+#extract
+while read -r benchmark ; do
+ cd "$benchmark-vivado" || {
+ echo "$benchmark-vivado does not exist"
+ continue
+ }
+
+ pwd
+ logfile="vivado.log"
+ timingfile="worst_timing.txt"
+
+ luts=$(grep "|LUT" "$logfile" | cut -d'|' -f 4 | paste -sd + | bc)
+ brams=$(sed -n -e "s/BRAMs: \([0-9]\+\).*$/\1/p" "$logfile")
+ dsps=$(sed -n -e "s/DSPs: \([0-9]\+\).*$/\1/p" "$logfile")
+ cells=$(grep -A4 "Report Instance Areas:" "$logfile" | tail -1 | cut -d '|' -f5 | tr -d [:space:])
+ slack=$(sed -n -e 's/\s\+slack\s\+\(-\?[0-9.]\+\)/\1ns/p' "$timingfile" | tr -d [:space:])
+
+ cd ..
+
+ echo "$benchmark,$slack,$luts,$brams,$dsps" >> results
+done < syn-list
+
diff --git a/benchmarks/polybench-syn/syn-vivado.tcl b/benchmarks/polybench-syn/syn-vivado.tcl
new file mode 100644
index 0000000..733a94e
--- /dev/null
+++ b/benchmarks/polybench-syn/syn-vivado.tcl
@@ -0,0 +1,6 @@
+create_project -in_memory -part xc7k70t
+read_verilog top.v
+synth_design -part xc7k70t -top main
+create_clock -name clk -period 5.000 [get_ports clk]
+report_timing -nworst 1 -path_type full -input_pins -file worst_timing.txt
+write_verilog -force out.v