Saya berasal dari latar belakang pemrograman dan tidak terlalu banyak bermain-main dengan perangkat keras atau firmware (paling sedikit elektronik dan Arduino).
Apa motivasi dalam menggunakan bahasa deskripsi perangkat keras (HDL) seperti Verilog dan VHDL di atas bahasa pemrograman seperti C atau Majelis?
Apakah masalah ini memang masalah pilihan?
Saya membaca bahwa perangkat keras, yang firmware-nya ditulis dalam HDL, memiliki keuntungan yang jelas dalam menjalankan instruksi secara paralel. Namun, saya terkejut melihat diskusi mengungkapkan keraguan apakah akan menulis firmware di C atau Majelis (bagaimana Majelis cocok jika Anda tidak perlu memiliki CPU?) Tapi saya menyimpulkan itu juga merupakan pilihan.
Karena itu, saya punya beberapa pertanyaan (jangan ragu untuk menjelaskan apa pun):
Firmware benar-benar dapat ditulis dalam HDL atau dalam bahasa pemrograman perangkat lunak, atau itu hanya cara lain untuk melakukan misi yang sama? Saya suka contoh dunia nyata. Kendala apa yang dihasilkan dari setiap opsi?
Saya tahu bahwa penggunaan umum dari firmware melalui perangkat lunak adalah akselerator perangkat keras (seperti GPU, adapter jaringan, akselerator SSL, dll.). Seperti yang saya pahami, akselerasi ini tidak selalu diperlukan, tetapi hanya disarankan (misalnya, dalam kasus SSL dan akselerasi algoritma yang kompleks). Bisakah seseorang memilih antara firmware dan perangkat lunak dalam semua kasus? Jika tidak, saya akan senang dengan kasus-kasus di mana firmware secara jelas dan tepat sesuai.
Saya telah membaca bahwa sebagian besar firmware dibakar pada ROM atau flash. Bagaimana itu diwakili di sana? Dalam bit, seperti perangkat lunak? Jika demikian, apa perbedaannya? Apakah ketersediaan sirkuit yang disesuaikan dalam hal firmware?
Saya kira saya membuat kesalahan di sana-sini dalam beberapa asumsi, tolong maafkan saya. Terima kasih!