Reine Nervensache – Timingabschluss beim FPGA-Design

Gerade das Herbeiführen der »Timing Closure« nimmt, abgesehen von der Verifikation, die meiste Zeit beim FPGA-Design in Anspruch. Dieser häufig sehr iterative Prozess verleiht jedem einzelnen Signalweg im Design das erforderliche Timing und kann zum nervenaufreibenden Geduldsspiel ausarten.

Gerade das Herbeiführen der »Timing Closure« nimmt, abgesehen von der Verifikation, die meiste Zeit beim FPGA-Design in Anspruch. Dieser häufig sehr iterative Prozess verleiht jedem einzelnen Signalweg im Design das erforderliche Timing und kann zum nervenaufreibenden Geduldsspiel ausarten.

Alle paar Jahre flackert sie wieder auf: die Geduldsspiel-Manie. Ein verbreiteter Vertreter dieser Spielegattung ist das Kugelspiel, das sich über den Umweg als Messe-Giveaway in praktisch jeden Haushalt geschlichen hat. Dabei gilt es, in einem etwa handtellergroßen, transparenten Kunststoffgehäuse mehrere kleine Kügelchen in entsprechende Vertiefungen zu versenken. Da das gesamte Gehäuse rundum verschlossen ist, gelingt es nur durch geschicktes Neigen, die Kugeln in die richtige Richtung rollen zu lassen. Meist aber muss man frustriert feststellen, dass eine bereits sicher geglaubte Kugel wieder aus ihrer Vertiefung herausrollt, wenn man sich zu sehr auf die nächste Kugel konzentriert und das nervende Ding vor lauter Eifer zu ruckartig bewegt. Starke Nerven sind hier gefragt.

Gleiches gilt für den Timingabschluss komplexer FPGA-Designs. Bei relativ kleinen und langsamen stellt dies kein Problem dar und lässt sich sogar automatisch erledigen, denn weder das FPGA noch das Implementierungstools müssen hier Höchstleistungen erbringen. Leider aber fällt die Mehrzahl der modernen Designprojekte nicht in diese Gruppe, sondern ähnelt den erwähnten Geduldspielen: Beim Versuch, einen kritischen Signalweg so anzupassen, dass er seine Timingvorgabe erfüllt, entstehen neue Timingprobleme, oder ein schon als gelöst abgehakter Signalweg fällt erneut durch Überschreitung des Soll-Timings auf. Bild 1 illustriert dies. Im ersten Fall überschreitet nur Pfad C die zulässige Laufzeit. Mit den nun eingeleiteten Abhilfemaßnahmen wird zwar das Problem mit Signalweg C gelöst, dafür aber fallen nun die Pfade B und E aus dem zulässigen Bereich heraus – und so geht es weiter, bis es schließlich (hoffentlich) doch gelingt, allen Signalwegen ein korrektes Timing zu verleihen (in der Abbildung ganz unten).