我找到了很多有关节点定位的信息,但我无法真正将这些解决方案应用到我的问题上。
我在一个单独的文件中定义了两个节点。左侧节点有一个锚点 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但不需要回答这个问题。因为我只想知道如何垂直对齐两个锚点
问候潜水员