Warum wird SRAM-basiertes FPGA mehr verwendet als NVM-basiertes FPGA?

20

SRAM-basierte FPGAs müssen den Bitstream nach dem Ausschalten erneut laden. In der Zwischenzeit braucht man das nicht.

Ich frage mich, warum auf dem SRAM-FPGA mehr Experimente und Sicherheitsuntersuchungen durchgeführt werden als auf dem NVM-basierten, scheint die flüchtige Technologie ungeachtet ihrer Sicherheitsgrenzen (wenn es um die Gewährleistung eines sicheren Starts geht) häufiger zum Einsatz zu kommen.

(PS: Ich habe keine Statistik, es ist eine persönliche Beobachtung)

Lavendel
quelle
Ich bin mir über Ihre Statistiken nicht sicher, aber FLASH-FPGAs sind im Vergleich zu SRAM-FPGAs relativ neu. Das könnte also ein Grund sein, wenn Ihre Daten wahr sind.
Eugene Sh.
3
Hast du die Kosten verglichen? Ich würde mir vorstellen, dass die nichtflüchtigen teurer sind.
Herd
@EugeneSh Ich habe keine Statistik, es ist eine persönliche Beobachtung (ich habe das als PS in der Frage aktualisiert, um die Leute nicht zu verwirren)
Lavender
Das letzte Projekt, das ich angesprochen habe, hat sram verwendet, weil es viele Male für verschiedene Funktionen neu
konfiguriert wurde

Antworten:

32

Der Haupttreiber ist die Tatsache, dass SRAM in hohem Maße mit demselben physischen Prozess kompatibel ist, der zur Implementierung der eigentlichen Logik verwendet wird. Tatsächlich basieren die meisten FPGAs heutzutage auf LUTs (Nachschlagetabellen), bei denen es sich eigentlich nur um winzige RAM-Teile handelt.

Andererseits erfordert der Prozess, der zum Aufbau eines EEPROM (nichtflüchtiger Speicher) erforderlich ist, zusätzliche Schritte - um schwebende Gates mit einer speziellen Oxiddicke usw. zu erzeugen. Dieser Prozess ist NICHT direkt mit dem Logik- / SRAM-Prozess kompatibel. Dies bedeutet, dass nichtflüchtige FPGAs in beiden Bereichen einen Kompromiss darstellen.

Dave Tweed
quelle
21

Neben der Antwort von Dave Tweed zu den beteiligten Herstellungsprozessen verwenden die meisten Flash-basierten FPGAs immer noch SRAM, um ihre Fabric zu betreiben. Der Bitstrom wird wie bei einem herkömmlichen FPGA vom Flash in den SRAM geladen. Der einzige Unterschied besteht darin, dass der Flash intern ist. Diese Architektur wird deutlich, wenn Sie sich ihre Datenblätter und Appnotes ansehen. Insbesondere unterstützen einige Geräte wie das Lattice MachXO2 / 3 das Umprogrammieren ihres Flashs, während das Gerät ausgeführt wird. Dies ist nur möglich, weil das Gerät tatsächlich über SRAM und nicht direkt über das Flash ausgeführt wird. Ein "flash-basiertes" FPGA benötigt also zusätzlich zum SRAM einen Flash , was bedeutet, dass es mehr Chipfläche benötigt.

In Bezug auf die Sicherheit weisen Sie zu Recht darauf hin, dass der FPGA-Startprozess ein Schwachpunkt für die Erfassung des Bitstroms sein kann. Um diese Lücke zu schließen, unterstützen viele FPGAs jetzt die Bitstream-Verschlüsselung, die auf einem sicheren Schlüssel basiert, der im dedizierten Speicher des FPGA gespeichert ist. Ein Bitstream-Image wird mit diesem Schlüssel verschlüsselt, in den Konfigurationsspeicher geladen. Wenn das FPGA gestartet wird, liest es den verschlüsselten Bitstream ein und entschlüsselt ihn beim Laden in seinen (Einige Mikrocontroller, die externen Speicher benötigen, verfügen über ähnliche Funktionen und Die Prinzipien sind weitgehend die gleichen.)

ajb
quelle
2
Tatsächlich gilt Ihr erster Absatz für einen relativ begrenzten Satz von FPGAs. Viele Flash-basierte FPGAs werden als "Instant On" (ein starkes Verkaufsargument in vielen Anwendungen) beworben, was bedeutet, dass keine interne Übertragung stattfindet - die Flash-Zellen steuern die Verbindungen und die Logik direkt.
Dave Tweed
3
Von dem, was ich gesehen habe, dass sogar "Instant On" -Geräte noch CRAM laden müssen, geschieht dies viel schneller (ich denke aufgrund einer breiteren Schnittstelle des internen Flashs) als in Teilen, die externen Flash erfordern. Zum Beispiel ist die MAX10 „instant on“, aber siehe S.28 hier: intel.com/content/dam/altera-www/global/en_US/pdfs/literature/... Aber wenn Sie einen Verweis haben , dass zeigt ein völlig CRAM Weniger Architektur Ich würde gerne mehr darüber erfahren.
Ajb
2
Schauen Sie sich Actel (jetzt Microsemi) an - sowohl die Antifuse- als auch die Flash-basierten Geräte sind kopierfrei.
Dave Tweed
8

