From f912a0913c8541cdb4f448a6cb9d4e4af822f356 Mon Sep 17 00:00:00 2001 From: Nadesh Ramanathan Date: Tue, 10 Nov 2020 19:48:52 +0000 Subject: Adding synthesis scripts --- benchmarks/polybench-syn/quartus_synth.tcl | 35 ++++++++++++++++++ benchmarks/polybench-syn/setup-syn-vericert.sh | 24 ++++++++++++ benchmarks/polybench-syn/syn-remote.sh | 51 ++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 benchmarks/polybench-syn/quartus_synth.tcl create mode 100755 benchmarks/polybench-syn/setup-syn-vericert.sh create mode 100755 benchmarks/polybench-syn/syn-remote.sh (limited to 'benchmarks') 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 + -- cgit