2.1 CMOSインバータの設計とネットリスト記述 |
---|
2.1.1 回路構成と動作原理 |
![]() 図2.1 CMOSインバータ (NOT) |
図2.1の回路は、CMOSインバータと呼ばれ、最も基本的なCMOS論理回路である。M1は、GND側がソースに接続してあり、M2は、ソースにVDDを接続してある。M1, M2 をゲート電圧で制御されるスイッチと考えると、
となっているので、出力立上りの時はM2に電流が流れ、立下りの時にはM1に電流が流れる。M1, M2の電流が同じになるようにしておけば、出力パルス波形の立ち上がり時間と立ち下がり時間が等しくなり、パルス波形の歪みは少なくなるはずだ。 |
2.1.2 MOSFETのサイズ |
各MOSFETのサイズは、試しに表2.1のように定めてシミュレーションを行う。ゲート幅 W は、p-ch MOSFET と n-ch MOSFET で、ON 状態の時に大体同じ電流値となるように、2.5倍の差をつけてある。
表2.1 各MOSFETのサイズ
Label | M1 | M2 | ![]() |
---|---|---|---|
ゲート長 L (m) | 0.5u | 0.5u | |
ゲート幅 W (m) | 1u | 2.5u | |
ソース, ドレイン長 DL, SL (m) | 1.5u | 1.5u |
M1のドレイン面積ADとソース面積ASは、AD = AS = W x DL = 1.5p (m2)。M2については、AD = AS = W x DL = 3.75p (m2) である。
【参考】より正確なトランジスタの特性をシミュレーションしたい場合は、PD(ドレイン周囲長[m]), PS(ソース周囲長[m])の値も設定すること。
2.1.3 ネットリスト |
回路図は、コンピュータが処理しやすいネットリストと呼ばれる形式で表現されている。ネットリストは、回路図からコンピュータにより自動的に作成することもできるが、この実習ではネットリストを直接テキストエディタで書くことにする。標準的なSPICEネットリストのフォーマットを知ることは、回路シミュレータの動作を理解するのに役立ち、また、シミュレーション時エラーの原因を特定するのに役立つ。また、多種類の小さい回路をシミュレーションする場合、複雑で重いCADツールを使用するよりも手軽である。ここでは、ネットリストの詳しい文法解説は省略して、実用上必要な記述方法のみを説明する。
M1, M2 に流れる電流を調べるために電流計VCM1, VCM2を挿入した回路を図2.2に示す。このインバータ特性測定回路に基づいてSPICEネットリストを作成する。M1, M2 のデバイスモデル名は、それぞれNMOS3, PMOS3とする(デバイスモデル名は半導体メーカが指定する)。MOSFETのソースとドレイン端子を間違えないように注意すること。M1, M2ともに、B(基板)端子が接続されている側がソース端子である。電源電圧VDD=3.3V。負荷容量CLの値は、出力に繋がる配線やゲートの入力容量により変化する。ここでは、10fFとしておこう。
![]() 図2.2 SPICEシミュレーション用CMOSインバータ回路 |
図2.2の回路は、図2.1の回路に素子定数を記入したものである。MOSFETの寸法は図中に(L/W)として表記してある(表2.1の値と同じ。但し、u(マイクロ)は省略してあるので注意)。 図中の (1) - (4) と記載した番号は、ノード番号またはネット名と呼ばれ、各ネット(配線)に付された番号である(文字列でもよい)。ネットリストでは、このノード番号を用いて接続関係を記述する。ノード番号の付け方には決まりはないが、GND(基準電位)のノード名として、0(ゼロ)が予約されている。 [テクニック] VCM1, VCM2 は、0Vの理想電圧源であるので、回路としては意味を持たないが、M1とM2のドレイン-ソース間の電流を測定するための電流計として挿入してある。SPICEでは、電圧源に流れる電流を調べることができるので、このように回路に影響の無い0V電圧源が電流計として使用される。電流の向きは、電圧源の+から流れ込む電流が+と定義されている。
|
[参考] 厳密には、ネット(配線)名、入・出力ポート名、信号名は、別のものであるが、SPICEでは全部同じ名前で表現される。一々定義する必要がないため、簡潔な記述ができる反面、言葉で説明しようとすると混乱しやすい。
2.1.4 ネットリスト記述方法 |
リスト2.1 インバータのネットリストとシミュレーション制御コマンド
リスト | 説明 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CMOS Inverter ver.1 * designed by Hoge Hoge, * 1/1/2000 **** Netlist **** VDD 1 0 DC 3.3V VX 3 0 DC 0V VCM1 5 0 DC 0V VCM2 1 2 DC 0V M1 4 3 5 5 NMOS3 +L=0.5u W=1.0u AD=1.5p AS=1.5p M2 4 3 2 2 PMOS3 +L=0.5u W=2.5u AD=3.75p AS=3.75p CL 4 0 10fF .LIB 'ic1.lib' typ **** Simulation **** .OP .OPTION LIST POST NODE .TEMP 25 .END |
1行目は、タイトル行。回路の名前を書いておくとよい。 *の後ろはコメント。日付と氏名(Hoge Hogeの部分)を書いておくこと。これは、バージョン管理のため重要である。 ネットリストの各行が、パーツ(部品)1つに対応し、パーツ名 接続ノード番号リスト 素子値の順にスペースで区切って記述する。例えば、電圧源の場合、
のように記述される。パーツ名は先頭文字以外は、任意の名前をつけてよい。先頭文字は、デバイスの種類を表す。表2.2によく使用する先頭文字の例を示す。また、表2.3にスケール記号を示す。MOSFETの記述フォーマットは、以下のとおり。
デバイスモデルパラメータの値は、左の例のように直接代入することができる。MOSFETの場合(表2.1の図参照)、L(ゲート長)、W(ゲート幅)、AD(ドレイン領域面積=W*DL)、AS(ソース領域面積=W*SL)を定義する必要がある。この他、ドレイン周囲長PDやソース周囲長PSも指定すると、ドレインとソース領域の形状を考慮したより正確なシミュレーションができる。 .LIBコマンドは、使用するデバイスモデルライブラリを指定する。この例では、デバイスモデルライブラリファイル=ic1.libのなかの、ライブラリtypの中に記述されている NMOS3, PMOS3 を使用するため、この.LIBコマンドを使用している。 .OPコマンドは、直流動作点の算出を行い、リストを出力する。.OPTION LIST POST NODEはシミュレーション結果のファイル出力制御のためのオプションである。.TEMPでは、回路が置かれている温度を設定する。.TEMPの後ろの数値は摂氏温度を示す。.OP, .OPTION LIST POST NODE, .TEMP 25については、「おまじない」と考えていつも付けておくとよい。 .ENDは、SPICE入力情報の終わりを表す。これは必ず必用。 [その他]
|
表2.2 先頭文字の意味
先頭文字 | V | I | M | Q | D | R | C | L | E |
---|---|---|---|---|---|---|---|---|---|
デバイス | 電圧源 | 電流源 | MOSFET | バイポーラトランジスタ | ダイオード | 抵抗 | 容量 | インダクタ | 電圧制御電流源 |
表2.3 スケール記号
記号 | f | p | n | u | m | K | MEG | G | T |
---|---|---|---|---|---|---|---|---|---|
指数部の大きさ | 1e-15 | 1e-12 | 1e-9 | 1e-6 | 1e-3 | 1e+3 | 1e+6 | 1e+9 | 1e+12 |
2.1.5 ネットリストの作成 |
ネットリストをテキストエディタ(emacs など)で入力して、inv1.spというファイル名で保存せよ。本ページからコピー&ペーストしてもよい。但し、行頭に不用なスペースが入らないよう注意すること。また、編集日時と氏名をコメント行に記入しておくこと。
Copyright © 2001 Akio Kitagawa, Kanazawa Univ. All rights reserved.