FPGA berbasis SRAM perlu memuat bitstream lagi setelah dimatikan. Sementara yang berbasis Non-Volatile tidak membutuhkan itu.
Saya bertanya-tanya, mengapa lebih banyak eksperimen dan penelitian keamanan dilakukan pada SRAM FPGA daripada yang berbasis NVM, tampaknya teknologi volatil lebih digunakan terlepas dari batas keamanannya (ketika datang untuk memastikan boot aman).
(PS: Saya tidak punya statistik, itu pengamatan pribadi)
Jawaban:
Penggerak utama adalah kenyataan bahwa SRAM sangat kompatibel dengan proses fisik yang sama yang digunakan untuk mengimplementasikan logika aktual. Memang, sebagian besar FPGA hari ini didasarkan pada LUT (tabel pencarian), yang sebenarnya hanya sebagian kecil dari RAM itu sendiri.
Di sisi lain, proses yang diperlukan untuk membangun EEPROM (memori nonvolatile) memerlukan langkah ekstra - untuk membuat gerbang mengambang dengan ketebalan oksida khusus, dll. Proses ini TIDAK langsung kompatibel dengan proses logika / SRAM. Ini berarti bahwa FPGA non-volatil agak kompromi di kedua bidang.
sumber
Selain jawaban Dave Tweed mengenai proses fabrikasi yang terlibat, sebagian besar FPGA berbasis flash sebenarnya masih menggunakan SRAM untuk menggerakkan kain mereka. Bitstream dimuat ke SRAM dari flash seperti pada FPGA yang lebih konvensional, satu-satunya perbedaan adalah bahwa flash adalah internal. Arsitektur ini terbukti ketika Anda melihat lembar data dan catatan aplikasi mereka. Secara khusus, beberapa perangkat seperti Lattice MachXO2 / 3 mendukung pemrograman ulang flash mereka ketika perangkat sedang berjalan, yang hanya mungkin karena perangkat tersebut sebenarnya berjalan dari SRAM bukan langsung dari flash. Jadi FPGA "berbasis flash" membutuhkan flash selain SRAM, yang berarti membutuhkan lebih banyak area mati.
Mengenai keamanan, Anda benar untuk menunjukkan bahwa proses startup FPGA dapat menjadi titik lemah dalam hal memungkinkan bitstream untuk ditangkap. Untuk membantu menutup celah ini, banyak FPGA sekarang menggabungkan dukungan untuk enkripsi bitstream, yang didasarkan pada kunci aman yang disimpan dalam memori khusus dalam FPGA. Gambar bitstream dienkripsi dengan kunci ini, dimuat ke dalam memori konfigurasi, dan kemudian ketika FPGA mulai itu membaca bitstream terenkripsi dalam, dan mendekripsi ketika memuatnya ke dalam (Beberapa mikrokontroler yang membutuhkan memori eksternal memiliki kemampuan yang sama, dan prinsip-prinsipnya sebagian besar sama.)
sumber
Lebih dari segalanya, itu tergantung pada kebutuhan Anda. Sementara Ukuran, Berat dan Daya (SWaP) adalah pendorong utama untuk IC secara umum, jika Anda tidak dipaksa untuk mengembangkan ASIC karena persyaratan tersebut, Kinerja adalah pertimbangan Anda berikutnya, yang mungkin mendorong Anda kembali ke ASIC, tetapi, Anda mungkin dapat menggunakan FPGA jika Anda mampu melakukan pertukaran SWaP.
FPGA berbasis FLASH (Actel, sekarang Microsemi), secara tradisional, belum memiliki kepadatan atau kinerja yang dapat dicapai dengan FPGA berbasis SRAM, jadi, jika kinerja adalah faktor pendorong, Anda akan memilih Xilinx atau Altera (sekarang Intel), atau mungkin Kisi.
Pada dasarnya, Anda didorong oleh persyaratan sistem Anda, dan IC Anda secara khusus. Sejak awal, Anda memenuhi persyaratan ini dan melakukan studi perdagangan berbagai FPGA (spread sheet). SWaP dan kinerja, diikuti oleh biaya berulang adalah pertimbangan utama yang ingin Anda lakukan bersama tim Anda (sistem, CCA, bahkan mungkin SW) yang merupakan umpan balik kepada chief engineer / manajer proyek Anda. Kekhawatiran lain seperti keandalan, manufakturabilitas, dll. Biasanya disediakan oleh anggota tim lain dari organisasi masing-masing, tetapi biasanya tidak banyak berarti tanpa perdagangan awal Anda, dan biasanya tidak akan menghalangi pilihan Anda.
Ada artikel di web jika Anda mencari "SRAM vs FLASH FPGAs", tetapi Anda mungkin akan belajar lebih banyak dari studi perdagangan terhadap persyaratan Anda menggunakan lembar data daripada Anda akan melakukan hal lain.
sumber
Untuk menangani aspek keamanan, sebagian besar FPGA SRAM modern dapat dikonfigurasi dengan aliran terenkripsi , biasanya dengan standar enkripsi modern seperti AES 256-bit. Bisa dibilang itu sama amannya dengan menyimpan konfigurasi secara internal: seorang pengacara yang berdedikasi yang mampu mengekstrak kunci pribadi dari chip yang dipenggal juga akan dapat membaca flash internal.
FPGA berbasis flash biasanya digunakan ketika implementasinya agak sederhana (sehingga SRAM FPGA besar tidak diperlukan) atau ketika startup instan diperlukan.
sumber