JapaneseEnglish
フルカスタムレイアウト設計

レイアウト設計

  1. 統合開発環境の起動

    レイアウト設計には、回路図を作成したものと同じ統合開発環境を使用する。

    vlsi> setlic
    Cadence IC6に相当する番号を入力
    vlsi> setlic
    Mentor Calibreに相当する番号を入力
    vlsi> cd  ~/d
    vlsi> virtuoso &
    
  2. Layout Viewの作成

    1. CIWのメニューから、Tools > Library Manager... を選択し、Library Managerを起動。
    2. Library Managerで、ライブラリLtickaをクリックして選択。
    3. Library Managerのメニューより、File > New > Cell View... を選択し、下図のように設定して、roscのlayout viewを作成。Typeは、layout、Open withは、Layout XL(レイアウトエディタ)とする。

      Layout View of Ring Oscillator

    4. Library ManagerのView欄にlayoutが追加され、Virtuoso Layout Suite(レイアウトエディタ)が起動する

  3. レイアウトエディタの設定

    レイアウト設計がしやすいように、下記の設定をしておく。

    1. レイアウトエディタのメニューより、Options > Display... で、以下のグリッド設定を行う
      許容されるグリッドの値は、使用テクノロジやレイヤーによって異なるが、ここでは、エラーが出ないよう余裕を持たせている。集積度を上げたいときは、設計規則を確認するとよい。

      設定内容
      Grid Controls - Minor Spacing0.02
      Grid Controls - Major Spacing0.2
      Grid Controls - X Snap Spacing0.02
      Grid Controls - Y Snap Spacing0.02
      Snap Modes - CreateanyAngle
      Snap Modes - EditanyAngle

      Display options

      以上の設定をライブラリLtickaに保存する。

    2. 下の方のLibraryのラジオボタンを選択。
    3. Save Toボタンをクリックしてから、OKボタンをクリック。

  4. レイアウトの手順

    1. レイアウトエディタのDisplay Stop Level(数字の書かれたツールボックス)を10に変更。
      Display Stop Levelは、表示する階層数を表す。値が小さいと、呼び出した部品の内容が表示されず外形表示となるが、描画が高速になる。通常は、10で十分。
    2. Work Space欄を、Basicに変更。

      Display stop level

    3. レイアウトエディタと同時に回路図も開くので、これから設計する回路部分をドラッグして選択する。ここでは、リングオシレータ1段分の4個のMOSFETを選択する。
      全体を選択してもよいが、多量にMOSFETのレイアウトが生成されるのでどれが、どれやら分からなくなるので、部分を絞った方がよい。

      1-Stage

    4. レイアウトエディタの下側のツールボックスで、Generate Selected From Sourceアイコンをクリックすると、MOSFETのパターンが6個レイアウトウインドウに表示される。
      回路図上のMOSFETは4個だが、p-ch MOSGEYはMultiplier = 2 なので、各MOSFETに2個のレイアウトが生成される(Multiplier = 並列接続数)。

      Layout XL Toolbar

    5. 横に並んでいる2個のMOSFETを移動させ、ゲート電極を近づけアバットメントを行う。移動は、ツールバーのMoveボタンまたはmキーで実行できる。

      Layout XL Toolbar

      アバットメントは、並列または直列に接続された複数の同タイプMOSFETをマージさせる。詳しくは、集積回路工学第1の実習ページを参照。
      1. 直列接続されている2個のMOSFETの場合は2本のゲート電極が平行に並ぶ。
      2. 並列接続されている2個のMOSFETの場合は2本のゲート電極がコンタクト列を挟んで平行に並ぶ。
      3. 直列と並列の両方の接続がある場合は、直列のMOSFETを先にアバットメントした方がレイアウト面積は小さくなる。
        p-ch MOSFETは4個あるが、並列接続MOSFETが隣に初期配置されるので、直列接続のペアを探すこと。移動させようとすると、配線が表示されるの、どれが直列接続か判断できる。
    6. 直列接続のMOSGETをアバットメントしたら、2組のp-ch MOSFET をさらにアバットメントさせる。

      Abutment

    7. n-ch MOSFETの組とp-ch MOSFETの組をそれぞれ、ドラッグで選択して、グループ化しておく。グループ化は、ツールバーのCreate Groupボタンで実行できる。

      Layout XL Toolbar

    8. 配線のアイコン(Create Wire)をクリックしてから、接続を引き出したい場所をクリックすると、配線が引き出されるので、接続先までマウスカーソルを移動させてダブルクリックで終了。

      Layout XL Toolbar

    9. GATEの配線を実行。

      Layout Gate

    10. GATE(ploy-Si)とMETAL1を接続するためのContactのパターンを配置。
      iキーを押して部品を呼び出す。ライブラリ= layoutLib, セル = CGATE

      Layout Contact

    11. METAL1とMETAL2を接続するためのVIA1のパターンを配置。
      iキーを押して部品を呼び出す。ライブラリ= layoutLib, セル= VIA1

      Layout VIA1

    12. METAL1(赤)とMETAL2(シアン)の配線を行う。
      1. 複数の配線レイヤーがあるところをクリックすると、レイヤー選択ウインドウが表示されるので、配線を作りたいレイヤーの色を選択。
      2. 最小配線幅は、設計規則を確認すること。下記の図では、METAL2の幅を大きめにしてある。
        配線幅の変更は、配線を引き出した後、右クリック > Options... で Create Wireフォームを表示させ、Width欄に値を入力。

      Layout VIA1

    13. NWELLへのコンタクトを作成。
      1. iキーを押して部品を呼び出す。ライブラリ= layoutLib, セル = CNACT
      2. Create Instanceフォームで、Rows = 2, Columns = 6, Delta Y = 0.48, Delta X = 0.48として、p-ch MOSFETの近くに配置(Delta X, Y の値について警告が出ることがあるが無視してよい)。
    14. P-Substrateへのコンタクトを作成。
      1. iキーを押して部品を呼び出す。ライブラリ= layoutLib, セル = CPACT
      2. Create Instanceフォームで、Rows = 2, Columns = 6, Delta Y = 0.48, Delta X = 0.48として、n-ch MOSFETの近くに配置。

      [参考] 通常、NACTはp-substrate, PACTはNWELL内に配置し、NTAPはNWELL, PTAPはp-substrateに配置する。ただし、ACTIVEがNWELLの境界に近い場合、NACT, PACTと同じ設計規則が適用されるため、ここでは、NACTをNWELL内、PACTをp-substrateに配置した。

      Layout TAP

    15. 作成したCNACTの回りをNWELLで囲む。
      1. LSW(レイヤーがリストされた縦長のウインドウ)で、NWELLを選択。
      2. Create > Shape > Rectangle(または、bキー)で配置。
        適当な大きさの長方形を作成してから、ツールバーのStretchボタンまたはsキーで、辺をクリックして変形させると簡単に大きさの調整ができる。
        p-ch MOSFET用のNWELLとの間に隙間を空けないこと。
        ACTIVEとの距離が短か過ぎるとDRCエラーになるので注意。

      NWELLの追加
      N-Well

      LSW
      LSW

    16. METAL1で、電源の配線を行う。
      1. LSWでMETAL1を選択。
      2. bキーで、CNACTとCPACTの上にMEATL1(赤)の長方形を描く。
      3. ツールバーのCreate Wireボタン(または CTRL + Shift + w)で、MOSFETのSource電極をCNACT,CPACT上の電源ラインに接続。

      Layout Power Line

    17. METALの面積が小さすぎると、設計規則エラーとなるので、Rectangle(bキー)で、わざと伸ばしておく。

      Layout Metal Extetion

    18. 1段分の電流制御インバータが完成。

      Layout Inverter

    19. レイアウトを保存。
    20. 1段分の電流制御インバータを5個コピーして並べる。
      1. 1段分の電流制御インバータをドラッグして選択し、グループ化する。
      2. ツールバーのCopyボタンまたはcキーで、1段分の電流制御インバータをコピーして5個作る。
        高さを揃えて配置する必要があるが、適当に配置して、後でそろえてもよい。そろえ方は、集積回路工学第1の実習ページを参照。

      Layout XL Toolbar

      Layout Inverter Chain

    21. 同じ要領で、カレントミラーのレイアウトを行う。

      Layout Currnt Mirror

    22. ツールバーで、Create Labelボタンをクリックし、VDD!, VSS!, F_CTL, OSC_OUTのラベルを作成。配線層に合わせてラベル付けをする必要があるので、ここでは、ラベルを作成する前に、LSWで、METAL1を選択しておく。
      ラベルは、LVSのときに必要になる。
      ! は、グローバル配線であることを表す。! を付けないと、その階層だけのローカルな配線ラベルとして扱われる。

      Layout XL Toolbar

      Layout Label

    23. リングVCO全体のレイアウト例

    24. レイアウトデータを保存

