2238: simplify diagram

Merging a transiceiver on the baseboard and another transceiver on the mezzanine into 2x transceivers.
So the EEM line does not split into odd/even transceivers, and no more jumping lines/hyper-abstract connections.

The termination switches still repsect the physical configuration, so it is not the cleanest.
Though. the connections should be easily understood.
nix_fix
occheung 2022-01-07 13:57:17 +08:00
parent 39b10ecbd2
commit ae4015fbd7
1 changed files with 179 additions and 217 deletions

396
2238.tex
View File

@ -71,43 +71,57 @@ This card can achieve higher speed and lower jitter than the isolated 2118/2128
\scalebox{0.88}{
\begin{circuitikz}[european, scale=0.95, every label/.append style={align=center}]
% Node to pin-point the locations of MCX symbols
\draw[color=white, text=black] (-0.1, 0) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx0) {};
\draw[color=white, text=black] (-0.1, -0.35) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx1) {};
\draw[color=white, text=black] (-0.1, -0.7) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx2) {};
\draw[color=white, text=black] (-0.1, -1.05) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx3) {};
\draw[color=white, text=black] (-0.1, -1.75) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx4) {};
\draw[color=white, text=black] (-0.1, -2.1) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx5) {};
\draw[color=white, text=black] (-0.1, -2.45) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx6) {};
\draw[color=white, text=black] (-0.1, -2.8) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx7) {};
\draw[color=white, text=black] (-0.1, -3.5) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx8) {};
\draw[color=white, text=black] (-0.1, -3.85) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx9) {};
\draw[color=white, text=black] (-0.1, -4.2) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx10) {};
\draw[color=white, text=black] (-0.1, -4.55) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx11) {};
\draw[color=white, text=black] (-0.1, -5.25) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx12) {};
\draw[color=white, text=black] (-0.1, -5.6) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx13) {};
\draw[color=white, text=black] (-0.1, -5.95) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx14) {};
\draw[color=white, text=black] (-0.1, -6.3) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx15) {};
\draw[color=white, text=black] (-0.1, 0.7) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx0) {};
\draw[color=white, text=black] (-0.1, 0.35) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx1) {};
\draw[color=white, text=black] (-0.1, 0) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx2) {};
\draw[color=white, text=black] (-0.1, -0.35) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx3) {};
\draw[color=white, text=black] (-0.1, -1.05) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx4) {};
\draw[color=white, text=black] (-0.1, -1.4) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx5) {};
\draw[color=white, text=black] (-0.1, -1.75) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx6) {};
\draw[color=white, text=black] (-0.1, -2.1) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx7) {};
\draw[color=white, text=black] (-0.1, -4.2) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx8) {};
\draw[color=white, text=black] (-0.1, -4.55) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx9) {};
\draw[color=white, text=black] (-0.1, -4.9) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx10) {};
\draw[color=white, text=black] (-0.1, -5.25) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx11) {};
\draw[color=white, text=black] (-0.1, -5.95) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx12) {};
\draw[color=white, text=black] (-0.1, -6.3) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx13) {};
\draw[color=white, text=black] (-0.1, -6.65) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx14) {};
\draw[color=white, text=black] (-0.1, -7) node[twoportshape, circuitikz/bipoles/twoport/width=1.2, scale=0.4 ] (mcx15) {};
% Labels for IO 0-15
\node [label=left:\tiny{IO 0}] at (0.35, 0) {};
\node [label=left:\tiny{IO 1}] at (0.35, -0.35) {};
\node [label=left:\tiny{IO 2}] at (0.35, -0.7) {};
\node [label=left:\tiny{IO 3}] at (0.35, -1.05) {};
\node [label=left:\tiny{IO 4}] at (0.35, -1.75) {};
\node [label=left:\tiny{IO 5}] at (0.35, -2.1) {};
\node [label=left:\tiny{IO 6}] at (0.35, -2.45) {};
\node [label=left:\tiny{IO 7}] at (0.35, -2.8) {};
\node [label=left:\tiny{IO 8}] at (0.35, -3.5) {};
\node [label=left:\tiny{IO 9}] at (0.35, -3.85) {};
\node [label=left:\tiny{IO 10}] at (0.35, -4.2) {};
\node [label=left:\tiny{IO 11}] at (0.35, -4.55) {};
\node [label=left:\tiny{IO 12}] at (0.35, -5.25) {};
\node [label=left:\tiny{IO 13}] at (0.35, -5.6) {};
\node [label=left:\tiny{IO 14}] at (0.35, -5.95) {};
\node [label=left:\tiny{IO 15}] at (0.35, -6.3) {};
\node [label=left:\tiny{IO 0}] at (0.35, 0.7) {};
\node [label=left:\tiny{IO 1}] at (0.35, 0.35) {};
\node [label=left:\tiny{IO 2}] at (0.35, 0) {};
\node [label=left:\tiny{IO 3}] at (0.35, -0.35) {};
\node [label=left:\tiny{IO 4}] at (0.35, -1.05) {};
\node [label=left:\tiny{IO 5}] at (0.35, -1.4) {};
\node [label=left:\tiny{IO 6}] at (0.35, -1.75) {};
\node [label=left:\tiny{IO 7}] at (0.35, -2.1) {};
\node [label=left:\tiny{IO 8}] at (0.35, -4.2) {};
\node [label=left:\tiny{IO 9}] at (0.35, -4.55) {};
\node [label=left:\tiny{IO 10}] at (0.35, -4.9) {};
\node [label=left:\tiny{IO 11}] at (0.35, -5.25) {};
\node [label=left:\tiny{IO 12}] at (0.35, -5.95) {};
\node [label=left:\tiny{IO 13}] at (0.35, -6.3) {};
\node [label=left:\tiny{IO 14}] at (0.35, -6.65) {};
\node [label=left:\tiny{IO 15}] at (0.35, -7) {};
% Draw all female MCX connectors
% Bank 1
\begin{scope}[scale=0.07 , rotate=-90, xshift=-10cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=-5cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=0cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
@ -122,13 +136,8 @@ This card can achieve higher speed and lower jitter than the isolated 2118/2128
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=10cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
% Bank 2
\begin{scope}[scale=0.07 , rotate=-90, xshift=15cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
@ -136,8 +145,13 @@ This card can achieve higher speed and lower jitter than the isolated 2118/2128
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
% Bank 2
\begin{scope}[scale=0.07 , rotate=-90, xshift=20cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=25cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
@ -152,36 +166,8 @@ This card can achieve higher speed and lower jitter than the isolated 2118/2128
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=35cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=40cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
% Bank 3
\begin{scope}[scale=0.07 , rotate=-90, xshift=50cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=55cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=60cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
@ -196,8 +182,13 @@ This card can achieve higher speed and lower jitter than the isolated 2118/2128
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
% Bank 4
\begin{scope}[scale=0.07 , rotate=-90, xshift=70cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=75cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
@ -205,13 +196,8 @@ This card can achieve higher speed and lower jitter than the isolated 2118/2128
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=80cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
% Bank 4
\begin{scope}[scale=0.07 , rotate=-90, xshift=85cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
@ -226,6 +212,20 @@ This card can achieve higher speed and lower jitter than the isolated 2118/2128
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=95cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
\begin{scope}[scale=0.07 , rotate=-90, xshift=100cm, yshift=2cm]
\draw (0,0.65) -- (0,3);
\clip (-1.5,0) rectangle (1.5,1.5);
\draw (0,0) circle(1.5);
\clip (-0.8,0) rectangle (0.8,0.8);
\draw (0,0) circle(0.8);
\end{scope}
% Draw bank boundaries
\node[draw, dotted, thick, rounded corners, inner xsep=0.7em, inner ysep=0.2em, fit=(mcx0)(mcx3)] (bank0) {};
@ -238,261 +238,223 @@ This card can achieve higher speed and lower jitter than the isolated 2118/2128
\node[fill=white, scale=0.7, rotate=-90] at (bank3.west) {Bank 3};
% Draw bus transceivers
\draw (3.8, -0.025) node[twoportshape,t={Bus Transceiver}, circuitikz/bipoles/twoport/width=2.0, scale=0.5, rotate=-90 ] (bus0) {};
\draw (3.8, -1.675) node[twoportshape,t={Bus Transceiver}, circuitikz/bipoles/twoport/width=2.0, scale=0.5, rotate=-90 ] (bus1) {};
\draw (3.8, -4.625) node[twoportshape,t={Bus Transceiver}, circuitikz/bipoles/twoport/width=2.0, scale=0.5, rotate=-90 ] (bus2) {};
\draw (3.8, -6.275) node[twoportshape,t={Bus Transceiver}, circuitikz/bipoles/twoport/width=2.0, scale=0.5, rotate=-90 ] (bus3) {};
\draw (3.25, -0.7) node[twoportshape,t=\MymyLabel{2x 16-bits Bus}{Transceivers}, circuitikz/bipoles/twoport/width=3.2, scale=0.7, rotate=-90 ] (bus0) {};
\draw (3.25, -5.6) node[twoportshape,t=\MymyLabel{2x 16-bits Bus}{Transceivers}, circuitikz/bipoles/twoport/width=3.2, scale=0.7, rotate=-90 ] (bus1) {};
% Draw termination switches
% Bus transceiver 0
\draw (2.6, 0.5) node[twoportshape,t=\MymyLabel{High-Z/50\textOmega}{Switch \phantom{ssssss} }, circuitikz/bipoles/twoport/width=2, scale=0.4] (termswitch0) {};
\begin{scope}[xshift=2.7cm, yshift=0.53cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (1.7, 1.2) node[twoportshape,t=\MymyLabel{High-Z/50\textOmega}{Switch \phantom{ssssss} }, circuitikz/bipoles/twoport/width=2, scale=0.4] (termswitch0) {};
\begin{scope}[xshift=1.8cm, yshift=1.23cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=2.8cm, yshift=0.53cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=1.9cm, yshift=1.23cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=2.9cm, yshift=0.53cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=2.0cm, yshift=1.23cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=3cm, yshift=0.53cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=2.1cm, yshift=1.23cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
% Bus transceiver 1
\draw (2.6, -1.15) node[twoportshape,t=\MymyLabel{High-Z/50\textOmega}{Switch \phantom{ssssss} }, circuitikz/bipoles/twoport/width=2, scale=0.4] (termswitch1) {};
\begin{scope}[xshift=2.7cm, yshift=-1.12cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (1.5, -2.6) node[twoportshape,t=\MymyLabel{High-Z/50\textOmega}{Switch \phantom{ssssss} }, circuitikz/bipoles/twoport/width=2, scale=0.4] (termswitch1) {};
\begin{scope}[xshift=1.6cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=2.8cm, yshift=-1.12cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=1.7cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=2.9cm, yshift=-1.12cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=1.8cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=3cm, yshift=-1.12cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=1.9cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
% Bus transceiver 2
\draw (2.6, -5.15) node[twoportshape,t=\MymyLabel{High-Z/50\textOmega}{Switch \phantom{ssssss} }, circuitikz/bipoles/twoport/width=2, scale=0.4] (termswitch2) {};
\begin{scope}[xshift=2.7cm, yshift=-5.12cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (1.7, -3.7) node[twoportshape,t=\MymyLabel{High-Z/50\textOmega}{Switch \phantom{ssssss} }, circuitikz/bipoles/twoport/width=2, scale=0.4] (termswitch2) {};
\begin{scope}[xshift=1.8cm, yshift=-3.67cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=2.8cm, yshift=-5.12cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=1.9cm, yshift=-3.67cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=2.9cm, yshift=-5.12cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=2cm, yshift=-3.67cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=3cm, yshift=-5.12cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=2.1cm, yshift=-3.67cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
% Bus transceiver 3
\draw (2.6, -6.8) node[twoportshape,t=\MymyLabel{High-Z/50\textOmega}{Switch \phantom{ssssss} }, circuitikz/bipoles/twoport/width=2, scale=0.4] (termswitch3) {};
\begin{scope}[xshift=2.7cm, yshift=-6.77cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (1.5, -7.5) node[twoportshape,t=\MymyLabel{High-Z/50\textOmega}{Switch \phantom{ssssss} }, circuitikz/bipoles/twoport/width=2, scale=0.4] (termswitch3) {};
\begin{scope}[xshift=1.6cm, yshift=-7.47cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=2.8cm, yshift=-6.77cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=1.7cm, yshift=-7.47cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=2.9cm, yshift=-6.77cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=1.8cm, yshift=-7.47cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=3cm, yshift=-6.77cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=1.9cm, yshift=-7.47cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
% Left-extend the upcoming boundary
\draw[color=white, text=black] (1.9, -3.15) node[twoportshape, circuitikz/bipoles/twoport/width=0.4, scale=0.4 ] (bus_west) {};
% Connection termination switches to each IO line
% IO 0, 2, 4, 6
\draw [-] (1.4, 1) -- (1.4, 0.7);
\draw [-] (1.6, 1) -- (1.6, 0);
\draw [-] (1.8, 1) -- (1.8, -1.05);
\draw [-] (2, 1) -- (2, -1.75);
% Connect bus transceivers & termination switches to the boundary (I/O side)
\draw [latexslim-latexslim] (3.55, -0.4) -- (1.55, -0.4);
\draw [-] (termswitch0.south) -- (2.6, -0.4);
\node [label=center:\tiny{IO}] at (2.1, -0.3) {};
\node [label=center:\tiny{0,2,4,6}] at (2.1, -0.5) {};
% IO 1, 3, 5, 7
\draw [-] (1.2, -2.4) -- (1.2, 0.35);
\draw [-] (1.4, -2.4) -- (1.4, -0.35);
\draw [-] (1.6, -2.4) -- (1.6, -1.4);
\draw [-] (1.8, -2.4) -- (1.8, -2.1);
\draw [latexslim-latexslim] (3.55, -2.05) -- (1.55, -2.05);
\draw [-] (termswitch1.south) -- (2.6, -2.05);
\node [label=center:\tiny{IO}] at (2.1, -1.95) {};
\node [label=center:\tiny{8,10,12,14}] at (2.1, -2.15) {};
% IO 8, 10, 12, 14
\draw [-] (1.4, -3.9) -- (1.4, -4.2);
\draw [-] (1.6, -3.9) -- (1.6, -4.9);
\draw [-] (1.8, -3.9) -- (1.8, -5.95);
\draw [-] (2, -3.9) -- (2, -6.65);
\draw [latexslim-latexslim] (3.55, -4.25) -- (1.55, -4.25);
\draw [-] (termswitch2.north) -- (2.6, -4.25);
\node [label=center:\tiny{IO}] at (2.1, -4.15) {};
\node [label=center:\tiny{1,3,5,7}] at (2.1, -4.35) {};
% IO 9, 11, 13, 15
\draw [-] (1.2, -7.3) -- (1.2, -4.55);
\draw [-] (1.4, -7.3) -- (1.4, -5.25);
\draw [-] (1.6, -7.3) -- (1.6, -6.3);
\draw [-] (1.8, -7.3) -- (1.8, -7);
\draw [latexslim-latexslim] (3.55, -5.85) -- (1.55, -5.85);
\draw [-] (termswitch3.north) -- (2.6, -5.85);
\node [label=center:\tiny{IO}] at (2.1, -5.75) {};
\node [label=center:\tiny{9,11,13,15}] at (2.1, -5.95) {};
% Connect I/Os to corresponding tranceivers
\draw [latexslim-latexslim] (mcx0) -- (2.9, 0.7);
\draw [latexslim-latexslim] (mcx1) -- (2.9, 0.35);
\draw [latexslim-latexslim] (mcx2) -- (2.9, 0);
\draw [latexslim-latexslim] (mcx3) -- (2.9, -0.35);
% Connect bus transceivers to the boundary (EEM side)
\draw [latexslim-latexslim] (4.05, 0.35) -- (5.2, 0.35);
\node [label=center:\tiny{EEM}] at (4.65, 0.45) {};
\node [label=center:\tiny{0,2,4,6}] at (4.65, 0.25) {};
\draw [latexslim-] (4.05, -0.4) -- (5.2, -0.4);
\node [label=center:\tiny{Direction}] at (4.65, -0.3) {};
\node [label=center:\tiny{Bank 0,1}] at (4.65, -0.5) {};
\draw [latexslim-latexslim] (mcx4) -- (2.9, -1.05);
\draw [latexslim-latexslim] (mcx5) -- (2.9, -1.4);
\draw [latexslim-latexslim] (mcx6) -- (2.9, -1.75);
\draw [latexslim-latexslim] (mcx7) -- (2.9, -2.1);
\draw [latexslim-latexslim] (4.05, -1.3) -- (5.2, -1.3);
\node [label=center:\tiny{EEM}] at (4.65, -1.2) {};
\node [label=center:\tiny{8,10,12,14}] at (4.65, -1.4) {};
\draw [latexslim-] (4.05, -2.05) -- (5.2, -2.05);
\node [label=center:\tiny{Direction}] at (4.65, -1.95) {};
\node [label=center:\tiny{Bank 2,3}] at (4.65, -2.15) {};
\draw [latexslim-latexslim] (mcx8) -- (2.9, -4.2);
\draw [latexslim-latexslim] (mcx9) -- (2.9, -4.55);
\draw [latexslim-latexslim] (mcx10) -- (2.9, -4.9);
\draw [latexslim-latexslim] (mcx11) -- (2.9, -5.25);
\draw [latexslim-latexslim] (4.05, -4.25) -- (5.2, -4.25);
\node [label=center:\tiny{EEM}] at (4.65, -4.15) {};
\node [label=center:\tiny{1,3,5,7}] at (4.65, -4.35) {};
\draw [latexslim-] (4.05, -5) -- (5.2, -5);
\node [label=center:\tiny{Direction}] at (4.65, -4.9) {};
\node [label=center:\tiny{Bank 0,1}] at (4.65, -5.1) {};
\draw [latexslim-latexslim] (4.05, -5.85) -- (5.2, -5.85);
\node [label=center:\tiny{EEM}] at (4.65, -5.75) {};
\node [label=center:\tiny{9,11,13,15}] at (4.65, -5.95) {};
\draw [latexslim-] (4.05, -6.6) -- (5.2, -6.6);
\node [label=center:\tiny{Direction}] at (4.65, -6.5) {};
\node [label=center:\tiny{Bank 2,3}] at (4.65, -6.7) {};
% Right-extend the upcoming boundary
\draw[color=white, text=black] (4.85, -3.15) node[twoportshape, circuitikz/bipoles/twoport/width=0.4, scale=0.4 ] (bus_east) {};
% Draw central tranceivers boundary
\node[draw, dotted, thick, rounded corners, inner xsep=0.7em, inner ysep=0.4em, fit=(bus0)(termswitch3)(bus_west)(bus_east)] () {};
% Draw partition between baseboard and mezzanine with labels at the center
\draw [line width=0.4mm] (bus_west) -- (bus_east);
\node [label=above:{Baseboard}] at (3.375, -3.15) {};
\node [label=below:{Mezzanine}] at (3.375, -3.15) {};
% Connect I/Os to tranceivers block
\draw [latexslim-latexslim] (mcx0) -- (1.5, 0);
\draw [latexslim-latexslim] (mcx1) -- (1.5, -0.35);
\draw [latexslim-latexslim] (mcx2) -- (1.5, -0.7);
\draw [latexslim-latexslim] (mcx3) -- (1.5, -1.05);
\draw [latexslim-latexslim] (mcx4) -- (1.5, -1.75);
\draw [latexslim-latexslim] (mcx5) -- (1.5, -2.1);
\draw [latexslim-latexslim] (mcx6) -- (1.5, -2.45);
\draw [latexslim-latexslim] (mcx7) -- (1.5, -2.8);
\draw [latexslim-latexslim] (mcx8) -- (1.5, -3.5);
\draw [latexslim-latexslim] (mcx9) -- (1.5, -3.85);
\draw [latexslim-latexslim] (mcx10) -- (1.5, -4.2);
\draw [latexslim-latexslim] (mcx11) -- (1.5, -4.55);
\draw [latexslim-latexslim] (mcx12) -- (1.5, -5.25);
\draw [latexslim-latexslim] (mcx13) -- (1.5, -5.6);
\draw [latexslim-latexslim] (mcx14) -- (1.5, -5.95);
\draw [latexslim-latexslim] (mcx15) -- (1.5, -6.3);
\draw [latexslim-latexslim] (mcx12) -- (2.9, -5.95);
\draw [latexslim-latexslim] (mcx13) -- (2.9, -6.3);
\draw [latexslim-latexslim] (mcx14) -- (2.9, -6.65);
\draw [latexslim-latexslim] (mcx15) -- (2.9, -7);
% Draw LVDS transceivers
\draw (6.6, -0.025) node[twoportshape,t={\MymyLabel{LVDS}{Transceiver}}, circuitikz/bipoles/twoport/width=2, scale=0.5, rotate=-90 ] (lvds0) {};
\draw (6.6, -1.675) node[twoportshape,t={\MymyLabel{LVDS}{Transceiver}}, circuitikz/bipoles/twoport/width=2, scale=0.5, rotate=-90 ] (lvds1) {};
\draw (6.6, -4.625) node[twoportshape,t={\MymyLabel{LVDS}{Transceiver}}, circuitikz/bipoles/twoport/width=2, scale=0.5, rotate=-90 ] (lvds2) {};
\draw (6.6, -6.275) node[twoportshape,t={\MymyLabel{LVDS}{Transceiver}}, circuitikz/bipoles/twoport/width=2, scale=0.5, rotate=-90 ] (lvds3) {};
\draw (5.05, -0.025) node[twoportshape,t={\MymyLabel{LVDS}{Transceiver}}, circuitikz/bipoles/twoport/width=2, scale=0.5, rotate=-90 ] (lvds0) {};
\draw (5.05, -1.675) node[twoportshape,t={\MymyLabel{LVDS}{Transceiver}}, circuitikz/bipoles/twoport/width=2, scale=0.5, rotate=-90 ] (lvds1) {};
\draw (5.05, -4.625) node[twoportshape,t={\MymyLabel{LVDS}{Transceiver}}, circuitikz/bipoles/twoport/width=2, scale=0.5, rotate=-90 ] (lvds2) {};
\draw (5.05, -6.275) node[twoportshape,t={\MymyLabel{LVDS}{Transceiver}}, circuitikz/bipoles/twoport/width=2, scale=0.5, rotate=-90 ] (lvds3) {};
% Aesthetic EEPROM at each end of LVDS transceivers
\draw (6.6, 1.1) node[twoportshape,t={EEPROM}, circuitikz/bipoles/twoport/width=1.2, scale=0.5] (eeprom0) {};
\draw (6.6, -7.4) node[twoportshape,t={EEPROM}, circuitikz/bipoles/twoport/width=1.2, scale=0.5] (eeprom1) {};
\draw (5.05, 1.1) node[twoportshape,t={EEPROM}, circuitikz/bipoles/twoport/width=1.2, scale=0.5] (eeprom0) {};
\draw (5.05, -7.4) node[twoportshape,t={EEPROM}, circuitikz/bipoles/twoport/width=1.2, scale=0.5] (eeprom1) {};
% I/O expander
\draw (8.2, -3.5) node[twoportshape,t=\MymyLabel{IO Expander}{for I2C Bus}, circuitikz/bipoles/twoport/width=1.8, scale=0.5] (i2c) {};
\draw (6.65, -3.5) node[twoportshape,t=\MymyLabel{IO Expander}{for I2C Bus}, circuitikz/bipoles/twoport/width=1.8, scale=0.5] (i2c) {};
% I/O direction switches
\draw (6.6, -2.8) node[twoportshape,t=\MymyLabel{Per-bank \phantom{space} }{Input/Output Switch}, circuitikz/bipoles/twoport/width=2.7, scale=0.44] (ioswitch) {};
\begin{scope}[xshift=6.85cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (5.05, -2.8) node[twoportshape,t=\MymyLabel{Per-bank \phantom{space} }{Input/Output Switch}, circuitikz/bipoles/twoport/width=2.7, scale=0.44] (ioswitch) {};
\begin{scope}[xshift=5.3cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=6.95cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=5.4cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=7.05cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=5.5cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
\begin{scope}[xshift=7.15cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\begin{scope}[xshift=5.6cm, yshift=-2.57cm, scale=0.12, every node/.style={scale=0.1}, rotate=-90 ]
\draw (0.4,0) to[short,-o](0.75,0);
\draw (0.78,0)-- +(30:0.46);
\draw (1.25,0)to[short,o-](1.6,0) ;
\end{scope}
% EEM Ports
\draw (8.2, -0.5) node[twoportshape, t={EEM Port 0}, circuitikz/bipoles/twoport/width=3.6, scale=0.7, rotate=-90] (eem0) {};
\draw (8.2, -5.8) node[twoportshape, t={EEM Port 1}, circuitikz/bipoles/twoport/width=3.6, scale=0.7, rotate=-90] (eem1) {};
\draw (6.65, -0.5) node[twoportshape, t={EEM Port 0}, circuitikz/bipoles/twoport/width=3.6, scale=0.7, rotate=-90] (eem0) {};
\draw (6.65, -5.8) node[twoportshape, t={EEM Port 1}, circuitikz/bipoles/twoport/width=3.6, scale=0.7, rotate=-90] (eem1) {};
% Connect I/O expander & direction switches to bus transceivers block, with labelling
\draw [latexslim-latexslim] (i2c.west) -- (5.25, -3.5);
\draw [-] (ioswitch.south) -- (6.6, -3.5);
\node [label=center:\tiny{Direction}] at (5.8, -3.4) {};
\node [label=center:\tiny{Bank 0..3}] at (5.8, -3.6) {};
% Connect I/O expander & direction switches to bus transceivers block
% The transceivers had been grouped up, there is no need to label I/O direction indices anymore
% It might still be useful to identify the direction line itself, though
\draw [latexslim-] (i2c.west) -- (3.25, -3.5);
\draw [-] (ioswitch.south) -- (5.05, -3.5);
\draw [latexslim-latexslim] (bus0.east) -- (bus1.west);
\node [label=center:\tiny{IO Direction}] at (4.1, -3.4) {};
% Connect LVDS transceivers to bus transceivers, with labelling
\draw [latexslim-latexslim] (lvds0.south) -- (5.25, -0.025);
\node [label=center:\tiny{EEM}] at (5.7, 0.075) {};
\node [label=center:\tiny{0..3}] at (5.7, -0.125) {};
\draw [latexslim-latexslim] (lvds1.south) -- (5.25, -1.675);
\node [label=center:\tiny{EEM}] at (5.7, -1.575) {};
\node [label=center:\tiny{4..7}] at (5.7, -1.775) {};
\draw [latexslim-latexslim] (lvds2.south) -- (5.25, -4.625);
\node [label=center:\tiny{EEM}] at (5.7, -4.525) {};
\node [label=center:\tiny{8..11}] at (5.7, -4.725) {};
\draw [latexslim-latexslim] (lvds3.south) -- (5.25, -6.275);
\node [label=center:\tiny{EEM}] at (5.7, -6.175) {};
\node [label=center:\tiny{12..15}] at (5.7, -6.375) {};
\draw [latexslim-latexslim] (lvds0.south) -- (3.6, -0.025);
\node [label=center:\tiny{EEM}] at (4.2, 0.075) {};
\node [label=center:\tiny{0..3}] at (4.2, -0.125) {};
\draw [latexslim-latexslim] (lvds1.south) -- (3.6, -1.675);
\node [label=center:\tiny{EEM}] at (4.2, -1.575) {};
\node [label=center:\tiny{4..7}] at (4.2, -1.775) {};
\draw [latexslim-latexslim] (lvds2.south) -- (3.6, -4.625);
\node [label=center:\tiny{EEM}] at (4.2, -4.525) {};
\node [label=center:\tiny{8..11}] at (4.2, -4.725) {};
\draw [latexslim-latexslim] (lvds3.south) -- (3.6, -6.275);
\node [label=center:\tiny{EEM}] at (4.2, -6.175) {};
\node [label=center:\tiny{12..15}] at (4.2, -6.375) {};
% Connect EEM0 & EEM1
\draw [latexslim-latexslim] (lvds0.north) -- (7.85, -0.025);
\draw [latexslim-latexslim] (lvds1.north) -- (7.85, -1.675);
\draw [latexslim-latexslim] (lvds2.north) -- (7.85, -4.625);
\draw [latexslim-latexslim] (lvds3.north) -- (7.85, -6.275);
\draw [latexslim-latexslim] (eeprom0.east) -- (7.85, 1.1);
\draw [latexslim-latexslim] (eeprom1.east) -- (7.85, -7.4);
\draw [latexslim-latexslim] (lvds0.north) -- (6.3, -0.025);
\draw [latexslim-latexslim] (lvds1.north) -- (6.3, -1.675);
\draw [latexslim-latexslim] (lvds2.north) -- (6.3, -4.625);
\draw [latexslim-latexslim] (lvds3.north) -- (6.3, -6.275);
\draw [latexslim-latexslim] (eeprom0.east) -- (6.3, 1.1);
\draw [latexslim-latexslim] (eeprom1.east) -- (6.3, -7.4);
\draw [latexslim-latexslim] (eem0.east) -- (i2c.north);
% Reminder: IO directions are only selectable by bank. Channels from the same bank must have the same IO direction.
% Might be unnecessary as I/O directions signals are labelled with the "Bank" prefix.
\node [label={center:\tiny{Channels from the same bank must have the same IO direction.}}] at (2.2, -7.3) {};
\node [label={center:\tiny{Channels from the same bank}}] at (1.4, -3.05) {};
\node [label={center:\tiny{must have the same IO direction.}}] at (1.4, -3.25) {};
\end{circuitikz}
}