summaryrefslogtreecommitdiffstats
path: root/tool-figure.tex
blob: a7e013127fe06b8d2b994f0e2362ad5e1d6969ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
\begin{figure}[t]
    \centering
    \tikzset{
file/.style={draw=none, fill=black!25, shape=circle, minimum width=5mm},
block/.style={draw, minimum height=8mm,align=center},
} 
    \begin{tikzpicture}
    \node[block] (csmith) at (-1.3,1) {\strut Csmith};
    \node[block] (pragma) at (-0.2,-1) {\strut pragma \\ generation};
    \node[block] (gcc) at (2,1) {\strut GCC};
    \node[block] (hls) at (3.2,-1) {\strut HLS tool \\ under test};
    \node[block] (eq) at (5.5,1) {\strut co-simulation \\ checking };
    \node[block] (red) at (5.8,-1) {\strut reduction};
    \draw[-latex] (csmith.east) to [out=0, in=90]  (pragma.north) ;
    \draw[-latex] (csmith.east) to [auto] node {C program} (gcc.west);
    \draw[-latex] (pragma) to [auto] node[align=center] {C program \\ $+$ \\ directives} (hls) ;
    \draw[-latex] (gcc) to [auto] node {executable} (eq);
    \draw[-latex] (hls) to [auto, pos=0.3] node[inner sep=0, align=center] {Verilog \\ program} (eq) ;
    \draw[-latex,dashed,red] (eq) to [auto, pos=0.7] node [red] {fail} (red) ;
    \draw[-latex,dashed,red] (hls) to [auto] node [red] {crash} (red) ;
    % marking the test harness 
    %\node[] (label) at (3.7,1.75) {\strut Test harness} ;
    %\draw[-,dashed] (2.85,2) -- (2.85,-1.6) -- (5.2,-1.6) -- (5.2,-0.6) -- (7.1,0.3) -- (9.2,0.3) -- (9.2,2) -- (2.8,2) ;
    %\draw[-latex] (pragma) [out=360-15,in=180+15] to (red);
    %\node[] () at (4,-2) {C program};
    \end{tikzpicture}
    % \includegraphics{}
    \caption{The overall flow of our approach to fuzzing HLS tools.}
    \label{fig:method:toolflow}
\end{figure}