aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNadesh Ramanathan <nadeshramanathan88@gmail.com>2020-11-10 19:48:52 +0000
committerNadesh Ramanathan <nadeshramanathan88@gmail.com>2020-11-10 19:48:52 +0000
commitf912a0913c8541cdb4f448a6cb9d4e4af822f356 (patch)
tree4d4cf864b76678fb7a1e8756d9fb23a9e40bd02f
parentec0ca701ce3d4cb474334f65c8f86dbef4cdbad6 (diff)
downloadvericert-f912a0913c8541cdb4f448a6cb9d4e4af822f356.tar.gz
vericert-f912a0913c8541cdb4f448a6cb9d4e4af822f356.zip
Adding synthesis scripts
-rw-r--r--benchmarks/polybench-syn/quartus_synth.tcl35
-rwxr-xr-xbenchmarks/polybench-syn/setup-syn-vericert.sh24
-rwxr-xr-xbenchmarks/polybench-syn/syn-remote.sh51
3 files changed, 110 insertions, 0 deletions
diff --git a/benchmarks/polybench-syn/quartus_synth.tcl b/benchmarks/polybench-syn/quartus_synth.tcl
new file mode 100644
index 0000000..6edbf0c
--- /dev/null
+++ b/benchmarks/polybench-syn/quartus_synth.tcl
@@ -0,0 +1,35 @@
+# PRiME pre-KAPow kernel flow
+# Performs pre-KAPow run steps for instrumenting arbitrary Verilog for power monitoring
+# James Davis, 2015
+
+load_package flow
+
+project_new -overwrite syn
+set_global_assignment -name FAMILY "Arria 10"
+set_global_assignment -name DEVICE 10AX115H4F34E3LG
+set_global_assignment -name SYSTEMVERILOG_FILE top.v
+set_global_assignment -name TOP_LEVEL_ENTITY main
+#set_global_assignment -name SDC_FILE syn.sdc
+#set_global_assignment -name auto_resource_sharing on
+#set_global_assignment -name enable_state_machine_inference on
+#set_global_assignment -name optimization_technique area
+#set_global_assignment -name synthesis_effort fast
+#set_global_assignment -name AUTO_RAM_RECOGNITION on
+#set_global_assignment -name remove_duplicate_registers on
+#set_instance_assignment -name RAMSTYLE_ATTRIBUTE LOGIC -to ram
+
+execute_module -tool map
+
+execute_module -tool fit
+
+execute_module -tool sta
+
+#execute_module -tool eda -args "--simulation --tool=vcs"
+
+# set_global_assignment -name POWER_OUTPUT_SAF_NAME ${kernel}.asf
+# set_global_assignment -name POWER_DEFAULT_INPUT_IO_TOGGLE_RATE "12.5 %"
+# set_global_assignment -name POWER_REPORT_SIGNAL_ACTIVITY ON
+# set_global_assignment -name POWER_REPORT_POWER_DISSIPATION ON
+# execute_module -tool pow
+
+project_close
diff --git a/benchmarks/polybench-syn/setup-syn-vericert.sh b/benchmarks/polybench-syn/setup-syn-vericert.sh
new file mode 100755
index 0000000..e9a8dda
--- /dev/null
+++ b/benchmarks/polybench-syn/setup-syn-vericert.sh
@@ -0,0 +1,24 @@
+#! /bin/bash
+
+top=$(pwd)
+ #set up
+ basedir=poly-syn
+ sshhost=nr113@ee-beholder0.ee.ic.ac.uk
+ ssh $sshhost "cd ~; rm -r $basedir"
+ ssh $sshhost "cd ~; mkdir $basedir"
+ scp quartus_synth.tcl $sshhost:$basedir
+ scp syn-remote.sh $sshhost:$basedir
+ rm syn-list
+
+ while read benchmark ;
+ do
+ echo "Copying "$benchmark" over"
+ name=$(echo $benchmark | awk -v FS="/" '{print $NF}')
+ echo "Name: "$name
+ benchdir="~/$basedir/$name"
+ scp $benchmark.v $sshhost:~/$basedir
+ echo $name >> syn-list
+ done < benchmark-list-master
+
+ # copy list over
+ scp syn-list $sshhost:$basedir
diff --git a/benchmarks/polybench-syn/syn-remote.sh b/benchmarks/polybench-syn/syn-remote.sh
new file mode 100755
index 0000000..79d4824
--- /dev/null
+++ b/benchmarks/polybench-syn/syn-remote.sh
@@ -0,0 +1,51 @@
+#! /bin/bash
+
+#setup
+while read benchmark ;
+do
+echo "Setting up "$benchmark
+rm -r $benchmark
+mkdir $benchmark
+cp $benchmark.v $benchmark/top.v
+
+done < syn-list
+
+#synthesis
+
+count=0
+while read benchmark ;
+
+do
+echo "Synthesising "$benchmark
+cd $benchmark
+quartus_sh -t ../quartus_synth.tcl &
+let "count=count+1"
+cd ..
+
+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 benchmark ; do
+ cd $benchmark
+echo $(pwd)
+ freq=$(grep MHz syn.sta.rpt | tail -2 | head -1 | awk '{print $2}')
+ lut=$(sed -n -e 8p syn.fit.summary | awk '{print $6}' | sed 's/,//g')
+ regs=$(sed -n -e 9p syn.fit.summary | awk '{print $4}')
+ bram=$(sed -n -e 13p syn.fit.summary | awk '{print $5}')
+ dsp=$(sed -n -e 14p syn.fit.summary | awk '{print $5}')
+ cd ..
+ echo $benchmark","$freq","$lut","$regs","$bram","$dsp >> results
+ done < syn-list
+