\begin{tikzpicture} \begin{pgfonlayer}{nodelayer} \node [style={thread_player}] (0) at (0, 0) {DbiThreadPlayer}; \node [style={initiator_socket}] (1) at (3.25, 0) {}; \node [style={thread_player}] (2) at (0, -2) {DbiThreadPlayer}; \node [style={initiator_socket}] (3) at (3.25, -2) {}; \node [style={thread_player}] (4) at (0, -5) {DbiThreadPlayer}; \node [style={initiator_socket}] (5) at (3.25, -5) {}; \node [style=interconnect] (10) at (11.25, -2.5) {MultiCoupler\\(Interconnect)}; \node [style=none] (12) at (0, -3.25) {\vdots}; \node [style={target_socket}] (13) at (8.5, -2.5) {}; \node [style=none] (14) at (8.25, -2.5) {}; \node [style={initiator_socket}] (15) at (14, -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 (-3.5, 2) {}; \node [style=none] (19) at (17, 2) {}; \node [style=none] (20) at (-3.5, -7) {}; \node [style=none] (21) at (17, -7) {}; \node [style=none] (22) at (6.5, 1.25) {DbiPlayer}; \node [style=none] (23) at (14.25, -2.25) {}; \node [style=none] (24) at (14.25, -2.5) {}; \node [style=none] (25) at (14.25, -2.5) {}; \node [style=none] (26) at (14.25, -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={initiator_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}; \end{pgfonlayer} \begin{pgfonlayer}{edgelayer} \draw (1) to (14.center); \draw (3) to (14.center); \draw (5) to (14.center); \draw (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 (30.center) to (31.center); \draw (37.center) to (34.center); \draw (38.center) to (35.center); \draw (39.center) to (36.center); \draw (30.center) to (40.center); \draw (40.center) to (41.center); \draw (41.center) to (31.center); \end{pgfonlayer} \end{tikzpicture}