DRC (Design Rule Check)

DRCにパスしていない設計データは、製造企業が受け入れないので、全てのエラーを修正する必要がある。

  1. DRCルールの設定

    1. レイアウトエディタのメニューより、Calibre > Run DRC を選択すると、Load Runset Fileフォームが開くが、Cancelボタンをクリックする。
    2. Calibre Interactiveウインドウが開くので、次のように設定する。

      左側 Rulesボタンをクリック
      DRC Rules Filedrc_merl.rul
      DRC Run DirectoryDRC

      左側 Inputsボタンをクリック
      Run:DRC(Flat)

    3. Calibre Intaractiveのメニューより、File > Save Runset を選択。
    4. File Path = drc.runsetとして、OKボタンをクリック。
      次回から、Calibreの起動時にdrc.runsetを選択すれば、ここまでの設定が読み込まれる。

  2. DRCの実行

    1. Calibre InteractiveウインドウでRun DRCボタンをクリックすると、Calibre RVEウインドウが起動し、エラーがなければ下記のような空欄の画面が表示される。

      Calibre No Error

    2. エラーリストが表示された場合は、配置配線のやり直しか、手でレイアウトの修正を行う必要がある。

      Calibre Error Rport

  3. DRCエラーの修正

    1. 虫眼鏡のドロップダウンリストから、Pan to highlightsかZoom to highlightsを選ぶ。
    2. 左側Results欄の+マークをクリックして、セル名を選択し、エラー箇所番号を表示させる。
    3. 右側のエラー箇所番号をダブルクリックする。
    4. レイアウトエディタ上に、エラー検出箇所が表示される。
      Checktext欄に簡単なエラーメッセージが表示される。エラー箇所は、色で塗りつぶされるか、線が表示される(エラーの種類による)。
      レイアウトエディタで、CTRL + z (Zoom in)またはShift + z (Zoom out)し、エラー箇所を拡大表示することができる。
    5. 上図の例では、DRJ08C63とDRJ0263の2種類のDRCエラーが発生している。虫眼鏡ボタンの隣の消しゴムボタンをクリックすると、ハイライトが消去される。ハイライトは、消去しないと修正がしにくいことがある。

      [重要] verificationディレクトリに下記のファイルがあるので参照すること。

      read_me.txt無視してもよいエラー番号のリスト
      error.listDRCエラーの説明

    6. レイアウトエディタ上でエラーを修正し、Calibre InteractiveウインドウのRun DRCボタンで再度DRCを実行。エラーが全て無くなるまで繰り返す。
      Specify layout cellのメッセージが表示される場合は、Cell NameがDRC対象セル名となっていることを確認して、OKボタンをクリック。
