반전된 버블이 있는 회로 버퍼 입력

반전된 버블이 있는 회로 버퍼 입력

관련 질문Circuitikz 인버터 버블AND 게이트의 입력을 반전시키는 방법을 보여줍니다. 버퍼 게이트에서 이 작업을 어떻게 수행할 수 있나요? (오른쪽을 향한 삼각형) 문서를 찾을 수 없는 것 같습니다. 를 사용해 보았지만 키 node[buffer, inputs=i]를 인식하지 못하는 것 같습니다 inputs.


업데이트: 요소 내에서는 할 수 있지만 요소 tikzpicture내에서는 할 수 없는 것 같습니다 circuitikz. 다음은 작동하지만 이를 결합하고 요소의 일부 항목에 연결해야 합니다 circuitikz.

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits.logic.US} 

\begin{document}
\begin{tikzpicture}[circuit logic US]
\node (a) [buffer gate, inputs=i] {};
\end{tikzpicture}%
\end{document}

여기에 이미지 설명을 입력하세요

Circuitikz 도면 내에서 이것을 사용할 수 있는 방법이 있습니까?

답변1

가능한 해결책은 두 개의 인수 와 를 취하는 구문을 \buffergate통해 호출되는 버퍼 게이트를 정의하는 것입니다 . 제안된 솔루션은 로 재정의되어 버퍼 게이트를 도면 내부에서 사용할 수 있습니다 . 에서 예제를 차용하고 제안을 따릅니다.\newcommand#1=name#2= rotation anglenot port\buffergatecircuitizcircuitikz

\newcommand{\buffergate}[2] 
{  % #1 = name , #2 = rotation angle
\begin{scope}[transform shape,rotate=#2]
\draw[thick] (#1) ++(-16pt,0) coordinate[ocirc,xshift=-2pt](#1in) -- ++(0,16pt) -- ++
(30pt,-16pt)coordinate(a) -- ++(-30pt,-16pt) -- cycle;
\draw (a) --++(6pt,0)coordinate(#1out);
\end{scope}
}

뒤에 있는 논리는 아래와 같이 를 호출하고 not port, 흰색으로 색칠하고, 레이블 이름을 지정하고, 명령을 사용하는 것입니다 .\bufergate

\draw (1,0) node[not port,color=white,name=not1] () {};
\buffergate{not1}{0}  % 0 = horizontal 

여기에 이미지 설명을 입력하세요

암호

\documentclass[border=10pt,varwidth]{standalone}  
\usepackage{tikz}
\usepackage[american,siunitx]{circuitikz}
\usetikzlibrary{calc,positioning}

\newcommand{\buffergate}[2] 
{  % #1 = name , #2 = rotation angle
\begin{scope}[transform shape,rotate=#2]
\draw[thick] (#1) ++(-16pt,0) coordinate[ocirc,xshift=-2pt](#1in) -- ++(0,16pt) -- ++(30pt,-16pt)coordinate(a) -- ++(-30pt,-16pt) -- cycle;
\draw (a) --++(6pt,0)coordinate(#1out);
\end{scope}
}

\begin{document}  

An example from circuitikz 

\begin{circuitikz} 
\draw
(1,0) node[not port] (not1) {}
(3,0) node[not port] (not2) {}
(0,0) -- (not1.in)
(not2.in) -- (not1.out)
++(0,-1) node[ground] {} to [C] (not1.out)
(not2.out) -| (4,1) -| (0,0);
\end{circuitikz}


\medskip

Proposed solution 1 -- node 

\medskip

\begin{circuitikz} 
\draw
(1,0) node[not port,color=white,name=not1] () {};
\buffergate{not1}{0}
\draw (3,0) node[not port,color=white,name=not2] () {};
\buffergate{not2}{-90}
\draw (0,0) -- (not1.in);
\draw(1.7,-1) node[ground] {} to [C] (not1out)
(not2out) -| (4,1) -| (0,0);
\draw (not1out) --++(0.5,0)|- (not2in);
\end{circuitikz}



\medskip

Proposed solution 2 -- path

\medskip

\begin{circuitikz} 
\path(0.5,0) to[not port,color=white,name=not1] (1.5,0);
\buffergate{not1}{0}
\path(2.5,0) to[not port,color=white,name=not2] (3.5,0);
\buffergate{not2}{90}
\draw (0,0) -- (not1in);
\draw (1.7,-1) node[ground] {} to [C] (not1out)
(not2out) -| (4,1) -| (0,0);
\draw (not1out) --++(0.5,0)|- (not2in);
\end{circuitikz}

\end{document}

관련 정보