Dapatkah FPGA secara dinamis mengubah logikanya?

15

Secara teori, FPGA dapat menulis gambar konfigurasi ke memori eksternal, dan memuat gambar konfigurasi dari memori untuk mengonfigurasi ulang dirinya sendiri. Ini akan menjadi konfigurasi ulang "non-dinamis".

Apakah FPGA memiliki kemampuan untuk me-rewire jalinan logika mereka secara dinamis? Memang, sementara flip-flop dapat mengubah nilainya, saya belum pernah mendengar tentang konfigurasi ulang dinamis dari tabel look-up dan wirings internal yang membentuk struktur logika.

Dapatkah logika internal FPGA (selain memori) dimodifikasi secara dinamis? Jika tidak, mengapa tidak?

Randomblue
sumber
"konfigurasi ulang dinamis" memang ungkapan yang Anda cari :)
Martin Thompson
Apakah Anda mencari FPGA yang dapat mengonfigurasi ulang sendiri (seperti beberapa mikrokontroler) atau yang dapat dikonfigurasi ulang (runtime) dari komponen eksternal?
Coba Laugstøl

Jawaban:

12

Ya, saya tahu bahwa setidaknya Xilinx memiliki bagian yang mendukung konfigurasi ulang dinamis, dan vendor besar lainnya mungkin juga melakukannya.

Ini adalah usaha besar untuk melakukannya, jadi Anda benar-benar perlu memastikan Anda membutuhkannya. Anda perlu mempartisi chip secara fisik menjadi dua area atau lebih, setidaknya satu di antaranya tidak dapat dikonfigurasi ulang, dan secara fisik "merinci" semua antarmuka internal di antara area tersebut sehingga alat sintesis dapat membuat semua koneksi yang tepat.

Dave Tweed
sumber
1
Cari situs web Xilinx untuk "reconfigurability"!
Leon Heller
3

Ada dua pendekatan umum yang bisa digunakan. Banyak jenis FPGA menahan konfigurasinya dalam kait yang diambil dari perangkat eksternal (biasanya EEPROM) saat startup; perangkat eksternal tidak diperlukan oleh FPGA setelah dibaca. Perubahan pada EEPROM selama operasi perangkat tidak akan berlaku sampai FPGA diinstruksikan untuk memuat ulang kontennya. Dengan demikian, dimungkinkan untuk perangkat yang sepenuhnya tidak dapat dioperasikan tanpa FPGA untuk memprogram ulang FPGA itu selama operasi; Namun, jika terjadi kesalahan selama penulisan EEPROM, perangkat mungkin tidak dapat dioperasikan kecuali atau sampai dapat ditulis ulang oleh perangkat eksternal (keadaan yang kadang-kadang disebut sebagai 'bricked').

Pendekatan alternatif, yang sering berguna dengan CPLD yang sel EEPROM "secara langsung" mengontrol fungsionalitasnya (sebagai lawan disalin ke kait) adalah memiliki sistem yang dapat beroperasi dengan fungsionalitas terbatas bahkan ketika perangkat yang dapat diprogram dalam keadaan tidak berguna. Jika fungsi terbatas seperti itu cukup untuk memprogram ulang CPLD, perangkat mungkin kebal terhadap 'bricking'. Misalnya, perangkat nirkabel mungkin menggunakan CPLD untuk mengontrol fungsionalitas nirkabel dan fitur lainnya. Metode normal pemrograman ulang CPLD mungkin untuk menerima gambar ke dalam RAM melalui tautan nirkabel, dan kemudian menggunakan gambar itu untuk memprogram ulang CPLD. Jika memprogram file, tautan nirkabel mungkin tidak dapat digunakan sampai CPLD diprogram ulang. Untuk memungkinkan sistem pulih, prosesor dapat berisi "default"

supercat
sumber