或门与异或门在使用上的区别

或门与异或门在使用上的区别

我正在尝试使用异或门制作电路图,但异或门的实现似乎与或门不同。例如,带有或门的简单图表如下所示:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits.logic.US,positioning,calc}
\begin{document}
\begin{tikzpicture}[circuit logic US]
\node[or gate, inputs=nnnn] (or1) {};
\draw
    (or1.input 1) -- ++(-1,0) node[left] {$a$}
    (or1.input 4) -- ++(-1,0) node[left] {$b$}
    (or1.output) -- ++(0.5,0) node[right] {$y$}
;\end{tikzpicture}
\end{document}

但是,如果我更改代码来制作异或门,例如:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits.logic.US,positioning,calc}
\begin{document}
\begin{tikzpicture}[circuit logic US]
\node[xor gate, inputs=nnnn] (or1) {}; %change here from or gate to xor gate
\draw
    (or1.input 1) -- ++(-1,0) node[left] {$a$}
    (or1.input 4) -- ++(-1,0) node[left] {$b$}
    (or1.output) -- ++(0.5,0) node[right] {$y$}
;\end{tikzpicture}
\end{document}

这会导致以下错误:

! Package PGF Math Error: Unknown function `input' (in 'input 4').

See the PGF Math package documentation for explanation.
Type  H <return>  for immediate help.
...                                    
l.15  (or1.input 4)
                -- ++(-1,0) node[left] {$b$}

这是错误、缺少的功能还是我做错了什么?感谢您提供的任何帮助。

答案1

这是设计使然。Anxor gate有固定数量的输入,即两个。手册中的以下部分也提到shapes.gates.logic.US

该库定义了许多形状。每个形状的允许输入数量也如下所示:

  • and门 US,两个或多个输入
  • andCDH 门,两个或多个输入
  • nand门 US,两个或多个输入
  • nandCDH 门,两个或多个输入
  • or门 US,两个或多个输入
  • nor门 US,两个或多个输入
  • xor门 US,两个输入
  • xnor门 US,两个输入
  • not门 US,一个输入
  • buffer门 US,一个输入

相关内容