Warum werden SRAM-basierte FPGAs häufiger verwendet als NVM-basierte FPGAs?

SRAM-basierte FPGAs müssen den Bitstream nach dem Ausschalten erneut laden. In der Zwischenzeit brauchen die auf Non-Volatile basierenden das nicht.

Ich frage mich, warum mehr Experimente und Sicherheitsforschung mit dem SRAM-FPGA durchgeführt werden als mit dem NVM-basierten. Es scheint, dass die flüchtige Technologie unabhängig von ihren Sicherheitsgrenzen häufiger verwendet wird (wenn es darum geht, einen sicheren Start zu gewährleisten).

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

Ich bin mir bei Ihren 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.
Hast du die Kosten verglichen? Ich würde mir vorstellen, dass die nichtflüchtigen teurer sind.
@EugeneSh Ich habe keine Statistiken, es ist eine persönliche Beobachtung (ich habe das als PS in der Frage aktualisiert, um die Leute nicht zu verwirren)
Das letzte Projekt, das ich berührt habe, verwendete Sram, weil sie es viele Male für verschiedene Funktionen neu konfigurieren

Antworten (5)

Der Hauptgrund ist die Tatsache, dass SRAM hochgradig kompatibel mit demselben physikalischen Prozess ist, der zur Implementierung der eigentlichen Logik verwendet wird. Tatsächlich basieren die meisten FPGAs heutzutage auf LUTs (Lookup Tables), die eigentlich nur winzige Bits des RAM selbst sind.

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

Zusätzlich zu Dave Tweeds Antwort bezüglich der beteiligten Herstellungsprozesse verwenden die meisten Flash-basierten FPGAs tatsächlich immer noch SRAM, um ihre Struktur anzutreiben. Der Bitstrom wird wie bei einem herkömmlicheren FPGA aus dem 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 einige Geräte wie Lattice MachXO2/3 unterstützen die Neuprogrammierung ihres Flashs während das Gerät läuft, was nur möglich ist, weil das Gerät tatsächlich vom SRAM statt direkt vom Flash läuft. Daher benötigt ein "Flash-basiertes" FPGA den Flash zusätzlich zum SRAM, was bedeutet, dass es mehr Die-Fläche benötigt.

In Bezug auf die Sicherheit weisen Sie zu Recht darauf hin, dass der FPGA-Startprozess eine Schwachstelle sein kann, um das Erfassen des Bitstroms zu ermöglichen. Um diese Lücke zu schließen, integrieren viele FPGAs jetzt Unterstützung für die Bitstream-Verschlüsselung, die auf einem sicheren Schlüssel basiert, der in einem dedizierten Speicher innerhalb des FPGA gespeichert ist. Ein Bitstream-Bild wird mit diesem Schlüssel verschlüsselt, in den Konfigurationsspeicher geladen und dann, wenn das FPGA startet, liest es den verschlüsselten Bitstream ein und entschlüsselt ihn, während es ihn in seinen lädt (einige Mikrocontroller, die externen Speicher benötigen, haben ähnliche Fähigkeiten, und Die Prinzipien sind weitgehend gleich.)

Tatsächlich gilt Ihr erster Absatz für einen relativ begrenzten Satz von FPGAs. Viele Flash-basierte FPGAs werden als „Instant On“ beworben (ein starkes Verkaufsargument in vielen Anwendungen), was bedeutet, dass es keine interne Übertragung gibt – die Flash-Zellen steuern die Verbindungen und die Logik direkt.
Soweit ich gesehen habe, müssen selbst "Instant On" -Geräte immer noch CRAM laden, es passiert einfach viel schneller (ich denke aufgrund einer breiteren Schnittstelle vom internen Flash) als in Teilen, die externen Flash erfordern. Zum Beispiel ist der MAX10 „instant on“, aber siehe S.28 hier: intel.com/content/dam/altera-www/global/en_US/pdfs/literature/… Aber wenn Sie eine Referenz haben, die einen völlig CRAM- weniger Architektur würde mich interessieren, etwas darüber zu lernen.
Schauen Sie sich Actel (jetzt Microsemi) an – sowohl ihre Antifuse- als auch ihre Flash-basierten Geräte sind kopierfrei.

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

  • FLASH-basierte FPGAs benötigen „keine Zeit“ für die Konfiguration, da sie „instant on“ sind. Ihr Design kann dies erfordern.
  • Die FLASH-Technologie ist stromsparender als SRAM
  • FLASH-basiertes FPGA benötigt kein BOOT-PROM, daher ein Chip gegenüber zwei (oder mehr).
  • Möglicherweise müssen Sie im vorherigen Zustand einschalten.
  • FLASH-basiert bietet mehr Rad-tolerante Lösungen. Es gibt Möglichkeiten, mit Strahlungsanforderungen oder SEUs im Allgemeinen in SRAM-basierten FPGAs umzugehen, aber Microsemi bietet „gehärtete Technologie“

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

Im Wesentlichen werden Sie von den Anforderungen Ihres Systems und insbesondere Ihres IC getrieben. Sie setzen sich frühzeitig mit diesen Anforderungen auseinander und führen eine Handelsstudie der verschiedenen FPGAs durch (Tabellenkalkulation). SWaP und Leistung, gefolgt von wiederkehrenden Kosten, sind die Hauptüberlegungen, die Sie mit Ihrem Team (Systeme, CCA, vielleicht sogar SW) wiederholen möchten, die an Ihren Projektleiter/-leiter zurückgemeldet werden. Andere Bedenken wie Zuverlässigkeit, Herstellbarkeit usw. werden normalerweise von anderen Teammitgliedern dieser jeweiligen Organisationen bereitgestellt, bedeuten jedoch normalerweise nicht viel ohne Ihren anfänglichen Handel und werden Ihre Wahl normalerweise nicht verhindern.

Es gibt Artikel im Internet, wenn Sie nach „SRAM vs. FLASH FPGAs“ suchen, aber Sie werden wahrscheinlich mehr aus einer Handelsstudie zu Ihren Anforderungen lernen, wenn Sie die Datenblätter verwenden, als aus irgendetwas anderem.

Um dem Sicherheitsaspekt Rechnung zu tragen, können die meisten modernen SRAM-FPGAs mit einem verschlüsselten Stream konfiguriert werden , normalerweise 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 aus einem entcappten Chip zu extrahieren, wird auch in der Lage sein, den internen Flash auszulesen.

Flash-basierte FPGAs werden typischerweise verwendet, wenn die Implementierung eher einfach ist (also kein großes SRAM-FPGA benötigt wird) oder wenn ein sofortiger Start erforderlich ist.

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

Ein weiterer Aspekt, der noch nicht erwähnt wurde: SRAM verschlechtert sich nicht mit der Nutzung. Flash tut dies und begrenzt die Lebensdauer Ihres FPGAs, wenn es nicht sorgfältig verwendet wird. Außerdem können dedizierte Flash-Chips viel besser für ihren Zweck optimiert werden und haben einen schnelleren Entwicklungszyklus, sodass sie wahrscheinlich besser als integrierter Flash sind.