Biasanya desain ASIC adalah upaya tim karena kompleksitas dan kuantitas pekerjaan. Saya akan memberikan urutan langkah kasar, meskipun beberapa langkah dapat diselesaikan secara paralel atau rusak. Saya akan membuat daftar alat yang telah saya gunakan untuk setiap tugas, tetapi itu tidak akan ensiklopedis.
Bangun perpustakaan sel. (Atau, sebagian besar proses memiliki pustaka gerbang yang tersedia secara komersial. Saya akan merekomendasikan ini kecuali Anda tahu Anda membutuhkan sesuatu yang tidak tersedia.) Ini melibatkan perancangan beberapa gerbang kekuatan penggerak untuk sebanyak mungkin fungsi logika yang diperlukan, perancangan penggerak / penerima pad, dan semua makro seperti pengganda array atau memori. Setelah skema untuk setiap sel dirancang dan diverifikasi, tata letak fisik harus dirancang. Saya telah menggunakan Virtuoso Cadence untuk proses ini, bersama dengan simulator rangkaian analog seperti Specter dan HSPICE .
Mengkarakterisasi pustaka sel. (Jika Anda memiliki perpustakaan gerbang pihak ketiga, ini biasanya dilakukan untuk Anda.) Setiap sel di perpustakaan Anda harus disimulasikan untuk menghasilkan tabel waktu untuk Analisis Waktu Statis (STA). Ini melibatkan pengambilan sel jadi, mengekstraksi parasit tata letak menggunakan Assura , Diva , atau Kaliber , dan mensimulasikan rangkaian di bawah berbagai kondisi input dan beban keluaran. Ini membangun model pengaturan waktu untuk setiap gerbang yang kompatibel dengan paket STA Anda. Model pemilihan waktu biasanya dalam format file Liberty . Saya telah menggunakan Silicon Smart dan Liberty-NCXuntuk mensimulasikan semua kondisi yang diperlukan. Ingatlah bahwa Anda mungkin membutuhkan model pengaturan waktu pada "kasus terburuk", "nominal", dan "kasus terbaik" agar sebagian besar perangkat lunak berfungsi dengan baik.
Sintesis desain Anda. Saya tidak memiliki pengalaman dengan kompiler tingkat tinggi, tetapi pada akhirnya, rantai kompiler atau kompiler harus mengambil desain tingkat tinggi Anda dan menghasilkan netlist tingkat gerbang. Hasil sintesis adalah peek pertama yang Anda dapatkan pada kinerja sistem teoritis, dan di mana masalah kekuatan drive pertama kali ditangani. Saya telah menggunakan Kompiler Desain untuk kode RTL.
Tempatkan dan Arahkan desain Anda. Ini mengambil netlist tingkat gerbang dari synthesizer dan mengubahnya menjadi desain fisik. Idealnya ini menghasilkan tata letak pad-to-pad yang siap untuk fabrikasi. Sangat mudah untuk mengatur perangkat lunak P&R Anda untuk secara otomatis membuat ribuan kesalahan DRC, jadi tidak semua permainan dan kesenangan dalam langkah ini juga. Sebagian besar perangkat lunak akan mengelola masalah kekuatan drive dan menghasilkan pohon jam sesuai petunjuk. Beberapa paket perangkat lunak termasuk Astro, IC Compiler, Silicon Encounter, dan Silicon Ensemble. Hasil akhir dari tempat dan rute adalah netlist akhir, tata letak akhir, dan parasitics tata letak diekstraksi.
Analisis Waktu Statis Pasca Tata Letak. Tujuannya di sini adalah untuk memverifikasi bahwa desain Anda memenuhi spesifikasi waktu Anda, dan tidak memiliki masalah pengaturan, penahanan, atau gating. Jika persyaratan desain Anda ketat, Anda mungkin menghabiskan banyak waktu di sini memperbaiki kesalahan dan memperbarui perbaikan di alat P&R Anda. Alat STA terakhir yang kami gunakan adalah PrimeTime .
Verifikasi fisik Layout. Setelah tata letak dihasilkan oleh alat P&R, Anda perlu memverifikasi bahwa desain memenuhi aturan desain proses (Design Rule Check / DRC) dan bahwa tata letak tersebut cocok dengan skema (Tata Letak versus Skema / LVS). Langkah-langkah ini harus diikuti untuk memastikan bahwa tata letak kabel dengan benar dan dapat diproduksi. Sekali lagi, beberapa alat verifikasi fisik adalah Assura , Diva , atau Calibre .
Simulasi desain akhir. Bergantung pada kerumitan, Anda mungkin dapat melakukan simulasi level transistor menggunakan Specter atau HSPICE , simulasi "fast spice" menggunakan HSIM , atau simulasi digital sepenuhnya menggunakan ModelSim atau VCS . Anda harus dapat membuat simulasi dengan penundaan realistis dengan bantuan alat STA atau P&R Anda.
Memulai dengan perpustakaan gerbang yang sudah ada adalah penghemat waktu yang sangat besar, serta menggunakan makro yang menguntungkan desain Anda, seperti memori, mikrokontroler, atau blok pemrosesan alternatif. Mengelola kompleksitas desain adalah bagian besar juga - desain jam tunggal akan lebih mudah untuk diverifikasi daripada sirkuit dengan beberapa domain jam.