WGexでビットマップ画像を使ってお絵かきをする
WGexで設計するレイアウト図は、長方形のあつまりで、その通りの図形としてLSI上につくられます。 ということは、レイアウト図が「絵」なら、そのまま「LSI上の絵」になる、ということですよね。 というわけで、一番上の層でつくるので見やすいML2レイヤをつかって絵を描いてみましょう。
もちろんドット絵職人として、正方形のドットで絵をかいてもいいわけですが、ビットマップ画像から一気に作成してみましょう。 ただしLSI上のパターンは、材料(この場合はアルミ)があるか/ないか、の二値ですので、ビットマップ画像も二値画像のみ、ということになります。中間調は残念ながら出せません(誤差拡散などで擬似的に中間調は出せますね)
まず、変換プログラムを準備しておきましょう。いまはC言語のプログラムしか用意していませんので、なんとかしてコンパイルしてください。(WindowsならCygwin、MacならXCodeを入れればgccが使えます)(誰かperlとかRubyとかのスクリプトをつくってくれるとうれしいなあ) (2016/79:akita11.icon追記)pgm2gex.cをバージョンアップしました。対角にドットが存在する箇所でDRCエラーが出るので、そこを1ドット埋めるようにしました。
続いて、レイアウト図に変換するビットマップ画像を用意します。もちろん著作権的に問題がないやつにしてください。
今回は、「いいね!」ボタンをつくってみましょう。自分の手です。
https://makelsi.github.io/images/docs/wgex_bitmap/like1.png
ML2レイヤを使う場合は、1ドット=LSI上の6um角の正方形、になります。つまり100x100ドットだと、600um x 600um(0.6mm x 0.6mm)ということになります。今回の試作ではチップ面積は実質2x2mmくらいですから、これだけでチップ全体の1/3 x 1/3くらいを占めてしまうことになります。いろんな人で相乗りしますので、そこそこにしておきましょう・・・ (ちなみに下層なので、実際にLSIチップではちょっと見にくくなりますが、POLレイヤを使うと2x2umと、更に小さいドットで絵を描くことができます)
ここでは、控えめ(?)に、50x50ドット程度に縮小しておきます。
https://makelsi.github.io/images/docs/wgex_bitmap/like2.png
これを、いろいろな方法を使って二値化して、PGM形式で保存しましょう。加工は、PhotoshopやIrfanView>あたりが便利ですね。
https://makelsi.github.io/images/docs/wgex_bitmap/like_bin.png
こいつを、さきほどコンパイルしたpgm2gexを使って、WGexデータに変換します。
./pgm2gex like.pgm > like.gex
こんな感じになります。もちろんDRCエラーもばっちりです。
https://makelsi.github.io/images/docs/wgex_bitmap/like.png