绘制两个相互呈 90 度的 PMOS

绘制两个相互呈 90 度的 PMOS

在此处输入图片描述有人能帮我画出两个相互成 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}

在此处输入图片描述

相关内容