Pourquoi le FPGA basé sur SRAM est-il plus utilisé que le FPGA basé sur NVM?

21

Les FPGA basés sur SRAM doivent recharger le train de bits après la mise hors tension. Pendant ce temps, la base non volatile n'a pas besoin de cela.

Je me demande, pourquoi fait-on plus d'expériences et de recherches sur la sécurité sur le FPGA SRAM que sur le NVM, il semble que la technologie volatile soit plus utilisée indépendamment de ses limites de sécurité (quand il s'agit d'assurer un démarrage sécurisé).

(PS: je n'ai pas de statistiques, c'est une observation personnelle)

Lavande
la source
Je ne suis pas sûr de vos statistiques, mais les FPGA FLASH sont relativement nouveaux par rapport aux SRAM. Cela pourrait donc être une raison si vos données sont vraies.
Eugene Sh.
3
Avez-vous comparé le coût? J'imagine que les non volatiles sont plus chers.
Foyer
@EugeneSh Je n'ai pas de statistiques, c'est une observation personnelle (je l'ai mise à jour en tant que PS dans la question afin de ne pas confondre les gens)
Lavande
Le dernier projet que j'ai touché a utilisé sram parce qu'ils l'ont reconfiguré plusieurs fois pour différentes fonctionnalités
PlasmaHH

Réponses:

33

Le pilote principal est le fait que SRAM est hautement compatible avec le même processus physique qui est utilisé pour implémenter la logique réelle. En effet, la plupart des FPGA de nos jours sont basés sur des LUT (tables de recherche), qui ne sont en réalité que de minuscules morceaux de RAM eux-mêmes.

D'autre part, le processus requis pour construire l'EEPROM (mémoire non volatile) nécessite des étapes supplémentaires - pour créer des portes flottantes avec une épaisseur d'oxyde spéciale, etc. Ce processus n'est PAS directement compatible avec le processus logique / SRAM. Cela signifie que les FPGA non volatils sont en quelque sorte un compromis dans les deux domaines.

Dave Tweed
la source
21

En plus de la réponse de Dave Tweed concernant les processus de fabrication impliqués, la plupart des FPGA basés sur flash utilisent encore SRAM pour piloter leur structure. Le bitstream est chargé dans la SRAM à partir du flash comme dans un FPGA plus conventionnel, la seule différence est que le flash est interne. Cette architecture est évidente lorsque vous regardez leurs fiches techniques et leurs annexes. En particulier, certains appareils comme le Lattice MachXO2 / 3 prennent en charge la reprogrammation de leur flash pendant que l'appareil est en cours d'exécution, ce qui n'est possible que parce que l'appareil fonctionne réellement à partir de SRAM au lieu de directement à partir du flash. Ainsi, un FPGA "basé sur flash" a besoin du flash en plus de la SRAM, ce qui signifie qu'il a besoin de plus de zone de matrice.

En ce qui concerne la sécurité, vous avez raison de souligner que le processus de démarrage FPGA peut être un point faible en termes de capture du flux binaire. Pour aider à combler cet écart, de nombreux FPGA intègrent désormais la prise en charge du cryptage bitstream, qui est basé sur une clé sécurisée stockée dans la mémoire dédiée du FPGA. Une image de flux binaire est chiffrée avec cette clé, chargée dans la mémoire de configuration, puis au démarrage du FPGA, elle lit le flux binaire chiffré et la décrypte lorsqu'elle la charge dans son (certains microcontrôleurs qui nécessitent une mémoire externe ont des capacités similaires, et les principes sont largement les mêmes.)

ajb
la source
3
En fait, votre premier paragraphe est vrai pour un ensemble relativement limité de FPGA. De nombreux FPGA basés sur flash sont annoncés comme «instantanés» (un argument de vente fort dans de nombreuses applications), ce qui signifie qu'il n'y a pas de transfert interne - les cellules flash contrôlent directement les connexions et la logique.
Dave Tweed
3
D'après ce que j'ai vu, même les appareils "instantanés" doivent encore charger la CRAM, cela se produit beaucoup plus rapidement (je suppose en raison d'une interface plus large avec le flash interne) que dans les parties nécessitant un flash externe. Par exemple, le MAX10 est "instantané", mais voir p.28 ici: intel.com/content/dam/altera-www/global/en_US/pdfs/literature/… Mais si vous avez une référence qui montre un CRAM- totalement moins d'architecture, j'aimerais en savoir plus.
ajb
3
Regardez Actel (maintenant Microsemi) - leurs dispositifs antifusible et flash sont à copie nulle.
Dave Tweed
8

Plus que tout, cela dépend de vos besoins. Bien que la taille, le poids et la puissance (SWaP) soient les principaux moteurs des circuits intégrés en général, si vous n'êtes pas obligé de développer un ASIC en raison de ces exigences, les performances sont votre prochaine considération, ce qui peut vous ramener à un ASIC de toute façon, mais vous pouvez peut-être utiliser un FPGA si vous pouvez vous permettre les compromis SWaP.

  • Les FPGA basés sur FLASH ne nécessitent "aucun temps" pour être configurés, car ils sont "instantanés". Votre conception peut l'exiger.
  • La technologie FLASH est moins puissante que la SRAM
  • Le FPGA basé sur FLASH n'a pas besoin d'une PROM BOOT, donc une puce contre deux (ou plus).
  • Vous devrez peut-être mettre sous tension dans l'état précédent.
  • FLASH propose davantage de solutions résistantes aux radiations. Il existe des moyens de gérer les besoins en rayonnement, ou les SEU en général, dans les FPGA basés sur SRAM, mais Microsemi propose une «technologie renforcée»

Les FPGA basés sur FLASH (Actel, maintenant Microsemi), n'ont traditionnellement pas eu la densité ou les performances que l'on pouvait obtenir avec des FPGA basés sur SRAM, donc, si les performances étaient le facteur déterminant, vous choisiriez Xilinx ou Altera (maintenant Intel), ou peut-être Lattice.

Essentiellement, vous êtes motivé par les exigences de votre système et de votre CI en particulier. Au début, vous répondez à ces exigences et effectuez une étude commerciale des différents FPGA (feuille de calcul). Le SWaP et les performances, suivis des coûts récurrents sont les principales considérations sur lesquelles vous souhaitez répéter avec votre équipe (systèmes, CCA, peut-être même SW) qui sont renvoyées à votre ingénieur / gestionnaire en chef de projet. D'autres préoccupations telles que la fiabilité, la fabricabilité, etc. sont généralement fournies par d'autres membres de l'équipe de ces organisations respectives, mais ne signifient généralement pas grand-chose sans votre échange initial et n'empêchent généralement pas votre choix.

Il y a des articles sur le Web si vous recherchez "SRAM vs FLASH FPGAs", mais vous en apprendrez probablement plus d'une étude commerciale par rapport à vos besoins en utilisant les fiches techniques que vous ne le feriez de toute autre chose.

CapnJJ
la source
2

Pour résoudre le problème de la sécurité, la plupart des FPGA SRAM modernes peuvent être configurés avec un flux chiffré , généralement avec des normes de chiffrement modernes telles que l'AES 256 bits. On peut dire que c'est aussi sûr que de stocker la configuration en interne: un attacheur dédié qui est capable d'extraire la clé privée d'une puce décapée pourra également lire le flash interne.

Les FPGA basés sur Flash sont généralement utilisés lorsque l'implémentation est plutôt simple (donc un grand FPGA SRAM n'est pas nécessaire) ou lorsqu'un démarrage instantané est requis.

Dmitry Grigoryev
la source
Je dirais que les FPGA basés sur flash peuvent également résoudre des problèmes de sécurité. Voir l'article d'EEtimes concernant l'atténuation contre les attaques utilisant l'analyse différentielle de puissance (DPA): eetimes.com/document.asp?doc_id=1327477
boink
@boink Certes, les FPGA plus anciens en particulier étaient assez vulnérables ( exemple ), mais je m'attends à ce que la situation se soit améliorée maintenant. L'article auquel vous faites référence semble annoncer des contre-mesures DPA.
Dmitry Grigoryev