使用 Tikz 绘制复杂的逻辑电路 - 双输入缓冲门?

使用 Tikz 绘制复杂的逻辑电路 - 双输入缓冲门?

我正在尝试使用 Tikz 和 Circuit Library 绘制类似的图像,到目前为止我只能用两个标记输入(IBUFGDS 和 IBUFDS)绘制缓冲门,标准库只有一个输入的门......

有人知道我该如何开始吗?

不需要完整的绘图,我只是需要一只手:D

图片链接

到目前为止我想出了类似的东西,但这只是一个开始:P

\documentclass{article}
\usepackage{circuitikz}
\begin{document}


\begin{circuitikz} \draw
 (0,0) node[op amp] (opamp) {IBUFDS}
    (opamp.+) node[left] {$data\ ser\ p$}
    (opamp.-) node[left] {$data\ ser\ n$}
    (opamp.out) node[right] {$data\ ser$}

 (0,-5) node[op amp] (opamp) {IBUFGDS}
    (opamp.+) node[left] {$clk\ in\ p$}
    (opamp.-) node[left] {$clk\ in\ n$}
    (opamp.out) node[right] {$clk\ in$}
;\end{circuitikz}

\end{document}

答案1

操作中的标签存在一个问题,即标签中心点不在正确位置。如果使用\bulletas 标签,很容易发现这一点。它也不是节点的“中心”,如在 (0,0) 处绘制一个红点所示:

\begin{circuitikz} 
\fill[red] (0,0) circle(2pt);
\draw (0,0) node[op amp] (opamp) {$\bullet$}
    (opamp.+) node[left] {$data\ ser\ p$}
    (opamp.-) node[left] {$data\ ser\ n$}
    (opamp.out) node[right] {$data\ ser$}
;\end{circuitikz}

输出

因此,最佳选择是放置一个包含标签的新节点,相对于操作的中心(上图中的红点)定位。操作的左侧距离红点 10 毫米,因此您可以将标签放在 处(-9mm,0)。在所有操作中使用相同的量可确保所有内部标签都左对齐。以下代码实现了这个想法:

\documentclass{article}
\usepackage{circuitikz}
\begin{document}

\tikzset{opamp label/.style={xshift=-9mm, font=\footnotesize,right}}
\begin{circuitikz} 
\draw
 (0,0) node[op amp] (opamp) {}
    (opamp.+)   node[left]        {$data\ ser\ p$}
    (opamp.-)   node[left]        {$data\ ser\ n$}
    (opamp.out) node[right]       {$data\ ser$}
    (opamp)     node[opamp label] {IBUFDS}

 (0,-3) node[op amp] (opamp) {}
    (opamp.+)   node[left]        {$clk\ in\ p$}
    (opamp.-)   node[left]        {$clk\ in\ n$}
    (opamp.out) node[right]       {$clk\ in$}
    (opamp)     node[opamp label] {IBUFGDS}
;
\end{circuitikz}
\end{document}

导致:

结果

相关内容