KLayoutを使ったLSI設計
KLayoutとは?
ドイツのMatthias Köfferleinさんが中心になって開発しているオープンソースのレイアウトCADソフト
LSI設計に使えるのは当然ですが、Web上ではPhotonic IC分野での利用が目立つ
ワシントン大(シアトル)のナノファブ
設計環境(nazca)
KlayoutとGladeの比較
https://gyazo.com/cd866d68960050824d0763f581a437fb
KLayoutの現状
DVB(LVS)がフィーチャーされたv0.2.6は、早くても半年後リリースを予想してましたが9月10日に正式リリースされました。
CMOSの抽出は出来るので、デジタル回路への適用は可能(RISC-Vを使った検証サンプルあり)
RとCの抽出もカスタムルーチンを書く必要はなくなった
マニュアル(英語)は充実している
一般ユーザ用のマニュアルは日本語訳完了
OpenRule1umへの対応状況
レイヤーファイル ーーー 色使いなどGladeのをまねて作りました
DRC ーーー GladeのPythonファイルから自動変換するscriptを作りましたが、viaのnon-stackエラーとかまだエラーがでます(2019/7時点から大きな進捗はまだない)
抽出ルール ーーー si4allというサンプルから変換して作りました。MOSの抽出に加え、抵抗とか容量も抽出ルーチンが用意されてます。
PCell ーーー R-polyとHR-polyに続いてMOS用を書きました。その後、MOSのフィンガーに対応し、キャパシタも作成しました。
マニュアル類
基本的な使い方、セルの階層設計など実戦的な内容です
LVSについてメインに書きました
インストール
準備:Linuxの場合
Linuxの場合、~/.klayout/salt に、パッケージを入れます。(Windowsでは、ホームの下のKLayout/saltというフォルダーです。)パッケージのインストールは以下のようにgithubから直接cloneしてください。
(注意:klayoutをまだ一度も起動してない場合、~/.klayoutは存在してないので、mkdir -p ~/.klayout/saltしてください。)
cd ~/.klayout/salt
注意: パッケージは随時アップデートされているので、時々salt/OpenRule1umで git pull を実行してください。
準備:Windowsの場合
Windowsの場合、 C:\Users\(ユーザ名)\KLayout\saltというフォルダにパッケージを入れます。saltというフォルダが無い場合は作成して、その中にパッケージを入れます。
パッケージの入れ方に関して、Git for Windowsを使った方法(上の「マニュアル類」の項目内の「KLayoutもうひとつのチュートリアル」のページ冒頭を参照)か、ブラウザで を開いて"Clone or Download"→”Download ZIP”でダウンロードし、salt以下にOpenRule1umというフォルダを作ってその中に解凍したものを入れても大丈夫だと思います。このとおり行えば、C:\Users\(ユーザ名)\AppData\Roaming\KLayout\salt\OpenRule1um以下にStdCellとtechのフォルダがあることになります。 パッケージのディレクトリ構成や名称をGladeとそろえるため、2020/6ごろ整理されてダウンロード先が変更されましたので、下の手順でOpenRule1umのパッケージをダウンロードしてください。 ブラウザでを開いて、ファイル一覧が表示されている右上あたりの緑色のボタン"Code"をクリックして"Download ZIP"でダウンロードします。ダウンロードできたら展開して、OpenRule1um-master\KLayoutにあるフォルダOpenRule1umをsalt以下に入れます。この通り行えば、C:\Users\(ユーザ名)\KLayout\salt\OpenRule1um\KLayout\OpenRule1um以下にBasicとtechのフォルダがあることになります。 saltのディレクトリはC:\Users\(ユーザ名)\AppData\Roaming\KLayout\salt以下にパッケージを置いても問題なく読み込まれますが、ユーザが追加するパッケージなどはC:\Users\(ユーザ名)\KLayout\salt以下に置くのがよさそうです。KLayoutの"Tools"->"Manage Packages"から新たにパッケージを作成する場合もこのフォルダにファイルは置かれます(Ver. 0.26.7で確認)。
チュートリアル
上の「マニュアル類」の項目内にも2つのチュートリアルがあります。
Tipsなど
WindowsでKLayoutを起動した際に、デフォルトではViewerモードになっていることがあります。KLayoutをインストールすると、「KLayout (default)」「KLayout (Editor)」「KLayout (Viwer)」の3つのソフトウェアショートカットが作成されます。編集する場合はこの3つのうち「KLayout (Editor)」を選択して起動するか、もしくは、KLayoutを起動したときに常にEditorモードにしたいときは”File”→”Setup”をクリックして、”Application”タブの中の”Editing Mode”を選択後、”Use editing mode by default”にチェックを入れると、「KLayout (default)」に設定が反映されて次回起動後からEditorモードで起動するようになります。
レイアウトのインスタンスを置いた時にトップレベルしか見えていない時は、メニューバーの”Display”→”Full Hierarchy”を選択するとすべてのレイヤが表示されます。
デフォルトグリッドを設定しておくと良い。設定しておくと簡単に切り替えできる(”File”→"Setup"の"Application"タブ"Default Grids"を例えば「0.5,1」 にして"OK"を押す。そして"View"→"Grid"から「0.5um」を選択)⇒レイアウト画面に表示されるグリッドの間隔が0.5umになります。
“File”→”Setup”の”Rulers And Annotations”タブの”Snapping”をクリックして、「Snap to grid」にチェックを入れる。⇒ルーラーの座標がグリッドの設定単位になります。
レイヤの描画で始点を決めた後はウィンドウ左下に相対座標が表示される⇒これを見ながら寸法を決めるとやりやすいです。
セルをウィンドウに合わせて表示する⇒"F2"キーで"Zoom Fit"されます("View"→"Zoom Fit"からもできる)。
ショートカットキーのCtrl+Sはデフォルトでは"Save"のショートカットキーではなく、KLayoutではデフォルトで「Show As New Top」のショートカットキーに割り当てられている(2020/5/26現在)。ちなみに、保存のショートカットキーはデフォルトでは無いようですが、”File”->”Setup”をクリックして、”Application”タブの中の”Customize Menu”でショートカットキーの設定をカスタマイズできるようです。
各操作のショートカットキーの割り当てがデフォルトでは少ない気がするので、適宜↑の設定からカスタマイズすると良いと思います。
WindowsでKLayoutのデフォルトのプロジェクトディレクトリが設定できない?
"File"→"Open”で開こうとすると必ずDocumentが開かれて、Document/KLayoutとかを開けるようにできないようです。 そのような設定が見つけられないので、できる方法があるという場合はこの項目を編集してください!
History
2019/7/4 森山作成。2019/9/17正式版リリースにあわせ修正
2019/11/17 KLayoutもうひとつのチュートリアルを追加しました
2020/1/18 OpenRule1umパッケージの入れ方を変更し、パッケージの定義方法をマニュアル追加しました
2020/5/26 Okawa:Windowsの場合のパッケージインストールの詳細な方法を追記したため一部変更。インストールの項目追加により、インストール方法について詳細な説明に変更。「チュートリアル」と「Tipsなど」の項目追加。
2020/7/9 Okawa:「準備」の項目内でLinuxの場合とWindowsの場合で分けて書いていたが、項目数が増えて分かりにくくなったので「準備:Linuxの場合」と「準備:Windowsの場合」に分けた。OpenRule1umのパッケージの整理により、ダウンロード先も変更されたため追記。「Tips」内のデフォルトグリッドの設定を「0.1,0.5,1」から「0.5,1」に変更。
2020/8/11 Okawa:KLayoutのチュートリアルのリンク名およびショートカットキーについてのTips追加、若干の記述の間違いなどがあったためそれの修正。
2020/8/29 Okawa:パッケージを置くsaltのフォルダの位置について変更。
2020/12/16 Okawa:KLayoutのテクノロジのレイヤの変更や追加の方法をTipsに追加。