Der schwierige Weg zum fertigen Chip Fallstricke bei der Auswahl einer FPGA-basierten Prototyping-Lösung vermeiden

Abb. 1: Zunehmende Software-Komplexität
Abb. 1: Zunehmende Software-Komplexität

Wer erinnert sich noch an tragbare CD-Player geschweige denn Kassettenrecorder? Sicherlich niemand unter 20 Jahren, da diese Geräte längst ersetzt wurden durch solche, die Audio und Video wiedergeben und Fotos aufnehmen können. Dies natürlich auch alles im selben mobilen Gerät, das auch zum Spielen benutzt werden kann. Während Produkte wie diese den Erlebniswert von Benutzern vergrößert haben, so sind dadurch massive Entwurfsprobleme entstanden, wie sie noch nie zuvor aufgetreten waren.

Wie schwierig ist es also, ein solches Gerät zu entwickeln? Mit herkömmlichen Abläufen und Methoden kann es sehr schwierig sein. Hardware- und Software-Entwicklungsteams waren es gewohnt, virtuell isoliert voneinander zu arbeiten. Viele Projekte durchliefen einen vorwiegend seriellen Produktentwicklungsprozess: Entwurf und Verifikation des ASICs; Tape-Out; Warten auf die Chips und Aufbau eines System-Prototypen; weitere Verifikation und möglicherweise Iterationen zur Korrektur des Entwurfs. Irgendwann spät im Entwurfszyklus gingen die System- und Softwareteams in die Schnellphase über, um das System und die Software zu entwickeln, zu integrieren, zu validieren und zu debuggen, bis das Gesamtsystem letzten Endes vollständig und bereit für die Serienfertigung war. Heutzutage besteht das Problem, dass der Softwareanteil eines Designs mit einer größeren Geschwindigkeit zunimmt als die Hardware-Komplexität (siehe Abb. 1.). Daher wird es immer wichtiger, bereits in einem frühen Entwurfsstadium Hardware und Software im Zusammenspiel zu validieren. Dies ist entscheidend, um Hardwarefehler zu vermeiden, die nur bei Ausführung realer Applikationen in Erscheinung treten.

Glücklicherweise gibt es heutzutage mehr Parallelismus beim Entwurf. Mit einem virtuellen Prototypen, die Transaction-Level-Modelle auf Systemebene nutzt, werden mit Algorithmenentwurf und Softwareentwicklung häufig sehr frühzeitig begonnen. Zur gleichen Zeit oder wenig später erfolgt das Prototyping auf FPGA-Basis, um wiederverwendete RTL-Blöcke, neue Schlüsselkomponenten und Intellectual-Property (IP) von Drittanbietern zu modellieren. FPGA-basiertes Prototyping erlaubt die Realisierung des Heiligen Grals der Design- und System-Verifikation: Stresstests. Dies bedeutet, das Design in seine reale Umgebung (Hardware plus Software) einzubetten, und zwar vollständig und mit den realen Eigenschaften sowie der zufälligen Natur von Echtzeit-Interfaces. Beide Umgebungen ermöglichen Entwicklern, umfangreichere Tests auszuführen und mehr Fälle komplexer Interaktionen zu untersuchen, was schließlich dazu führt, dass auch schwer zu entdeckende Fehler gefunden werden. Die Auswahl der passenden FPGA-basierten Prototyping-Lösung für Ihre Projektanforderungen wird letztlich die Validierung unterstützen, den Entwurf beschleunigen und so zu einem erfolgreichen Projektabschluss beitragen (siehe Abb. 2.). Die Auswahl des falschen Systems muss zwar nicht das Ende der Welt bedeuten, kann aber das Entwicklerteam zeitlich signifikant zurückwerfen. Daraus resultiert eine verspätete Markteinführung oder ein nichtssagendes Produkt, weil wichtige Funktionen zu einem späten Zeitpunkt gestrichen werden müssen.