EDIF (Electronic Design Interchange Format) adalah format netral-vendor berdasarkan S-Expressions untuk menyimpan netlist dan skema elektronik. Itu adalah salah satu upaya pertama untuk membuat format pertukaran data netral untuk industri otomasi desain elektronik (EDA). Tujuannya adalah untuk menetapkan format umum dari mana format kepemilikan sistem EDA dapat diturunkan. Ketika pelanggan perlu mentransfer data dari satu sistem ke sistem lainnya, perlu menulis penerjemah dari satu format ke format lainnya. Karena jumlah format (N) berlipat ganda, masalah penerjemah menjadi masalah N-kuadrat. Harapannya adalah dengan EDIF jumlah penerjemah dapat dikurangi menjadi jumlah sistem yang terlibat.
Perwakilan dari perusahaan EDA Daisy Systems, Mentor Graphics, Motorola, National Semiconductor, Tektronix, Texas Instruments dan University of California, Berkeley mendirikan Komite Pengarah EDIF pada November 1983. Kemudian Hilary Kahn, seorang profesor ilmu komputer di University of Manchester, bergabung dengan tim dan memimpin pengembangan dari versi EDIF 2 0 0 hingga versi final 4 0 0.
sintaksis
Format umum EDIF melibatkan penggunaan tanda kurung untuk membatasi definisi data, dan dengan cara ini mirip dengan Lisp. Token dasar EDIF 2.0.0 adalah kata kunci (seperti pustaka, sel, contoh, dll.), string (dibatasi dengan tanda kutip ganda), bilangan bulat, konstanta simbolik (mis. GENERIK, TIE, RIPPER untuk jenis sel) dan “Pengidentifikasi” , yang merupakan label referensi yang dibentuk dari kumpulan karakter yang sangat terbatas. EDIF 3.0.0 dan 4.0.0 menghapus konstanta simbolik seluruhnya, menggunakan kata kunci sebagai gantinya. Jadi, sintaks EDIF memiliki landasan yang cukup sederhana. File EDIF tipikal terlihat seperti ini:
(edif fibex (edifVersion 2 0 0) (edifLevel 0) (keywordMap (keywordLevel 0)) (status (written (timeStamp 1995 1 1 1 1 1) (program "xxx" (version "v1")))) (library xxx (edifLevel 0) (technology (numberDefinition (scale 1 (e 1 -6) (unit distance)))) (cell dff_4 (cellType generic) (view view1 (viewType netlist) (interface (port aset (direction INPUT)) (port clok (direction INPUT)) ... (cell yyy (cellType generic) (view schematic_ (viewType netlist) (interface (port CLEAR (direction INPUT)) (port CLOCK (direction INPUT)) ... ) (contents (instance I_36_1 (viewRef view1 (cellRef dff_4))) (instance (rename I_36_3 "I$3") (viewRef view1 (cellRef addsub_4))) ... (net CLEAR (joined (portRef CLEAR) (portRef aset (instanceRef I_36_1)) (portRef aset (instanceRef I_36_3)))) ...
Versi
Rilis 1 0 0 EDIF dibuat pada tahun 1985.
EDIF 2 0 0
Rilis publik “nyata” pertama dari EDIF adalah versi 2 0 0, yang disetujui pada Maret 1988 sebagai standar ANSI/EIA-548-1988. Itu diterbitkan dalam satu volume. Versi ini tidak memiliki pernyataan ruang lingkup formal tetapi apa yang coba ditangkapnya dicakup oleh viewTypes yang ditentukan:
- PERILAKU untuk menggambarkan perilaku sel
- DOKUMEN untuk menjelaskan dokumentasi sel
- GRAPHIC untuk mendeskripsikan grafik bodoh dan representasi teks dari informasi yang dapat ditampilkan atau dicetak
- LOGIMODEL untuk menggambarkan model logika-simulasi sel
- MASKLAYOUT untuk menggambarkan tata letak sirkuit terpadu
- NETLIST untuk mendeskripsikan netlist
- PCBLAYOUT untuk mendeskripsikan papan sirkuit tercetak
- SKEMATIK untuk menggambarkan representasi skematik dan konektivitas sel
- ASING untuk menggambarkan representasi sel yang belum diketahui
- SIMBOLIK untuk menggambarkan tata letak simbolik
Industri menguji rilis ini selama beberapa tahun, tetapi akhirnya hanya tampilan NETLIST yang digunakan secara luas dan beberapa alat EDA masih mendukungnya hingga saat ini untuk EDIF 2 0 0.
Untuk mengatasi masalah dengan standar 2 0 0 utama, beberapa dokumen lebih lanjut dirilis:
- Asosiasi Industri Elektronik
Seri Monografi EDIF, Volume 1, Pengantar EDIF, EIA/EDIF-1, Sept. 1988
Seri Monografi EDIF, Volume 2, Konektivitas EDIF, EIA/EDIF-2, Juni 1989
Menggunakan EDIF 2 0 0 untuk transfer skematis, EIA/EDIF/AG-1, Juli 1989 - Dokumentasi dari Hilary J. Kahn, Departemen Ilmu Komputer, Universitas Manchester
EDIF 2 0 0, Tutorial Pengenalan, September 1989
EDIF Tanya jawab, volume satu, November 1988
Pertanyaan dan jawaban EDIF, volume dua, Februari 1989
Pertanyaan dan jawaban EDIF, volume tiga, Juli 1989
Pertanyaan dan jawaban EDIF, volume empat, November 1989
Pertanyaan dan jawaban EDIF, volume lima, Juni 1991
EDIF 3 0 0
Karena beberapa kelemahan mendasar dalam rilis 2 0 0, rilis baru yang tidak kompatibel 3 0 0 dirilis pada September 1993, diberi penunjukan standar EIA EIA-618. Ini kemudian mencapai penunjukan ANSI dan ISO. Itu diterbitkan dalam 4 volume. Fokus utama dari versi ini adalah viewTypes NETLIST dan SCHEMATIC dari 2 0 0. MASKLAYOUT, PCBLAYOUT dan beberapa tampilan lainnya dihilangkan dari rilis ini dan dialihkan untuk rilis berikutnya karena pengerjaan untuk tampilan ini belum sepenuhnya selesai.
EDIF 3 0 0 tersedia dari International Electrotechnical Commission sebagai IEC 61690-1
EDIF 4 0 0
EDIF 4 0 0 dirilis pada akhir Agustus 1996, terutama untuk menambahkan ekstensi “Printed Circuit Board” (tampilan PCBLAYOUT asli) ke EDIF 3 0 0. Ini lebih dari dua kali lipat ukuran EDIF 3 0 0, dan diterbitkan dalam format HTML di CD.
EDIF 4 0 0 tersedia dari International Electrotechnical Commission sebagai IEC 61690-2
evolusi
Masalah dengan 2 0 0
Untuk memahami masalah yang dihadapi pengguna dan vendor dengan EDIF 2 0 0, pertama-tama harus menggambarkan semua elemen dan dinamika industri elektronik. Orang-orang yang membutuhkan standar ini sebagian besar adalah insinyur desain, yang bekerja untuk perusahaan yang ukurannya berkisar dari garasi rumah hingga fasilitas bernilai miliaran dolar dengan ribuan insinyur. Insinyur ini bekerja terutama dari skema dan netlist pada akhir 1980-an, dan dorongan besar untuk menghasilkan netlist dari skema secara otomatis. Pemasok pertama adalah vendor Otomasi Desain Elektronik (mis., Daisy, Mentor, dan Valid membentuk rangkaian dominan paling awal). Perusahaan-perusahaan ini bersaing dengan penuh semangat untuk memperebutkan saham mereka di pasar ini.
Salah satu taktik yang digunakan oleh perusahaan-perusahaan ini untuk “menangkap” pelanggan mereka adalah basis data milik mereka. Masing-masing memiliki fitur khusus yang tidak dimiliki oleh yang lain. Setelah keputusan dibuat untuk menggunakan perangkat lunak vendor tertentu untuk memasukkan desain, pelanggan selamanya dibatasi untuk tidak menggunakan perangkat lunak lain. Untuk berpindah dari sistem vendor A ke vendor B biasanya berarti entri ulang yang sangat mahal dari hampir semua data desain dengan tangan ke sistem baru. Biaya “migrasi” ini adalah faktor utama yang mengunci para insinyur desain untuk menggunakan satu vendor.
Tetapi “pelanggan” memiliki keinginan yang berbeda. Mereka segera melihat bahwa meskipun vendor A mungkin memiliki lingkungan simulasi analog yang sangat bagus, vendor B memiliki router otomatis tata letak PCB atau silikon yang jauh lebih baik. Dan mereka berharap dapat memilih di antara vendor yang berbeda.
EDIF terutama didukung oleh pengguna akhir desain elektronik, dan perusahaan mereka. Vendor EDA juga terlibat, tetapi motivasi mereka lebih pada keinginan untuk tidak mengasingkan pelanggan mereka. Sebagian besar vendor EDA menghasilkan penerjemah EDIF 2 0 0, tetapi mereka pasti lebih tertarik untuk menghasilkan pembaca EDIF berkualitas tinggi, dan mereka sama sekali tidak memiliki motivasi sama sekali untuk menulis perangkat lunak apa pun yang menghasilkan EDIF (Penulis EDIF), di luar ancaman dari pelanggan migrasi massal ke perangkat lunak vendor lain.
Hasilnya agak menarik. Hampir tidak ada vendor perangkat lunak yang menulis keluaran EDIF 2 0 0 yang tidak memiliki pelanggaran sintaks atau semantik yang parah. Semantiknya cukup longgar sehingga mungkin ada beberapa cara untuk menggambarkan data yang sama. Ini mulai dikenal sebagai “rasa” EDIF. Perusahaan vendor tidak selalu merasa penting untuk mengalokasikan banyak sumber daya untuk produk EDIF, bahkan jika mereka menjualnya dalam jumlah besar. Ada beberapa cerita tentang produk aktif yang hampir tidak ada yang merawatnya selama bertahun-tahun. Keluhan pengguna hanya dikumpulkan dan diprioritaskan. Semakin sulit untuk mengekspor data pelanggan ke EDIF, semakin banyak vendor yang menyukainya. Mereka yang menulis penerjemah EDIF menemukan bahwa mereka menghabiskan banyak waktu dan upaya untuk menghasilkan pembaca yang cukup kuat, pemaaf, dan cerdas secara artifisial, yang dapat menangani dan menyatukan kode berkualitas rendah yang dihasilkan oleh penulis EDIF 2 0 0 yang masih ada saat ini. .
Dalam mendesain EDIF 3 0 0, panitia sangat menyadari kesalahan bahasa, fitnah yang ditumpuk di EDIF 2 0 0 oleh vendor dan frustrasi pengguna akhir. Jadi, untuk memperketat semantik bahasa, dan memberikan deskripsi standar yang lebih formal, pendekatan revolusioner diambil untuk menyediakan model informasi untuk EDIF, dalam bahasa pemodelan informasi EXPRESS. Ini membantu mendokumentasikan standar dengan lebih baik, tetapi dilakukan lebih sebagai renungan, karena pembuatan sintaks dilakukan secara independen dari model, alih-alih dihasilkan dari model. Juga, meskipun standar mengatakan bahwa jika sintaks dan model tidak setuju, modelnya adalah standar, ini tidak terjadi dalam praktiknya. Deskripsi sintaks BNF adalah dasar dari bahasa karena perangkat lunak yang melakukan pekerjaan sehari-hari menghasilkan deskripsi desain didasarkan pada sintaks tetap. Model informasi juga menderita dari fakta bahwa itu tidak (dan tidak) cocok untuk menggambarkan EDIF. Itu sama sekali tidak menggambarkan konsep seperti ruang nama, dan perbedaan antara definisi dan referensi juga tidak dapat dijelaskan dengan jelas. Juga, konstruksi dalam EXPRESS untuk mendeskripsikan kendala mungkin formal, tetapi deskripsi kendala terkadang merupakan masalah yang cukup rumit. Jadi, sebagian besar kendala akhirnya hanya dideskripsikan sebagai komentar. Sebagian besar yang lain menjadi deskripsi formal yang rumit yang sebagian besar pembaca tidak akan pernah dapat menguraikannya, dan oleh karena itu mungkin tidak tahan terhadap debugging/kompilasi otomatis, seperti halnya sebuah program mungkin terlihat bagus dalam tinjauan, tetapi kompiler mungkin menemukan beberapa kesalahan yang menarik, dan sebenarnya menjalankan program yang ditulis mungkin menemukan kesalahan yang lebih menarik. (Selain itu, kompiler/pelaksana EXPRESS analog tidak ada saat standar ditulis, dan mungkin masih belum ada sampai sekarang!)
Solusi untuk masalah EDIF 2 0 0
Solusi untuk masalah “rasa” EDIF 2 0 0 adalah mengembangkan deskripsi semantik yang lebih spesifik dalam EDIF 3 0 0 (1993). Memang, hasil yang dilaporkan dari orang yang menghasilkan penerjemah EDIF 3 0 0 adalah bahwa penulis sekarang jauh lebih sulit untuk mendapatkan hak, karena banyaknya batasan semantik, dan pembaca relatif mudah untuk dikembangkan.
Solusi untuk “konflik kepentingan” vendor adalah perusahaan pihak ketiga yang netral, yang dapat menyediakan produk EDIF berdasarkan antarmuka vendor. Pemisahan produk EDIF ini dari kontrol vendor langsung sangat penting untuk menyediakan komunitas pengguna akhir dengan alat yang bekerja dengan baik. Itu terbentuk secara alami dan tanpa komentar. Engineering DataXpress mungkin adalah perusahaan pertama di bidang ini, dengan Electronic Tools Company tampaknya telah menguasai pasar pada pertengahan hingga akhir 1990-an. Dinamika lain dalam industri ini adalah EDIF itu sendiri. Karena mereka telah berkembang menjadi ukuran yang agak besar, menghasilkan pembaca dan penulis telah menjadi proposisi yang sangat mahal. Biasanya perusahaan pihak ketiga telah mengumpulkan spesialis yang diperlukan dan dapat menggunakan keahlian ini untuk menghasilkan perangkat lunak secara lebih efisien. Mereka juga dapat memanfaatkan berbagi kode dan teknik lain yang tidak dapat dilakukan oleh vendor individu. Pada tahun 2000, hampir tidak ada vendor besar yang memproduksi alat EDIF sendiri, sebagai gantinya memilih alat pihak ketiga OEM.
Sejak rilis EDIF 4 0 0, seluruh organisasi standar EDIF pada dasarnya bubar. Belum ada pertemuan yang dipublikasikan dari salah satu subkomite teknis, kelompok Pakar EDIF, dll. Sebagian besar individu yang terlibat telah pindah ke perusahaan atau usaha lain. Buletin ditinggalkan, dan Grup Pengguna tidak lagi mengadakan pertemuan tahunan. EDIF 3 0 0 dan 4 0 0 sekarang menjadi standar ANSI, IEC dan Eropa (EN). EDIF Versi 3 0 0 adalah IEC/EN 61690-1, dan EDIF Versi 4 0 0 adalah IEC/EN 61690-2.
Keturunan EDIF
LKSoft mengambil konsep utama dari EDIF 2 0 0 untuk membuat format data berpemilik dengan ekstensi default “.cam” untuk sistem CircuitCAM mereka yang awalnya ditawarkan oleh LPKF Laser & Electronics AG di Garbsen/Hannover, Jerman dan saat ini dimiliki oleh DCT Co., Ltd di Tianjin, Cina. Untuk bekerja secara efisien pada format seperti EDIF, LKSoft telah mengembangkan Antarmuka Prosedural EDIF, sebuah API untuk bahasa pemrograman C.
Zuken, sebelumnya Racal-Redac Ltd., mengambil konsep dari pengembangan awal EDIF 4 0 0 untuk membuat format berpemilik baru yang disebut CADIF untuk sistem Visula PCB-CAD mereka. Format ini juga banyak digunakan oleh vendor pihak ke-3.
STEP-AP210, bagian dari ISO 10303, secara praktis mewarisi semua fungsionalitas EDIF 4 0 0 kecuali untuk skema.