集積デバイス工学 演習手引書

【1】SPICEシミュレータ

・SPICEとはSimulation Program with Integrated Circuit Emphasisの
省略形で、University of California, Berkleyで開発された、集積回路
設計に利用される回路シミュレータです。
本家の使用説明書は以下に有ります。(当然英文です。)
http://bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/
Web上でSPICEのマニュアルを日本語に翻訳してくれているサイトがあり、
非常に役立ちます。文法等が不明のときはこれでしらべて見て下さい。
http://ayumi.cava.jp/audio/spiceman/spiceman.html

・本回路シミュレータは、ダウンロードして使用することが出来ますが、
回路入力をテキストベースでおこなう必要が有ります。
実際のLSI設計の場では、グラフィカルな回路図入力、各種表示形式が
選べる波形表示ツールなどを組み合わせたり、より高度なトランジスタ
パラメータを適用できる商用ツール(HSPICE等)が使われていますが、学生
のあいだに、本家のシミュレータをテキストベースで使用しておくことは
非常に勉強になると思います。

・本演習で使用するSPICEプログラムはlinux用にカスタマイズされた
http://www.ibiblio.org/pub/Linux/apps/circuits/
のspice3f5sfix.tar.gzをダウンロードしてインストールしました。

【2】トランジスタパラメータ

・授業で使用するプロセスは最大手LSIファンドリーメーカーである、
台湾TSMC社の0.35μmルールです。

・パラメータはMOSISが教育用に公開しているSPICE3 Level3パラメータ
を使用します。
http://www.mosis.org/Technical/Testdata/tsmc-035-prm_mep.html
からダウンロードしました。

【3】シミュレーション環境の構築

・spice3を実行するためのPATHを登録する。このため、自分のホームディ
レクトリの.cshrcを編集する必要がある。
# cp .cshrc .cshrc.org
# emacs .cshrc &
でファイルを開き、末尾に下記の5行の記述を追加します。
switch ($OSTYPE)
case "linux":
        set path= ( $path ~rejohea8/spice/bin )
        breaksw
endsw

・特に.cshrcをいままで変更したことがない人は、下の.cshrcを自分の
ホームディレクトリにコピーして使用してもOKです。
# cp ~rejohea8/spice/env/.cshrc .

・PATHの確認は以下のようにしておこなって下さい。
# source .cshrc
# which spice3として
/homer/se/tea/rejohea8/spice/bin/spice3
と表示されればOKです。

・ホームディレクトリの下にspiceというディレクトリを作りトランジスタ
モデルパラメータをコピーする。
# mkdir spice
# cd spice
# cp ~rejohea8/spice/model/tsmc_035.mdl .

・モデルパラメータをlessして、
トランジスタの閾値、トランジスタの酸化膜厚がどのぐらいに設定されて
いるかを確認して下さい。

【4】シミュレーション実行方法

4.1 シミュレーション用回路ファイル作成

まずは、シミュレーションをおこなうための回路inv1.cirをエディタで
入力します。

=========ファイルinv1.cir===============
SAMPLE INVTER
.include tsmc_035.mdl
VCC VDD 0 DC 3.3V
 
M01 OUT IN 0 0 CMOSN W=10U L=0.35U
M02 OUT IN VDD VDD CMOSP W=10U L=0.35U
 
VIN IN 0 PULSE(0V 3.3V 5N 0.5N 0.5N 24.5N 50N)
.TRAN 0.1N 200N
=================================

1行目の「SAMPLE INVERTER」はコメント
2行目の.includeは使用するトランジスタパラメータ
3行目以降が回路の指定になっています。

<直流電源>
VCC (電源ノード) (GNDノード)  DC **V

<トランジスタ>
NMOSの場合は
M** (drain) (gate) (source) (bulk) CMOSN W=**U L=**U
PMOSの場合は
M** (drain) (gate) (source) (bulk) CMOSP W=**U L=**U

<入力波形>
VIN PULSE (電源ノード) (GNDノード) PULSE(V1 V2 TD TR TF PW PER)
とかきます。

<過渡解析の指定>
.TRAN (TSTEP) (TSTOP)

文法の詳細が解らないときは、上で紹介した日本語マニュアルのHP
http://www002.upp.so-net.ne.jp/ayumin/audio/spiceman/spiceman.html
を参照してください。

4.2 シミュレーションの実行

コマンドラインから

% spice3 inv1.cir

と入力すると下のようにシミュレータが起動されるので、
赤字のように入力すると、波形が表示できます。


