Pythonスクリプトで画像をLSIレイアウトに変換
Picture to GDS
以降で詳細な説明を述べます。
はじめに
Picture to GDSを使って、好きな画像データをLSIのレイアウトデータ (GDSII形式) へ変換することができます。
LSI上では金属やポリシリコンのレイヤがあるか、ないかの2値で画像を表現する必要があるため、本スクリプトでは入力画像をまず白黒の二値画像に変換したのち、レイアウトデータへの変換をおこなっています。
画像ファイルの形式はjpeg, jpg, png, pbm, pgm, bmpなどに対応しています。透明度情報を含むpngファイルを使用する場合は、二値化が上手くいかないことがあるため注意してください。また、画像サイズは最大500px×500px程度を目安にしてください。加えて、ファイル名は半角英数字のものを使用してください。
使用に際しては、変換したい画像ファイル、1ピクセルに対応するレイアウトの大きさ、変換後のGDSIIレイヤ番号を指定します。1ピクセルに対応するレイアウトの大きさは、変換後レイアウトデータの最小線幅・最小線間隔となります。指定レイヤのデザインルールに応じて値を決めてください。
スクリプトを実行すると、二値化された画像ファイル (image.bmp) とレイアウトデータ (image.gds) が出力されます。
スクリプト本体は から入手可能です。Githubの"Clone or download"で手元の環境にスクリプトをダウンロードして使用してください。 スクリプト実行に必要なパッケージ
Python本体 (バージョンは3.xを想定) のほかに、
といったPythonのパッケージが必要になります。これらをインストールしたのちに、スクリプトを実行してください。
使い方
スクリプトと画像ファイルを同じフォルダに置いた上で、以下のコマンドを実行してください。
python picToGDS.py <画像ファイル名> <1ピクセルに対応するレイアウトの大きさ (単位はµm) > <レイヤ番号>
実効例
以下に実行例を示します。テスト環境はos: windows10, Pythonのバージョン: 3.6.2です。
スクリプトpicToGDS.pyと画像ファイルtest.jpgを同じフォルダへ置いた上で、コマンドプロンプトを起動し、そのフォルダへと移動します。そこで、
python picToGDS.py test.jpg 0.6 4
と入力すると、test.jpgを二値化した画像であるimage.bmpと、レイアウトファイルimage.gdsが得られます。
https://raw.githubusercontent.com/ourfool/image-files/master/picToGDS.jpg
スクリプト実行時に、<1ピクセルに対応するレイアウトの大きさ (単位はµm) >を0.6、 <レイヤ番号>を4と指定しました。
ここで、image.gdsの右側に示した拡大図からわかるとおり、画像ファイルの1ピクセルに対応するレイアウトの単位サイズは0.6 µmとなっています。また、確認するとレイヤ番号は4となっていることがわかります。
文責・問い合わせ先
Junichiro Kadomoto