summaryrefslogtreecommitdiffstats
path: root/intro.tex
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2020-09-12 12:10:58 +0100
committerYann Herklotz <git@yannherklotz.com>2020-09-12 12:10:58 +0100
commit3f0b8aa73f534052910dd419c4303faae4f74012 (patch)
tree58dab109a3ee279fcaaeef6b172f9090c4f62b40 /intro.tex
parentdfa7dc6ac0eb676ffa3f4cbe40173ea24bbd1f3d (diff)
parent4aed782b474313a00b4158cfc0a90c051b71b55a (diff)
downloadfccm21_esrhls-3f0b8aa73f534052910dd419c4303faae4f74012.tar.gz
fccm21_esrhls-3f0b8aa73f534052910dd419c4303faae4f74012.zip
Merge branch 'master' of https://git.overleaf.com/5f2d21b9b10d6c0001c164a4 into master
Diffstat (limited to 'intro.tex')
-rw-r--r--intro.tex10
1 files changed, 9 insertions, 1 deletions
diff --git a/intro.tex b/intro.tex
index 7fc8826..03b2d26 100644
--- a/intro.tex
+++ b/intro.tex
@@ -10,6 +10,7 @@ Our method is brought over from the compiler testing literature. We use a tool c
We have tested three widely used HLS tools: LegUp~\cite{canis13_legup}, Xilinx Vivado HLS~\cite{xilinx20_vivad_high_synth}, and the Intel HLS Compiler~\cite{?}. For all three tools, we were able to find valid C programs that cause crashes while compiling and valid C programs that cause wrong RTL to be generated. We have submitted a total of \ref{?} bug reports to the developers, \ref{?} of which have been confirmed and \ref{?} of which have now been fixed at the time of writing.
+\begin{framed}{An example of a fuzzed buggy program}
\begin{figure}
\centering
\begin{minted}{c}
@@ -26,7 +27,7 @@ int main() {
\caption{Miscompilation bug found in Vivado 2018.3 and 2019.2 which returns \code{0x006535FF} instead of \code{0x046535FF} which is the correct result.}\label{fig:vivado_bug1}
\end{figure}
-\paragraph{An example of a fuzzed buggy program}
+\paragraph{}
Figure~\ref{fig:vivado_bug1} shows a minimal example that produces the wrong result during RTL simulation in all three versions of VivadoHLS, compared to GCC execution.
In this example, we right shift a large integer value \code{b} by values of array elements, in array \code{a}, within iterations of a \code{for}-loop.
VivadoHLS returns \code{0x006535FF} instead of \code{0x046535FF} as in GCC.
@@ -43,7 +44,14 @@ In contrast, producing non-intuitive, complex but valid C programs is the corner
Thus, it was natural to adopt program fuzzing for our HLS testing campaign.
\NR{Yann, please double check my claims about the bug. I hope I accurately described what we discussed. }\YH{Yes I agree with all that, I think that is a good description of it}
+\end{framed}
+
+
\paragraph{Our contribution}
+\begin{itemize}
+ \item Fuzzing flow
+ \item Tested against three tools
+\end{itemize}
We hope that our work serves to stimulate efforts to improve the quality of HLS tools.