Bagaimana desain ASIC berbeda dari sintesis FPGA HDL?

42

Saya sudah memiliki pengalaman dengan rangkaian alat FPGA / HDL seperti Xilinx ISE, Lattice Diamond, dll. Alur kerja umum adalah menulis Verilog / VHDL, simulasi, pengujian, dan kemudian pemrograman FPGA.

Saya pernah mendengar beberapa orang mengatakan desain ASIC sangat berbeda. Apa saja perangkat yang digunakan untuk dua jenis utama ASIC, ASIC tingkat gerbang dan ASIC tingkat Transistor? Saya sudah mencari ke alat Sintesis Tingkat Tinggi seperti Catapult C dan Cadence C ke Silicon, tapi saya belum pernah mencobanya. Bisakah Anda menjelaskan berbagai jenis alat yang tersedia di bidang ASIC / FPGA yang dapat mengubah / mempercepat alur kerja HDL yang khas?

Robinicks
sumber

Jawaban:

39

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.

  1. 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 .

  2. 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.

  3. 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.

  4. 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.

  5. 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 .

  6. 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 .

  7. 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.

W5VO
sumber
2
Karena Anda menyebutkan Virtuoso, Cadence menyediakan toolchain lengkap untuk desain (saya pikir itu disebut Opus), di mana dimungkinkan untuk memulai dari skema, layuot sel tunggal, mengevaluasi efek parasit, mengkarakterisasi dan kemudian membangunnya ke tingkat atas .
clabacchio
1
Saya pikir setiap vendor besar menawarkan toolchain lengkap. Kami akhirnya menggunakan beberapa vendor di rantai alat kami, dan dengan cara itu kami dapat menggunakan alat yang paling kami kenal atau memiliki reputasi industri terbaik.
W5VO
1
Memilih alat untuk dukungan perpustakaan atau desain kit praktis merupakan persyaratan. Jika Anda tidak menggunakan versi perangkat lunak tertentu yang didukung, beberapa ketidaksesuaian dapat mematikan desain Anda atau memberi Anda bacaan yang salah. Yang sedang berkata, sebagian besar alat EDA yang saya lihat berjalan pada sistem Unix / Linux. Sebagian besar memiliki kurva belajar yang curam.
W5VO
1
@MartinThompson Benar-benar. Semakin Anda mendorong batas teknologi Anda (ASIC / FPGA), semakin penting langkah-langkah tersebut. Yang sedang berkata, versi ASIC dari alat-alat itu memberi Anda lebih banyak tali bagi Anda untuk mendapat masalah.
W5VO
1
Perhatikan bahwa 1 dan 2 bukan bagian umum dari desain. Langkah-langkah ini adalah bagian dari apa yang disebut "kualifikasi proses", dan hasil (pustaka yang sepenuhnya ditandai) disediakan oleh Vendor FAB. Tetapi beberapa perusahaan sedang melakukan "desain khusus penuh", dan harus menyelesaikan 1 dan 2 sendiri.
Ale..chenski
7

The jawaban dari W5VO cenderung fokus pada back-end, dan ini merupakan perbedaan utama antara ASIC dan FPGA mengalir; tetapi melewatkan bagian verifikasi desain digital.

Ketika mendapatkan desain pada silikon dapat berharga jutaan dolar dan lebih, dan Anda dapat mengemas lebih banyak gerbang yang dapat digunakan pada ASIC dibandingkan dengan FPGA, maka Anda menghabiskan lebih banyak waktu dari lab dan PCB di depan workstation yang menjalankan simulator farm dan emulator dan tes menulis untuk lebih memverifikasi sepenuhnya desain ASIC sebelum Anda merilisnya untuk produksi. Desainer FPGA cenderung melakukan sebagian besar pengujian dengan menggunakan FPGA dalam sistem yang akan menjadi bagiannya.

Paddy3118
sumber
Saya ingin menambahkan bahwa alur kerja dasar untuk perancang digital tidak jauh berbeda antara ASIC dan FPGA, tetapi ASIC memiliki lebih banyak fleksibilitas dalam hal elemen makro / mikro yang tersedia, penempatan dan perutean, sementara FPGA terbatas pada blok logika pra-pabrikasi mereka dan terbatas dalam topologi interkoneksi. Dengan demikian FPGA tidak dapat mencapai tingkat kinerja ASIC, dan dapat menentukan solusi desain yang sedikit berbeda.
Ale..chenski
Hai Ali Chen. Jika desain digital dan verifikasi digital dianggap terpisah maka aliran untuk desain digital murni lebih dekat untuk FPGA vs ASIC, tetapi ada pemisahan besar dalam verifikasi seperti yang saya sebutkan. :-)
Paddy3118