Was ist eine Zeitbeschränkung für falsche Pfade?


10

Was genau sind in der FPGA-Welt falsche Pfadbeschränkungen für einen HDL-Compiler? Warum sind sie nützlich?


1
Dies ist ein digitales Konzept, nicht nur ein FPGA-Konzept.
W5VO

Antworten:


14

Falsche Pfade sind Zeitpfade, die im endgültigen Entwurf niemals wirklich ausgeübt werden. Angenommen, Sie entwerfen einen 4-Bit-Zähler und es stellt sich heraus, dass beim Inkrementieren von 12 auf 13 ein sehr langsamer Verzögerungspfad auftritt. Wenn Ihr Entwurf den Zähler immer zurücksetzt, wenn die Anzahl 9 beträgt, wird dieser langsame Pfad in der nie angezeigt tatsächliches Design. Sie kennzeichnen den langsamen Pfad als falschen Pfad, damit der Compiler keine Zeit damit verbringt oder zusätzliche Logik hinzufügt, um den falschen Pfad schneller laufen zu lassen.


5
Huh, und ich dachte, ein falscher Weg hätte mit der Verwendung von Atmels anstelle von PICs oder so etwas zu tun.
Olin Lathrop

Eine bedeutendere Art von falschem Pfad ist meines Erachtens ein Signal, das sich am Rand eines Takts ändert und am Rand eines anderen Takts abgetastet wird, aber entweder ändert sich das Signal nie in der Nähe des Zeitpunkts, zu dem sich der zweite Takt ändert, oder wenn es ändert sich nichts, es wird sich nicht um seinen Wert kümmern. Timing-Analyse-Tools würden wahrscheinlich fehlschlagen, wenn nicht ein Doppelsynchronisierer hinzugefügt würde, der von der zweiten Uhr gesteuert wird, aber das Hinzufügen eines solchen Synchronisierers könnte das Design völlig beschädigen. Zum Beispiel könnte der erste Takt mit 1 MHz und der zweite mit 32 kHz laufen, aber ...
Supercat

... das Gerät, das das Signal erzeugt, es möglicherweise drei 1-MHz-Zyklen ändert, nachdem es eine steigende Flanke im 32-kHz-Takt sieht. Folglich kann garantiert werden, dass das vom 32-kHz-Takt zwischengespeicherte Signal den Abtast- / Halteanforderungen des 32-kHz-Zwischenspeichers ohne zusätzliche Synchronisation entspricht. Wenn die Logik auf der 1-MHz-Seite ihre Daten basierend auf den Aktivitäten der 32-kHz-Seite generiert, könnte ein solches Design ermöglichen, dass Informationen, die in einem Zyklus auf der 32-kHz-Seite generiert wurden, im nächsten Zyklus in beide Richtungen versickern. Das Hinzufügen einer doppelten Synchronisation zur 32-kHz-Seite würde dies verhindern.
Supercat

8

Ein falscher Pfad ist ein Pfad, der im Entwurf vorhanden ist, aber keine Rolle in der Operation spielt. Daher ist es nicht erforderlich, ihn in die Timing-Analyse einzubeziehen.
Es kann verschiedene Gründe dafür geben, aber da das Timing-Analyse-Tool normalerweise nicht weiß (obwohl es einige Tools gibt, die sie erkennen können), welche Pfade verwendet werden können oder nicht, müssen Sie es angeben. Es ähnelt einem Pfad mit mehreren Zyklen, bei dem Sie feststellen können, dass ein bestimmter Pfad mehr als einen Zyklus zum Abschließen verwenden darf.

Ein Beispiel (für einen falschen Pfad) ist ein Register, das beim Einschalten möglicherweise einmal geschrieben wird, dann aber im selben Zustand bleibt.


1

Ein falscher Pfad ist einfach ein Logikpfad, der nicht überprüft werden soll, um festzustellen, ob er während der Timing-Analyse dem Timing entspricht. Es gibt zwei Gründe, Pfade auszuschließen: Erstens, weil der falsche Pfad dazu führt, dass die Tools härter arbeiten, um das Timing für dieses Signal einzuhalten, was sich wiederum auf legitime Signalpfade auswirkt, die möglicherweise zusätzliche Timing-Fehler verursachen, und weil die Timing-Prüfung Fehler meldet möglicherweise den Designer von legitimen Zeitfehlern ablenken.

Falsche Pfade werden durch Logikpfade zwischen nicht verwandten asynchronen Takten oder Takten derselben Frequenz, jedoch mit unbekannter Phasenbeziehung oder einem Pfad verursacht, der während des normalen Schaltungsbetriebs niemals aktiviert werden würde. Wenn Sie dem Tool sagen, dass es einen Pfad ignorieren soll, funktioniert das Timing nicht nur, wenn das Timing nicht überprüft wird. Es ist Sache des Konstrukteurs, manuell sicherzustellen, dass für diese ignorierten Signalpfade die richtige Synchronisationslogik verwendet wird.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.