\documentclass{standalone} \usepackage{tikz} \usetikzlibrary{positioning, fit} \usepackage{circuitikz} \tikzset{ register/.style={flipflop, flipflop def={t1=I, t6=O, c3=1}}, } \begin{document} \begin{circuitikz} \node[register] (reg 0) {foo\_0[7:0]}; \node[register, right=1.5 of reg 0] (reg 1) {foo\_1[7:0]}; \node[register, right=1.5 of reg 1] (reg 2) {foo\_2[7:0]}; \node[draw, inner sep=10pt, fit=(reg 0) (reg 1) (reg 2), label=north:ShiftReg] {}; \draw (reg 0.pin 1) -- ++(-10pt, 0) node[ocirc, label=left:{foo\_in[7:0]}] {}; \draw (reg 0.pin 6) -- (reg 1.pin 1); \draw (reg 1.pin 6) -- (reg 2.pin 1); \draw (reg 2.pin 6) -- ++(10pt, 0) node[ocirc, label=right:{foo\_out[7:0]}] {}; \end{circuitikz} \end{document}