| \documentclass[tikz,border=10pt]{standalone} |
| \usepackage{tikz} |
| \usepackage{makecell} |
| |
| \usetikzlibrary{arrows} |
| \usetikzlibrary{circuits.logic.US} |
| \usetikzlibrary{matrix} |
| \usetikzlibrary{positioning} |
| \usetikzlibrary{backgrounds} |
| \usetikzlibrary{decorations.pathreplacing, positioning, shapes.geometric, shapes.misc, shadows, fit} |
| \usetikzlibrary{shapes.geometric, shapes.symbols, arrows, shadows, fit, backgrounds, 3d, plotmarks, calc, intersections, matrix, patterns} |
| |
| \tikzstyle{thin_arrow} = [draw,->,>=stealth] |
| \tikzstyle{arrow} = [thick,thin_arrow] |
| \begin{document} |
| |
| \begin{tikzpicture}[] |
| \tikzstyle{task} = [draw, rectangle, rounded corners=1.5mm, top color=red!30, bottom color=red!60, minimum width=1cm, minimum height=0.5cm] |
| \tikzstyle{run} = [draw, rectangle, rounded corners=1.5mm, top color=blue!10, bottom color=blue!40, minimum width=1cm, minimum height=0.5cm] |
| \tikzstyle{run_result} = [draw=blue!60, rectangle, rounded corners=1.5mm] |
| \tikzstyle{symlink} = [draw, rectangle, rounded corners=1.5mm, top color=blue!5, bottom color=blue!10,] |
| |
| \newcommand{\levelspace}{0.75cm} |
| \newcommand{\nodespace}{0.5cm} |
| \node[task](task) {\textless task\_name\textgreater }; |
| |
| \node[task, below=\levelspace of task, xshift=-2cm](config) {config}; |
| \node[run, right=\nodespace of config](run001) {run001}; |
| \node[run, right=\nodespace of run001](run002) {run002}; |
| \node[run, right=\nodespace of run002](run003) {run003}; |
| \node[symlink, right=\nodespace of run003](latest) {latest}; |
| |
| \node[task, below=\levelspace of config, xshift=-0.75cm](config_file) {config.txt}; |
| \node[run, right=\nodespace of config_file](arch1) {\textless arch1\textgreater }; |
| \node[run, right=\nodespace of arch1](arch2) {\textless arch2\textgreater }; |
| \node[run, right=\nodespace of arch2](archX) {...}; |
| |
| \node[run, below=\levelspace of arch1, xshift=-2.5cm](cct1) {\textless circuit1\textgreater }; |
| \node[run, right=\nodespace of cct1](cct2) {\textless circuit2\textgreater }; |
| \node[run, right=\nodespace of cct2](cctX) {...}; |
| |
| \node[run, below=\levelspace of cct1, xshift=-0.75cm](params1) {\textless params1\textgreater }; |
| \node[run, right=\nodespace of params1](params2) {\textless params2\textgreater }; |
| \node[run, right=\nodespace of params2](paramsX) {...}; |
| |
| \node[run_result, below=\levelspace of params1] (result1) {\makecell{odin.out \\ abc.out \\ vpr.out}}; |
| \node[run_result, below=\levelspace of params2] (result2) {\makecell{odin.out \\ abc.out \\ vpr.out}}; |
| |
| \draw[arrow] (task) -- (config); |
| \draw[arrow] (task) -- (run001); |
| \draw[arrow] (task) -- (run002); |
| \draw[arrow] (task) -- (run003); |
| \draw[arrow] (task) -- (latest); |
| |
| \draw[arrow, gray] (latest) -- (run003); |
| |
| \draw[arrow] (config) -- (config_file); |
| \draw[arrow] (run001) -- (arch1); |
| \draw[arrow] (run001) -- (arch2); |
| \draw[arrow] (run001) -- (archX); |
| |
| \draw[arrow] (arch1) -- (cct1); |
| \draw[arrow] (arch1) -- (cct2); |
| \draw[arrow] (arch1) -- (cctX); |
| |
| \draw[arrow] (cct1) -- (params1); |
| \draw[arrow] (cct1) -- (params2); |
| \draw[arrow] (cct1) -- (paramsX); |
| |
| \draw[arrow] (params1) -- (result1); |
| \draw[arrow] (params2) -- (result2); |
| |
| \end{tikzpicture} |
| \end{document} |