이 트랜지스터 레벨 회로에 대한 도움말

이 트랜지스터 레벨 회로에 대한 도움말

저는 이 회로에서 작업하고 있습니다.

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

내가 한 일은 다음과 같습니다.

\documentclass[11pt]{article}

\usepackage[english]{babel}
\usepackage{circuitikz}
\usepackage{tikz}
\begin{document}

\begin{center}
\begin{circuitikz}[american voltages, european resistors]
\ctikzset { label/align = straight }
\draw (0,0) 
node[nmos](nmosA){}node[left=10mm] {$\overline{A}$} (2,0)
node[nmos](nmosB){}node[left=10mm] {B}
(nmosA.D) to (nmosB.D)
to [short,*-o] ++(1,0) {} node[right=2mm] {Y}
(1,-1.54) node[nmos](nmosC){}node[left=10mm] {C}
(nmosA.S) to (nmosC.D) to (nmosB.S);
%(nmosC.S) to node[ground]{};
\end{circuitikz}
\end{center}
\end{document}

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

접지를 연결하는 방법(제가 시도한 방법이 잘못되었습니다), 트랜지스터의 열린 단자에 원을 넣는 방법, 그리고 이상한 좌표를 입력한 이후 그리기를 개선하는 방법을 알고 싶습니다 (1,-1.54) node[nmos](nmosC){}node[left=10mm]. 누군가 비슷한 예를 가지고 있다면 큰 가치가 있을 것입니다. 문안 인사.

답변1

내가 할 방법은 다음과 같습니다. 라벨의 위치를 ​​수동으로 조정하는 대신 트랜지스터의 앵커를 사용하고 라벨 노드를 이들의 왼쪽이나 오른쪽에 배치합니다. to아무데도 연결되지 않는 경로( ++(0,0))를 사용하여 트랜지스터 앵커에 채워지거나 열린 표시를 추가할 수 있습니다.

calc또한 라이브러리를 사용하여 중간점을 계산하고 최종 트랜지스터를 드레인으로 고정함으로써 트랜지스터 "C"를 수동으로 배치하는 것을 피했습니다 .

\documentclass[tikz]{standalone}
\usepackage{circuitikz}
\usetikzlibrary{calc}
\ctikzset { label/align = straight }

\begin{document}
\begin{circuitikz}[american voltages, european resistors]
\draw (0,0) 
  node[nmos] (nmosA) {}
  (nmosA.G) to[short,-o] ++(0,0) node[left] {$\overline{A}$} (2,0)
  node[nmos] (nmosB) {}
  (nmosB.G) to[short,-o] ++(0,0) node[left] {B}
  (nmosA.D) to (nmosB.D)
  to [short,*-o] ++(1,0) {} node[right] {Y}
  (nmosA.S) to[short] (nmosB.S)
  ($(nmosA.S)!0.5!(nmosB.S)$) to[short,-*] ++(0,0) node[nmos,anchor=D] (nmosC) {}
  (nmosC.G) to[short,-o] ++(0,0) node[left] {C}
  (nmosC.S) node[ground] {};
\end{circuitikz}
\end{document}

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

관련 정보