\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}
  \draw (3,1) rectangle (5,2); \node (parse) at (4,1.5) {\footnotesize Parse};
  \node (in) at (4,0) {\footnotesize $j \in [|y|]$};
  \draw[->] (in) -- (4,1);
  \draw (0,3) rectangle (4,4);
  \draw (-0.1,2.9) rectangle (4.1,4.1);
  \draw[->] (3.5,2) -- (2,2.9); \node at (2.1,2.4) {\footnotesize $i \in [t]$};
  \draw (0,3) rectangle (1,4); \node at (0.5,3.5) {\footnotesize $\tau_1$};
  \draw (1,3) rectangle (2,4); \node at (1.5,3.5) {\footnotesize $\tau_2$};
  \draw (2,3) rectangle (3,4); \node at (2.5,3.5) {\footnotesize $\cdots$};
  \draw (3,3) rectangle (4,4); \node at (3.5,3.5) {\footnotesize $\tau_t$};
  \draw (1,6) rectangle (4,7); \node at (2.5,6.5) {\footnotesize Permute};
  \draw (-0.2,4.5) rectangle (0.8,5.5); \node at (0.3,5) {\footnotesize $G_0$};
  \draw (-0.3,4.4) rectangle (0.9,5.6);
  \draw[->] (0.9,5) -- (1.8,6); \node at (1.6,5.3) {\footnotesize $G_0$};
  \draw[->] (2,4.1) -- (3,6); \node at (2.7,5) {\footnotesize $\tau_i$};
  \draw (3,8) rectangle (5,9); \node at (4,8.5) {\footnotesize MUX};
  \draw[->] (2.5,7) -- (3.667,8); \node at (2.5,7.5) {\footnotesize $\tau_i(G_0)$};
  \draw[->,bend right] (4.5,2) -- (4.5,8); \node at (5.2,3) {\footnotesize $k\in[n^2]$};
  \node (out) at (4,10) {\footnotesize $y_j$};
  \draw[->] (4,9) -- (out.south);
\end{tikzpicture}

\end{document}
