GDSII Viewer 1.59 の使用の仕方

ソフトのvectorのページ

  ツールバーの説明
下記、写真参照。
主な使用するボタン。左からセルの選択、レイヤーの階層、描画停止ボタン、再描画ボタン、位置のリセットボタン、レイヤーセットアップ、レイヤー塗りつぶし、ルーラーON、ルーラーOFF。

  ファイルを開く。
file→Open GDSII file…
を選択。ファイルを選ぶ。

  レイヤーセットアップ。どちらでも選択はできる。設定は次。

  レイヤーセットアップの説明。レイヤー番号に対して、色、塗りパターン、レイヤー名を設定。設定を別途ファイルで保存できる。
変更したらApplyを押す。
塗りパターンはツールバーのボタンを押すと適応される。

  グリットと目盛りの設定。
preference → Grid and measure
設定は次。

  副グリット、主グリットを設定する。ルーラーで測る際にはスナップを適切に設定する。

 ルーラーONにして左クリックで測定をする。表示を消す場合は、ルーラーOFFを押す。

  マウス、キーボード操作
左クリック 選択時 ズーム or ルーラー
右クリックしながら 右下にエリア選択 ズームイン
右クリックしながら 左上にエリア選択 ズームアウト
カーソルキー 移動

以上、簡単ですが、GDSII Viewer 1.59 の使用の仕方でした。

matplotlibでエミッター接地のトランジスターの静特性のグラフを描く

表題にあるように、教科書に載っているようなエミッター接地のトランジスターの静特性のグラフを描きます。

KURO
トランジスターの静特性って一枚のグラフで描けるの?
NIKE
Matplotlibを使うと以外に簡単にできるんです。
KURO
ちょっとコードをみるとなかなか大変そう。
NIKE
でも前の記事にある4つのグラフを強引に一枚にするやり方の応用ですよ。要は、plt.axes()をつかっているだけです。ただデータの個数やラベルでコードが長くなっているだけだよ。

コードは以下。

描いたグラフです。
さらに原点のラベルも調整するといいかもしれません。

追記
もう少し体裁を整えるとここまでできます。

written by gatamix

Python gdspy で大きな円を描く

gdspyでgdsデータの作成について書きましたが、gdspy.Round()関数で大きな円を描くと非常に時間がかかります。そこで,numpyとgdspy.Polygon()関数を使って大きな多角形を描こうと思います。今回は円に近い90角形を描いてみること試みます。ほぼ円に近くなります。

コードです。

作図例

ルノアール
GDSiiデータでは点を指示するので、円形にするには、多角形で近似します。

written by gatamix

Python でGDSII データを作成する ウェハー上の配置を計算する

Gatamixです。
GDSII データの作成としてGDSPYを使用してきましたが、ウェハー上の配置の計算をしてみました。
素子パターン(Aパターン)とそれ以外のパターン(Bパターン)を配置するようにしました。

Aパターンが領域内に入っていれば、有効と判断して描画するようにしています。
ウェハーの中心に対して線対称(y軸で対称)になるように配置をすれば、計算で出せます。
色々な方法がありますが、
Aパターンの4点が領域ないのウェハー半径長さより小さければ有効にすれば判定できます。
ちなみにこの描画は違う方法で判定させました。上の方法は計算が多くなるので、PCの能力が必要な場合があります。

written by gatamix

Python でGDSII データを作成する テストスクリプトを動かす

Gatamixです。
前回に続き、gdspyについてです。

リンク先のスクリプトを動かして動作を確認しました。

 gdspy.readthedocs.io 
Maze Found | Read the Docs
http://gdspy.readthedocs.io/en/latest/tutorial.html

  確認結果
モジュールにあるviewerの表示です。

  他のソフトでの表示
LayoutEditorでの表示です。

しっかりとサブセルを使用してgdsファイルが作成されていました。
gdsファイルは論理演算や階層構造などができるため、複雑な構造も簡単に作成できます。
ということでgdsファイルをpythonでプログラミングで作成できるか試してみました。
なんかツールが作れるか考えてみようと思います。

追記 python のモジュールでは、gdsCADもあります。


それぞれのモジュールでは、長所短所があるような記述でした。

written by gatamix

Python でGDSII データを作成する gdspyをインストールする

Gatamixです。
GDSIIのデータをプログラムから記述できるようなので、試してみようと思います。
GDSは半導体などのCADで使用されているレイアウト用のフォーマットです。
詳しくはwiki やリンクを参照してください。


 www7b.biglobe.ne.jp 
GDSIIデータとは
http://www7b.biglobe.ne.jp/~garaku/HSGDS/GDSII_p01.html

通常はCADソフト(IC関係ではケイデンス社などが有名です。)を使用して作るのですが、pythonでgdspyというモジュールがあったのでとりあえずインストールしてみます。(今回はインストールだけで確認は後日)
インストールは下記リンクによるとMac OSだとpipからのようです。

  インストール
$source activate root
$ pip install gdspy

ipython で確認する。

$ ipython

In [1]: import gdspy

In [2]: gdspy??

"""
gdspy is a Python module that allows the creation of GDSII stream files.

Many features of the GDSII format are implemented, such as cell
references and arrays, but the support for fonts is quite limited.  Text
is only available through polygonal objects.

If the Python Imaging Library is installed, it can be used to output the
geometry created to an image file.
"""

Python Imaging Libraryがあるとイメージファイルを作れるとの記述がある。
確認したところ、Python 3.6.1 |Anaconda 4.4.0 (x86_64)ではPython Imaging Libraryが入っているようです。(Tutorialを確認したが、特に使い方がわからなかった。)
現在はPILで出力する機能は削除されたもよう。

TutorialのExamples

 gdspy.readthedocs.io 
Maze Found | Read the Docs
http://gdspy.readthedocs.io/en/latest/tutorial.html

HAI
pythonでもgdsiiのファイルを作れるんだね。
KURO
CADソフトにお金がだせないところは使ってみてもいいかも?
MIKE
どのくらい実用的かな?
NIKE
gdsiiは半導体以外にも使われているみたいだし、いろいろつかえると思うよ。ただ、近接効果がある場合は補正がむずかしいかも。
KIJI
適切に判断しないといけないね。ということで以上インストールまででした。

written by gatamix