Blog

Kritische Nutzung von IP Cores

  • 27. März 2019

Viele von uns nutzen IP Cores von Drittanbietern, um den Entwicklungsprozess und Time-to-Market zu beschleunigen. Die Wiederverwendung von IP Cores ist zwar sicherlich sehr hilfreich, aber wir sehen auch immer wieder Anwender, die aufgrund von Herausforderungen in der Integration Probleme im Zeitverhalten und im Leistungsverbrauch haben. Diese Probleme werden beim Design mit Hochgeschwindigkeitsschnittstellen noch deutlicher. Aber warum gerade bei Hochgeschwindigkeitsschnittstellen? Viele dieser Themen haben ihre Ursache im Design.

Warum gerade bei Hochgeschwindigkeitsschnittstellen?

Viele dieser Probleme haben mit Designs zu tun die Hochgeschwindigkeitsschnittstellen verwenden. So wurden vor vielen Jahren Designs entwickelt, die für diese Schnittstellen IP Cores von Drittanbietern verwendeten. Das Design wurde auf die Anforderungen von einem bestimmten Kunden hin optimiert. Gemäß den damaligen Standards wurde dann tatsächlich die geforderte Performance erreicht. Als aber in 2019 die neuesten Standards für Hochgeschwindigkeitsschnittstellen herauskamen, begannen die Probleme im Erreichen der neu geforderten Performance. Betrachten wir nur als Beispiel den Sprung von USB 3.1 Gen1 auf USB 3.1 Gen2, so liegt die Herausforderung im Erreichen einer doppelten Performance. Das Entwicklungsteam ist aber nur in der Lage den Teil des Designs zu ändern, das sie selbst entworfen haben. Änderungen an IP Cores von Drittanbietern konnten nicht durchgeführt werden, und führten an dieser Stelle zu einer Neuentwicklung.

Um den kritischen Pfad im Zeitverhalten zu optimieren, ist der Designer in diesem Fall wie im Spiel „Schlag den Maulwurf“ unterwegs – was sich negativ auf seine Produktivität auswirkt.

In einem zweiten Fall haben wir ein Design, dass auf einem FPGA Prototyping Board mit mehreren Xilinx Virtex VU440 Bausteinen portiert wurde. Für das Prototyping ist häufig die Höhe der Frequenz des Designs nicht so wichtig. Normalerweise wird die Frequenz gesenkt, um das Zeitverhalten zu erreichen. Jedoch in diesem Fall muss eine bestimmte Timingperformance erreicht werden, um ein USB 3.x Interface zu verifizieren. Große Änderungen am Design auf Prototyping-Ebene durchzuführen sind in der Regel nicht ideal, und werden auch nicht empfohlen. Es sei denn, dies ist unbedingt erforderlich. Versucht der Designer den kritischen Pfad Schritt-für-Schritt zu lösen, ist das vergleichbar mit dem bekannten Spiel „Schlag den Maulwurf“, was dazu führt, dass seine Produktivität beeinträchtigt wird. 

Welchen Nutzen bringt InTime?

Gemeinsam ist in beiden Fällen, dass das Design IP Cores für Hochgeschwindigkeitsschnittstellen von Drittanbietern verwendet, und diese nicht geändert werden konnten. Hier ist InTime besonders nützlich, da das Design im Timing optimiert werden kann, ohne den RTL-Code zu ändern. InTime ermittelt die besten Einstellungen für Synthese und Place & Route durch einen intelligenten, iterativen Prozess. Da aber die Anzahl der möglichen Kombinationen von Einstellungen sehr hoch sein kann, verwendet InTime eine Mischung aus FPGA Design Regeln und einem „maschine learning“ Algorithmus, um den Suchraum einzugrenzen und schnell zu brauchbaren Ergebnissen zu kommen.

Ergebnisse

In der ersten hier gezeigten Fallstudie, konnte der Anwender den FMax-Wert im Design in weniger als einer Woche von 120 MHz auf 150 MHz und schließlich auf die Zielfrequenz von 170 MHz erhöhen. Man kann auch sehen, dass die Nutzung der Logik nur um einige Prozentpunkte auf 80% gestiegen ist.

 

 

 

 

Original WNS: -2.946ns, TNS: -30.092ns. Trifft das Timing.

Im zweiten Beispiel konnte der Anwender das gewünschte Timing innerhalb von drei InTime Iterationen erreichen.

 

 

 

 

WNS: -1.482ns to -0.035ps; TNS: -1278ns to -0.134ns

Schlussfolgerung

Design Exploration ist eine leistungsfähige Optimierungstechnik, die unter Bedingungen eingesetzt werden kann, bei denen eine Änderung im RTL-Code nicht möglich ist. Um eine maximale Performance aus dem Design herauszuholen, müssen Designer ihre Entwurfstools optimal nutzen.

Weitere Informationen zu InTime finden Sie hier