5. レイアウト入力と検証 |
フルカスタム手法の設計では、回路図を見ながらレイアウトを自分で考える必要がある。まずは、紙とペンを用意して、大体の配線経路を考えてから入力する(慣れれば、頭の中で考えられる)。最初は、レイアウトエディタの操作法が解らないので、下記の「1. レイアウトの作成」まで、操作結果を試しながら読み進めてから、本番の入力に取りかかると良いだろう。
Library Manager のメニューより、[File] → [New] → [Cell View...] を選び、New File フォームに下記の設定を行い、MUX2 セルの中に Layout View を作成する。Layout Viewを作成すると、レイアウトエディタと回路図エディタが自動的に起動する。次回からは、Library ManagerでLayout Viewをダブルクリックしてレイアウトエディタを起動することができる。
Library | ic1 |
Cell | MUX2 |
View | layout |
Type | layout |
Open with | Layout XL |
Always use this application for this type of file | Checkを入れる |
※ レイアウト図は、多くのレイヤー上に描かれたパターンを重ねて表示した図である。各レイヤーは、ウエル、p型領域、n型領域、ゲートPoly-Si、コンタクト、金属配線、VIAなどの集積回路の各層の構造を表現している。
[注] チェックを入れるのは、レイヤー名の右欄がdg(Drawing)となっているレイヤーだけでよい。
レイヤー名 | 使用目的 |
---|---|
NWELL | n-type Well領域 |
ACTIVE | イオン注入領域 |
GATE | poly-Si Gate |
NSD | n型指定領域 |
PSD | p型指定領域 |
CONT | コンタクト |
METAL1 | メタル配線1 |
VIA1 | METAL1-METAL2層間VIAコンタクト |
METAL2 | メタル配線2 |
VIA2 | METAL2-METAL3層間VIAコンタクト |
METAL3 | メタル配線3 |
VIA3 | METAL3-METAL4層間VIAコンタクト |
METAL4 | メタル配線4 |
VIA4 | METAL4-METAL5層間VIAコンタクト |
METAL5 | メタル配線5 |
CND | p型イオン注入領域 |
CPD | n型イオン注入領域 |
レイアウトエディタ(レイアウト画面)はいくつかのウインドウから構成されている。レイアウト編集ウインドウでレイアウトの編集を行う。Navigatorウインドウにレイアウトに使用されている配線やインスタンスのリストが表示されるので、これをクリックして、そのオブジェクトの場所へレイアウト編集ウインドウの表示を移動させることができる。World Viewでは、全体のレイアウトが表示されており、マウスでクリックすることにより、レイアウト編集ウインドウの表示を移動させることができる。もし、NavigatorやWorld Viewが表示されていなければ、Workspace欄のリストから、Basicを選ぶ。さらに、メニューより、[Window] → [Assistants] を選び、World View, Property Editor, Navigatorにチェックを入れる。
ツールバーに数字を入力する欄があるが、ここには、Display Stop Levelを設定する。もし、この値が0になっていたら、5〜10程度の値を入力しておこう。インスタンスの階層をどこまで表示するかを決める値である。0だとインスタンスの内部は表示されない。
レイアウトエディタの画面
コマンドを起動するには、以下の3種類の方法がある。
---> レイアウトエディタ・コマンド解説
Display Levels | Start | 0 |
Stop | 10 | |
Grid Controls | Minor Spacing | 0.02 |
Major Spacing | 0.2 | |
X Snap Spacing | 0.02 | |
Y Snap Spacing | 0.02 | |
Snap Modes | Create | anyAngle |
Edit | anyAngle |
レイアウトエディタのツールバー(括弧内はバインドキー)
レイアウトエディタのツールバーのインスタンスの配置(iキー)をクリックすると、Create Instanceフォームが現れる。BrowseボタンをクリックするとLibrary Browserが現れるので、下記のセルを選び、レイアウトエディタ上の適当な位置に配置する。ESCキーでインスタンス配置モードを終了。配置したインスタンスを移動させるには、オブジェクトの移動コマンド(mキー)を使う。p-ch MOSFETはn-type Well(NWELL)の中に作られている。NWELLとNWELLの間の距離は、一般的に、設計規則上、比較的長い距離を空ける必要があるため、面積の利用効率が悪い。そこで、回路モジュール内のNWELLは一つにまとめてしまうとよい。NWELLをまとめるには、LSWでNWELLを選んだ後、[Create] → [Shape] → [Rectangle](bキー)を選び、マウスで2カ所をクリックして矩形を描いて複数のNWELLを囲むか、またはNWELL間のスペースを埋める。
Library | Cell | View | 必要個数 |
---|---|---|---|
kanazawa | INV | layout | 1 |
kanazawa | NAND2 | layout | 3 |
※ CADソフトのバージョンによっては、バグがあるようで、Via Up と Via Down で意図した配線層に移動しないことがあるので、移動先の配線の色に注意すること。
CONT(コンタクト)とVIAによる配線層間の接続(上図は、CADツールのレイヤー色とは違うので注意)
[配線のこつ] 配線の操作は、人によってやりやすい方法があると思われるが、配線の通る場所を見つけて適当に配線を接続しておき、ストレッチコマンドで配線の位置を微調整するのが簡単。ストレッチコマンドや移動コマンドを実行して、設計規則に違反した位置に移動させようとすると、レイアウトエディタが違反をお知らせしてくれるので(完全ではないが)、一々設計規則を参照する手間が省ける。
[参考] 電源の名前は回路図上では VDD, VSSとなっているが、コンピュータが理解できる回路接続情報であるネットリストの記述フォーマットでは、複数の回路に共通な配線(グローバル配線)には最後に!を付ける決まりになっており、回路図からネットリストに変換するときに自動的に!が追加されている。レイアウトエディタは、自動的に!を付けないので、グローバル配線には、手動で!を付けておく。この例では、VDDとVSSが、NAND2とINV内部に含まれていて、これらはポートを通さずに相互接続されたグローバルな配線である(ネットリストにはポインタという概念はない)。もし、!を付けなかった場合は、別の回路に含まれる同じ名前の配線は、別の配線(ローカルな配線)と見なされる。
レイアウトが完成したら、保存するのを忘れないように。引き続き実習を行う場合も、レイアウトエディタと、CIWをいったん終了すること。
レイアウト検証(DRC)では、設計規則に違反したレイアウトを自動検出する。DRCエラーがゼロにならないと、その設計データに基づいて製造をすることは出来ない。ここでは、設計検証ツールとして、Mentor Graphics社のCalibreを使用する。
DRC用の環境設定を追加する。
vlsi> cd ~/i vlsi> setlic 1 (Cadence用の環境設定番号を指定) vlsi> setlic 6 (Calibre用の環境設定番号を指定) vlsi> virtuoso & (統合環境の起動コマンド)
[参考] DRCツールや次項のLVSツールは、多数のファイルを自動生成するため、ワーキングディレクトリとは別のディレクトリで行わないと収拾がつかなくなる。ここでは、DRC専用に予め用意したDRCというディレクトリを使用するため、DRC Run Directory欄に、DRC を指定した。
DRCエラーがある場合は、上左欄に赤の×マークが付いたメッセージが表示され。エラーがなければ、何も表示されない。上右欄には、エラー箇所の番号が表示され、下欄にはエラー内容が表示される。
DRCエラーがある場合
DRCエラーフリーの場合
DRC RVEでは、エラーの箇所をレイアウトエディタ上に表示する機能がある。エラー箇所の番号をダブルクリックすると、レイアウトエディタの上で、エラー箇所がハイライトされる。また、DRC RVEのメニューから、[Highlight] → [Zoom To Last Highlight]を選ぶと、直前に選んだエラー箇所がレイアウトエディタでズームされる。複数のエラー箇所をハイライトすると、どのエラーがどのハイライトに対応しているのか分からなくなるので、メニューより、[Highlight] → [Clear Highlight]で、これまでのハイライトを消すことができる。修正とRun DRCを繰り返し、全てのエラーを取り除く。
[注意] CalibreはCentOSとの相性が悪いらしく、キーボードが使えないことがある。その場合は、終了時に表示される Save Settings?フォームで、Noボタンをクリックし、設定の保存をスキップする。
DRCは、物理的な寸法や位置関係を調べているだけで、回路として正しいかどうかは、調べていない。レイアウト-回路比較(LVS)により、レイアウトから抽出された回路図と、予め作成しておいた回路図を自動的に比較することにより、レイアウトデータと設計した回路が一致していることを保証することができる。
LVSエラーがある場合は、赤の×マークが付いたメッセージが表示される。エラーがなければ、緑のニコニコマークが表示される。
LVSエラーがある場合
LVSエラーフリーの場合
エラーの番号(Discrepancy #1 等)をダブルクリックすると、レイアウトエディタの上で、問題となっている配線がハイライトされる。また、メニューから、[Highlight] → [Zoom To Last Highlight]を選ぶと、直前に選んだエラー箇所がレイアウトエディタでズームされる。複数のエラー箇所をハイライトすると、どのエラーがどのハイライトに対応しているのか分からなくなるので、メニューより、[Highlight] → [Clear Highlight]で、これまでのハイライトを消すことができる。修正とRun LVSを繰り返し、全てのエラーを取り除く。
[注意] DRCの時と同様、キーボードが使えない場合は、終了時に表示される Save Settings?フォームで、Noボタンをクリックし、設定の保存をスキップする。
レイアウトが完成したら、下記の要領で、上部の空き面積に、設計者を判別するためのIDパターンを入れておくこと。通常の設計では、IDパターンの作成は必要ないが、ここでは、実習レポートとして提出されたデータの識別コードとして使用するので描き忘れないように。(描き忘れていると未提出扱いとなるかもしれない)
Copyright (C) 2009- Akio Kitagawa, Kanazawa Univ.