LVS (Layout vs Schematic)

手作業で作成したレイアウトデータは、LVSにより回路図との照合を行う必要がある。

  1. LVSルールの設定

    1. レイアウトエディタのメニューより、Calibre > Run LVS を選択すると、Load Runset Fileフォームが開くが、Cancelボタンをクリックする。
    2. Calibre Interactiveウインドウが開くので、次のように設定する。

      左側 Rulesボタンをクリック
      LVS Rules Filecbu018m5n1a_mod.lvs
      LVS Run DirectoryLVS

      左側 Inputsボタンをクリック
      LayoutタブExport from layout viewerにチェック
      NetlistタブExport from schematic viewerにチェック

    3. Calibre Intaractiveのメニューより、File > Save Runset を選択。
    4. File Path = lvs.runsetとして、OKボタンをクリック。
      次回から、Calibreの起動時にlvs.runsetを選択すれば、ここまでの設定が読み込まれる。

  2. LVSの実行

    1. Calibre InteractiveウインドウでRun LVSボタンをクリックすると、Calibre RVEウインドウが起動し、エラーがなければ下記のような空欄の画面が表示される。

      Calibre No Error

    2. エラーリストが表示された場合は、配置配線のやり直しか、手でレイアウトの修正を行う必要がある。

      Calibre Error Rport

  3. LVSエラーの修正

    1. エラーを示す×マーク(赤)の左の+をクリックして展開する。
      上図の例では、レイアウトと回路図の間に一致しない箇所が1カ所あることが示されている。右下の欄を見ると、LAYOUT NAME(レイアウト側)が missing port となっており、SOURCE NAME(回路図側)が VSS! となっている。つまり「回路図にあるVSS!に対応するレイアウトの端子が存在しない」ということを意味している。
    2. エラーの番号(Discrepancy #1 等)をダブルクリックすると、レイアウトエディタの上で、問題となっている配線がハイライトされる。
      Calibre RVEのメニューから、Highlight > Zoom To Last Highlight を選ぶと、直前に選んだエラー箇所がレイアウトエディタでズームされる。
      複数のエラー箇所をハイライトすると、どのエラーがどのハイライトに対応しているのか分からなくなるので、メニューより、Highlight > Clear Highlight で、これまでのハイライトを消す。
    3. 修正とRun LVSを繰り返し、全てのエラーを取り除く。


[Table of Contents] [Next]


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

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