集積デバイス工学 演習手引書
【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にしなければならないか,確認しなさい.
