FPGA termurah? [Tutup]

44

Seberapa murahkah FPGA? Saya tahu mereka lebih mahal daripada mikroprosesor dengan kemampuan yang sebanding, tetapi saya bertanya-tanya apakah ada FPGA yang dapat berisi inti lunak Microblaze yang menjalankan Linux, sementara meninggalkan gerbang yang tersedia untuk mengimplementasikan fungsionalitas DSP (codec media, misalnya) dengan biaya yang kompetitif dengan , katakanlah, Cortex A8 ($ 20-30 dalam jumlah. ~ 100).

(Permintaan maaf jika istilah saya non-idiomatis yaitu salah. Silakan komentar dengan koreksi, atau edit langsung.)

pingswept
sumber
(plug shameless) radio GNU (USRP2) menggunakan AEMB yang dibundel dengan sekelompok blok DSP. Itu tidak radio software-didefinisikan dengan sangat baik - aeste.my/node/29
sybreon
@sybreon Anehnya saya menggunakan USRP2 pada proyek Desain Senior saya - Nice
onaclov2000
terkait: "Papan dev FPGA murah"
davidcary
Yang terbaru (2014): upup
Fizz

Jawaban:

23

Saya baru-baru ini menghadiri konferensi online tentang FPGA dengan keynote yang utama adalah "Jika prosesor Anda berikutnya menjadi FPGA."

FPGA pada dasarnya masuk akal dalam aplikasi apa pun yang membutuhkan aliran kerja yang sangat paralel, contoh yang digunakan adalah menganalisis gambar Full HD untuk menemukan pejalan kaki misalnya.

Hal yang harus Anda ingat adalah bahwa Anda harus menginisialisasi FPGA Anda setiap kali dinyalakan, saya pikir Xilinx FPGA datang dengan (yang memiliki inti ARM on-chip) adalah pilihan yang baik, tetapi mungkin mahal. Melihat ke Actel dengan flash on-chip mungkin berguna juga.

Adapun kinerja, perusahaan BDTI melakukan benchmark dalam perhitungan yang sangat paralel di mana mereka melihat sekitar 40x peningkatan kinerja beralih ke FPGA. Yang menarik adalah mereka membandingkan chip dengan biaya yang sama ($ 23 vs $ 28 saya percaya).

Berikut ini tautan yang mungkin menarik bagi Anda:

Panduan saku untuk pemilihan prosesor

Arsip Konferensi FPGA (Pendaftaran gratis, tetapi hanya tersedia sekitar 6 bulan setelah jawaban ini)

Anda tidak dapat benar-benar membandingkan kinerja sistem berbasis FPGA berdasarkan statistik MIPS atau Mhz. Cara FPGA digunakan untuk memproses tugas-tugas tertentu terlalu berbeda dari Microcontroller. Desain firmware untuk FPGA adalah sesuatu yang harus Anda lakukan menggunakan VHDL misalnya, yang mirip dengan Majelis. Level transfer register (RTL) abstraksi. Beberapa lingkungan sedang diproduksi untuk memberikan lebih banyak abstraksi, tetapi ini masih sering vendor khusus. Wikipedia memiliki tinjauan umum bahasa yang tersedia untuk memprogram kode FPGA:

Wikipedia: Memprogram FPGA

Wikipedia: Desain Sirkuit Digital

Jika Anda memiliki uang untuk dibakar, Anda dapat menggunakan sistem LabView untuk membangun sistem pengukuran waktu nyata berbasis FPGA misalnya. Perangkat ini diperlukan untuk ini berada dalam harga yang sangat berbeda ($ 1500 ke atas), tetapi membuka desain FPGA untuk audiens yang lebih luas dengan pemrograman grafis.

Semakin banyak vendor menyediakan papan yang menggabungkan mikrokontroler seperti chip ARM dengan FPGA untuk menyediakan fitur tambahan spesifik dan kekuatan pemrosesan paralel. Contoh produk tersebut dapat ditemukan di sini: EmbeddedARM: FPGA series

Wouter Simons
sumber
23

