FPGA-Prototyping - FPGA prototyping

Field-Programmable - Gate - Array - Prototyping ( FPGA Prototyping ), auch bezeichnet als FPGA-basiertes Prototyping, ASIC - Prototyping oder System-on-Chip (SoC) , Prototyping, ist das Verfahren zum Prototyp - System-on-Chip und anwendungsspezifischen integrierten Schaltkreis - Design auf FPGAs für Hardware- Verifikation und frühe Software - Entwicklung .

Verifikationsmethoden für das Hardware- Design sowie das frühe Co-Design von Software und Firmware sind zum Mainstream geworden. Das Prototyping von SoC- und ASIC-Designs mit einem oder mehreren FPGAs und Electronic Design Automation (EDA)-Software hat sich hierfür zu einer guten Methode entwickelt.

Warum Prototyping wichtig ist

  1. Das Ausführen eines SoC-Designs auf einem FPGA-Prototyp ist eine zuverlässige Methode, um sicherzustellen, dass es funktional korrekt ist. Dies wird mit Entwicklern verglichen, die sich nur auf Softwaresimulationen verlassen, um zu überprüfen, ob ihr Hardwaredesign solide ist. Etwa ein Drittel aller aktuellen SoC-Designs ist während des ersten Siliziumdurchgangs fehlerfrei, wobei fast die Hälfte aller Respins durch funktionale Logikfehler verursacht wird. Eine einzige Prototyping-Plattform kann eine Überprüfung der Designfunktionalität von Hardware, Firmware und Anwendungssoftware vor dem ersten Siliziumdurchgang bereitstellen.
  2. Time-to-Market (TTM) von FPGA - Prototyping reduziert: In der heutigen technologischen Gesellschaft getrieben, neue Produkte schnell eingeführt werden, und ein Produkt bereit zu einem bestimmten haben versagt Marktfenster kann ein Unternehmen eine beträchtliche Menge an Kosten Einnahmen . Wenn ein Produkt innerhalb eines Marktfensters zu spät freigegeben wird, kann das Produkt unbrauchbar werden , was das Unternehmen sein Investitionskapital in das Produkt kostet. Nach dem Designprozess sind FPGAs produktionsreif, während Standardzellen-ASICs mehr als sechs Monate brauchen, um in Produktion zu gehen.
  3. Entwicklungskosten: Die Entwicklungskosten für das Tape-Out eines 90-nm-ASIC/SoC-Designs betragen etwa 20 Millionen US-Dollar, wobei allein ein Maskensatz über 1 Million US-Dollar kostet. Die Entwicklungskosten für 45-nm-Designs werden voraussichtlich 40 Millionen US-Dollar übersteigen. Angesichts steigender Kosten für Maskensätze und der kontinuierlichen Verringerung der IC-Größe ist die Minimierung der Anzahl der erneuten Drehungen für den Entwicklungsprozess von entscheidender Bedeutung.

Design für Prototyping

Design for Prototyping ( DFP ) bezieht sich auf das Entwerfen von Systemen, die für das Prototyping geeignet sind . Viele der Hindernisse, denen sich Entwicklungsteams gegenübersehen, die FPGA-Prototypen einsetzen, lassen sich auf drei „Gesetze“ reduzieren:

  • SoCs sind größer als FPGAs
  • SoCs sind schneller als FPGAs
  • SoC-Designs sind FPGA-feindlich

Das Einfügen eines SoC-Designs in einen FPGA-Prototyp erfordert eine sorgfältige Planung, um die Prototyping-Ziele mit minimalem Aufwand zu erreichen. Um die Entwicklung des Prototyps zu erleichtern, beeinflussen Best Practices namens Design-for-Prototyping sowohl den SoC-Designstil als auch die von den Designteams angewendeten Projektverfahren. Zu den Verfahrensempfehlungen gehören das Hinzufügen von DFP-Konventionen zu den RTL-Codierungsstandards, die Verwendung einer prototypkompatiblen Simulationsumgebung und die Einführung einer System-Debugging-Strategie gemeinsam mit dem Softwareteam.

Partitionierungsprobleme

Aufgrund der erhöhten Schaltungskomplexität und der kürzeren Markteinführungszeit wächst der Bedarf an der Verifizierung von anwendungsspezifischen integrierten Schaltungs-(ASIC)- und System-on-Chip-(SoC)-Designs. Hardwareplattformen werden unter Verifikationsingenieuren immer wichtiger, da Systemdesigns mit On-Chip-Bustakten mit hoher Geschwindigkeit getestet werden können, im Vergleich zu Simulationstakten, die möglicherweise kein genaues Ablesen des Systemverhaltens liefern. Diese Multi-Millionen-Gate-Designs werden normalerweise in einer Multi-FPGA-Prototyping-Plattform mit sechs oder mehr FPGAs platziert, da sie nicht vollständig auf ein einzelnes FPGA passen. Durch die geringere Anzahl von FPGAs muss das Design partitioniert werden, um den Aufwand für den Designingenieur zu reduzieren. Rechts ist ein Bild einer FPGA-basierten Prototyping-Plattform zu sehen, die eine Dual-FPGA-Konfiguration verwendet.

Aldec FPGA-basierte Prototyping-Plattform mit dualer FPGA-Konfiguration.
Die HES-7 ASIC-Prototyping-Lösung von Aldecdec

System-RTL-Designs oder Netzlisten müssen auf jedes FPGA partitioniert werden, damit das Design auf die Prototyping-Plattform passt. Dies stellt den Ingenieur vor neue Herausforderungen, da die manuelle Partitionierung einen enormen Aufwand erfordert und häufig zu einer geringen Geschwindigkeit (des zu testenden Designs) führt. Wenn die Anzahl oder Partitionen reduziert oder das gesamte Design auf einem einzigen FPGA platziert werden kann, wird die Implementierung des Designs auf der Prototyping-Plattform einfacher.

Gleichen Sie die FPGA-Ressourcen aus, während Sie Designpartitionen erstellen

Beim Erstellen von Schaltungspartitionen sollten Ingenieure zunächst die verfügbaren Ressourcen des FPGAs beobachten, da das Design auf die FPGA-Fabric platziert wird. Die Architektur jedes FPGAs hängt vom Hersteller ab, aber das Hauptziel bei der Designpartitionierung besteht darin, eine gleichmäßige Ausnutzung der FPGA-Ressourcen zu erreichen. Zu den verschiedenen FPGA-Ressourcen gehören Lookup-Tabellen (LUTs), D-Flip-Flops , Block- RAMs , digitale Signalprozessoren (DSPs), Taktpuffer usw. Vor dem Ausgleichen der Designpartitionen ist es für den Benutzer auch wertvoll, eine globale Logikoptimierung durchzuführen, um Entfernen Sie jegliche redundante oder nicht verwendete Logik. Ein typisches Problem, das beim Erstellen ausgeglichener Partitionen auftritt, besteht darin, dass es zu Timing- oder Ressourcenkonflikten führen kann, wenn der Schnitt auf vielen Signalleitungen erfolgt. Um eine vollständig optimierte Partitionierungsstrategie zu haben, muss der Ingenieur Probleme wie Timing-/Leistungsbeschränkungen sowie Platzierung und Routing berücksichtigen und gleichzeitig eine ausgewogene Partition zwischen den FPGAs beibehalten. Die strikte Konzentration auf ein einzelnes Problem während einer Partition kann zu mehreren Problemen in einem anderen führen.

Partitionen platzieren und routen

Um einen optimalen Platz und Routing für partitionierte Designs zu erreichen, muss sich der Ingenieur auf die Anzahl der FPGA-Pins und Inter-FPGA-Signale konzentrieren. Nach der Aufteilung des Designs in separate FPGAs darf die Anzahl der Inter-FPGA-Signale die Anzahl der Pins auf dem FPGA nicht überschreiten. Dies ist sehr schwer zu vermeiden, wenn Schaltungsdesigns immens sind, daher müssen Signale Strategien wie Zeitmultiplex (TDM) verwenden, wodurch mehrere Signale über eine einzige Leitung übertragen werden können. Diese mehreren Signale, die als Unterkanäle bezeichnet werden, werden abwechselnd über die Leitung über einen Zeitschlitz übertragen. Wenn das TDM-Verhältnis hoch ist, muss die Bustaktfrequenz reduziert werden, um Zeitschlitze für jeden Unterkanal aufzunehmen. Durch die Reduzierung der Taktfrequenz wird der Durchsatz des Systems behindert.

Timing-Anforderungen

Systemdesigns umfassen normalerweise mehrere Taktdomänen mit Signalen, die separate Domänen durchlaufen. On-Board- Taktoszillatoren und globale Taktleitungen mildern normalerweise diese Probleme, aber manchmal können diese Ressourcen begrenzt sein oder nicht alle Designanforderungen erfüllen. Interne Takte sollten in FPGA-Geräten implementiert werden, da Taktleitungs- und Taktpufferverbindungen zwischen FPGAs begrenzt sind. Intern getaktete Designs, die auf mehrere FPGAs verteilt sind, sollten den Taktgenerator innerhalb des FPGA replizieren, um einen geringen Taktversatz zwischen den Inter-FPGA-Signalen sicherzustellen. Außerdem sollte jede torgesteuerte Taktlogik in Taktfreigaben umgewandelt werden, um den Zeitversatz zu reduzieren, während bei hohen Taktfrequenzen gearbeitet wird.

Übergänge von Taktdomänen sollten nicht auf separate FPGAs aufgeteilt werden. Signale, die die Kreuzung passieren, sollten innerhalb eines einzelnen FPGA gehalten werden, da die zusätzliche Verzögerungszeit zwischen FPGAs Probleme in einer anderen Domäne verursachen kann. Es wird auch empfohlen, dass Signale, die zwischen FPGAs geroutet werden, in Register getaktet werden.

Debugging

Eine der schwierigsten und zeitaufwendigsten Aufgaben beim FPGA-Prototyping ist das Debuggen von Systemdesigns. Der dafür geprägte Begriff ist "FPGA-Hölle". Das Debuggen ist mit dem Aufkommen großer, komplexer ASICs und SoC-Designs schwieriger und zeitaufwendiger geworden. Um einen FPGA-Prototyp zu debuggen, werden Sonden direkt zum RTL-Design hinzugefügt, um spezifische Signale zur Beobachtung verfügbar zu machen, synthetisiert und auf die FPGA-Prototyp-Plattform heruntergeladen.

Eine Reihe von Standard-Debugging-Tools werden von FPGA-Anbietern angeboten, darunter ChipScope und SignalTAP. Diese Tools können maximal 1024 Signale prüfen und benötigen umfangreiche LUT- und Speicherressourcen. Bei SoC- und anderen Designs erfordert ein effizientes Debugging häufig den gleichzeitigen Zugriff auf 10.000 oder mehr Signale. Wenn ein Fehler mit dem ursprünglichen Sondensatz nicht erfasst werden kann, führt der Zugriff auf zusätzliche Signale zu einer „Go home for the day“-Situation. Dies ist auf lange und komplexe CAD-Flüsse für die Synthese sowie den Ort und die Route zurückzuführen, die 8 bis 18 Stunden in Anspruch nehmen können.

Zu den verbesserten Ansätzen zählen Tools wie Certus von Tektronix oder EXOSTIV von Exostiv Labs.

Certus bietet verbesserte Sichtbarkeit auf RTL-Ebene für das FPGA-basierte Debugging. Es verwendet einen hocheffizienten mehrstufigen Konzentrator als Basis für sein Beobachtungsnetzwerk, um die Anzahl der pro Signal erforderlichen LUTs zu reduzieren, um die Anzahl der Signale zu erhöhen, die in einem bestimmten Raum untersucht werden können. Die Fähigkeit, jede beliebige Kombination von Signalen anzuzeigen, ist einzigartig bei Certus und durchbricht einen der kritischsten Prototypen-Engpässe.

EXOSTIV verwendet einen großen externen Speicher und Gigabit-Transceiver, um tiefe Spuren aus FPGAs mit hoher Geschwindigkeit zu extrahieren. Die Verbesserung liegt in seiner Fähigkeit, große Spuren in der Zeit als einen kontinuierlichen Strom oder in Bursts zu sehen. Auf diese Weise können erweiterte Debugging-Szenarien untersucht werden, die mit herkömmlichen eingebetteten Instrumentierungstechniken nicht erreicht werden können. Die Lösung behauptet, sowohl die FPGA-I/O-Ressourcen als auch den FPGA-Speicher auf Kosten von Gigabit-Transceivern einzusparen, was eine Verbesserung der Sichtbarkeit um den Faktor 100.000 und mehr bedeutet.

Siehe auch

Verweise

  1. ^ "FPGA vs ASIC: Unterschiede zwischen ihnen und welchem ​​zu verwenden? – Numato Lab Help Center" . numato.com . Abgerufen am 17. Oktober 2018 .
  2. ^ a b "Archivierte Kopie" . Archiviert vom Original am 2. Februar 2013 . Abgerufen am 9. Oktober 2012 .CS1-Wartung: archivierte Kopie als Titel ( Link )
  3. ^ Rittman, Danny (5. Januar 2006). "Nanometer-Prototyping" (PDF) . Tayden-Design . Abgerufen am 7. Oktober 2018 .
  4. ^ a b "FPGA-Prototyping zur strukturierten ASIC-Produktion zur Reduzierung von Kosten, Risiken und TTM" . Design und Wiederverwendung . Abgerufen am 7. Oktober 2018 .
  5. ^ "Prototyping von Systemdesigns auf FPGAs" . Neue Elektronik. 22. März 2011 . Abgerufen am 22. März 2011 .
  6. ^ „Best Practices für das FPGA-Prototyping von MATLAB- und Simulink-Algorithmen“ . EEJournal . 25.08.2011 . Abgerufen am 8. Oktober 2018 .
  7. ^ a b c d e "Aldec und Xilinx gemeinsam verfasstes Whitepaper "HES-7 ASIC Prototyping" , Registrierung erforderlich
  8. ^ "Archivierte Kopie" . Archiviert vom Original am 22. Januar 2013 . Abgerufen am 9. Oktober 2012 .CS1-Wartung: archivierte Kopie als Titel ( Link )
  9. ^ http://www.fpga-faq.com/FAQ_Pages/prototyping.pdf
  10. ^ "Zeitmultiplexing" . www.inetdaemon.com . Abgerufen am 8. Oktober 2018 .
  11. ^ "FPGA-Hölle" . zipcpu.com . Abgerufen am 5. November 2019 .
  12. ^ "Erste Schritte mit FPGAs" (PDF) .
  13. ^ "Tektronix mischt Prototyping auf, Embedded Instrumentation bringt Boards in den Emulator-Status" . Zeitschrift für Elektrotechnik. 30. Oktober 2012 . Abgerufen am 30. Oktober 2012 .
  14. ^ "Exostiv Labs gibt die Verfügbarkeit seiner 'EXOSTIV'-Lösung für das FPGA-Debug bekannt" . Design & Wiederverwendung. 14. Oktober 2015 . Abgerufen am 25. November 2015 .
  15. ^ „Durchbrechen Sie Ihre ASIC-Prototyping-Engpässe“ . 23. Oktober 2012 . Abgerufen am 30. Oktober 2012 .
  16. ^ "Warum EXOSTIV?" . 14. Oktober 2015 . Abgerufen am 25. November 2015 .
  17. ^ "ASIC/SoC-Prototyping" . Abgerufen am 12. April 2020 .

Externe Links