Das hängt vor allem von Ihren Anforderungen ab. Obwohl Größe, Gewicht und Leistung (SWaP) die Haupttreiber für ICs im Allgemeinen sind, ist die Leistung Ihre nächste Überlegung, die Sie ohnehin zu einem ASIC zurückbringen kann, wenn Sie aufgrund dieser Anforderungen nicht gezwungen sind, einen ASIC zu entwickeln. Sie können jedoch möglicherweise ein FPGA verwenden, wenn Sie sich die SWaP-Kompromisse leisten können.

  • FLASH-basierte FPGAs benötigen zum Konfigurieren "keine Zeit", da sie "sofort ein" sind. Ihr Design kann dies erfordern.
  • Die FLASH-Technologie ist leistungsärmer als SRAM
  • FLASH-basiertes FPGA benötigt kein BOOT PROM, also einen Chip gegen zwei (oder mehr).
  • Möglicherweise müssen Sie das System im vorherigen Status hochfahren.
  • FLASH-basiert bietet mehr rad-tolerante Lösungen. In SRAM-basierten FPGAs gibt es Möglichkeiten, mit Strahlungsanforderungen oder SEUs im Allgemeinen umzugehen. Microsemi bietet jedoch "gehärtete Technologie" an.

FLASH-basierte FPGAs (Actel, jetzt Microsemi) hatten traditionell nicht die Dichte oder Leistung, die man mit SRAM-basierten FPGAs erreichen könnte. Wenn also die Leistung der treibende Faktor wäre, würden Sie sich für Xilinx oder Altera (jetzt Intel) oder entscheiden vielleicht Gitter.

Im Wesentlichen richten Sie sich nach den Anforderungen Ihres Systems und speziell Ihres IC. Sie gehen frühzeitig auf diese Anforderungen ein und führen eine Trade-Studie der verschiedenen FPGAs durch (Tabellenkalkulation). SWaP und Leistung, gefolgt von wiederkehrenden Kosten, sind die wichtigsten Überlegungen, die Sie mit Ihrem Team (Systeme, CCA, möglicherweise sogar SW) wiederholen möchten und die an Ihren Projektleiter / Manager zurückgesendet werden. Andere Anliegen wie Zuverlässigkeit, Herstellbarkeit usw. werden normalerweise von anderen Teammitgliedern der jeweiligen Organisationen gestellt, bedeuten aber normalerweise nicht viel, ohne dass Sie anfänglich handeln, und stehen Ihrer Wahl in der Regel nicht entgegen.

Es gibt Artikel im Web, wenn Sie nach "SRAM vs FLASH FPGAs" suchen, aber Sie werden wahrscheinlich aus einer Handelsstudie mit den Datenblättern mehr gegen Ihre Anforderungen lernen als alles andere.

CapnJJ
quelle
2

Um den Sicherheitsaspekt zu berücksichtigen, können die meisten modernen SRAM-FPGAs mit einem verschlüsselten Stream konfiguriert werden , in der Regel mit modernen Verschlüsselungsstandards wie 256-Bit-AES. Das ist wohl genauso sicher wie die interne Speicherung der Konfiguration: Ein dedizierter Attacher, der in der Lage ist, den privaten Schlüssel von einem entschlüsselten Chip zu extrahieren, kann auch den internen Flash auslesen.

Flash-basierte FPGAs werden normalerweise verwendet, wenn die Implementierung recht einfach ist (ein großes SRAM-FPGA ist also nicht erforderlich) oder wenn ein sofortiger Start erforderlich ist.

Dmitry Grigoryev
quelle
Ich würde argumentieren, dass Flash-basierte FPGAs auch Sicherheitsbedenken ausräumen können. Lesen Sie den Artikel aus EEtimes zur Abwehr von Angriffen mithilfe der Differential Power Analysis (DPA): eetimes.com/document.asp?doc_id=1327477
boink
@boink Richtig, insbesondere ältere FPGAs waren ziemlich anfällig ( Beispiel ), aber ich gehe davon aus, dass sich die Situation inzwischen verbessert hat. Der Artikel, auf den Sie verweisen, scheint für DPA-Gegenmaßnahmen zu werben.
Dmitry Grigoryev