Circuit: SAMPLE INVERTER
 
Spice 1 -> run
Warning: vin: no DC value, transient time 0 value used
Spice 2 -> plot V(IN) V(OUT)
Spice 3 -> quit
Warning: the following plot hasn't been saved:
tran1   SAMPLE INVERTER, Transient Analysis
 
Are you sure you want to quit (yes)? yes
Spice-3f5 done

【5】シミュレーション演習テーマ

5.1 インバータに負荷を付けた場合の過渡解析

上記インバータのシミュレーション結果では、負荷容量が無いため
出力ノードが非常に高速に立ち上がりました。
負荷容量を5pF付けてシミュレーションを実行してみましょう。

PMOSトランジスタをあらわす
M02 OUT IN VDD VDD CMOSP W=10U L=0.35U
の後に、
C03 OUT 0 5P
で負荷容量を付けることが出来ます。

PMOSトランジスタ、NMOSトランジスタのサイズがおなじL=0.35um
W=10umであるため、立ち上り時間trが、立ち下がり時間tfと
比較して遅いことが確認できます。
PMOSトランジスタのトランジスタ幅を、NMOSトランジスタの2倍
にして、tr、tfがほぼおなじ時間になることを確認して下さい。

5.2 トランジスタのDC特性

・DC特性の測定は、.tranではなく、.DCで電源の電圧を指定して下さい。
下記の例のように.DCでは、VVDとVVGの2種類の電源を変化させることが
可能です。
VIDSという電源は、トランジスタのドレイン端子MONと電源端子VDの
間に0Vの電源として挿入して、電流計の役目をさせています。

=========ファイルnmosdc1.cir===============
NMOS transister test circuit
.include tsmc_035.mdl
VVG VG 0 DC 3.3V
VVD VD 0 DC 3.3V
VIDS VD MON DC 0V
M1 MON VG 0 0 CMOSN W=10u L=0.35u
.DC VVD 0V 4V 0.1V VVG 0V 4V 1V
=================================

Circuit: NMOS transister test circuit
 
Spice 1 -> run
Spice 2 -> plot i(VIDS)

・NMOSのLとWを変化させて、トランジスタ電流がどのように変化するか
シミュレーションしてみて下さい。
・PMOSも同様にpmosdc.cirという回路を作製してプロットしてみて下さい。

5.3 インバータのDC特性

・トランジスタのゲート長は0.35μmに固定し、インバータのトランジスタ幅
をWp/Wn=10um/10um、Wp/Wn=20um/10um、Wp/Wn=40um/10umの3種類の値に
したときのインバータの閾値電圧をシミュレーションで求める。

=========ファイルinvDC1.cir===============
SAMPLE INVERTER DC characteristics
.include tsmc_035.mdl
VCC 1 0 DC 3.3V
VIN IN 0 DC 0V
 
MN1 OUT IN 0 0 CMOSN W=10U L=0.35U
MP1 OUT IN 1 1 CMOSP W=10U L=0.35U
 
.DC VIN 0V 3.3V 0.1V
=================================

【レポート課題】

(1)上記PMOSおよびNMOSトランジスタのDC特性の、非飽和領域から飽和
領域に遷移する点の電流特性から、トランジスタの利得係数βを見積
もりなさい。閾値Vtはトランジスタパラメータファイル中のVT0に定義
されている値を使用すること。

(2)上記利得係数を利用して、インバータ(Wn/Ln=10um/0.35um、Wp/Lp=10um
/0.35um)に10pFの負荷を付けた場合の立ち下がり時間tf、立ち上がり時間tr
を概算で求め、シミュレーション結果と比較しなさい。

(3)3種類のインバータのしきい値を、トランジスタの利得係数から計算し
シミュレーション結果と比較しなさい。

5.4 NANDの特性

図1のNAND回路を作成し,IN1に 20MHz,IN2に10MHzのパルス波形を入力
してNAND回路動作をしていることを確かめなさい.出力には5pFの容量を挿入し
出力波形の立上り,たち下がり時間が等しくなるようにトランジスタのサイズを
決定しなさい.(Vddは3.3Vとする.)

5.5 トランスファーゲートの特性

図2のNMOSトランスミッションゲートを作成し,ゲート電圧を3Vに固定して
入力に0〜3Vの10MHzパルス波形を印加したときの出力波形をシミュレー
ションで確認しなさい.出力に0〜3Vが出力されるようにするためには,ゲート
電圧を何Vにしなければならないか,確認しなさい.