Reine Nervensache – Timingabschluss beim FPGA-Design

26. März 2008, 10:35 Uhr | Doug Amos
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Doug Amos

Wenn Modul A in seinem RTL-Code verändert wird und an Größe zunimmt, wodurch sich die Leitungen in Modul B und C verlängern, schätzt eine solche Lösung die neuen, längeren Verbindungswege korrekt ab und berücksichtigt sie entsprechend. Eine neue Kombination aus Optimierungen, Platzierung und lokalem Routing entlang der neuen kritischen Signalwege kann das Problem jetzt automatisch und während ein und demselben Physical-Synthesis-Durchgang beheben. Dies ist ganz so, als würden die Kügelchen in dem eingangs beschrieben Geduldspiel von ganz alleine den Weg in die ihnen zugedachten Vertiefungen finden. (mc)


ist Director of European Business Development

Telefon 089/94 49 02 01
www.synplicity.com

FPGA-Systeme architekturneutral entwerfen


Weshalb ist die Vorhersage des Routings so wichtig?

Die Signallaufzeit eines Routing-Pfads ist per se nicht vorhersagbar, da es in einem FPGA stets eine Vielzahl möglicher Verbindungen zwischen Treiber und Last gibt. Alle Pfade haben unterschiedliche Laufzeiten, und die am Anfang des Toolflows stehende Logiksynthese kann nicht vorhersehen, für welchen der vielen Pfade sich die am Ende agierenden Place&Route-Algorithmen entscheiden werden. Die schnellsten Routing-Ressourcen sind erfahrungsgemäß besonders rar, und bei Routing-Verknappungen muss das Werkzeug nicht selten auf suboptimale Signalwege ausweichen. Es ist auch nicht zielführend, einfach FPGAs mit einem größeren Angebot an immer schnelleren Routing-Ressourcen zu bauen, denn das Resultat wären Bausteine mit schlechterer Flächeneffizienz, deutlich höherem Preis und mehr Stromverbrauch.

Ein ungünstiger Nebeneffekt der neuen FPGA-Generationen und des Strebens nach immer weiter miniaturisierten CMOS-Geometrien ist, dass die Routing-Laufzeiten mittlerweile bei weitem den problematischsten Teil der Gesamtlaufzeit kritischer Signalwege ausmachen. Die Möglichkeiten, das Timing in einem Synthese- und Place&Route-Flow vorherzusagen, haben sich deshalb mit jeder neuen Generation immer weiter verschlechtert. Die einfachste und zu bevorzugende Lösung wäre es, die Platzierung in eine frühere Phase des Designflows vorzuverlegen und in die Synthese einzubetten. Ein solches Kombitool für Synthese und Place&Route könnte die Zahl der für den Timingabschluss erforderlichen Iterationen entscheidend verringern. Genau dies geschieht in einer echten Physical-Synthesis-Lösung für FPGAs.


Was ist »echte« Physical-Synthesis?

Viele Tools nehmen für sich in Anspruch, eine echte Physical-Synthesis vorzunehmen, doch tatsächlich tun sie nichts weiter, als mit Timing-Informationen aus vorangegangenen Place&Route-Durchgängen eine Reoptimierung der Syntheseresultate anzustellen. Dabei bleibt allerdings die ursprüngliche Synthese unangetastet, sodass sich die dabei gefällten Strukturierungsentscheidungen nicht mehr zurücknehmen lassen. »Physische Reoptimierung « wäre deshalb die treffendere Bezeichnung für diese Vorgehensweise. Eine »echt echte« Physical-Synthesis ist dadurch gekennzeichnet, dass die Synthese die Platzierung vornimmt und deshalb verlässlich vorhersagen kann, welches Routing im FPGA gewählt werden wird. Das Timing lässt sich so genauer vorhersagen, und Probleme mit dem Timingabschluss werden vermieden.


  1. Reine Nervensache – Timingabschluss beim FPGA-Design
  2. Doug Amos
  3. Wunschtraum der FPGA-Hersteller

Jetzt kostenfreie Newsletter bestellen!