Seberapa murahkah FPGA? Menurut Newark, FPGA termurah adalah sekitar $ 10 (Altera Siklon paling rendah dan Xilinx Spartan paling rendah). Mereka mungkin memiliki kapasitas yang cukup untuk menjalankan CPU 8-bit yang sederhana.

Seperti yang Anda harapkan, bahkan sederhana (yaitu, tanpa MMU) CPU 32-bit membutuhkan sekitar 4 kali sumber daya FPGA dari CPU 8 bit. FPGA dengan sumber daya yang hampir tidak cukup untuk menjalankan CPU 32-bit yang sederhana seharga sekitar $ 14. Pemahaman saya adalah bahwa uCLinux telah di-porting ke beberapa CPU lunak FPGA ini (seperti NIOS II / e) - Anda mungkin menemukan uClinux memadai untuk keperluan Anda.

Linux penuh membutuhkan CPU dengan MMU (seperti NIOS II / f). CPU 32-bit dengan MMU membutuhkan sekitar 4 kali sumber daya FPGA dari CPU 32-bit tanpa MMU - alasannya tidak begitu jelas.

Sejauh yang saya tahu dari halaman Xilinx Microblaze , CPU lunak Microblaze hanya berjalan pada Xilinx FPGAs.

Linux telah porting ke beberapa CPU lunak lainnya. Jika Anda ingin menjalankan Linux pada beberapa FPGA perusahaan lain, Anda mungkin ingin melihat port Linux yang terdaftar di "Soft CPU Cores for FPGA" .

Beberapa CPU lunak ini - termasuk MMU - akan muat pada Xilinx Spartan XC3S400A ($ 17 dari Avnet).

Saya telah mendengar bahwa beberapa CPU lunak 32-bit - termasuk MMU - cukup mudah untuk diatur sebagai "dual core" pada chip FPGA $ 20. Mereka yang mengikuti "Jan's Razor" mungkin mencoba memeras selusin CPU 8-bit pada chip yang sama.

davidcary
sumber
1
Ada implementasi Microblaze open source (seperti aeMB - opencores.org/project , aemb ) yang harus port ke FPGA lain (non-Xilinx).
mrkj
(tak tahu malu plug) AEMB diketahui untuk menjalankan UC / OS-II di Altera FPGA juga - aeste.my/node/7
sybreon
11

Umumnya FPGA akan jauh lebih mahal daripada perangkat yang sama yang diimplementasikan dalam silikon, karena ada banyak biaya overhead karena konfigurasi ulang. Jadi tidak, Anda tidak akan menemukan FPGA seharga $ 20-30 yang memiliki kekuatan yang sama dengan CPU ARM yaitu $ 20-30. Sekarang, Anda mungkin menemukan FPGA seharga $ 20-30 yang dapat melakukan tugas-tugas spesifik jauh lebih cepat dari $ 20-30 ARM, tetapi itu tidak akan bisa mengalahkannya dalam tugas-tugas komputasi umum.

Inilah sebabnya mengapa orang-orang menempel mikrokontroler dan FPGA di papan yang sama. ARM dan PPC adalah dua yang paling umum dikombinasikan dengan FPGA.

davr
sumber
4
Saya mengerti bahwa saya tidak akan menemukan FPGA yang mengalahkan mikro pada biaya dan kinerja, tetapi sepertinya mungkin ada FPGA yang mengalahkan biaya mikro + FPGA, sambil memberikan kinerja yang sama, semuanya dalam satu chip. Apakah itu masuk akal?
pingswept
10

Saat membeli FPGA, jangan lupa untuk memperhitungkan biaya memori Flash yang memegang program FPGA. Itu mudah dilupakan.

Sebagai perancang PCB, FPGA sejuta kali lebih mudah untuk ditata, karena Anda dapat mengatur ulang pinout sesuka Anda bahkan setelah papan dibuat. Ada penghematan biaya potensial yang terkait dengan lapisan lebih sedikit yang dibutuhkan untuk merutekan suatu FPGA.

Untuk yang lain yang menggunakan FPGA vs kinerja CPU, saya setuju sampai batas tertentu. Prosesor yang sebenarnya akan lebih cepat dalam melakukan hal-hal prosesor-y sebenarnya daripada FPGA yang diprogram untuk bertindak seperti prosesor.

