Buat software CAD baru?

Saya sedang melakukan riset kecil-kecilan untuk melakukan pemetaan, visualisasi dan pengolahan design chip. Kenapa saya tidak pake software komersil aja, gitu aja kok repot? Why invent a new wheel?

Ada beberapa alasan:

1. Software komersil terlalu komersil. Kebanyakan vendor menjual software dalam bentuk license baik floating maupun fixed IP. Dan untuk menjamin hanya orang yang membutuhkan mendapatkan license, license ini diikat dengan user name, dan ini terlalu restriktif. Bahkan untuk orang yang bekerja di perusahaan yang notabene pembuat chip pun, kadang kala saya tidak kebagian license.

2. Kecepatan pemrosesan, kebutuhan hardware (baik prosesor dan memori) komputer. Saat ini design chip sudah pada generasi 45nm, yang artinya chip berukuran 1 mm x 1 mm bisa memiliki milyaran lubang kontak/via (penguhubung polisilikon dan metal). Ukuran file bisa dengan mudah mencapai orde puluhan GB. Pada umumnya software CAD membaca seluruh isi file dan meletakkan di memori. Komputer kerja pada umumnya tidak memiliki memori sebanyak itu.

3. Kebutuhan software design chip ini di masa depan semakin kritis, apalagi litografi 45nm ke bawah (mungkin hingga 22nm, hingga litografi dengan panjang gelombang 13.5nm atau EUV siap) akan semakin bergantung pada litografi komputasi. Misalnya koreksi optik jarak dekat (OPC = optical proximity correction) akibat semakin sulitnya mencetak rangkaian dengan dimensi 45nm dengan menggunakan cahaya biasa. (45nm ini setara dengan 1/200000 diameter rambut, dan hanya dapat dilihat dengan mikroskop elektron dengan pembesaran lebih dari 400 ribu kali)

4. Pemrosesan design chip ini akan semakin meluas penggunaannya, misalnya untuk mengarahkan mesin pengukuran untuk mengukur suatu rangkaian di lokasi tertentu. Secara tradisional (hingga kini) mesin-mesin pengukuran mengandalkan manusia untuk mengarahkan mesin tersebut ke posisi yang diinginkan, kemudian “mengajarkan” mesin untuk mengingat koordinat, mengenali lingkungan sekitarnya, sehingga secara otomatis dapat kembali ke tempat tersebut dan melakukan pengukuran secara otomatis.

Tapi perlu diingat bahwa pengenalan pola (pattern) yang dilakukan manusia adalah sangat lambat, apalagi jika harus mencari suatu struktur di tengah jutaan struktur lain yang serupa. Ibarat mencari jarum dalam tumpukan jerami. Apabila lokasi dan pola tersebut dapat diambil dari gambar design chip, dan mesin secara otomatis mengolah design chip ini untuk melakukan pengukuran, hal ini menjadi sangat mudah. Masalahnya pemrosesan harus dilakukan dalam waktu singkat.

5. Kebutuhan untuk melakukan penyuntingan (editing) design secara otomatis. Kebanyakan vendor sudah dapat melakukan ini, sehingga penggambaran dan penyuntingan design dapat dilakukan lebih reliable dan cepat.

Lalu apa kriteria yang saya inginkan dalam software tersebut :

Open source, seluruhnya, dan free untuk digunakan untuk keperluan apapun, termasuk komersial. Pemrosesan cepat, skalabilitas tinggi. Mampu membaca berbagai macam input, terutatam GDS II dan OASIS. Makro untuk pengolahan secara otomatis.

Di dalam pasaran open source sendiri sudah ada beberapa software yang mampu melakukan hal-hal di atas, berikut ini yang pernah saya coba :

1. MAGIC

Software yang dibuat oleh Berkeley, mampu membaca GDSII dan kemudian mengubahnya menjadi format .mag. Kelebihannya adalah software ini selain untuk keperluan gambar, juga dapat melakukan berbagai fungsi design, seperti melakukan pengecekan design, routing otomatis, dan lain-lain. Kelemahannya adalah karena struktur data GDSII harus diubah menjadi suatu bentuk yang menyerupai design, misalnya dalam bentuk polisilikon, kontak, atau metal. Karena lebih mendekati design secara komponen, MAGIC bukan software yang saya cari

2. Electric

Sama seperti MAGIC, Electric merupakan software terintegrasi yang lebih dekat pada design. Selain itu struktur software yang menggunakan Java, membuat seluruh program terasa sangat lambat, apalagi jika harus membuka design yang besarnya ratusan MB. Secara internal Electric juga mengubah gambar geometris (poligon, titik, kotak, dll) menjadi suatu rangkaian yang bermakna secara elektronik, misalnya gate, kontak, dll. Ini bukan software yang saya inginkan

3. LayoutEditor

Dibuat dalam bahasa C++ dengan interface Qt4 membuat software ini sedikit lebih cepat. Secara internal LayoutEditor tidak mengubah gambar geometris menjadi rangkaian elektronik. Ini yang saya cari. Tapi struktur programnya tidak memungkinkan indexing dan pencarian geometris dengan cepat. Setiap poligon atau boks dinyatakan dalam class (tergantung dari bentuknya) yang kemudian dikumpulkan dalam bentuk list. Pencarian dilakukan secara beruntun satu demi satu, dan pengolahan citra dilakukan individual dalam class masing-masing. Dapat ditebak bahwa program ini tidak memiliki skalabilitas untuk pengolahan design lebih dari beberapa ratus MB. Kelebihannya adalah LayoutEditor mendukung makro untuk pengolahan gambar secara otomatis, dengan makro yang menyerupai bahasa C++

4. KLayout

KLayout juga ditulis dalam bahasa C++ dengan interface Qt4, ditambah dengan algoritma elegan, seperti R-tree yang digunakan oleh OpenGIS untuk pemetaan geografis. R-tree adalah struktur data yang sangat efektif untuk pengolahan citra 2 dimensi, karena setiap geometri diletakkan berdasarkan kedekatannya secara geometris dengan geometri yang lain. Dengan cara ini, pencarian data dapat dilakukan dengan cepat. Ini mungkin model yang paling cocok untuk pengolahan citra CAD, bukan hanya untuk design chip, tapi juga untuk design-design lainnya. Kekurangannya, belum ada fasilitas penyuntingan dan makro. Selain itu fasilitas standar lain, seperti pengukuran, snap to edge, juga belum diimplementasi.

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.