Bandingkan dengan mengimplementasikan desain otomasi sederhana pada MCU vs FPGA / CPLD

8

Saya telah bekerja dengan MCU sejak tahun 90-an, dan saya baru-baru ini berkelana ke panggung FPGA dengan chip seri Spartan6 dari Xilinx. Dengan asumsi desain otomatisasi pabrik sederhana dengan sensor dan motor, dan beberapa kecerdasan untuk menghubungkan semuanya, pada jenis perangkat apa saya dapat menyelesaikan desain lebih cepat dan lebih mudah, MCU atau FPGA? Poin kecil atau "jelas" juga dihargai karena saya baru mengenal FGPA secara umum.

Kevin Boyd
sumber
Bahkan solusi FPGA hampir pasti juga akan melibatkan prosesor, baik di sebelah FPGA, diimplementasikan di dalamnya, atau di komputer yang lebih besar yang terhubung. Struktur program yang tersimpan jauh lebih mudah ditargetkan untuk mengimplementasikan bagian rumit dari algoritma daripada logika khusus atau mesin negara, jadi Anda menyimpan nanti hanya untuk hal-hal yang harus cepat (atau paralel secara masif) tetapi sederhana.
Chris Stratton
Jawaban bagus dari richard & Martin di bawah ini. Mungkin tergoda untuk mencoba menerapkan keterampilan atau teknologi yang baru dipelajari untuk masalah berikutnya, tetapi dalam kasus ini (untuk alasan yang dijelaskan oleh tuan-tuan di atas) saya pikir MCU adalah jalan yang harus ditempuh.
Radian

Jawaban:

11

Tidak ada alasan untuk menggunakan FPGA kecuali Anda perlu . Bahkan dua insinyur yang sama berbakatnya di bidang MCU dan FPGA akan menggunakan MCU untuk tugas otomasi yang relatif sederhana.

MCU Pro:

  • MCU biasanya memiliki semua periferal ke dunia luar siap untuk pergi
  • Kompilasi membutuhkan waktu detik (FPGA membutuhkan waktu beberapa menit hingga berjam-jam)
  • Ada urutan besarnya (atau dua!) Lebih banyak insinyur yang dapat membantu, atau mengambil di mana Anda tinggalkan. (Untuk bersenang-senang, tidak harus valid secara statistik, perbandingan - bandingkan jumlah T&J di Stack Overflow untuk C vs VHDL atau FPGA )

Gunakan FPGA jika Anda harus karena:

  • Angka-angka yang diperlukan tidak dapat dipenuhi dalam anggaran daya, berat, ukuran atau biaya dengan mikroprosesor
  • Ada tenggat waktu real-time yang sulit yang tidak dapat dijamin dengan perangkat lunak (waktu respons dalam ranah mikrodetik misalnya)
  • Menggunakan logika FPGA dapat membuatnya lebih mudah untuk membuat pernyataan yang kuat tentang waktu respons
  • Anda dapat menghemat biaya, daya, dll. Dengan menggunakan tipe data khusus (misalnya, titik mengambang 12-bit)

Atau:

  • Tugas Anda memberi tahu Anda bahwa Anda harus :)
Martin Thompson
sumber
+1 Untuk peluru ke-3 dengan "urutan besarnya (atau dua!) Lebih banyak insinyur yang dapat membantu". Terakhir kali saya menggunakan kriteria ini, itu untuk memilih bahasa pemrograman.
Nick Alexeev
5

Beberapa alasan mengapa saya percaya menggunakan mikrokontroler (MCU) akan lebih mudah bagi Anda:

  • Anda memiliki pengalaman dengan MCU. Mempelajari seluk beluk chip baru membutuhkan waktu.
  • MCU memiliki periferal bawaan yang harus Anda implementasikan sendiri (atau beli) pada FPGA. Sebagai contoh, sebagian besar MCU memiliki port I2C yang akan berguna jika Anda membaca dari sensor I2C. Juga, sebagian besar MCU memiliki semacam konverter analog ke digital dan modulator lebar-pulsa, yang keduanya kemungkinan besar akan diperlukan untuk kontrol motorik yang baik.
  • Algoritma kompleks lebih mudah diekspresikan dalam C daripada di VHDL (Saya tidak punya pengalaman Verilog).
  • Penundaan skala manusia mudah dilakukan di MCU, tetapi gunakan sumber daya yang signifikan dalam FPGA.
  • Untuk otomatisasi pabrik sederhana, lebar bit standar dan kecepatan lambat MCU kemungkinan besar cukup.

Dalam kedua kasus tersebut, Anda perlu berhati-hati dengan kode yang Anda tulis, sehingga kode ini berfungsi dengan baik dalam semua situasi, terutama kondisi berbahaya.

richarddonkin
sumber