\begin{tikzpicture} \begin{pgfonlayer}{nodelayer} \node [style=thread player] (0) at (0, 0) {DbiThreadPlayer}; \node [style=initiator socket] (1) at (3.5, 0) {}; \node [style=thread player] (2) at (0, -2) {DbiThreadPlayer}; \node [style=initiator socket] (3) at (3.5, -2) {}; \node [style=thread player] (4) at (0, -5) {DbiThreadPlayer}; \node [style=initiator socket] (5) at (3.5, -5) {}; \node [style=interconnect thin] (10) at (11.25, -2.5) {MultiCoupler\\(Interconnect)}; \node [style=none] (12) at (0, -3.25) {\vdots}; \node [style=target socket] (13) at (8.25, -2.5) {}; \node [style=none] (14) at (8, -2.5) {}; \node [style=initiator socket] (15) at (14.25, -2.5) {}; \node [style=initiator socket] (16) at (16.75, -2.5) {}; \node [style=initiator socket] (17) at (17.25, -2.5) {}; \node [style=none] (18) at (-4, 2) {}; \node [style=none] (19) at (17, 2) {}; \node [style=none] (20) at (-4, -7) {}; \node [style=none] (21) at (17, -7) {}; \node [style=none] (22) at (6.25, 1.25) {DbiPlayer}; \node [style=none] (23) at (14.5, -2.25) {}; \node [style=none] (24) at (14.25, -2.5) {}; \node [style=none] (25) at (14.5, -2.5) {}; \node [style=none] (26) at (14.5, -2.75) {}; \node [style=none] (27) at (16.5, -2.25) {}; \node [style=none] (28) at (16.5, -2.5) {}; \node [style=none] (29) at (16.5, -2.75) {}; \node [style=none] (30) at (19.75, 2) {}; \node [style=none] (31) at (19.75, -7) {}; \node [style=target socket] (32) at (19.5, -2.5) {}; \node [style=none] (34) at (19.25, -2.25) {}; \node [style=none] (35) at (19.25, -2.5) {}; \node [style=none] (36) at (19.25, -2.75) {}; \node [style=none] (37) at (17.5, -2.25) {}; \node [style=none] (38) at (17.5, -2.5) {}; \node [style=none] (39) at (17.5, -2.75) {}; \node [style=none] (40) at (25, 2) {}; \node [style=none] (41) at (25, -7) {}; \node [style=none] (43) at (22.5, -2.5) {DRAMSys}; \node [style=none] (44) at (6.25, -3.5) {}; \end{pgfonlayer} \begin{pgfonlayer}{edgelayer} \draw [style=block] (18.center) to (19.center) to (21.center) to (20.center) to cycle; \draw (23.center) to (27.center); \draw (25.center) to (28.center); \draw (26.center) to (29.center); \draw [style=block] (30.center) to (40.center) to (41.center) to (31.center) to cycle; \draw (37.center) to (34.center); \draw (38.center) to (35.center); \draw (39.center) to (36.center); \draw (1) to (14.center); \draw (3) to (14.center); \draw (5) to (14.center); \end{pgfonlayer} \end{tikzpicture}