#2020/11/25注
gdspyの作者@heitzmannが現在新プロジェクトgdstkに注力しているため、筆者もgdstkに乗り換えた。gdspyに比べgdstkは爆速なので、よろしければ次の記事gdstkでPython最速のGDSII layout制作環境を作るを参照されたい。
はじめに
GDSII(以下GDS)はICやMEMSのレイアウト用CADフォーマットとして知られている。筆者はMEMSやメタサーフェス製作のためにGDSを利用している。GDSはLayoutEditorやKLayoutなどのマスク用CADソフトで直接作成することもできるし~~(お金持ちはCadenceを使うw)~~、AutoCADやSolidworks等で扱えるdxfファイルから変換することもできるが、数式を用いて記述できるパターンに対してはプログラミング言語の適用が便利である。
筆者も永らくJAXA三田先生のページを参考にPerlでGDSを描いてきたのだが、近年はCADのファイルサイズが肥大化し、Perlでは限界を感じることが多くなった1。そのため、2019年以降はPythonでGDSを作成している。ここではPythonでGDSファイルを作成するためのノウハウを記述していこうと思う。
PythonでGDSIIを扱うためのライブラリの選定
PythonでGDSIIフォーマットを取り扱うためのライブラリはいくつか提案されているが、筆者のおススメはgdspyである。知られているライブラリを列挙すると、
- gdspy
- gdsCAD
-
python-gdsii
等がある。このうち、執筆時点(2020年2月16日)でアップデートが頻繁に行われているのはgdspyであり、機能的にも充分に感じているので、本稿では主にこちらを取り挙げる。
Windows 10 上のAnaconda環境へのgdspyのインストール
ここではWindowsマシン上でとりあえずgdspyでgdsファイルを作成するまでの環境設定について述べる。
-
Anaconda 3 のインストール
https://www.python.jp/install/centos/anaconda/install.html
を見ながらインストールする。 -
Anaconda 3 のアップデート(適宜実行する)
Windows -> cmd.exe (コマンドプロンプト)から
> conda update --all
-
gds用環境の設定
conda環境とpip環境が混在しているとなんだかうまくいかないらしいので、念のためAnaconda 3 に、新しいenvironmentを作る。gdsiiなどの名前にしておく。
3-1. gdspyに必要なモジュールをインストールしておく。
numpy
cython
pip
spyder -
gdspyの導入
下記URLにある
https://qiita.com/mckeeeen/items/d4cbe4a16a102157f40c
"Anaconda環境にpipでパッケージをインストールする"を実行し、gdspyをインストールする。
Windows -> cmd.exe (コマンドプロンプト)から、下記を実行する。
(> の行がコマンド入力を示す)
>conda info -e
# conda environments:
#
base * C:\Users\k_iwa\Anaconda3
> source activate base
<-ここの名前(base)は3.で導入したgdspy用environmentにする。
5. gdspyのインストール
> pip install gdspy
C++コンパイラ環境(例えばBuild Tools for Visual Studio 2019)や、cythonなどのライブラリのインストールができていないと、gdspyのインストールができてもきちんと正常動作しない。ダメならpip uninstall gdspy
でアンインストールしてからライブラリを整えてインストールしなおす。
6. Anaconda 3からSpyderなどのPython IDE環境を利用してgdspyを利用する。ドキュメントはここ。
gdspy 1.5 (20, Dec, 2019)からだいぶ記法が変わった。今後詳述する。
-
どうも600MBを超えるとPerlではエラーが出てGDSを出力できなかった。なぜかは結局よくわからなかった。 ↩