\documentclass[preview]{standalone} \usepackage{tikz} \usepackage{fontspec} \setmainfont{Alegreya} \usetikzlibrary{shapes,calc,arrows.meta} \definecolor{hlscol}{HTML}{b3e2cd} \definecolor{computingcol}{HTML}{fdcdac} \definecolor{verificationcol}{HTML}{cbd5e8} \begin{document} \begin{tikzpicture} \fill[hlscol,rounded corners=8pt] (0,1) rectangle ++(3,6); \fill[computingcol,rounded corners=8pt] (3.5,1) rectangle ++(3,6); \fill[verificationcol,rounded corners=8pt] (7,1) rectangle ++(3,6); \node (hls) at (0.5,6.7) {HLS}; \node (computing) at (4.5,6.7) {Computing}; \node (verification) at (8,6.7) {Verification}; \node[draw,circle] (hlsa) at (0.5,6) {\footnotesize 1a}; \node[draw,circle] (hlsb) at (0.5,5) {\footnotesize 1b}; \node[draw,circle] (hlsc) at (0.5,4) {\footnotesize 1c}; \node[draw,circle] (hlsd) at (0.5,3) {\footnotesize 1d}; \node[draw,circle] (hlse) at (1.5,3) {\footnotesize 1b1}; \node[draw,circle] (hlsf) at (1.5,2) {\footnotesize 1b2}; \node[draw,circle] (hlsg) at (1.5,5) {\footnotesize 1a1}; \node[draw,circle] (hlsh) at (1.5,4) {\footnotesize 1a2}; \node[draw,circle] (hlsi) at (2.5,4) {\footnotesize 1a1a}; \node[draw,circle] (hlsj) at (2.5,3) {\footnotesize 1a1b}; \draw[->] (hlsa) -> (hlsb); \draw[->] (hlsb) -> (hlsc); \draw[->] (hlsc) -> (hlsd); \draw[->] (hlsb) -> (hlse); \draw[->] (hlse) -> (hlsf); \draw[->] (hlsa) -> (hlsg); \draw[->] (hlsg) -> (hlsh); \draw[->] (hlsg) -> (hlsi); \draw[->] (hlsi) -> (hlsj); \node[draw,circle] (computinga) at (4,6) {\footnotesize 2a}; \node[draw,circle] (computingb) at (4,5) {\footnotesize 2b}; \node[draw,circle] (computingc) at (4,4) {\footnotesize 2c}; \node[draw,circle] (computinge) at (5,4) {\footnotesize 2b1}; \node[draw,circle] (computingf) at (5,3) {\footnotesize 2b2}; \node[draw,circle] (computingg) at (5,2) {\footnotesize 2b3}; \node[draw,circle] (computingh) at (6,2) {\footnotesize 2b2a}; \draw[->] (computinga) -> (computingb); \draw[->] (computingb) -> (computingc); \draw[->] (computingb) -> (computinge); \draw[->] (computinge) -> (computingf); \draw[->] (computingf) -> (computingg); \draw[->] (computingf) -> (computingh); \node[draw,circle] (verificationa) at (7.5,6) {\footnotesize 3a}; \node[draw,circle] (verificationb) at (7.5,5) {\footnotesize 3b}; \node[draw,circle] (verificationc) at (7.5,4) {\footnotesize 3c}; \node[draw,circle] (verificationd) at (7.5,3) {\footnotesize 3d}; \node[draw,circle] (verificatione) at (7.5,2) {\footnotesize 3e}; \node[draw,circle] (verificationf) at (8.5,2) {\footnotesize 3d1}; \node[draw,circle] (verificationg) at (8.5,4) {\footnotesize 3b1}; \node[draw,circle] (verificationh) at (8.5,3) {\footnotesize 3b2}; \draw[->] (verificationa) -> (verificationb); \draw[->] (verificationb) -> (verificationc); \draw[->] (verificationc) -> (verificationd); \draw[->] (verificationd) -> (verificationf); \draw[->] (verificationd) -> (verificatione); \draw[->] (verificationb) -> (verificationg); \draw[->] (verificationg) -> (verificationh); %\draw[->] (hlsh) -> (computinga); %\draw[->] (hlsg) -> (computingb); %\draw[->] (hlsi) -> (computingg); %\draw[->] (computingf) -> (hlsj); %\draw[->] (computingh) to [out=60,in=225] ($(computingh) + (0.8,1.3)$) to [out=45,in=210] (verificationg); %\draw[->] (hlsd) -> (hlsh); %\draw[->] (hlsg) to [out=20,in=160] (verificationb); \end{tikzpicture} \end{document}