Itu tidak benar-benar adil untuk FPGA. CPU "terbatas waktu"; jika Anda ingin melakukan lebih banyak pekerjaan, Anda perlu lebih banyak waktu, atau prosesor yang lebih cepat. FPGA biasanya "terbatas wilayah"; jika Anda ingin melakukan lebih banyak pekerjaan, Anda membutuhkan FPGA yang lebih besar.

Misalnya, Anda membuat penganalisis spektral yang menangani sinyal audio mono. Katakanlah membutuhkan waktu 70% dari waktu CPU, dan Anda sudah secepat CPU bisa. Anda tidak dapat menambahkan dukungan stereo, karena CPU tidak cukup cepat untuk melakukan saluran kedua sebelum harus menangani saluran pertama lagi. Tetapi jika Anda menggunakan 70% dari FPGA, Anda bisa membeli FPGA yang lebih besar dan memasukkan saluran kedua. Tidak perlu lebih cepat.

Sekarang, jika Anda memasukkan masalah ke dalam domain Desain Digital, menggunakan Finite State Machines dan Datapaths alih-alih CPU, saya berani bertaruh dolar untuk peso bahwa FPGA akan menghancurkan CPU, dengan mengorbankan meningkatnya kompleksitas dalam desain.

ajs410
sumber
1
Ada juga FPGA berbasis flash (ACTEL) dan beberapa yang berbasis SRAM dengan flash built-in (Xilinx Spartan3AN, LatticeXP).
sybreon
Anda juga bisa membeli CPU yang lebih cepat dan memasukkan saluran kedua. Bukan perbandingan yang bagus.
user253751
@immibis Apa yang Anda katakan sebenarnya sama dengan poin ajs410: FPGA tidak perlu lebih cepat , harus lebih besar . Jika Anda ingin menggunakan CPU, yang dapat Anda lakukan adalah menghadirkan CPU kedua, asalkan sifat pemrosesannya dapat diparalel.
Johan Boulé
7

Xilinx baru-baru ini melakukan kesepakatan dengan ARM, yang akan memungkinkan mereka untuk menempatkan core ARM di FPGA. Sayangnya, mereka hanya akan tersedia untuk perangkat Virtex kelas atas.

Leon Heller
sumber
3
Sangat menarik.
pingswept
2
Saya pikir Anda salah tentang core ARM yang hanya muncul di perangkat Virtex. Siaran pers tidak mengatakan banyak, dan saya tidak berpikir Anda dapat menyimpulkan bahwa dari fakta bahwa inti PPC hanya muncul di bagian V2P, V4FX, dan V5FXT. Situs web Xilinx menyebutkan perangkat yang dioptimalkan untuk "kinerja, biaya, dan daya" (lihat xilinx.com/technology/roadmap/processing-platform.htm ); Anda akan melihat bahwa biaya tidak pernah merupakan vektor optimasi untuk seri Virtex.
mrkj
1
Juga, ARM tidak pernah disebutkan dalam pengumuman 7-seri FPGA ( xilinx.com/technology/roadmap/7-series-fpgas.htm ), dan tidak ada bagian V6 atau V7 dengan PPC. Menurut saya semua ini adalah mereka bergerak menjauh dari prosesor tertanam di bagian kinerja tinggi.
mrkj
3
Saya kira hasil dari kesepakatan ini adalah Zynq ?
Janus Troelsen
4

Harga FPGA aneh - setelah Anda berbicara dengan disti waralaba, Anda mendapati bahwa harga yang dikutip di Digikey, Mouser, dll. Dapat beberapa kali lebih tinggi daripada yang dapat diperoleh. Termurah yang saya ketahui adalah Lattice EC1 di QFP100 dengan harga sedikit di bawah GBP3 dalam baki qtys. Tambahkan GBP0,40 atau lebih untuk memori flash SPI.

Menempatkan CPU di fabric FPGA umumnya tidak bernilai baik dalam hal biaya silikon, tetapi faktor-faktor lain seperti kopling ketat antara CPU dan FPGA, dan berkurangnya jumlah paket dapat mengubah tradeoff optimal terhadap penggunaan CPU terpisah.

