Dalam desain elektronik, netlist adalah deskripsi konektivitas sirkuit elektronik. Dalam bentuknya yang paling sederhana, netlist terdiri dari daftar komponen elektronik dalam sebuah sirkuit dan daftar node yang terhubung dengannya. Jaringan (net) adalah kumpulan dari dua atau lebih komponen yang saling berhubungan.
Struktur, kompleksitas, dan representasi netlist dapat sangat bervariasi, tetapi tujuan mendasar dari setiap netlist adalah untuk menyampaikan informasi konektivitas. Netlist biasanya hanya menyediakan instance, node, dan mungkin beberapa atribut dari komponen yang terlibat. Jika mereka mengungkapkan lebih dari ini, mereka biasanya dianggap sebagai bahasa deskripsi perangkat keras seperti Verilog atau VHDL, atau salah satu dari beberapa bahasa yang dirancang khusus untuk input ke simulator atau kompiler perangkat keras (seperti netlist simulasi analog SPICE).
Jenis netlist
Netlist dapat berupa:
- Fisik (berdasarkan koneksi fisik) atau logis (berdasarkan koneksi logis)
Misalnya, menghubungkan tiga komponen melalui satu terminal dari salah satu komponen tersebut akan dianggap sebagai koneksi logis langsung, sedangkan masing-masing akan menjadi koneksi fisik diskrit. - Berbasis instans (berkerumun tentang instans komponen) atau berbasis neto (daftar lengkap koneksi ke net tertentu)
Datar (semua koneksi ditampilkan) atau hierarkis (koneksi dikelompokkan dalam beberapa cara; seperti papan atau lapisan fisik mana yang terhubung dengannya. Netlist semacam itu juga dapat dilipat, menyembunyikan data di bawah tingkat abstraksi tertentu, atau dibuka, menjadi lengkap dan dengan demikian berpotensi setara dalam konten untuk netlist datar.)
Isi dan struktur netlist
Sebagian besar netlist berisi atau mengacu pada deskripsi bagian atau perangkat yang digunakan. Setiap kali bagian digunakan dalam netlist, ini disebut “instance”.
Deskripsi ini biasanya mencantumkan koneksi yang dibuat ke perangkat semacam itu, dan beberapa properti dasar perangkat itu. Titik koneksi ini disebut “terminal” atau “pin”, di antara beberapa nama lainnya.
Sebuah “instance” dapat berupa apa saja mulai dari transistor MOSFET atau transistor sambungan bipolar, hingga resistor, kapasitor, atau chip sirkuit terpadu.
Instance memiliki “terminal”. Dalam kasus penyedot debu, terminal ini adalah tiga cabang logam pada steker. Setiap terminal memiliki nama, dan melanjutkan contoh penyedot debu, mereka mungkin “Netral”, “Live”, dan “Ground”. Biasanya, setiap instans akan memiliki nama yang unik, sehingga jika Anda memiliki dua instans penyedot debu, salah satunya adalah “vac1” dan yang lainnya “vac2”. Selain nama mereka, mereka mungkin identik.
Jaringan (jaring) adalah “kabel” yang menghubungkan berbagai hal bersama di sirkuit. Mungkin ada atau mungkin tidak ada atribut khusus yang terkait dengan jaring dalam desain, tergantung pada bahasa tertentu netlist ditulis, dan fitur bahasa tersebut.
Netlist berbasis instans biasanya menyediakan daftar instans yang digunakan dalam desain. Bersamaan dengan setiap instans, daftar nama net yang terurut disediakan, atau daftar pasangan yang disediakan, dari nama port instan, bersama dengan nama net yang terhubung dengan port tersebut. Dalam deskripsi semacam ini, daftar jaring dapat dikumpulkan dari daftar koneksi, dan tidak ada tempat untuk mengaitkan atribut tertentu dengan jaring itu sendiri. SPICE adalah contoh netlist berbasis instans.
Netlist berbasis jaringan biasanya mendeskripsikan semua instans dan atributnya, kemudian mendeskripsikan setiap net, dan menyebutkan port mana yang terhubung dengannya di setiap instans. Ini memungkinkan atribut dikaitkan dengan jaring. EDIF mungkin adalah netlist berbasis net yang paling terkenal.
Hirarki
Dalam desain besar, merupakan praktik umum untuk membagi desain menjadi beberapa bagian, setiap bagian menjadi “definisi” yang dapat digunakan sebagai contoh dalam desain. Dalam analogi penyedot debu, seseorang mungkin memiliki definisi penyedot debu dengan portnya, tetapi sekarang definisi ini juga akan mencakup deskripsi lengkap tentang komponen internal mesin dan bagaimana mereka terhubung (motor, sakelar, dll.), seperti yang dilakukan diagram pengkabelan. .
Definisi yang tidak menyertakan contoh disebut “primitif” (atau “daun”, atau nama lain); definisi yang mencakup contoh sedangkan “hierarkis”.
Hierarki “terlipat” memungkinkan satu definisi untuk direpresentasikan beberapa kali oleh instance. Hierarki “terbuka” tidak mengizinkan definisi untuk digunakan lebih dari sekali dalam hierarki.
Hirarki yang dilipat bisa sangat padat. Netlist kecil yang terdiri dari beberapa instance saja dapat mendeskripsikan desain dengan jumlah instance yang sangat besar. Misalnya, definisi A adalah primitif sederhana, seperti sel memori. Kemudian misalkan definisi B berisi 32 contoh A; C berisi 32 contoh B; D berisi 32 contoh C; dan E berisi 32 contoh D. Desain sekarang berisi 5 definisi (A sampai E) dan 128 contoh. Namun, E menjelaskan sirkuit yang berisi lebih dari satu juta sel memori.
berlangsung
Dalam desain “datar”, hanya primitif yang dibuat. Desain hierarkis dapat secara rekursif “meledak” (“diratakan”) dengan membuat salinan baru (dengan nama baru) dari setiap definisi setiap kali digunakan. Jika desain sangat terlipat, mengembangkannya seperti ini akan menghasilkan basis data netlist yang jauh lebih besar, tetapi mempertahankan dependensi hierarki. Diberikan netlist hirarkis, daftar nama instans di jalur dari definisi root ke instans primitif menentukan jalur unik tunggal ke primitif tersebut. Jalur ke setiap primitif, secara bersama-sama, terdiri dari netlist yang besar namun datar yang sama persis dengan versi hirarki kompak.
catatan belakang
Backannotation adalah data yang dapat ditambahkan ke netlist hirarkis. Biasanya mereka disimpan terpisah dari netlist, karena beberapa kumpulan data alternatif seperti itu dapat diterapkan ke satu netlist. Data ini mungkin telah diambil dari desain fisik, dan mungkin memberikan informasi tambahan untuk simulasi yang lebih akurat. Biasanya data terdiri dari jalur hierarkis dan sepotong data untuk itu primitif atau menemukan nilai-nilai keterlambatan RC karena interkoneksi.
warisan
Konsep lain yang sering digunakan dalam netlist adalah pewarisan. Misalkan definisi kapasitor memiliki atribut terkait yang disebut “Kapasitansi”, sesuai dengan properti fisik dengan nama yang sama, dengan nilai default “100 pF” (100 picofarad). Setiap contoh kapasitor ini mungkin juga memiliki atribut seperti itu, hanya dengan nilai kapasitansi yang berbeda. Dan contoh lain mungkin tidak mengaitkan kapasitansi sama sekali. Dalam kasus di mana tidak ada kapasitansi yang ditentukan untuk suatu instans, instans tersebut akan “mewarisi” nilai 100 pF dari definisinya. Nilai yang ditentukan akan “menimpa” nilai pada definisi. Jika sejumlah besar atribut akhirnya sama dengan definisi, sejumlah besar informasi dapat “diwariskan”, dan tidak perlu ditentukan secara berlebihan dalam netlist, menghemat ruang, dan membuat desain lebih mudah dibaca oleh keduanya mesin dan orang.