1

第３章 回路図の作成法 （インバータ回路）
本章では、CMOS インバータ回路を作成して、NS-Draw での実際の回路作成方法を学びます。
３．１ インバータ回路の入力
３．２ インバータ回路のシミュレーションの準備
３．３ インバータ回路のシミュレーションの実行
３．１ インバータ回路の入力
まず、NS-Draw を再起動、または「ファイル」→「新規作成」を行ってください。メニューバーの中の、回路ブロック(アイコン)の挿入をクリックしてください。これは、文字メニュー中の「入力選択」→「アイコン呼び出しi」でも、同様です。また、画面上でマウス右クリックで、「アイコン（部品）呼出i」を選択、または、キーボードから、「i」キーを押しても同様のコマンド実行という意味になります。操作に慣れてきたら、よく使うコマンドは、右クリックまたは、キーボード入力を利用する機会が増えてくると思います。

図３．１．１ NS-Draw の再起動直後、（メニューバーより、アイコン入力を選択）

2

図３．１．２ アイコン挿入メニュー
ライブラリパスから spice を選択し、nmos4M.nsd を選択します。これは、基板端子付きの nMOSFET です。

3

図３．１．３ nmos4m（4 端子 MOS）トランジスタの呼び出し
nMOSFET 素子が呼び出されて、マウスについてきます。移動中は、画面内に残骸のようなものが残ることがありますが、そのまま画面内の十字印の下あたりでクリックし、配置します。色は、赤で表示されていますが、これは、選択状態にあることを示しています。素子上にマウスを置き、そのままドラッグすると、素子を移動できます。また、素子以外の場所を左クリックすると、選択状態が解除されます。
ここで、図面を ZoomIn(z キー）したり、ZoomOut(SHIFT+z キー）したり、カーソル移動キー（←, ↑, ↓, →）で画面を動かして、図３．１．３のような位置に素子が見えるようにしてください。
（v キーを押せば、FitZone になります。これらは、メニュー
バーの Z+、Z-、ZF ボタンを使用しても結構です。図面のズームは、メニューバー中の虫眼鏡を選択して、拡大したいエリアをドラッグすることでもできます。
）
ここで、nMOSFET 素子の脇に M=1,W=4u および L=Ln と表示されています。これは、この nMOSFET のゲート幅 W が 4（um）、ゲート長 L が Ln （um）の素子が１個であることを示しています。

4

nMOSFET の W 値を、例えば W=1um に変えてみましょう。図３の nMOSFET をダブルクリックしてください。図４のような「プロパティ一覧」というウィンドウが開きます。

図３．１．４ プロパティ値の変更
プロパティ一覧ウィンドウの中の「Property」項の W に対応する「Value」ボックスに、1u という値を入力してください。入力できたら OK ボタンをクリックしてウィンドウを閉じてください。図５のような表示になるはずです。これで、この nMOSFET の W の値が 1u に変更されました。

図３．１．５ プロパティ値の変更後

5

次に pMOSFET を呼び出しましょう。上と同様に、まずアイコン挿入によりライブラリ
パス spice の pmos4M.nsd を選択して nMOSFET の上あたりに配置します。pMOSFET の W
値は 2u とします。
「プロパティ一覧」ウインドウを開き、W 項に 2u と入力してください。

図３．１．６ pMOSFET の挿入
次に、二つの MOSFET を配線により、接続します。メニューバーから配線入力(w)を選択、または右クリック、または w キーを押してください。NS-Draw 回路図上でのマウス形状がペンの形に変わります。

6

図３．１．７ メニューバーから配線入力（ｗ）を選択
左クリックで、配線の描画の始点を指定し、左クリックを繰り返すことで、配線の折れ点を指定できます。配線の終点は、ダブルクリックです。右クリックは、左クリックの 1 回キャンセルになります。まず、ゲート端子同士を接続して見ましょう。

図３．１．８ ゲート端子の接続配線が行われると、ゲート端子についていた赤い四角印がなくなります。この端子につく赤い四角は、端子が接続されていないことを示す警告サインになっています。また、

7

作業中に、図面上に残骸のようなものが残るときには、v キーを押してください。適当なサイズで図面が再描画（Zone Fit）されます。配線直後は配線自身が選択状態になっていますので、赤い線になっています。ここで、もし配線に失敗した場合は、一旦、回路図外の図面内を左クリックして、配線の選択状態を非選択（青い線）にして、Ctr-Zを数回キー入力するか、左ドラッグで間違えた配線を選択して、Delete（DEL キー）して、再度配線してください。
さらに同様に、ｗキーを押してドレイン端子同士も接続し、また、各 MOSFET の基板端子も電源側へ接続して、図９のようにインバータ回路図らしく配線しましょう。

図３．１．９ インバータ回路の配線
次に、電源端子と入出力端子を配置します。図３．１．９において、メニューから「入力選択」→「端子」あるいは右クリック、またはメニューバーから「I/O や電源端子の入力(Shift-T)」を選択します。

8

図３．１．１０ 電源や I/O 端子の選択
まず、Input 端子を選び、OK をクリックします。入力端子を配置し、さらに、配置した入力端子をダブルクリックしますと、プロパティ一覧として、端子名の入力画面が出てきます。name のところの値として、in という名前を入力します。

図３．１．１１ 入力端子の追加

図３．１．１２ 入力端子名の指定

9

図３．１．１３ 入力端子の名前付け
同様に、Output 端子をつけ、名前を out とします。

図３．１．１４ 電源の端子付け
次に、電源端子ですが、電源用の「Global」という端子を使います。電源とグランドに配置して、それぞれ、Vdd, Gnd と名前付けしてください。
ここで、Vdd 側の電源端子の向きが適当でないので、Vdd 端子を選択して、キーボー

10ドから、y を押してください。y 軸方向にミラー反転するはずです。同様に x を押せばx 軸、r を押せば９０度回転です。x、y、r の３つのキーで、向きを自在に変更できます。
最後に、「アイコン挿入」から、basic ライブラリ中の、title.nsd を選択して、回路図の上側に配置します。これで一応回路図は完成です。

図３．１．１５ title.nsd の配置
メニューバーの「ファイル」→「名前を付けて保存」により、設計データを保存したい場所に、適当な名前をつけてセーブしてください。ここでは、フォルダ
C:\Design\ns-tools\example\CHAPTER_3(INVERTER) の下に inv0.nsd という名前でセーブします。

11

図３．１．１６ インバータ回路のセーブ

図３．１．１７ CMOS インバータ回路の完成
セーブが完了すると、配置した直後には空欄だった title.nsd 中の Path: 欄に、こ12の回路図のファイル名がフルパスで表示されます。

13

３．２ インバータ回路のシミュレーションの準備
次に、この回路をシミュレーションできるようにします。シミュレーションに必要なドットコマンド等を回路図中に書き込みます。これには、basic ライブラリ中のnetlist_line_SPICE.nsd を呼び出します。デフォルトでは、.tran コマンドが記述されています。回路図中の適当な空き領域に配置して、ダブルクリックして、プロパティを表示させます。

図３．２．１ netlist_line_SPICE のプロパティ
この command 部分を書き換えます。まず、入力欄がやや狭いので、キャンセルボタン右横の「>>」ボタンを押して欄の幅を広げます。
次に、command 部分を、DC 解析を行うために、.dc VIN 0V 1.8V 0.01Vと変更します。
（VIN は入力信号用の電源名です。）

図３．２．２ シミュレーション用記述の埋め込み14

続いて、回路動作に必要な電源に対する netlist_line_SPICE.nsd を３つ追加します。
既に回路図上に配置した netlist_line_SPICE.nsd を左クリックして選択し、C キーを押すことによってコピーできます。入力電源として VIN、電源電圧として２つの DC 電
圧源 VVDD と VGND を定義します。
VIN in 0 DC 0V
VVDD Vdd 0 DC 1.8V
VGND Gnd 0 DC 0V
次に、MOSFET のモデルパラメータファイルをインクルードします。
.include MOS_018.bsim3
さらに、データ出力するノード名（in, out）を.print または、.save 文で指定します。 .print/.save 文の中に「i(電源名)」または「電源名#branch」と記述しますと、該当する電源素子に流れる電流値を出力させることができます。
.print V(in) V(out) I(VGND)
また、２つのノード間の電圧差分や、２つの電源間の電流差分を出力したいときは、ノード a とノードｂの間の差電圧なら、v(a,b),電源 v1 と電源 v2 の差電流は i(v1,v2)で指定できます。
.print V(out,in) I(VVDD,VGND)
最後に、MOSFET 内のパラメータで定義したゲート長 Ln, Lp と、拡散層容量計算に使う LD, WD に数値を指定します。
.param Ln=0.18u Lp=0.18u LD=0.4u WD=0u
以上で、シミュレーションできる回路図になりました。

図３．２．３ シミュレーション可能な回路図

15

シミュレーション実行前に、ネットリスト作成＆外部コマンドウィンドウに戻り、「Make Netlist」ボタンを押してネットリストを確認してみましょう。

図３．２．４ NS-Draw から生成された SPICE ネットリスト
ネットリストにおいて、「.include MOS_018.bsim3」という記述は、トランジスタモデルパラメータファイル MOS_018.bsim3 をネットリストにインクルードするという記述（相対パス指定）です。ファイルを正しくインクルードさせるためには、ネットリストが作成されるディレクトリに、指定したファイルが存在しなければなりません。
（.include で絶対パス指定をすることもできます。）
３．３ インバータ回路のシミュレーションの実行「ネットリスト作成＆外部コマンド」から、ns-spice の実行ボタンを押して、シミュレーションを実行します。
結果を VS32 で表示させる際、ノード in, out の電圧値を左側の軸に、Gnd 電流値を右側の軸に表示させるようにしてみましょう。そのためには、VS32 を立ち上げて、「デ16ータ表示設定画面」が出たときに、v(in), v(out)については左側のチェックボックスに、i(vgnd) については右側のチェックボックスにチェックを入れます（図２２の赤丸の箇所）。

図３．３．１ データ表示設定
そこで「終了」ボタンをクリックすると、図３．３．２の波形が表示されます。

17

図３．３．２ シミュレーションの結果（dc 解析）

参考SPICE 波形表示ツール VS32 は、デフォルトでは背景が黒くなっています。VS32 の表示を画面コピーして文書に貼り付ける場合などには、背景が白い方が見やすいかもしれません。背景を白くするには、VS32 メニューの「描画設定」→「描画条件」を選択し、「バックグランド」項目の「白」にチェックを入れてください18

図３．３．３ 描画条件設定
図３．３．２において、青実線がインバータ入力ノード in の電圧、赤実線がインバータ出力ノード out の電圧で、それぞれ左側の縦軸に数値が表示されています。一方、ピーク値を持つ実線が Gnd に流れ込む電流で、こちらは右側の縦軸に数値が表示されています。VS32 ウィンドウ右下に表示されているマウスカーソルの値を読み取ることによって、論理しきい値（ノード out が Vdd/2 = 0.9V になるときのノード in の電圧）は、約 0.87V であることがわかります。
次に、トランジェント解析をしてみましょう。netlist_line_SPICE.nsd の .dc 文と、入力信号 VIN の定義を下記のように変更します。
.tran 0.01n 3n
VIN in 0 PWL (0n 0 1n 0 1.05n 1.8V 2n 1.8V 2.05n 0V 100n 0V)
ここで、VIN 行の入力の際に、netlist_line_SPICE.nsd の command 欄が狭いので、「プロパティ一覧」ウィンドウ右下の「>>」の部分をクリックすることにより、欄を広げて入力します（図３．３．５）。

19

図３．３．４ .tran 行の入力

図３．３．５ VIN 行の入力（欄を延長する）
図３．３．６に、.dc、VIN をトランジェント解析用に書き換えた回路図を示します。

図３．３．６ トランジェント解析用記述

20

ここでシミュレーションを実行してみてください。次のような波形が得られるはずです。

図３．３．７ シミュレーションの結果（.tran 解析）
波形の立ち上がり／立ち下がり部分を拡大表示させてみましょう。波形のある部分を拡大表示するには、まず、拡大したい部分の左上でマウス左クリックし、右下までドラッグします。すると、そのマウスで指定された領域に、画面上に四角が表示されます。

21

図３．３．８ シミュレーション結果の拡大：領域指定
次にツールバーの「ズーム(Z)」→「イン(I)」を選択すると、波形が拡大表示されます。こうすることで、波形の変わり目の詳細部分を確認することができます。

図３．３．９ シミュレーション結果の拡大：拡大後