Mengapa FPGA berbasis SRAM digunakan lebih dari FPGA berbasis NVM?

20

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)

Lavender
sumber
Saya tidak yakin tentang statistik Anda, tetapi FLASH FPGA relatif baru dibandingkan dengan yang SRAM. Sehingga bisa menjadi alasan jika data Anda benar.
Eugene Sh.
3
Sudahkah Anda membandingkan biayanya? Saya membayangkan yang non-volatile lebih mahal.
Hearth
@EugeneSh Saya tidak memiliki statistik, ini adalah pengamatan pribadi (saya memperbarui itu sebagai PS dalam pertanyaan agar tidak membingungkan orang)
Lavender
Proyek terakhir yang saya sentuh menggunakan SRAM karena mereka mengkonfigurasi ulang berkali-kali untuk fungsionalitas yang berbeda
PlasmaHH

Jawaban:

33

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.

Dave Tweed
sumber
21

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.)

ajb
sumber
3
Sebenarnya, paragraf pertama Anda berlaku untuk set FPGA yang relatif terbatas. Banyak FPGA berbasis flash diiklankan sebagai "instant on" (titik penjualan yang kuat di banyak aplikasi), yang berarti bahwa tidak ada transfer internal - sel-sel flash mengontrol koneksi dan logika secara langsung.
Dave Tweed
3
Dari apa yang saya lihat bahkan "instant on" perangkat masih harus memuat CRAM, itu terjadi jauh lebih cepat (saya kira karena antarmuka yang lebih luas dari flash internal) daripada di bagian yang membutuhkan flash eksternal. Sebagai contoh, MAX10 "instan aktif", tetapi lihat h.28 di sini: intel.com/content/dam/altera-www/global/en_US/pdfs/literature/… Tetapi jika Anda memiliki referensi yang menunjukkan sepenuhnya CRAM- semakin sedikit arsitektur, saya akan tertarik untuk mempelajarinya.
ajb
3
Lihatlah Actel (sekarang Microsemi) - perangkat berbasis anti -use dan flash-nya adalah nol-salinan.
Dave Tweed
8

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 memerlukan "tidak ada waktu" untuk mengkonfigurasi, karena mereka "instan". Desain Anda mungkin memerlukan ini.
  • Teknologi FLASH memiliki daya yang lebih rendah dari SRAM
  • FPGA berbasis FLASH tidak memerlukan BOOT PROM, jadi satu chip vs. dua (atau lebih).
  • Anda mungkin memiliki persyaratan untuk meningkatkan daya dalam kondisi sebelumnya.
  • Berbasis FLASH menawarkan lebih banyak solusi Rad-Tolerant. Ada beberapa cara untuk menangani persyaratan radiasi, atau SEU secara umum, dalam FPGA berbasis SRAM, tetapi, Microsemi menawarkan "teknologi yang diperkeras"

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.

CapJJ
sumber
2

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.

Dmitry Grigoryev
sumber
Saya berpendapat bahwa FPGA berbasis flash juga dapat mengatasi masalah keamanan. Lihat artikel dari EETimes mengenai mitigasi terhadap serangan menggunakan daya analisis diferensial (DPA): eetimes.com/document.asp?doc_id=1327477
Boink
@ Boink Benar, FPGA lama khususnya sangat rentan ( contoh ), tapi saya berharap situasinya telah membaik sekarang. Artikel yang Anda rujuk tampaknya mengiklankan tindakan pencegahan DPA.
Dmitry Grigoryev