I figured out how to do it, and I thought it might be useful to anyone else who is having the same problem. Note, the other answers are just as valid, if not more so. Also, this is in no way perfect, and there is a great deal of cheating going on here.
End Result:

Minimal Working Example:
\usepackage{tikz}
\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,positioning,fit,petri,calc,shadows}
\begin{document}
\begin{tikzpicture}[remember picture,
simulator engine/.style={%
thick,
fill=blue!10,
draw=black!75,
rounded corners,
inner ysep=4pt,
inner xsep=4pt
},
empty simulator engine/.style={%
fill=black!10,
rounded corners,
inner ysep=20pt,
inner xsep=5pt
},
topology/.style={%
general shadow={%
shadow scale=1,
shadow xshift=0.75ex,
shadow yshift=0.75ex,
opacity=0.75,
fill=black!50,
every shadow
},
rounded corners,
thick,
draw=blue!90,
fill=blue!35,
thick,
inner ysep=2pt,
inner xsep=2pt
},
empty topology/.style={%
fill=blue!10,
inner ysep=0pt,
inner xsep=0pt
},
neuron/.style={%
general shadow={%
shadow scale=1,
shadow xshift=0.5ex,
shadow yshift=0.5ex,
opacity=0.75,
fill=black!50,
every shadow
},
thick,
fill=blue!10,
draw=blue!75,
rounded corners,
inner ysep=2pt,
inner xsep=2pt,
minimum width=0.5cm
},
empty neuron/.style={%
fill=blue!35,
inner sep=0pt,
minimum width=0.05cm
},
synapse/.style={%
general shadow={%
shadow scale=1,
shadow xshift=0.5ex,
shadow yshift=0.5ex,
opacity=0.75,
fill=black!50,
every shadow
},
draw=red!75,
thick,
fill=red!20,
rounded corners,
inner ysep=3pt,
inner xsep=3pt,
minimum width=0.5cm
},
empty synapse/.style={%
draw=blue!10,
rounded corners,
inner sep=1pt
}
]
\node[simulator engine] (simulatorEngine) {%
\begin{tikzpicture}
\node[empty topology] (simulatorEngine-label) {Simulator Engine};
\node[topology,below=0.3cm of simulatorEngine-label,xshift=-4.3cm] (topology1) {%
\begin{tikzpicture}
\node[empty neuron] (topology1-label) {$\text{Topology}_{1}$};
\node [neuron,below=0.3cm of topology1-label,xshift=-1.6cm] (neuron1-1) {%
\begin{tikzpicture}
\node [empty synapse] (synapse1-1-label) {$\text{N}_{1}$};
\node [synapse,below=0.3cm of synapse1-1-label] (synapse1-1-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapse1-1-0] (synapse1-1-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapse1-1-1] (synapse1-1-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapse1-1-2] (synapse1-1-e) {\vdots};
\node [synapse,below=0.1cm of synapse1-1-e] (synapse1-1-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\node [neuron,right=0.1cm of neuron1-1] (neuron1-2) {%
\begin{tikzpicture}
\node [empty synapse] (synapse1-2-label) {$\text{N}_{2}$};
\node [synapse,below=0.3cm of synapse1-2-label] (synapse1-2-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapse1-2-0] (synapse1-2-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapse1-2-1] (synapse1-2-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapse1-2-2] (synapse1-2-e) {\vdots};
\node [synapse,below=0.1cm of synapse1-2-e] (synapse1-2-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\node [neuron,right=0.1cm of neuron1-2] (neuron1-3) {%
\begin{tikzpicture}
\node [empty synapse] (synapse1-3-label) {$\text{N}_{3}$};
\node [synapse,below=0.3cm of synapse1-3-label] (synapse1-3-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapse1-3-0] (synapse1-3-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapse1-3-1] (synapse1-3-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapse1-3-2] (synapse1-3-e) {\vdots};
\node [synapse,below=0.1cm of synapse1-3-e] (synapse1-3-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\node [empty neuron,right=0.1cm of neuron1-3] (neuron1-e) {\ldots};
\node [neuron,right=0.1cm of neuron1-e] (neuron1-l) {%
\begin{tikzpicture}
\node [empty synapse] (synapse1-l-label) {$\text{N}_{l}$};
\node [synapse,below=0.3cm of synapse1-l-label] (synapse1-l-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapse1-l-0] (synapse1-l-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapse1-l-1] (synapse1-l-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapse1-l-2] (synapse1-l-e) {\vdots};
\node [synapse,below=0.1cm of synapse1-l-e] (synapse1-l-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\end{tikzpicture}
};
\node[topology,right=0.3cm of topology1] (topology2) {%
\begin{tikzpicture}
\node[empty neuron] (topology2-label) {$\text{Topology}_{2}$};
\node [neuron,below=0.3cm of topology2-label,xshift=-1.6cm] (neuron2-1) {%
\begin{tikzpicture}
\node [empty synapse] (synapse2-1-label) {$\text{N}_{1}$};
\node [synapse,below=0.3cm of synapse2-1-label] (synapse2-1-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapse2-1-0] (synapse2-1-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapse2-1-1] (synapse2-1-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapse2-1-2] (synapse2-1-e) {\vdots};
\node [synapse,below=0.1cm of synapse2-1-e] (synapse2-1-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\node [neuron,right=0.1cm of neuron2-1] (neuron2-2) {%
\begin{tikzpicture}
\node [empty synapse] (synapse2-2-label) {$\text{N}_{2}$};
\node [synapse,below=0.3cm of synapse2-2-label] (synapse2-2-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapse2-2-0] (synapse2-2-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapse2-2-1] (synapse2-2-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapse2-2-2] (synapse2-2-e) {\vdots};
\node [synapse,below=0.1cm of synapse2-2-e] (synapse2-2-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\node [neuron,right=0.1cm of neuron2-2] (neuron2-3) {%
\begin{tikzpicture}
\node [empty synapse] (synapse2-3-label) {$\text{N}_{3}$};
\node [synapse,below=0.3cm of synapse2-3-label] (synapse2-3-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapse2-3-0] (synapse2-3-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapse2-3-1] (synapse2-3-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapse2-3-2] (synapse2-3-e) {\vdots};
\node [synapse,below=0.1cm of synapse2-3-e] (synapse2-3-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\node [empty neuron,right=0.1cm of neuron2-3] (neuron2-e) {\ldots};
\node [neuron,right=0.1cm of neuron2-e] (neuron2-l) {%
\begin{tikzpicture}
\node [empty synapse] (synapse2-l-label) {$\text{N}_{l}$};
\node [synapse,below=0.3cm of synapse2-l-label] (synapse2-l-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapse2-l-0] (synapse2-l-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapse2-l-1] (synapse2-l-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapse2-l-2] (synapse2-l-e) {\vdots};
\node [synapse,below=0.1cm of synapse2-l-e] (synapse2-l-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\end{tikzpicture}
};
\node [empty topology,right=0.3cm of topology2] (topology-e) {\ldots};
\node[topology,right=0.1cm of topology-e] (topologyk) {%
\begin{tikzpicture}
\node[empty neuron] (topologyk-label) {$\text{Topology}_{k}$};
\node [neuron,below=0.3cm of topologyk-label,xshift=-1.6cm] (neuronk-1) {%
\begin{tikzpicture}
\node [empty synapse] (synapsek-1-label) {$\text{N}_{1}$};
\node [synapse,below=0.3cm of synapsek-1-label] (synapsek-1-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapsek-1-0] (synapsek-1-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapsek-1-1] (synapsek-1-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapsek-1-2] (synapsek-1-e) {\vdots};
\node [synapse,below=0.1cm of synapsek-1-e] (synapsek-1-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\node [neuron,right=0.1cm of neuronk-1] (neuronk-2) {%
\begin{tikzpicture}
\node [empty synapse] (synapsek-2-label) {$\text{N}_{2}$};
\node [synapse,below=0.3cm of synapsek-2-label] (synapsek-2-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapsek-2-0] (synapsek-2-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapsek-2-1] (synapsek-2-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapsek-2-2] (synapsek-2-e) {\vdots};
\node [synapse,below=0.1cm of synapsek-2-e] (synapsek-2-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\node [neuron,right=0.1cm of neuronk-2] (neuronk-3) {%
\begin{tikzpicture}
\node [empty synapse] (synapsek-3-label) {$\text{N}_{3}$};
\node [synapse,below=0.3cm of synapsek-3-label] (synapsek-3-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapsek-3-0] (synapsek-3-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapsek-3-1] (synapsek-3-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapsek-3-2] (synapsek-3-e) {\vdots};
\node [synapse,below=0.1cm of synapsek-3-e] (synapsek-3-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\node [empty neuron,right=0.1cm of neuronk-3] (neuronk-e) {\ldots};
\node [neuron,right=0.1cm of neuronk-e] (neuronk-l) {%
\begin{tikzpicture}
\node [empty synapse] (synapsek-l-label) {$\text{N}_{l}$};
\node [synapse,below=0.3cm of synapsek-l-label] (synapsek-l-0) {$\text{S}_{1}$};
\node [synapse,below=0.1cm of synapsek-l-0] (synapsek-l-1) {$\text{S}_{2}$};
\node [synapse,below=0.1cm of synapsek-l-1] (synapsek-l-2) {$\text{S}_{3}$};
\node [empty synapse,below=0.1cm of synapsek-l-2] (synapsek-l-e) {\vdots};
\node [synapse,below=0.1cm of synapsek-l-e] (synapsek-l-n) {$\text{S}_{n}$};
\end{tikzpicture}
};
\end{tikzpicture}
};
\end{tikzpicture}
};
\end{tikzpicture}
\end{document}
$\text{Synapse}_{1}$
you could writeSynapse$_1$
inner xsep
andinner ysep
to get the sides closer to the content than the top/bottom. To get control over all four is (I believe) a lot harder. What you could do for the synapses is increase theouter ysep
for the top node to distance it further from the top. You would have to find some combination of these values to get what you want then. I don't know of an easier way to really control the padding. You can also have a look at thefit
library for some automatic sizing.\text{}
seems a little bit off to me. Thats the kind of "double negative" the math fan in me is afraid of ;)