
- 統合開発環境の起動
レイアウト設計には、回路図を作成したものと同じ統合開発環境を使用する。
vlsi> setlic
Cadence IC6に相当する番号を入力
vlsi> setlic
Mentor Calibreに相当する番号を入力
vlsi> cd ~/d
vlsi> virtuoso &
- Layout Viewの作成
- CIWのメニューから、Tools > Library Manager... を選択し、Library Managerを起動。
- Library Managerで、ライブラリLtickaをクリックして選択。
- Library Managerのメニューより、File > New > Cell View... を選択し、下図のように設定して、roscのlayout viewを作成。Typeは、layout、Open withは、Layout XL(レイアウトエディタ)とする。

- Library ManagerのView欄にlayoutが追加され、Virtuoso Layout Suite(レイアウトエディタ)が起動する
- レイアウトエディタの設定
レイアウト設計がしやすいように、下記の設定をしておく。
- レイアウトエディタのメニューより、Options > Display... で、以下のグリッド設定を行う
- 許容されるグリッドの値は、使用テクノロジやレイヤーによって異なるが、ここでは、エラーが出ないよう余裕を持たせている。集積度を上げたいときは、設計規則を確認するとよい。
設定内容
Grid Controls - Minor Spacing | 0.02 |
Grid Controls - Major Spacing | 0.2 |
Grid Controls - X Snap Spacing | 0.02 |
Grid Controls - Y Snap Spacing | 0.02 |
Snap Modes - Create | anyAngle |
Snap Modes - Edit | anyAngle |

以上の設定をライブラリLtickaに保存する。
- 下の方のLibraryのラジオボタンを選択。
- Save Toボタンをクリックしてから、OKボタンをクリック。
- レイアウトの手順
- レイアウトエディタのDisplay Stop Level(数字の書かれたツールボックス)を10に変更。
- Display Stop Levelは、表示する階層数を表す。値が小さいと、呼び出した部品の内容が表示されず外形表示となるが、描画が高速になる。通常は、10で十分。
- Work Space欄を、Basicに変更。

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

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

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

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

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

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

- GATEの配線を実行。

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

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

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

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

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

LSW

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

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

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

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


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

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


- リングVCO全体のレイアウト例
- レイアウトデータを保存
DRCにパスしていない設計データは、製造企業が受け入れないので、全てのエラーを修正する必要がある。
- DRCルールの設定
- レイアウトエディタのメニューより、Calibre > Run DRC を選択すると、Load Runset Fileフォームが開くが、Cancelボタンをクリックする。
- Calibre Interactiveウインドウが開くので、次のように設定する。
左側 Rulesボタンをクリック
DRC Rules File | drc_merl.rul |
DRC Run Directory | DRC |
左側 Inputsボタンをクリック
- Calibre Intaractiveのメニューより、File > Save Runset を選択。
- File Path = drc.runsetとして、OKボタンをクリック。
- 次回から、Calibreの起動時にdrc.runsetを選択すれば、ここまでの設定が読み込まれる。
- DRCの実行
- Calibre InteractiveウインドウでRun DRCボタンをクリックすると、Calibre RVEウインドウが起動し、エラーがなければ下記のような空欄の画面が表示される。

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

- DRCエラーの修正
- 虫眼鏡のドロップダウンリストから、Pan to highlightsかZoom to highlightsを選ぶ。
- 左側Results欄の+マークをクリックして、セル名を選択し、エラー箇所番号を表示させる。
- 右側のエラー箇所番号をダブルクリックする。
- レイアウトエディタ上に、エラー検出箇所が表示される。
- Checktext欄に簡単なエラーメッセージが表示される。エラー箇所は、色で塗りつぶされるか、線が表示される(エラーの種類による)。
- レイアウトエディタで、CTRL + z (Zoom in)またはShift + z (Zoom out)し、エラー箇所を拡大表示することができる。
- 上図の例では、DRJ08C63とDRJ0263の2種類のDRCエラーが発生している。虫眼鏡ボタンの隣の消しゴムボタンをクリックすると、ハイライトが消去される。ハイライトは、消去しないと修正がしにくいことがある。
[重要] verificationディレクトリに下記のファイルがあるので参照すること。
read_me.txt | 無視してもよいエラー番号のリスト |
error.list | DRCエラーの説明 |
- レイアウトエディタ上でエラーを修正し、Calibre InteractiveウインドウのRun DRCボタンで再度DRCを実行。エラーが全て無くなるまで繰り返す。
- Specify layout cellのメッセージが表示される場合は、Cell NameがDRC対象セル名となっていることを確認して、OKボタンをクリック。
LVS (Layout vs Schematic) |
手作業で作成したレイアウトデータは、LVSにより回路図との照合を行う必要がある。
- LVSルールの設定
- レイアウトエディタのメニューより、Calibre > Run LVS を選択すると、Load Runset Fileフォームが開くが、Cancelボタンをクリックする。
- Calibre Interactiveウインドウが開くので、次のように設定する。
左側 Rulesボタンをクリック
LVS Rules File | cbu018m5n1a_mod.lvs |
LVS Run Directory | LVS |
左側 Inputsボタンをクリック
Layoutタブ | Export from layout viewerにチェック |
Netlistタブ | Export from schematic viewerにチェック |
- Calibre Intaractiveのメニューより、File > Save Runset を選択。
- File Path = lvs.runsetとして、OKボタンをクリック。
- 次回から、Calibreの起動時にlvs.runsetを選択すれば、ここまでの設定が読み込まれる。
- LVSの実行
- Calibre InteractiveウインドウでRun LVSボタンをクリックすると、Calibre RVEウインドウが起動し、エラーがなければ下記のような空欄の画面が表示される。

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

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