5. レイアウト入力と検証

この実習では、先に回路図入力したMUX2のレイアウトを作成する。ここでは、基本論理ゲートのレイアウトデータを予め用意してあるので、これを利用して、配線層だけ設計すればよい。しかし、フルカスタム設計では、MOSFETの形状を自分でレイアウトすることもできる。というより、基本回路のレイアウトが予め用意されていることはあまりないので、原則として全て自分で作成する必要がある。しかし、MOSFETの設計規則は複雑であり、半導体製造技術をよく理解していないと難しい。もし、実習を早く終わり余力があれば、付録1:MOSFETからの回路設計と付録2:MOSFETからのレイアウト設計にも挑戦してみよう。設計規則は、実習の実施時に書面で配布する。

フルカスタム手法の設計では、回路図を見ながらレイアウトを自分で考える必要がある。まずは、紙とペンを用意して、大体の配線経路を考えてから入力する(慣れれば、頭の中で考えられる)。最初は、レイアウトエディタの操作法が解らないので、下記の「1. レイアウトの作成」まで、操作結果を試しながら読み進めてから、本番の入力に取りかかると良いだろう。

  1. レイアウトの作成

    Library Manager のメニューより、[File] → [New] → [Cell View...] を選び、New File フォームに下記の設定を行い、MUX2 セルの中に Layout View を作成する。Layout Viewを作成すると、レイアウトエディタと回路図エディタが自動的に起動する。次回からは、Library ManagerでLayout Viewをダブルクリックしてレイアウトエディタを起動することができる。

    Libraryic1
    CellMUX2
    Viewlayout
    Typelayout
    Open withLayout XL
    Always use this application for this type of fileCheckを入れる

    レイアウトエディタの基本操作

    レイアウトエディタは、LSW(Layer Selection Window)とレイアウト画面から構成される。LSWは、マウスでドラッグすると、レイアウトエディタの外に出すことができる。LSWには多くのレイヤー(※)が表示されているが、通常のレイアウトの編集に使用するレイヤーは下記のように限られている。

    ※ レイアウト図は、多くのレイヤー上に描かれたパターンを重ねて表示した図である。各レイヤーは、ウエル、p型領域、n型領域、ゲートPoly-Si、コンタクト、金属配線、VIAなどの集積回路の各層の構造を表現している。

    Fig.5.1

    [注] チェックを入れるのは、レイヤー名の右欄がdg(Drawing)となっているレイヤーだけでよい。
    レイヤー名使用目的
    NWELLn-type Well領域
    ACTIVEイオン注入領域
    GATEpoly-Si Gate
    NSDn型指定領域
    PSDp型指定領域
    CONTコンタクト
    METAL1メタル配線1
    VIA1METAL1-METAL2層間VIAコンタクト
    METAL2メタル配線2
    VIA2METAL2-METAL3層間VIAコンタクト
    METAL3メタル配線3
    VIA3METAL3-METAL4層間VIAコンタクト
    METAL4メタル配線4
    VIA4METAL4-METAL5層間VIAコンタクト
    METAL5メタル配線5
    CNDp型イオン注入領域
    CPDn型イオン注入領域

    レイアウトエディタ(レイアウト画面)はいくつかのウインドウから構成されている。レイアウト編集ウインドウでレイアウトの編集を行う。Navigatorウインドウにレイアウトに使用されている配線やインスタンスのリストが表示されるので、これをクリックして、そのオブジェクトの場所へレイアウト編集ウインドウの表示を移動させることができる。World Viewでは、全体のレイアウトが表示されており、マウスでクリックすることにより、レイアウト編集ウインドウの表示を移動させることができる。もし、NavigatorやWorld Viewが表示されていなければ、Workspace欄のリストから、Basicを選ぶ。さらに、メニューより、[Window] → [Assistants] を選び、World View, Property Editor, Navigatorにチェックを入れる。

    ツールバーに数字を入力する欄があるが、ここには、Display Stop Levelを設定する。もし、この値が0になっていたら、5〜10程度の値を入力しておこう。インスタンスの階層をどこまで表示するかを決める値である。0だとインスタンスの内部は表示されない。

    Fig.5.2
    レイアウトエディタの画面

    コマンドを起動するには、以下の3種類の方法がある。

    1. メニューからプルダウンメニューを辿って、所望のコマンドを選択する方法
    2. 予めキーボードの各キーにコマンドが割り当てられているバインドキーを使用する方法
    3. レイアウトエディタのツールバーのアイコンをクリックする方法
    メニューバーからコマンドを辿ると、最終的なコマンドのリストの右端に、バインドされたキーが示されている。バインドキーを使用すると格段に作業効率が良くなるので、よく使用するものは覚えておこう。主なコマンドは、下記のレイアウトエディタ・コマンド解説に説明してあるので、必要に応じて参照すること。

    ---> レイアウトエディタ・コマンド解説

    レイアウト手順

    1. 初期設定
      [Options] → [Display...]を選択し、表示されたDisplay Optionsフォームで以下のように設定を行う。設計規則により、各レイヤーには、オブジェクトの端や角を配置できる座標間隔(グリッド)が指定されているため、好きな座標に図形を置くことはできない。レイヤー毎に指定された座標間隔以外で描画すると、Off Gridというエラーが発生するので、この設定を行う必要がある。Save To で設定を保存してから、OKボタンでDisplay Optionsフォームを終了する。

      Display Levels Start0
      Stop10
      Grid Controls Minor Spacing0.02
      Major Spacing0.2
      X Snap Spacing0.02
      Y Snap Spacing0.02
      Snap Modes CreateanyAngle
      EditanyAngle

    2. インスタンスの配置
      レイアウトエディタの表示拡大は、拡大したい部分をマウスの右クリックしながらドラッグすることにより実行できる。その他の画面操作は、下のツールバー説明を参考にすること。

      Fig.5.3

      レイアウトエディタのツールバー(括弧内はバインドキー)

      レイアウトエディタのツールバーのインスタンスの配置(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間のスペースを埋める。

      LibraryCellView必要個数
      kanazawaINVlayout1
      kanazawaNAND2layout3

    3. 配線
      インバータとNANDのレイアウトには、A, B, X, VDD!, VSS!などの配線名が付けられている。各配線名を確認しながら、回路図に従って配線を行う。配線を行うには、レイアウトエディタのツールバーより、配線(CTRL+SHIFT+wキー)を選び、配線の接続開始場所をクリックしてマウスを移動させると(ドラッグではないので注意)、クリックしたレイヤーで配線が引き出される。複数のレイヤーが重なっている場所をクリックした場合は、Choose object to tapというフォームが表示されるので、配線をしたいレイヤーをクリックして選ぶ。配線を選ぶとマウスカーソルの動きについて配線が伸びる。クリックするとその位置で配線を折り曲げることができる。接続先の配線をクリックするか、またはダブルクリックで、配線を終了することができる。途中で別の配線層(例えば、METAL1からMETAL2)へ繋ぎたい場合は、配線モードの状態で右クリックすると、メニューが現れるので、Via Up(上の配線層に接続)またはVia Down(下の配線層に接続)を選ぶ(※)。配線層間の接続には、VIA(垂直方向の接続)が必要であるが、配線モードで配線層を移動した場合は、自動的にVIAも作成される。

      ※ CADソフトのバージョンによっては、バグがあるようで、Via Up と Via Down で意図した配線層に移動しないことがあるので、移動先の配線の色に注意すること。

      Fig.5.4

      CONT(コンタクト)とVIAによる配線層間の接続(上図は、CADツールのレイヤー色とは違うので注意)

      [配線のこつ] 配線の操作は、人によってやりやすい方法があると思われるが、配線の通る場所を見つけて適当に配線を接続しておき、ストレッチコマンドで配線の位置を微調整するのが簡単。ストレッチコマンドや移動コマンドを実行して、設計規則に違反した位置に移動させようとすると、レイアウトエディタが違反をお知らせしてくれるので(完全ではないが)、一々設計規則を参照する手間が省ける。

    4. ラベルの作成
      回路図とレイアウトが一致するように、電源(VDD!, VSS!)、入力(A, B, SEL)、出力(Y)の配線上に、電極と同じレイヤーで配線名を付ける。!については、下記の[参考]を参照。LSWでラベルを付けるレイヤーを選択してから、レイアウトエディタの、ツールバーにあるラベルのアイコン(Create Label)をクリックし、Create LabelフォームでLabel(配線名)とHeight(表示する文字の大きさ)欄に入力して、名前を付けたい配線をクリックする。Heightは0.5ぐらいでよいだろう。

      [参考] 電源の名前は回路図上では VDD, VSSとなっているが、コンピュータが理解できる回路接続情報であるネットリストの記述フォーマットでは、複数の回路に共通な配線(グローバル配線)には最後に!を付ける決まりになっており、回路図からネットリストに変換するときに自動的に!が追加されている。レイアウトエディタは、自動的に!を付けないので、グローバル配線には、手動で!を付けておく。この例では、VDDとVSSが、NAND2とINV内部に含まれていて、これらはポートを通さずに相互接続されたグローバルな配線である(ネットリストにはポインタという概念はない)。もし、!を付けなかった場合は、別の回路に含まれる同じ名前の配線は、別の配線(ローカルな配線)と見なされる。

    レイアウトが完成したら、保存するのを忘れないように。引き続き実習を行う場合も、レイアウトエディタと、CIWをいったん終了すること。

  2. DRC

    レイアウト検証(DRC)では、設計規則に違反したレイアウトを自動検出する。DRCエラーがゼロにならないと、その設計データに基づいて製造をすることは出来ない。ここでは、設計検証ツールとして、Mentor Graphics社のCalibreを使用する。

    DRC用の環境設定を追加する。

    vlsi> cd  ~/i
    vlsi> setlic 1   (Cadence用の環境設定番号を指定)
    vlsi> setlic 6  (Calibre用の環境設定番号を指定)
    vlsi> virtuoso &  (統合環境の起動コマンド)
    
    1. 検証ツールの起動
      Virtuosoが起動したら、Library Managerで既に作成したセルMUX2のlayout viewを開く。レイアウトエディタのメニューに Calibre が追加されている。メニューから、[Calibre] → [Run DRC]を選ぶと、Calibre InteractiveとLoad Runset Fileフォームが起動する。Load Runset FileフォームはCancelする。

    2. 検証ツールの設定
      Calibre Interactiveの左側のRulesボタンをクリックし、DRC Run Directory欄の右側にある ... ボタンをクリックし、ディレクトリ DRC を選択。次に、DRC Rules File欄の右側にある ... ボタンをクリックし、ルールファイル drc_merl.rul を選択する。ルールファイルは、半導体メーカから提供される設計規則が書き込まれたファイルである。さらに、左側のInputsボタンをクリックし、Export from layout viewer にチェックが入っていることを確認する。チェックされていなければ、チェックを入れる。File: および Top Cell: は自動で設定されるので変更しなくてよい。

      [参考] DRCツールや次項のLVSツールは、多数のファイルを自動生成するため、ワーキングディレクトリとは別のディレクトリで行わないと収拾がつかなくなる。ここでは、DRC専用に予め用意したDRCというディレクトリを使用するため、DRC Run Directory欄に、DRC を指定した。

      Fig.5.5

      Fig.5.6

    3. DRCの実行
      Calibre Interactiveの左側のRun DRCボタンをクリックすると、DRCが始まる。レイアウトを編集した後保存されていない場合は、DRCの実行前にレイアウトを保存するかどうか聞いてくるので、Yesをクリックする。DRCが終了すると、DRC RVEというツールが起動する。

      DRCエラーがある場合は、上左欄に赤の×マークが付いたメッセージが表示され。エラーがなければ、何も表示されない。上右欄には、エラー箇所の番号が表示され、下欄にはエラー内容が表示される。

      Fig.5.7
      DRCエラーがある場合

      Fig.5.8
      DRCエラーフリーの場合

    4. エラーの修正
      エラー番号(上図では、Checkの文字の右側の番号DRJ08C63)に付けられた×マーク左の+をクリックして展開すると、エラーの発生箇所がリストされている。この例では、エラー番号DRJ08C63のエラーがMUX2の中に2個発生している。右欄には、エラー箇所番号がリストされているので、番号にマウスカーソルを合わせると、エラーが発生したレイアウトエディタ上の座標が表示される。下側の欄には、エラーの説明が表示されるので、どのような問題が検出されたのか確認する。上図の例では、M1(METAL1)の面積が小さすぎると指摘している。さらに、エラーの原因について詳しく調べる必要がある場合は、DRCディレクトリ内のerror.listを参照する(エラーの原因が分からない場合は、教員かTAに聞いてください)。

      DRC RVEでは、エラーの箇所をレイアウトエディタ上に表示する機能がある。エラー箇所の番号をダブルクリックすると、レイアウトエディタの上で、エラー箇所がハイライトされる。また、DRC RVEのメニューから、[Highlight] → [Zoom To Last Highlight]を選ぶと、直前に選んだエラー箇所がレイアウトエディタでズームされる。複数のエラー箇所をハイライトすると、どのエラーがどのハイライトに対応しているのか分からなくなるので、メニューより、[Highlight] → [Clear Highlight]で、これまでのハイライトを消すことができる。修正とRun DRCを繰り返し、全てのエラーを取り除く。

    5. 設定の保存と終了
      全てのエラーが修正できたら、DRC RVEのメニューから、[File] → [Exit]で終了。さらに、Calibre Interactive のメニューから、[File] → [Exit]を選ぶと、Save Settings?フォームが表示されるので、Yesボタンをクリックする。Save DRC Runsetフォームが現れるので、drc.runset と入力してOKボタンをクリックする。これで、DRCの設定が、drc.runset のファイル名で保存されたので、次回の起動時は、Load Runset Fileフォームで、このファイルを指定すれば同じ設定でDRCを行うことができる。

      [注意] CalibreはCentOSとの相性が悪いらしく、キーボードが使えないことがある。その場合は、終了時に表示される Save Settings?フォームで、Noボタンをクリックし、設定の保存をスキップする。

  3. LVS(Layout vs. Schematic)

    DRCは、物理的な寸法や位置関係を調べているだけで、回路として正しいかどうかは、調べていない。レイアウト-回路比較(LVS)により、レイアウトから抽出された回路図と、予め作成しておいた回路図を自動的に比較することにより、レイアウトデータと設計した回路が一致していることを保証することができる。

    1. 検証ツールの起動
      レイアウトエディタのメニューより、[Calibre] → [Run LVS]選ぶ。初回は、Load Runset FileフォームをCancelする。

    2. 検証ツールの設定
      左側のRulesボタンをクリックしてから、LVS Run Directory欄右側の ... ボタンをクリックし、予め作成してあったディレクトリ LVS を選択する。次に、LVS Rules Files欄右側の ... ボタンをクリックし、LVSルールファイル cbu018m5n1a_mod.lvs を選択する。右側のInputsボタンをクリックしてから、Layoutタブを開いて、Export from layout viewerにチェックが入っていることを確認。さらに、Netlistタブを開いて、Export from schematic viewerにチェックが入っていることを確認。チェックが入っていない場合は、チェックを入れておく。

      Fig.5.7

      Fig.5.8a

      Fig.5.8b

    3. LVSの実行
      Calibre Interactiveの左側のRun LVSボタンをクリックすると、LVSが始まる。レイアウトの編集が保存されていない場合は、LVSの実行前にレイアウトを保存するかどうか聞いてくるので、Yesをクリックする。場合によっては、確認フォームが何度か現れるが、全てOKをクリックする。LVSが終了すると、LVS RVEというツールが起動する。

      LVSエラーがある場合は、赤の×マークが付いたメッセージが表示される。エラーがなければ、緑のニコニコマークが表示される。

      Fig.5.9
      LVSエラーがある場合

      Fig.5.10
      LVSエラーフリーの場合

    4. エラーの修正
      エラーを示す×マークの左の+をクリックして展開すると、エラーの種類別にエラーがリストされている。この例では、レイアウトと回路図の間に一致しない箇所が1カ所あることが示されている。右下の欄を見ると、LAYOUT NAME(レイアウト側)が missing port となっており、SOURCE NAME(回路図側)が SEL となっている。つまり「回路図にあるSELに対応するレイアウトの端子が存在しない」ということを意味している。

      エラーの番号(Discrepancy #1 等)をダブルクリックすると、レイアウトエディタの上で、問題となっている配線がハイライトされる。また、メニューから、[Highlight] → [Zoom To Last Highlight]を選ぶと、直前に選んだエラー箇所がレイアウトエディタでズームされる。複数のエラー箇所をハイライトすると、どのエラーがどのハイライトに対応しているのか分からなくなるので、メニューより、[Highlight] → [Clear Highlight]で、これまでのハイライトを消すことができる。修正とRun LVSを繰り返し、全てのエラーを取り除く。

    5. 設定の保存と終了
      全てのエラーが修正できたら、LVS RVEのメニューから、[File] → [Exit]で終了。さらに、Calibre Interactive のメニューから、[File] → [Exit]を選ぶと、Save Settings?フォームが表示されるので、Yesボタンをクリックする。Save LVS Runsetフォームが現れるので、lvs.runset と入力してOKボタンをクリックする。これで、LVSの設定が、lvs.runset のファイル名で保存されたので、次回の起動時は、Load Runset Fileフォームで、このファイルを指定すれば同じ設定でLVSを行うことができる。

      [注意] DRCの時と同様、キーボードが使えない場合は、終了時に表示される Save Settings?フォームで、Noボタンをクリックし、設定の保存をスキップする。

  4. 設計者のIDパターンの作成

    レイアウトが完成したら、下記の要領で、上部の空き面積に、設計者を判別するためのIDパターンを入れておくこと。通常の設計では、IDパターンの作成は必要ないが、ここでは、実習レポートとして提出されたデータの識別コードとして使用するので描き忘れないように。(描き忘れていると未提出扱いとなるかもしれない)

    1. LSWで、METAL1レイヤーを選択
    2. レイアウト画面のメニューより、[Shape] → [Rectangle] を選択し(または B キー)、空き面積を適当にクリックして四角形を描く
    3. レイアウト画面のメニューより、[Tools] → [Create Ruler] を選択し(または k キー)、先程作成した四角形の角をクリックし、定規を表示させる。もう一点をクリックすると定規の他端が確定する。ただし、定規の長さは、名列番号を使用して、次のように決める。垂直方向 = (名列番号の上1桁)um, 水平方向 = (名列番号の下2桁/10 + 1)um
    4. 定規を消す場合は、レイアウト画面のメニューより、[Tools] → [Clear All Rulers] (または Shift + k キー)
    5. レイアウト画面のメニューより、[Edit] → [Stretch] を選択し(または s キー)、先程作成した四角形の辺をクリックすると、その辺を移動させることができるので、四角形を上記の定規の縦横寸法と一致するように変形させる。
[参考] 光の波長サイズの配線層パターンは、顕微鏡で観察すると、光の干渉により、様々な色に見える。この現象を利用して、設計チームや個人のロゴマークを挿入している歴史的有名チップも多い。顕微鏡で丁寧に探さないと見つからないため、マイクロアートとも呼ばれている。


[Table of Contents] [Next]


お問い合わせはこちらまで: kitagawa@is.t.kanazawa-u.ac.jp

Copyright (C) 2009- Akio Kitagawa, Kanazawa Univ.