はじめに

いきなり「半導体設計できるよ!」と言われても戸惑う方や、そもそもよくわからない人が多いと思うので、そういう人向けに「半導体設計とは?」を説明するページです。

CADツールのWGexと関連ファイル一式は、設計試作に参加される方にのみ配布しております。(動作環境はWindowsのみ(仮想マシンなども可)、です。ご了承ください)※(2015/1/12:akita)Macで、フリーウエアのWineBottler?で起動できた、との情報をr.kitahata様よりいただきました!WineBottler?の使い方はこのあたり→http://hamasyou.com/blog/2010/09/20/mac-os-x-windows-winebottler/

WGex開発者の東大・浅田邦博先生より、配布先リストの管理と再配布なし、を使用条件とされていますので、お手数をおかけしますが、akita@is.t.kanazawa-u.ac.jp まで、「お名前(本名でお願いします)」と「連絡先(メールアドレス)」をご連絡ください。折り返し、一式ファイルをお送りします。なお実際の設計試作に加わることは条件ではありませんので、雰囲気をみるだけ、でも結構です。

ファイル一式を受け取られたら、適当な場所(作業フォルダが望ましい)に展開し、その中のフォルダ「Moses」内の「wgex.exe」のショートカットを、デスクトップ等に作成します。そのショートカットをダブルクリックして起動します。

レイアウト設計の基礎知識

LSIの設計は、最終的には「マスクデータ」と呼ばれる図形データをつくることになります。つまり「長方形」を、いくつかの「レイヤ」(色)ごとに、ルールに従って描いていく、ということになります。

言い換えれば、設計するものは回路でなくても、ルールさえ満たしていれば、単なる図形でも構いません。

この図形データを、実際には「レイヤ」ごとに図形データとして分離し、写真原板として半導体の製造工程を進めてLSIを作っていくことになります。

ここでは、MOSトランジスタを含む電子回路を設計するために最低限必要なことがらにしぼってまとめておきます。詳しいことは、必要であれば半導体・集積回路の専門書をご参照ください。

CAD(WGex)の基本操作

ファイル一式の中のフォルダ「Moses」の中の「MOSES_READEME.PDF」が、浅田先生作のWGexの公式(?)マニュアルです。ただ、詳しすぎるので、以下に要点をまとめておきます。基本的には、これらの操作だけで十分なはずです。

まず起動後、ファイル→新規作成で、空のファイルを開き、ここで操作に慣れましょう。

まず「右クリック」で、レイヤ選択や操作選択のメニューを開きます。

#ref(): File not found: "wgex1.png" at page "Tutorial"

下半分が、描画する図形のレイヤ(色)、右上が描画する図形の種類です。 とりあえず、レイヤは左上の「L00」を選び、「四角形」を押してください。

1回目のクリック点と2回目のクリック点を対角線とする長方形が描画されます。

#ref(): File not found: "wgex2.png" at page "Tutorial"

描画のグリッドがありますが、グリッドの間隔は、実際のLSIチップ上の寸法で 2μmとなります(この数字は覚えておいてください。「2um」とも表記します)。 ちなみに描画の座標の単位は1um(グリッド間隔の半分)です。

描画した図形を変形/移動/コピーしたいときは、 まず、上のツールバーから、行う操作を選びます。

#ref(): File not found: "wgex3.png" at page "Tutorial"

左から順に、変形、移動、コピー、です。

続いて、変形対象の辺、または移動・コピーする図形を含む辺または全体をドラッグで白反転させます。

#ref(): File not found: "wgex4.png" at page "Tutorial"

その後、その中の辺や頂点を「ドラッグ」すると、その図形が変形/移動/コピーされます。

基本的にはこれだけですべての作業はできますので、まずは操作に慣れてください。

ちなみにこれらの操作を含めて、ショートカットキーがありますので、 慣れると便利かと思います。→./ショートカットキー?

MOSトランジスタの設計

P型・N型領域

まずNWLとPSLとNSLとACTの4つのレイヤを使って、次のような図形を描いてみてください。寸法はとりあえずは適当でOKです。

#ref(): File not found: "actn.jpg" at page "Tutorial"

この図形は、LSIチップ上では、次の断面図のような構造になります。

#ref(): File not found: "cs-actn.png" at page "Tutorial"

基本的には半導体なので、P型とN型の領域がありますが、この例では、N-Well(ウエル)と呼ばれるN型の「お風呂」(不純物濃度が薄い)の中に、実際のP型(PACT)とN型(NACT)の領域がつくられます。

このうちP型(PACT)は、N-Wellとの間にPN接合を形成します。

またN型(NACT)は、N-Wellと同じN型なので、普通に電気的に接触しているのと同じになります。

