Glade:はじめの一歩(2)=インバータの設計(レイアウトの作成)
(17/03/09:akita11=1st draft)
(20/05/12:akita11=OpenRule1um用に更新
最終的に作った回路をLSI上に「焼く」ためには、レイアウトデータが必要です。ここでは、インバータを題材に、レイアウト設計をしてみましょう。
レイアウト設計では、目的ごとにレイヤ(色)を変えながら設計を進めていきます。ここでは、2019年現在MakeLSI:でメインで使っている、誰でも使える「OpenRule1um」の1um/3層配線プロセスを使って、設計を進めていきましょう。このあたりに詳しくない方は、レイヤの構成と実際のLSIの構造との対応、OpenRule1umの概要について、「はじめてLSI設計~レイアウト設計編」と、レイヤ構成は異なりますが基本はだいたい同じなので「WGexの使い方」やをぜひご一読ください。以下では、レイヤの機能やLSIの構造の話はわかっている前提で話を進めます。 ↓まずは新規にレイアウトを作成するために、以下のようにtest/inv/layoutを作成します。
https://makelsi.github.io/images/docs/Glade/lay01.png
なおグリッドとスナップを"0.5"に変更しておいてください。(単位はミクロン(um)。OpenRule1umは基本的には1umグリッドで設計しますが、念のためその半分の0.5umグリッドにしておきます)
https://makelsi.github.io/images/docs/Glade/lay02.png
なおSnap Settingでは、"Snap Angle"として、"Manhattan"を選ぶと、描画や移動が上下左右の垂直水平方向に限定されます。レアウト設計では、この設定のほうが便利(特に配線を描くとき)なのですが、使いにくいと感じたら、これを"Diagonal"(上下左右と斜め45度)や"Any Angle"(任意の方向)にしておくとよいでしょう。
https://makelsi.github.io/images/docs/Glade/lay03.png
またレイアウト設計で使うレイヤを選択するためのLSWウインドウを、Tools→LSWから表示させておきます。移動して統合などができるのでNetBrowserウインドウとタブ切り替えにしておくとよいでしょう。(すでに表示されていればそのままでOK)
https://makelsi.github.io/images/docs/Glade/lay04.png
ここから先は、基本的にはお絵かきツールと同じです。LSWでレイヤ(色)を選び、R(Rectantular:長方形)などで図形を描いていきます。
https://makelsi.github.io/images/docs/Glade/lay05.png
描画の過程で、長方形の変形をすることがよくありますが、このとき、「Glade:はじめの一歩(1)=インバータの設計(回路図の作成)」で少し触れた、 図形の選択モードについて思い出しておきましょう。F4でトグル切り替え、またはDisplayOptionのMiscellaneousから設定できます。↓はPartialモードにした状態です。 https://makelsi.github.io/images/docs/Glade/lay06.png
↓Partialモードでは、長方形の辺や頂点をクリックで選択(白く色が変わる)できます。
https://makelsi.github.io/images/docs/Glade/lay07.png
↓この状態でS(Stretch)で変形できます。
https://makelsi.github.io/images/docs/Glade/lay08.png
↓Fullモードだと、辺や頂点をクリックしても図形全体が選択されます。このときはSでも変形はできず移動になります。
https://makelsi.github.io/images/docs/Glade/lay09.png
↓こんな調子で、設計ルールを守りながら、インバータを設計しました。(だいぶ途中を省略していますが・・・)
https://makelsi.github.io/images/docs/Glade/lay10.png
念のため、OpenRule1umの設計ルールで留意すべき主な寸法についてまとめておきます。
↓nMOSです。Narea内にDIFFを描き、両側のS/Dのところにdconを置き、真ん中のPOLのところがゲートです。また負電源側の基板コンタクトとしてpsubconを置きます。それぞれの幅や間隔の最小値は図の通りです。
https://makelsi.github.io/images/docs/Glade/lay10a.png
↓pMOSです。nMOSでのNarea/psubconの代わりに、Parea/nsubconを使います。またnsubconとpMOS全体を囲うようにNWLを置きます。
https://makelsi.github.io/images/docs/Glade/lay10b.png
↓pMOSとnMOSの間の部分です。NWLとnMOSのDIFFは3um以上、pconに含まれるML1と出力端子XのML1は1um以上離します。
https://makelsi.github.io/images/docs/Glade/lay10c.png
続いて、入出力端子や電源端子には、その場所と同じレイヤでラベル(テキスト)を置いておきます。
↓入力Aと出力X(ML1)
https://makelsi.github.io/images/docs/Glade/lay11.png
↓VDD(ML1)
https://makelsi.github.io/images/docs/Glade/lay11a.png
↓VSS(ML1)
https://makelsi.github.io/images/docs/Glade/lay11b.png