cmosプリミティブ

cmosです・・・ではなく、cmosスイッチです。
nmosとpmosを並列に接続したもので、伝送ゲートに使われます。

cmosスイッチ or 伝送ゲートとは何か?というと、
両TrがOnの時、ソースの値を伝送し、Offの時、遮断するゲートのことです。

nmos, pmosの項で、nmos, pmosとも、
TrがOnの時はソースの値をドレインから出力する。・・・と説明したのですが、
実は、そのソースの電位がゲートの電位に近づくとTrがOffする。
といった欠点というか、特性があります。

という訳で、cmosスイッチ or 伝送ゲートは、
互いの欠点を補い合いソースの1はpmosが、0はnmosが伝送する。
という、まさしく相補型MOS。
つまり、 Complementary MOS(CMOS)な回路です。

cmosスイッチ、伝送ゲート

いかがですか?

「pmosのみをOnするという状態がないなら、PCONTROL端子はいらないのでは?」

ロジック的にはそうですね。
ただ、タイミング的には、
pmosのゲート前にインバータが必要となる分、
On/Offに時間差が生じることになりますので、
その検証用としてPCONTROLは必要になります。


では、cmosの動作をsimで確かめてみましょう。
今回は、cmosがnmos+pmosと等価であるかも確認します。

テスト回路
[cmos]
cmos回路記述

[nmos+pmos](等価回路)
等価回路記述

テストベンチ
tb_cmos.zip ・・・ポチッと

sim結果(ModelSim)
[波形]
CNTnがNch、CNTpがPchのゲートです。
見づらい箇所はログで確認してください。
波形

[ログ]


  1. OUTgとOUTrが同じ波形なので、cmosとnmos+pmosが等価なことが分かります。
  2. CNTn=0の区間は、nmosがOffの区間です。
    この区間は、pmosの真理値表通りの出力になっています。
  3. CNTn=1の区間は、nmosがOnの区間です。
    この区間は、nmosの真理値表通りの出力になっています。
    (CNTn=CNTp=1は、CNTn=CNTp=0と同様、片方のTrだけOnの状態なので省略しています)
  4. CNTn=xとzの区間は、nmos, pmosどちらの真理値表も同じです。
    nmosの真理値表通りの出力になっています。

以上です。いかがでしたか?