実際のN型領域(NACT)は、描画では「NSL」の中に描いた「ACT」の部分になります。 (同様に、PACTは、PSLの中のACT) つまり、図形の大小関係は、必ず、""NWL(N-Well)の中に、PSLまたはNSLがあり、その中にACTがある""、ことになります。

次の例は、一番外側のお風呂がP型のP-Wellの例です。

#ref(): File not found: "actp.jpg" at page "Tutorial"

#ref(): File not found: "cs-actp.png" at page "Tutorial"

この場合は、NACTとP-WellがPN接合を形成し、PACTとP-Wellは電気的に接触していることにんります。

MOSトランジスタ

続いて、次のような図を描いてみてください。 ちょっと複雑ですが、これがMOSトランジスタの基本構造です。 (NチャネルMOSトランジスタ:nMOSFET)

#ref(): File not found: "nmos.jpg" at page "Tutorial"

ここでは、先ほど出てこなかった、次のようなレイヤが使われています。

このうち、CSTは、機械的にウエル(この例ではP-Well)の内側に描けばOKです。

POLは、MOSトランジスタのゲート電極になりますが、ACT領域をまたがるように置きます。そしてPOLで区切られた2つのACTが、MOSトランジスタのS(ソース)とD(ドレイン)になります。(ちなみに自己整合プロセスと呼び、POLの下のACTは、チャネル領域になります)

ML1は、第1層メタル配線で、いろいろな端子をつなぐ配線として使います。実際にはこのMLは、N/P型領域やPOLの「上」に形成されます。

このML1とN/P型領域をつなぐ縦の配線の柱がCNA、POLをつなぐ縦の配線の柱がCNPです。

なおP-Wellは、PSLで囲まれたACTと、そこにつながるCNAを通してML1につながっています。 (MOSトランジスタのB(ボディ)端子)

レイアウト図と、以下の断面図をつなげて理解してください。

この例では、S(ソース)領域とB(ボディ)は、ML1を通して接続されています。

#ref(): File not found: "cs-nmos.png" at page "Tutorial"

これのN/Pをすべて逆にしたものが、PチャネルMOSFET=pMOSFETです。

#ref(): File not found: "pmos.jpg" at page "Tutorial"

#ref(): File not found: "cs-pmos.png" at page "Tutorial"

また金属配線は、ML1の上にもう1層、ML2があり、ML1とは交差することができます。 この両者は、VIAで縦方向に接続することができます。

#ref(): File not found: "m1m2.jpg" at page "Tutorial"

#ref(): File not found: "cs-m1m2.png" at page "Tutorial"

デザインルールチェック(DRC)

これらの各レイヤの図形(長方形)は、実際の製造ではマスクデータとしてウエハ上に転写され、エッチングなどの工程が行われます。 この転写は光学的に行われますので、細すぎる線や近すぎる図形は、正しく転写されません。 そのため、各図形のサイズや間隔は、レイヤごとに最小寸法やサイズが決まっています(デザインルール)。 この詳細は、「プロセス仕様書_20120313.pdf」に載っていますが、 これを要約したものが「DesignRule_summary.pdf」で、これを見ていただければ十分かと思います。

描いた図形がデザインルールを満たしているかのチェック(Design Rule Check; DRC)は、 設計の最終段階で必ずパスしなければいけません。 ただ、設計の過程で、まめにチェックをかける方がよいと思います。

例として、ファイル一式の中にある「nmos.gex」を開いてみてください。 (この例では、意図的にDRC違反を入れてあります)

#ref(): File not found: "drc1.png" at page "Tutorial"

上のツールバーから、DRCを押します。

#ref(): File not found: "toolbar-drc.png" at page "Tutorial"

DRC設定ダイアログが現れますので、 確認用に「出力の表示」にチェックを入れてOKを押します。

#ref(): File not found: "drc2.png" at page "Tutorial"

DRCが実行され、次のようなDRCエラーの内容が表示されます。

#ref(): File not found: "drc3.png" at page "Tutorial"

ちょっと見にくいですが、この中に2つのエラーがあることがわかります。

この例では、たしかに幅が6um必要なML1が4umしかないところと、 CNAのところにML1がないところがあります。

このままだとどこがDRCエラーなのかわかりにくいので、 DRCエラーの箇所を示す図形を呼び出します。 セル入力(ショートカット=c)のダイアログを表示させ、 セル名に「nmos.drc」、右下の基準座標を(0,0)に設定してOKボタンを押します。 (このエラー箇所図形ファイルは、元のファイル名+拡張子drc、となります)

#ref(): File not found: "drc4.png" at page "Tutorial"

すると、DRCエラーの箇所を示す図形が表示されます。