mikeselectricstuff
sumber
2
Poin yang sangat bagus. Lihat juga posting ini [ element14.com/community/thread/2434] dari seorang karyawan Farnell yang menyarankan bahwa chip Altera Cyclone IV tersedia hanya dengan $ 3, sedangkan harga yang dikutip Farnell termurah di halaman web mereka lebih dekat dengan $ 20. Sekarang, jelas kebanyakan orang tidak akan membeli dalam jumlah 250.000, tetapi para distributor itu mungkin, dan mereka mungkin mau berdagang dengan kenaikan kurang dari 566% ...
Jules
3

Tebakan terbaik saya sejauh ini adalah sesuatu seperti Xilinx XC3S400A, yang harganya sekitar $ 16, tapi saya tidak yakin itu bisa menangani MicroBlaze.

pingswept
sumber
3
Dari tampilan online yang cepat, inti microblaze akan menggunakan sekitar setengah dari sel logika dalam XC3S400A. Selain itu, Cortex A8 akan berjalan pada 600MHz - 800MHz, sedangkan microblaze pada FPGA akan berjalan pada 200MHz - 300MHz.
davr
Jadi itu akan ~ 3x lebih lambat (dengan asumsi sistem Anda terikat prosesor), tetapi biayanya sebanding, sambil meninggalkan kelebihan gerbang untuk hal lain.
pingswept
1
Itu hanya membandingkan frekuensi, cara paling mendasar untuk membandingkan kecepatan pemrosesan aktual. Saya tidak memiliki pengetahuan yang cukup tentang hal itu, tetapi mungkin misalnya pada kecepatan jam yang sama, ARM dua kali lebih cepat dari Microblaze
davr
1
Ya, cukup adil. Perkiraan pertama, saya kira.
pingswept
3

Itu sangat tergantung pada aplikasi Anda. Aplikasi yang ideal di sini akan terdiri dari bagian kontrol kecil (yang cocok dengan microblaze / NIOS) tetapi bagian komputasi yang dapat memanfaatkan paralelisme besar perangkat keras khusus. Dalam kasus ini, bahkan FPGA berukuran sedang (sederhana atau setara) dapat dengan mudah mengungguli CPU tujuan umum. Tapi itu kasus terbaik (walaupun sangat banyak dapat dicapai di banyak aplikasi dunia nyata), jika aplikasi Anda memang memiliki bagian kontrol yang signifikan atau tidak mudah memetakan ke perangkat keras, menghabiskan uang Anda untuk perangkat keras tetap (yaitu ARM) adalah mungkin lebih baik.

Wim
sumber
3

Jika Anda membutuhkan papan bukan hanya chip, berikut adalah dua opsi terbaru dari 2013:

Janus Troelsen
sumber
0

Karena banyak CPLD Altera saat ini adalah FPGA dengan memori konfigurasi bawaan, Anda bisa mendapatkannya untuk http://www.altera.com/products/devices/cpld/max2/mx2-index.jsp

Brian Carlton
sumber
0

pertama-tama Anda ingin menjalankan linux pada sebuah inti. Bagaimana menjalankannya pada ARM seperti beberapa saran lain di utas ini. MCU sangat bagus dalam menjalankan OS tetapi ia menjadi agak boros sumber daya FPGA membangun MCU. MCU dapat masuk ke area silikon yang jauh lebih kecil ketika dirancang khusus untuk itu dan dengan demikian dapat diproduksi lebih murah. Lalu ada penjelasan lain tentang FPGA yang benar-benar bagus dalam pemrosesan paralel -jenis benar meskipun operasi logika tidak merasa ingin memproses dengan tepat. Seperti yang Anda tunjukkan, FPGA yang kuat menjadi mahal, dan memang membutuhkan daya. Jadi platform biaya rendah yang dapat menjalankan linux dan DSP membutuhkan manfaat paralelisme untuk IO cepat dll. Lihatlah prosesor paralel XMOS

Pete Tasker
sumber