Salah satu perbedaan yang belum saya lihat di sini adalah bahwa FPGA digunakan, dan berperilaku, dengan cara yang sama sekali berbeda dengan prosesor.
FPGA benar-benar hebat dalam melakukan tugas yang sama persis, berulang-ulang. Misalnya, pemrosesan sinyal video, audio, atau RF. Atau merutekan paket Ethernet. Atau mensimulasikan aliran fluida. Setiap situasi di mana Anda memiliki banyak jenis data yang sama dilemparkan pada Anda dengan sangat cepat dan Anda ingin mengatasinya dengan cara yang sama. Atau Anda ingin menjalankan algoritma yang sama berulang kali. FPGA tidak benar-benar memiliki 'tugas' yang mulai dan berhenti [1], seluruh tugasnya adalah melakukan hal yang sama untuk data apa pun yang didapatnya, selama masih aktif. Itu tidak mengubah persneling, tidak melakukan hal lain. Ini adalah pekerja lini produksi utama. Itu akan melakukan hal yang sama berulang kali, secepat mungkin, selamanya.
CPU, di sisi lain, adalah contoh dari fleksibilitas. Mereka dapat diprogram untuk melakukan apa saja, dan mereka dapat diprogram untuk melakukan banyak hal yang berbeda secara bersamaan. Mereka memiliki tugas yang mulai dan berhenti, mereka mengubah persneling, multitask, terus-menerus berpindah dan mengubah fungsi.
FPGA dan CPU saling bertentangan. Komoditas CPU adalah waktu - itu harus menyelesaikan sesuatu dengan lebih cepat. Semakin cepat aplikasi Anda berjalan, semakin baik.
Komoditas FPGA adalah ruang. FPGA Anda hanya besar, dan hanya ada begitu banyak gerbang yang tersedia untuk melakukan tugas yang Anda inginkan. Sebagian besar waktu, masalahnya lebih dari ukuran kecepatan [2].
Dimungkinkan untuk membuat tindakan FPGA seperti CPU. Anda dapat memasukkan inti IP CPU ke dalam FPGA, namun sangat sulit untuk dibenarkan karena alasan yang dijelaskan orang lain [3]. FPGA dan CPU bertentangan, keduanya memiliki kekuatan dan kelemahan mereka sendiri, dan keduanya memiliki tempat sendiri sebagai hasilnya.
Catatan:
1) FPGA dapat dirancang untuk melakukan tugas yang berbeda, tetapi meskipun demikian itu akan menjadi nomor tertentu yang telah dirancang sebelumnya.
2) Kecepatan juga merupakan spesifikasi desain FPGA. Ini benar-benar trade off antara kecepatan dan ukuran.
3) Memasukkan CPU ke dalam FPGA dilakukan relatif sering, namun dilakukan berdasarkan kasus per kasus, tergantung pada aplikasi spesifik. Misalnya, jika Anda memerlukan mikrokontroler yang sangat kecil dan memiliki ruang FPGA ekstra.
Dan akhirnya: Jawaban ini adalah penyederhanaan besar - FPGA digunakan dengan cara yang sangat bervariasi dan kompleks dan ini adalah gambaran yang sangat singkat tentang cara mereka digunakan secara umum.