Tikz 根据元素的锚点位置对齐元素

Tikz 根据元素的锚点位置对齐元素

我找到了很多有关节点定位的信息,但我无法真正将这些解决方案应用到我的问题上。

在此处输入图片描述

我在一个单独的文件中定义了两个节点。左侧节点有一个锚点 RD1,右侧节点有数量可变的锚点,分别名为 IN1、IN2、... 我现在要解决的问题是垂直对齐这两个锚点,以便从 RD1 到 IN1 的线是直的。

\begin{tikzpicture}[node distance=1.5cm,thick,label]
    \node [reg] (PC) at (0,0) {};
    \node [instmem] (INSTMEM) at (2,0) {};
    \node [regfile] (RF) [right=of INSTMEM] {};
    \node [extend] (EXT) [below=of RF] {};
    \node [mux,rotate=-90,anchor=IN2] (ALU) [right=of RF.RD1] {ALU};
    \node [datamem] (DATAMEM) [right=of ALU.OUT] {};
    %\node [mux,ports=4,delta=2] (ALU2) [below=of ALU] {ALU};
    \draw   (PC.PC) |- (INSTMEM.A)
            (INSTMEM.RD) |- node[midway,above right]{19:16}  (RF.A1) node[above]{RA1}
            (INSTMEM.RD) |- node[midway,above right]{15:12} (RF.A3)
            (INSTMEM.RD) |- node[midway,above right]{11:0} (EXT.IN)
            (RF.RD1) -- +(1,0) -| (ALU.IN2) node[above]{SrcA}
            (EXT.OUT) node[below]{ExtImm} |- (ALU.IN1) node[above]{SrcB}
            (ALU.OUT) -| (DATAMEM.A);
\end{tikzpicture}\\

这是我现在为这张图片使用的代码(左侧和右侧有更多元素)。我现在尝试了几件事,例如重新定位西锚点或移动整个节点。但如果我这样做,它似乎有点太混乱了。

最好的解决方案可能看起来像(ALU.IN1) right of (RF.RD1)但我不知道如何解决这一切。

完整代码位于https://github.com/MrDiver/MicroArchLatex但不需要回答这个问题。因为我只想知道如何垂直对齐两个锚点

问候潜水员

相关内容