Linux tertanam di FPGA

10

Saya memiliki pengalaman yang sangat terbatas dengan FPGA (Altera - hanya menggunakan alat desain visual).

Saya berencana untuk proyek baru di mana saya perlu FPGA dan saya bisa mendapat banyak manfaat dari linux yang sebenarnya berjalan di papan yang sama (kebanyakan untuk komunikasi TCP serta beberapa DSP).

Pertanyaan saya adalah, apakah ada FPGA yang direkomendasikan yang memiliki embedded linux yang didukung yang disiapkan untuk itu? tidak ada driver mewah (hanya ethernet, wifi bisa menjadi nilai tambah, ...). Saya membayangkan akan ada kontroler mikro yang dibangun ke dalam FPGA (ini berarti akan memakan banyak FPGA dan saya akan membutuhkan FPGA yang lebih besar).

Ali
sumber

Jawaban:

15

Sebuah core prosesor RISC 32-bit buku teks yang mampu menjalankan versi no-mmu dari linux sebenarnya tidak perlu sebesar itu - sumber daya sesungguhnya yang Anda butuhkan jauh lebih banyak RAM (10s megabita) daripada yang tersedia di FPGA mana pun, jadi Anda Mungkin ingin SDRAM di papan tulis dan pengontrol untuk itu di FPGA.

Yang mengatakan, jika Anda menginginkan sesuatu yang lebih dari tingkat kinerja yang sepele, Anda mungkin ingin inti dengan beberapa optimasi (pipelining, dll), dan itu mulai meningkatkan ukuran. Menambahkan mmu penuh akan membuat alokasi memori (ulang) lebih efisien dan mengaktifkan perilaku fork (copy-on-write) biasa.

Kedua vendor FPGA utama memiliki core prosesor lunak dengan port linux yang tersedia - Microblaze untuk Xilinx, Nios II untuk Altera. Anda mungkin harus membaca dokumen mereka untuk rekomendasi platform tertentu karena tentu saja target yang bergerak seiring waktu. Desain inti pihak ketiga mungkin agak lebih besar untuk kinerja yang sama, jika ditulis dengan cara yang lebih portabel dan tidak secara khusus dioptimalkan untuk keluarga FPGA tertentu.

Secara historis ada chip yang tersedia menggabungkan kedua inti prosesor keras (sering powerpc) dengan wilayah kain FPGA yang dapat dikonfigurasi. Pilihan lain untuk dilihat adalah prosesor terpisah (kemungkinan ARM) pada papan yang sama dengan FPGA.

Banyak keputusan akan tergantung pada seberapa ketat Anda perlu memasangkan prosesor dan FPGA. Jika Anda dapat mengurangi masalah ke register konfigurasi dan aliran data, bisa jadi modular seperti menggantung papan FPGA dengan chip USB cepat dari port host USB dari papan linux tertanam seperti BeagleBoard atau RasberryPi. Untuk integrasi yang lebih ketat, Anda mungkin menginginkan FPGA berada di papan yang sama dan duduk di bus eksternal prosesor. Atau untuk kecepatan data rendah, sepele untuk menempatkan antarmuka register SPI dalam FPGA, dan antarmuka UART sepenuhnya dapat dilakukan meskipun sedikit rumit.

Akhirnya, ada pertanyaan apakah Anda benar-benar membutuhkan sistem operasi penuh seperti linux, atau apakah tumpukan TCP tertanam berukuran "ukuran mikro-controller" akan menyelesaikan masalah Anda sementara membutuhkan lebih sedikit memori.

Chris Stratton
sumber
6

Microblaze Xilinx menjalankan Linux dengan baik, dengan asumsi itu cukup cepat untuk tujuan Anda - itu hanya akan melakukan 10-an MIPS tinggi di perangkat yang lebih murah, 100-200 MIPS dalam keluarga yang mahal.

Xilinx memiliki git repo , atau ada beberapa distribusi spesifik Xilinx. Fleksibilitas FPGA bisa sedikit menyusahkan dan juga merupakan anugerah, karena peta memori dan pemetaan IRQ Anda, atau bahkan apa saja yang tersedia dapat berubah selama pengembangan proyek.

Petalinux memiliki skrip untuk mengelola hal semacam ini dan memperbarui bit konfigurasi kernel yang penting berdasarkan desain sistem terbaru dan terhebat Anda.

Martin Thompson
sumber
4

Virtex Xilinx memiliki versi FPGA dengan PowerPC hard-core. Sangat mudah untuk menjalankan Linux pada PowerPC, murid-murid saya telah melakukannya untuk banyak proyek desain senior. Mereka masih memiliki banyak fabric yang dapat dikonfigurasi untuk diisi oleh desain perangkat keras Anda.

The Virtex2 evaluasi Pro papan sangat umum dalam proyek-proyek penelitian pendidikan dan akademik. Karena Xilinx telah menjatuhkan dukungan untuk chip versi ini di alat terbaru mereka, Anda dapat mengambilnya dengan cukup murah. Saya percaya bahwa itu didukung hingga versi 9.x atau lebih. Hmm. Itu beberapa tahun yang lalu, jadi mungkin saya menjadi sedikit nostalgia. Bagaimanapun, saya masih membagikan papan ini kepada siswa yang tertarik untuk membiarkan mereka melakukan apa saja yang mereka inginkan dengan mereka.

Bill Nace
sumber
1
Jika saya tidak banyak salah mereka disebut Virtex xilinx.com/onlinestore/v2pro_boards.htm
Ali
1
@ Ali - Saya tidak berpikir Anda salah, dan Anda punya referensi yang cukup dapat diandalkan untuk pernyataan Anda. Silakan mengusulkan pengeditan dalam situasi seperti ini!
Kevin Vermeer
3

SmartFusion dari Actel mengintegrasikan FPGA dengan inti ARM Cortex-M3 hard-IP dan mesin analog canggih dalam satu perangkat chip.

uClinux berjalan cukup baik pada inti Cortex-M3 dari SmartFusion. Periksa situs ini untuk perincian lebih lanjut.

vladimir khusainov
sumber
2

Tergantung pada jangka waktu Anda, Anda mungkin juga melihat ke garis Zynq-7000 baru Xilinx, yang menggabungkan prosesor ARM dengan Artix-7 atau Kintex-7. Xilinx mengklaim mereka akan mengirimkan jumlah produksi pada paruh kedua 2012.

Vendor lain mungkin memiliki produk serupa. Saya tidak tahu apakah atau kapan Xilinx akan membawa dukungan Zynq ke WebPack ISE gratis; saat ini, mereka mengklaim Anda membutuhkan ISE Embedded Edition.

Nicholas
sumber
Mengapa Anda membuat wiki komunitas jawaban ini? Itu mungkin tidak perlu.
Kevin Vermeer