TikZ: Problem drawing a vertical -- horizontal line

for fun and exercise (since your problem have been solved by Bobyandbob comment) ...

in mwe below i remove from yours all unnecessary anchor extension, define few new styles which make code much shorter, all elements are positioned relative to each other. btw, it is sufficient to load each tikz library ones :-)

maybe you will find the proposed solution useful:

\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta,
                calc, 
                decorations.markings,
                positioning,
                }

    \begin{document}

    \begin{tikzpicture}[
 node distance = 8mm and 10mm,
    box/.style = {draw, minimum height=7mm, outer sep=0mm},
   ebox/.style = {% emphesize box
                  draw, thick, inner sep=0mm,
                  minimum height=2.5mm, minimum width=20mm},
      DL/.style = {% Decorated Line
                  decoration={markings,
                              mark=at position 0.5 with
                              {\draw (3pt,2pt) -- (-3pt,-2pt);}},
                  postaction={decorate}},
 mygrid/.style = {inner sep=0mm,
                  minimum height=10mm, minimum width=20mm,
                  node contents={},
                  path picture={%
                  \draw[step=2.5mm]  (path picture bounding box.south west)  grid + (2,1);
                                }
                  },
shrtdot/.style = {thick, dotted, shorten > =2.2mm, shorten <=2.2mm}
                        ]

\node[box] (opm3)                           {$Op_{-3}$};
\node[box] (opm2)       [right=2pt of opm3] {$Op_{-2}$};
\node[box] (opm1)       [right=2pt of opm2] {$Op_{-1}$};
\node[box] (opfirst)    [right=2pt of opm1] {$Op_{0}$};
\node[box] (oplast)     [right=of opfirst]  {$Op_{l-1}$};
\draw[shrtdot] (opfirst) -- (oplast);

\node[box, minimum width=65mm] (multiplexer) at (2.7,-2.0)  {Multiplexer};

\draw[DL] (opm3) -- (opm3 |- multiplexer.north);
\draw[DL] (opm2) -- (opm2 |- multiplexer.north);
\draw[DL] (opm1) -- (opm1 |- multiplexer.north);
\draw[DL] (opfirst) -- (opfirst |- multiplexer.north);
\draw[DL] (oplast)  -- (oplast  |- multiplexer.north);

\node[box,right=of multiplexer] (zaehler1) {$Z\ddot{a}hler_1$};
\draw[DL] (zaehler1) -- (multiplexer);

\node[box, minimum width=20mm,
      below=of multiplexer] (swar)  {OP};
\node [left=2pt of swar]            {SWAR};

\node[box,dotted,
      right=0mm of swar] (versatz)      {Versatz};
\node[box,dotted,
      right=of versatz] (zaehler2)  {$Z\ddot{a}hler_2$};

\draw[shrtdot]  (zaehler2) -- (versatz);
\draw[DL]       (multiplexer) -- (swar);

\node (stol) [mygrid, below right=of swar];
\node (stor) [mygrid, right=of stol];
\draw[shrtdot]   (stol) -- (stor);
\node [above=1mm of $(stol.north)!0.5!(stor.north)$] (6.5,-5.0) {Steuersignale};

\node (stul) [mygrid, below=of stol];
\node (stur) [mygrid, below=of stor];
\draw[shrtdot]   (stul) -- (stur);
\node [left=of $(stol)!0.5!(stul)$] {Steuertabelle};

\draw[shrtdot]   (stol) -- (stul);
\draw[shrtdot]   (stor) -- (stur);

\node (a) [ebox,above] at (stol.center) {};
\node     [ebox,above] at (stor.center) {};

\draw[thick,red,-Latex] (swar) |- (a);
    \end{tikzpicture}
\end{document}

enter image description here


The proposed solution of bobbyandbob (see comments) works like a charm:

\draw[thick,red,-{Latex[width=1mm]}] (swar.south) |- (4.0,-5.9);

Tags:

Tikz Pgf