有人能帮我画出两个相互成 90 度的 PMOS 吗,如附图所示?提前谢谢了。
编辑:
下面是我在努力弯曲PMOS方向之前写下的代码。
\documentclass[tikz,border=10pt]{standalone}
\usepackage[siunitx]{circuitikz}
\begin{document}
\begin{circuitikz}
\begin{scope}[scale=0.525]
\draw[color=black, thin]
%% Inverters are drawn
(0,0) node[pmos,xscale=-1] (pmos1) {}
(16,0) node[pmos] (pmos2) {}
(8,-1) node[pmos] (pmos3) {} to (8,-5)
;
\end{scope}
\end{circuitikz}
\结束{文档}
祝好 Saikat
答案1
我只能赞同薛定谔的猫在他的评论中所写的内容。
然而,你的示意图中的一个神秘元素引起了我的注意,我忍不住要实现它。不幸的是,我仍然不知道这个符号代表什么。
这是展示新元素运行的示例。巧合的是,它展示了三个晶体管的排列,就像您的图片中一样。请尽情发挥您的想象力,制作您自己的版本。
\documentclass{article}
\usepackage{amsmath}
\usepackage[nooldvoltagedirection]{circuitikz}
\makeatletter
\pgfcircdeclarebipolescaled{capacitors}
{}
{\ctikzvalof{bipoles/mysterious/height}}
{mysterious}
{\ctikzvalof{bipoles/mysterious/height}}
{\ctikzvalof{bipoles/mysterious/width}}
{
\pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
\pgf@circ@res@step = \ctikzvalof{bipoles/mysterious/width}\pgf@circ@Rlen
\divide \pgf@circ@res@step by 12
\pgf@circ@res@temp = \ctikzvalof{bipoles/mysterious/height}\pgf@circ@scaled@Rlen
\divide \pgf@circ@res@temp by 20
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+6*\pgf@circ@res@step}{\pgf@circ@res@down}}
\pgfpathlineto{\pgfpoint{\pgf@circ@res@left+6*\pgf@circ@res@step}{\pgf@circ@res@down+3*\pgf@circ@[email protected]*\pgf@circ@Rlen}}
\pgfusepath{draw}
\pgfpathcircle{%
\pgfpoint{\pgf@circ@res@left+6*\pgf@circ@res@step}{\pgf@circ@res@down+3*\pgf@circ@[email protected]*\pgfstartlinewidth}
}{0.04*\pgf@circ@Rlen}
\pgfusepath{draw}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down+3*\pgf@circ@res@temp+\pgfstartlinewidth+0.04*\pgf@circ@Rlen}}
\pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down+3*\pgf@circ@res@temp+\pgfstartlinewidth+0.04*\pgf@circ@Rlen}}
\pgfusepath{draw}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+6*\pgf@circ@res@step}{\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint{\pgf@circ@res@left+6*\pgf@circ@res@step}{\pgf@circ@res@up-3*\pgf@circ@[email protected]*\pgf@[email protected]*\pgfstartlinewidth}}
\pgfusepath{draw}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up-3*\pgf@circ@[email protected]*\pgf@circ@Rlen-\pgfstartlinewidth}}
\pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up-3*\pgf@circ@[email protected]*\pgf@circ@Rlen-\pgfstartlinewidth}}
\pgfusepath{draw}
% Inner Block
\pgfscope
\pgfpathrectanglecorners
{\pgfpoint{\pgf@circ@res@left+\pgfstartlinewidth}{\pgf@circ@res@up-3*\pgf@circ@[email protected]*\pgf@circ@Rlen}}
{\pgfpoint{\pgf@circ@res@right-\pgfstartlinewidth}{\pgf@circ@res@down+3*\pgf@circ@res@temp+0.12*\pgf@circ@Rlen}}
\pgf@circ@draworfill
\endpgfscope
}
\def\pgf@circ@mysterious@path#1{\pgf@circ@bipole@path{mysterious}{#1}}
\compattikzset{%
mysterious/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@mysterious@path, l=#1}
}
\makeatother
\ctikzset{
bipoles/mysterious/width/.initial = .25,
bipoles/mysterious/height/.initial = 0.8
}
\begin{document}
\begin{circuitikz}
\draw
(0,0) node[above]{$V_\text{dd}$} to[Tpmos, n=t1, o-] (0,-2) to (0,-3) to[mysterious] (0,-6) { (\tikztotarget) edge[dashed] ++(0,-0.66) }
(6,0) node[above]{$V_\text{dd}$} to[Tpmos, n=t2, mirror, o-] (6,-2) to (6,-3) to[mysterious, mirror] (6,-6) { (\tikztotarget) edge[dashed] ++(0,-0.66) };
\draw (t1.G) to[short] (t2.G);
\draw (3,0) node[above]{$\phi_\text{pre}$} to[short, o-*] (\tikztostart |- t1.G);
\draw (0,-2) to[Tpmos, *-*] (6,-2);
\end{circuitikz}
\end{document}