#ref(): File not found: "drc5.png" at page "Tutorial"

このエラーの2か所を、ML1の変形やML1の描画で修正します。

#ref(): File not found: "drc6.png" at page "Tutorial"

再度DRCをかけて、エラーがなくなって、次のようなダイアログが表示されたら、 めでたくDRCパスです。

#ref(): File not found: "drc7.png" at page "Tutorial"

インバータの設計

この調子で、nMOSとpMOSを1個ずつつかう、もっとも基本的なCMOS回路である インバータ(NOTゲート)をつくってみましょう。

#ref(): File not found: "inv.jpg" at page "Tutorial"

電源のVDD/GNDと、入力IN、出力OUTのところに、 それぞれの端子と同じレイヤで文字を書いておくとわかりやすいです。 (文字の左下の点が、各レイヤ領域の中に来るようにすること)

ちなみにできあがったものは、ファイル一式の中にinv.gexとして置いてあります。

回路抽出とシミュレーション

設計した回路が正しく動作するか、回路シミュレーションで確認することができます。

まず、描いたレイアウト図形から、回路シミュレーション用の回路情報を抽出します。

ツールバーのこのボタンを押します。

#ref(): File not found: "toolbar-cex.png" at page "Tutorial"

現れるダイアログでOKを押すと、inv.cexというファイルができます。 これは回路シミュレーション用の回路情報(spiceネットリスト)です。

回路シミュレーションには、いろいろなツールがありますが、 お手軽なところとしては、フリーウエアのLTspiceがおすすめです。 http://www.linear-tech.co.jp/designtools/software/#LTspice

まずさきほどのinv.cexをテキストエディタ(メモ帳など)で開いておきます。

続いて、こちらのファイルをダウンロードします。

#ref(): File not found: "test.sp" at page "Tutorial"

これをLTspiceで開き、その中の 「* copy from *.cex here (except .end)」の下に、 さきほどのinv.cexの内容のうち、最後の「.end」以外をコピ&ペーストします。

以下のような感じになるはずです。

* SPICE FET model
.lib 'mos_tt.lib'
mfet1 0 3 2 2 pch w=6u l=2u
mfet2 0 3 1 1 nch w=6u l=2u
.end
** Net name table **
*$ OUT	0
*$ GND	1
*$ VDD	2
*$ IN	3

#ref(): File not found: "sim1.png" at page "Tutorial"

このままでは、回路の電源や入力信号がありませんので、 電圧源として追記しておきます。(この例ではもう書かれていますね) それぞれの意味は、以下の通りです。

上のツールバーから、走っているアイコン(Simulation)を押します。

#ref(): File not found: "sim2.png" at page "Tutorial"

続いて、グラフを表示する電圧を指定します。 この例では、入力(ノード3-1間)と出力(ノード0-1間)を表示させれば、 インバータとして動作しているか確認できますので、これを表示させましょう。 ノード間の電圧は「2つのノードの電位の差」として表現されますので、 例えばノード3-1間は「v(3)-v(1)」と書きます。

#ref(): File not found: "sim3.png" at page "Tutorial"

このようなグラフが表示されるはずです。 たしかにインバータとして動作していることがわかります。

#ref(): File not found: "sim4.png" at page "Tutorial"

なおそのほかのシミュレーションもできます。

* SPICE FET model
.lib 'mos_tt.lib'
mfet1 2 1 0 0 nch w=6u l=2u
vgs 1 0 0v
vds 2 0 5v
.dc vds 0 5 0.1 vgs 0 5 1
.save I(vds)
.end

これはDC解析をしてVDS-ID特性を求める*.spです。 SPICEの各コマンドは、ここなどの情報や文献を参考にしてください。

http://www-lab.ee.uec.ac.jp/text/spice/command.html#analysis

※(2015/1/7)使っているMOSトランジスタのモデルのうち、pMOSFETのモデルに不備がある可能性があります。現在原因究明中ですが、アナログ回路で使われる予定の方は、ご注意ください。

LSIチップ全体のレイアウト

今回製造を予定している北九州ひびきのでは、3.2mm x 3.2mmのLSIチップをつくります。ただしその周辺は、外部の回路に接続するためのパッドという電極領域があるため、実質的に使える領域は2.5mm x 2.5mm (2500um x 2500um)程度です。それを設計試作に参加する皆さんで相乗りすることになります。したがって一人であまり大きな領域を使ってしまうと、全体が入らなくなってしまうため、今回の試作に乗らない可能性があることはご了承ください。みなさんの設計したレイアウトデータをまとめて全体に乗せる作業は、秋田が行います。面積割り振りの調整や設計締切などは、秋田に一任してください。

実例


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS