Embedded Software Anwendung von FPGA-basierten Prototypensystemen

Jürgen Jäger

Anbieter zum Thema

Entwicklung von Embedded Software und Software/Hardware-Integration kann bei der Systementwicklung nie früh genug beginnen. FPGA-basierte Prototypen können diesen Prozess enorm beschleunigen.

Beispiel für Pre-Silicon-Softwareentwicklung: FPGA-basierte Prototypensysteme werden für die  Entwicklung von Embedded Software immer wichtiger, um frühzeitigen Entwicklungsbeding unter nardwarenahen Bedingungen zu gewährleisten.(Bild:  Cadence)
Beispiel für Pre-Silicon-Softwareentwicklung: FPGA-basierte Prototypensysteme werden für die Entwicklung von Embedded Software immer wichtiger, um frühzeitigen Entwicklungsbeding unter nardwarenahen Bedingungen zu gewährleisten.
(Bild: Cadence)

FPGA-basierende Prototypensysteme sind ein integraler Bestandteil in der Entwicklung und Verifikation von digitalen SoCs (System on Chip) und deren Embedded Software- und Firmware geworden. Andererseits ist es aber durchaus eine Herausforderung und ein zeitaufwendiges Unterfangen, ein solches SoC-Design in mehr als ein FPGA zu implementieren.

Dieser Artikel stellt ein neues, ASIC-nahes Konzept dazu vor, anstelle der traditionellen FPGA Werkzeuge. Besonders auf die Bereiche ‘Memory Modellierung’, ‘Clock Transformation’, multi-FPGA Partitionierung und Laufzeitoptimierung gehen wir näher ein.

Warum sind FPGA-Prototypen so populär?

Auf FPGAs basierende Prototypen haben erst in den letzten Jahren einen dramatischen Zuwachs und Aufschwung erlebt. Die Gründe liegen auf der Hand: es geht um die Software. Die ASIC-Entwicklung, um zum „tape-out“ zu kommen, ist schon lange nicht mehr das größte Problem. Software hingegen dominiert Entwicklungskosten und Termine. Zudem markiert sie oft sie den Unterschied in einem Produkt, wenn es um Wettbewerbsvorteile geht.

Es ist daher entscheidend, die Software-Entwicklung und die Hardware/Software-Integration so früh wie möglich, noch lange bevor der eigentliche Baustein zur Verfügung steht, zu beginnen. Genau hier kommen FPGA-basierende Prototypen ins Spiel.   

Bild 1: Typische Verifikationswerkzeuge in der ASIC Entwicklung.(Bild:  Cadence)
Bild 1: Typische Verifikationswerkzeuge in der ASIC Entwicklung.
(Bild: Cadence)

In den frühen Phasen, wenn das Design noch am wachsen und instabil ist, wird sehr viel simuliert. Es kommt jedoch ein Punkt, an dem ein Simulator nicht mehr schnell genug ist und die Laufzeiten zu lange werden. Dann werden häufig Simulationsbeschleuniger und Emulatoren eingesetzt. Wird das Hardwaredesign stabiler, fängt parallel dazu die Embedded-Software-Entwicklung an. Das ist auch der richtige Zeitpunkt, um den FPGA-Prototypen ans Laufen zu bekommen und so den Softwareentwicklern ein Werkzeug in die Hand zu geben, um ihre Arbeit effizient machen zu können.

Herausforderungen: Wo Licht ist, fällt auch Schatten

Bild 2: Zu den aufwändigsten Aufgaben bei der Implementierung von ASIC-Designs in FPGA-basierte Prototypensysteme zählen Kompilierung der RTL, Umsetzung der Memories und gegebenenfalls die Partitionierung in mehrere FPGAs.(Bild:  Cadence)
Bild 2: Zu den aufwändigsten Aufgaben bei der Implementierung von ASIC-Designs in FPGA-basierte Prototypensysteme zählen Kompilierung der RTL, Umsetzung der Memories und gegebenenfalls die Partitionierung in mehrere FPGAs.
(Bild: Cadence)

Die größte Herausforderung mit FPGA Prototypen ist, dass es ganz einfach viel zu lange dauert das ASIC-Design in Multi-FPGAs zu implementieren und korrekt ans Laufen zu bringen. Oft kann es 3 bis 6 Monate dauern, bis der Prototyp wirklich einsatzbereit ist. Die Hauptgründe dafür sind:

• RTL (Verilog, System Verilog, VHDL), welches für ein ASIC-Design geschrieben wurde, kann oft nicht so einfach in FPGAs kompiliert werden, oft ist Überarbeitung oder gar ein Umschreiben nötig. Die am häufigsten auftretende Probleme, die FPGAs nicht direkt verarbeiten können, sind „gated clocks“, „latches“, „tristates“, usw.

• Die Umsetzung aller ASIC-Memories in FPGA-Memories kann viele Wochen dauern.

• Normalerweise passen ASIC-Designs nicht in ein einzelnes FPGA. Das Design muss also partitioniert und, weil nicht genug Verbindungen zwischen den FPGAs vorhanden sind, muss auch noch mit pin-multiplexing Logik versehen werden. Ganz schnell sind wieder 2 bis 4 Wochen vergangen.

• Nachdem all diese Änderungen vorgenommen wurden, muss anschließend überprüft werden, ob die Funktionalität des Originaldesigns überhaupt noch vorhanden ist.

Ehe man sich versieht sind etliche Monate vergangen – Zeit, die ein Softwareentwickler hätte nutzen können, wenn nur der Prototyp früher zur Verfügung gestanden wäre.

Artikelfiles und Artikellinks

(ID:43586662)

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung