\resizebox{0.94\textwidth}{!}{%
\begin{circuitikz}
    \newcommand{\add}[3]{
        \draw(#1) node[draw, circle](#2){$+$};
    }
    \newcommand{\lane}[4]{
        \def\height{#3}
        \draw(#1) node[draw, minimum width=16cm, minimum height=\height, outer sep=0, anchor=south west](#2lane){};
        \draw(#2lane.west) node[anchor=south, outer sep=0, minimum width=\height,rotate=90](#2lable){#4};
    }
    % DRAM:
    \lane{0,0}{dram}{2.5cm}{DRAM}
    \draw(2,1.25) node[draw, circle](wd){WD};      \draw(wd.south)  node[anchor=north](){\tiny $172\cdot10^{-9}$};
    \draw(5,1.25) node[draw, circle](sbe){SBE};    \draw(sbe.south) node[anchor=north](){\tiny $161\cdot10^{-9}$};
    \draw(8.5,1.25) node[draw, circle](dbe){DBE};    \draw(dbe.south) node[anchor=north](){\tiny $172\cdot10^{-9}$};
    \draw(12.5,1.25) node[draw, circle](mbe){MBE}; \draw(mbe.south) node[anchor=north](){\tiny $172\cdot10^{-9}$};
    % SEC:
    \lane{0,3.75}{sec}{3.5cm}{SEC}
    \draw[-Triangle,red] (sbe.north) -- (sbe.north|- dramlane.north) node[outport, anchor=south](dramsbeout){};
    \draw[-Triangle,red] (wd.north)  -- (wd.north |- dramlane.north) node[outport, anchor=south](dramwdout) {};
    \draw[-Triangle,red] (dbe.north) -- (dbe.north|- dramlane.north) node[outport, anchor=south](dramdbeout){};
    \draw[-Triangle,red] (mbe.north) -- (mbe.north|- dramlane.north) node[outport, anchor=south](drammbeout){};
    \draw(dramwdout.north  |-seclane.south) node [inport, anchor=north](){};
    \draw(dramsbeout.north |-seclane.south) node [inport, anchor=north](secsbein){};
    \draw(dramdbeout.north |-seclane.south) node [inport, anchor=north](secdbein){};
    \draw(drammbeout.north|-seclane.south) node [inport, anchor=north](){};
    \draw[-Triangle,red] (dramsbeout.north) -- (secsbein.south);
    \draw[-Triangle,red] (secsbein.north) -- ++(0,0.5) node[coverage, anchor=in](seccov){100\%};
    \draw[-Triangle,red] (dramdbeout.north) -- (secdbein.south);
    \draw[-Triangle,red] (secdbein.north) -- ++(0,0.5) node[split2, anchor=in, split2 left={83\%}, split2 right={17\%}](secsplit){};
    % SEC:
    \lane{0,8.5}{trim}{3.5cm}{TRIM}
    \draw[-Triangle,red] (seccov.out 1) -- (seccov.out 1|- seclane.north) node[outport, anchor=south](seccovout){};
    \draw(seccovout.north|-trimlane.south) node [inport, anchor=north](trimseccovin){};
    \draw[-Triangle,red] (seccovout.north) -- (trimseccovin.south);
    \draw[-Triangle,red] (trimseccovin.north) -- ++(0,0.5) node[split1, anchor=in, split1 top={94\%}](trimsplit1){};
    \draw[-Triangle,red] (secsplit.out 1) -- (secsplit.out 1|- seclane.north) node[outport, anchor=south](secsplitout){};
    \draw(secsplitout.north|-trimlane.south) node [inport, anchor=north](secsplitin){};
    \draw[-Triangle,red] (secsplitout.north) -- (secsplitin.south);
    \draw[-Triangle,red] (secsplitin.north) -- ++(0,0.5) node[split2, anchor=in, split2 left={11\%}, split2 right={89\%}](trimsplit2){};
    \draw[-Triangle,red] (secsplit.out 2) -- (secsplit.out 2|- seclane.north) node[outport, anchor=south](secsplitout2){};
    \draw[-Triangle,red] (secsplitout2) -- ++(0,0.5) -- ++(2.0,0) coordinate(h) -- (h|-secsplitin.south) node [inport, anchor=south](secsplitin2){};
    \draw[-Triangle,red] (secsplitin2.north) -- ++(0,0.5) node[split3, anchor=in, split3 left={0.9\%}, split3 right={83.2\%}, split3 middle={15.8\%}](trimsplit2){};
\end{circuitikz}%
}